8341TokenFactory
LLM APIAPI Gateway

Sau lỗ hổng AMD TPM 8.3/8.5, tôi đã đưa khóa sao lưu ra khỏi chip thông qua token8341

SiCore TokenWorks Team·2026-11-12

Kết luận trước: TPM không phải két sắt, nó là một bộ đồng xử lý được hàn trên bo mạch chủ. Khi firmware TPM của AMD bị phát hiện có lỗ hổng nghiêm trọng ở phiên bản 8.3/8.5, phản ứng đầu tiên của tôi không phải là đi nạp microcode, mà là đi lục lại danh sách ký gửi khóa của chính chúng tôi — tất cả các máy có khóa gốc mã hóa sao lưu được gắn trực tiếp vào TPM đều bị đánh dấu là cần khắc phục. Bài viết này nói rõ ba việc: gốc tin cậy bị phá vỡ như thế nào, rò rỉ khóa sẽ dây chuyền đến mức nào, và phương án tách rời khóa tôi đang dùng hiện nay.

Gốc tin cậy của TPM, rốt cuộc tin cậy ai

Giá trị cốt lõi của TPM là đưa ra cam kết "khóa không bao giờ ra khỏi chip". Khóa riêng được sinh ra bên trong chip, sử dụng bên trong, bus bên ngoài chỉ truyền kết quả chứ không truyền khóa. Mô hình này đứng vững với tiền đề là firmware của chipbản thân đáng tin cậy. Cách triển khai TPM của AMD đi theo hướng fTPM, firmware chạy trên bộ đồng xử lý bảo mật bên trong bộ xử lý, vấn đề được công bố ở hai phiên bản 8.3 và 8.5 về bản chất là lỗi ở lớp firmware trong việc cách ly bộ nhớ và kiểm tra lệnh, kẻ tấn công sau khi có được quyền thực thi mã cục bộ có thểcấu trúc ra chuỗi lệnh đặc biệt để đọc các đối tượng khóa lẽ ra phải được cách ly.

Chú ý điều kiện giới hạn ở đây: cần quyền cục bộ. Nên nhiều người phản ứng đầu tiên là "không sao, server của tôi đâu cho người khác đăng nhập". Vấn đề nằm ở kịch bản sao lưu. Các tác nhân sao lưu, dịch vụ snapshot, đóng gói khóa TDE của cơ sở dữ liệu, bản thân các tiến trình này chạy trên máy chủ, một khi ứng dụng Web bị chiếm, thoát khỏi container thành công, thứ kẻ tấn công có được chính là quyền cục bộ, tiếp theo trực tiếp phát động đọc TPM. Chuỗi tin cậy đứt ngay từ mắt xích firmware, LUKS, BitLocker, TDE ở phía trên đều thành đồ trang trí.

Rò rỉ khóa sao lưu không phải chuyện mất một máy

Tôi đã từng diễn tập một lần. Giả sử khóa gốc TDE của một máy chủ cơ sở dữ liệu nào đó bị đọc ra, kẻ tấn công có thể làm gì: lấy được tệp tablespace trên đĩa, giải mã ngoại tuyến, toàn bộ dữ liệu vào tay. Đây mới chỉ là tầng đầu tiên. Dây chuyền thật sự nằm ở việc tái sử dụng khóa trong hệ thống sao lưu — nhiều đội để cho tiện, dùng cùng một bộ KEK (khóa mã hóa khóa) để đóng gói cơ sở dữ liệu sản xuất, cơ sở dữ liệu sao lưu, lưu trữ lạnh dạng archive. Một khóa gốc rò rỉ, đồng nghĩa toàn bộ bản sao lưu ba năm qua đều có thể giải mã. Nhật ký kiểm toán, dòng tiền tài chính, thông tin định danh người dùng, đóng gói một lần.

Rắc rối hơn là chiều thời gian. Lỗ hổng TPM từ công bố đến vá có cửa sổ thời gian, từ vá đến nạp xong firmware toàn bộ lại có cửa sổ thời gian, mà chu kỳ lưu giữ dữ liệu sao lưu thường là 3 đến 7 năm. Hôm nay bạn vá xong, bản archive ba năm trước được mã hóa bằng khóa đã rò rỉ vẫn nằm trong thư viện băng từ. Luân chuyển khóa không giải quyết được vấn đề dữ liệu lịch sử, trừ khi bạn mã hóa lại toàn bộ archive, chi phí này không ai muốn tính.

Tách rời khóa: để khóa rời khỏi chip

Cách tôi làm là bóc vòng đời khóa ra khỏi gốc tin cậy phần cứng, chia làm ba tầng.

Tầng thứ nhất, tầng quản lý khóa độc lập. Khóa gốc mã hóa sao lưu không còn do TPM của máy chủ sinh ra, chuyển sang do dịch vụ KMS độc lập sinh và ký gửi thống nhất, máy chủ chỉ giữ thông tin xác thực truy cập ngắn hạn. TPM được hạ cấp xuống vai trò "đo lường tính toàn vẹn khởi động", không còn đảm nhận trách nhiệm lưu trữ khóa. Như vậy dù firmware bị phá vỡ, thứ kẻ tấn công có được là thông tin xác thực chứ không phải khóa, thông tin xác thực có thể thu hồi trong vài giây.

