ADR 0005Chấp nhận
ADR 0005. DB lỗ hổng có chữ ký Ed25519, cùng định dạng cho cloud và Dedicated
- Trạng thái: Chấp nhận (2026-10-02, sau khi chủ dự án trả lời Q23). Sửa đổi khi chấp nhận: khóa riêng tạm là tệp ngoại tuyến (
0600, ngoài repo) thay cho KMS, mã ký qua giao diệnSignerđể chuyển sang KMS sau. Bản P1 phát hành dạng thư mục (latest.jsonký,<version>/manifest.jsonký,secdb.pb.zst,NOTICE), góitar.zstđể cho P10. Điểm 5 mới có phần chặn khi số bản ghi một nguồn giảm quá 5%; giữ chờ duyệt theo số finding bị đóng là việc P3 (Q28) - Bằng chứng:
internal/secdb(ký, xác minh trước khi nạp, chống quay lui, số bản ghi phải khớp manifest đã ký), kiểm thử khóa lạ, chữ ký sai, quay lui; bản DB đầy đủ 2026-10-02: 13,6 MB nén, 290 MB giải nén, dựng 58 s với RSS 0,75 GB, secmatch nạp 4 s với RSS 0,3 GB - Ngày: 2026-10-02
Bối cảnh
DB lỗ hổng quyết định khách hàng thấy gì. Bị đầu độc (CDN, pipeline, nguồn upstream) thì giấu lỗ hổng thật hoặc gây báo động giả. Gói Dedicated chạy on-prem, có thể không có Internet. Access Hub đã dùng Ed25519 cho DeploymentLicense kiểm tra offline (nhánh feat/biz-0), Access Hub Agent dự kiến dùng Ed25519 cho manifest cập nhật.
Quyết định
secdb-build(hạ tầng của nền tảng) dựng góisecdb-v1-<version>.tar.zstkèmmanifest.json(phiên bản tăng đơn điệu, băm từng tệp, nguồn và thời điểm tải, hạn) vàmanifest.sig(Ed25519 tách rời).- Khóa riêng nằm trong KMS hoặc HSM, riêng biệt với khóa ký gói, khóa cập nhật Agent, khóa
DeploymentLicense. Secmatch nhúng nhiều khóa công khai để xoay (key_id). - Secmatch chỉ nạp gói có chữ ký hợp lệ, băm khớp, phiên bản lớn hơn bản đang dùng; hạ phiên bản chỉ khi người vận hành bật cờ cục bộ. Lỗi thì giữ bản cũ.
- Cùng một gói và cùng quy trình xác minh cho cloud, Dedicated có Internet (kéo qua HTTPS, chỉ đi ra) và Dedicated không Internet (nhập tay).
- Bản DB làm thay đổi bất thường (ví dụ đóng hơn 1.000 finding toàn nền tảng vì dữ liệu distro đổi) bị giữ chờ người duyệt trước khi phát hành (Q28).
Hệ quả
- Lộ CDN không đủ để đầu độc DB; lộ pipeline vẫn bị chặn bởi cổng duyệt thay đổi hàng loạt và kiểm tra dựng lại độc lập.
- Dedicated không Internet có cùng mức tin cậy với cloud, chỉ khác độ tươi.
- Cần quy trình xoay khóa và diễn tập (P10).
Phương án đã cân nhắc
| Phương án | Lý do không chọn |
|---|---|
| Chỉ dựa vào TLS của CDN | Không bảo vệ khi kho đối tượng hoặc CDN bị chiếm, không dùng được cho nhập tay |
| GPG | Dùng được, nhưng Ed25519 tách rời đơn giản hơn, thống nhất với DeploymentLicense và cập nhật Agent |
| Mỗi secmatch tự tải nguồn upstream | Khách hàng Dedicated cần Internet tới hàng chục nguồn, không kiểm soát được chất lượng, lộ API key NVD |