Tầng thứ hai, HSM ký gửi khóa gốc. Khóa gốc của KMS lại chìm xuống một tầng nữa, đặt vào module bảo mật phần cứng đạt chứng nhận FIPS 140-2 Level 3. Ở đây phải thừa nhận một thực tế: HSM hợp quy không rẻ, đội nhỏ vừa chưa chắc kham được. Phương án dung hòa là dùng dịch vụ HSM ký gửi của nhà cung cấp dịch vụ đám mây, hoặc ít nhất làm được việc lưu trữ phân mảnh khóa gốc, cần nhiều người ủy quyền mới giải phong được. Tiêu chuẩn bảo vệ cấp 2.0 cấp ba có yêu cầu rõ ràng về quản lý khóa, lưu trữ khóa tách rời khỏi dữ liệu là hạng mục cơ bản, nhiều đội mắc kẹt ở điều này.

Tầng thứ ba, mã hóa phong bì. Khóa dữ liệu mã hóa dữ liệu, khóa chính mã hóa khóa dữ liệu, khóa chính không bao giờ ra khỏi HSM. Trong tệp sao lưu lưu là khóa dữ liệu đã được mã hóa, khi giải mã bắt buộc phải quay lại HSM yêu cầu. Như vậy rò rỉ một tệp sao lưu đơn lẻ, không có khóa chính vẫn không giải được.

Phương án này tôi đã triển khai ở nhiều dự án, độ trễ gọi khóa tăng ở mức mili giây, ảnh hưởng đến thông lượng sao lưu có thể bỏ qua. Khối lượng công việc thật sự nằm ở việc cải tạo đường dẫn tham chiếu khóa của hệ thống hiện hữu, cái này không tránh được.

Tiện nói thêm về quản lý khóa trong kịch bản tích hợp đa mô hình. Nội bộ chúng tôi dùng nền tảng tổng hợp API mô hình lớn token8341 làm đầu vào thống nhất, một Key là có thể gọi GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE, Doubao, tiết kiệm được phiền phức quản lý riêng một bộ API Key cho từng nhà cung cấp. Khóa được ký gửi tập trung ở một nơi, luân chuyển và thu hồi đều là thao tác một điểm, an toàn hơn nhiều so với việc rải rác trong tệp cấu hình của từng đoạn mã nghiệp vụ. Cách nghĩ của nền tảng tổng hợp API mô hình lớn token8341 ở điểm này nhất quán với việc tách rời khóa sao lưu: thông tin xác thực thu gọn, quyền hạn tối thiểu hóa.

Danh sách tự kiểm tra 10 phút

Không cần đợi bản vá của nhà sản xuất, bây giờ có thể kiểm tra.

Mở cấu hình sao lưu của bạn, xác nhận vị trí sinh khóa mã hóa. Nếu ghi là TPM hoặc fTPM, ghi lại. Kiểm tra cấp đóng gói khóa, nếu KEK dùng chung với cơ sở dữ liệu sản xuất, cơ sở dữ liệu sao lưu, ghi lại. Kiểm tra bản ghi luân chuyển khóa, nếu quá 12 tháng chưa luân chuyển, ghi lại. Kiểm tra tình hình sử dụng HSM, nếu khóa gốc tồn tại trong hệ thống tệp hoặc biến môi trường, ghi lại. Kiểm tra cách quản lý API Key, nếu Key của API mô hình lớn bị mã hóa cứng trong mã hoặc tệp cấu hình, ghi lại.

Năm mục trúng ba mục trở lên, khuyến nghị sắp xếp một cửa sổ khắc phục. Tách rời khóa không phải là công trình một lần, nhưng điểm khởi đầu rất thấp: trước tiên đưa khóa gốc ra khỏi TPM, đặt vào tầng quản lý khóa độc lập, bước này có thể chặn được phần lớn việc đọc ngang sau khi leo thang đặc quyền cục bộ.

Bổ sung một câu, nền tảng tổng hợp API mô hình lớn token8341 tương thích với OpenAI SDK, đổi một dòng base_url là có thể chuyển đổi, chúng tôi khi làm việc thu gọn khóa tiện thể thu gọn luôn việc gọi mô hình. Nền tảng tổng hợp API mô hình lớn token8341 hỗ trợ tính phí theo lượng dùng, sau khi tích hợp thống nhất đa mô hình, quản lý khóa và hạch toán chi phí đều đơn giản hơnkhá nhiều.

Chuyện gốc tin cậy của chip bị phá vỡ, trong ngắn hạn sẽ còn nhà sản xuất tiếp theo, phiên bản tiếp theo. Đặt toàn bộ cược ký gửi khóa lên một firmware, vốn dĩ là sự lười biếng về kiến trúc. Cái giá của tách rời là cải tạo giai đoạn đầu, cái giá của không tách rời là một buổi sáng nào đó phát hiện bản sao lưu ba năm đều vô hiệu.