Hatena
Những điều nhà phát triển ứng dụng web nên kiểm tra sau sự cố eMudhra
Bảo mậtLần đầu xuất hiện 83 điểm
Một nhà cung cấp chứng chỉ số của Ấn Độ tên là eMudhra đã dùng các khóa bí mật quá yếu. Người khác có thể tìm lại các khóa này từ dữ liệu công khai. Đây là vấn đề nghiêm trọng đối với sự tin cậy trên internet.
Chuyện gì đã xảy ra
Vào tháng 10 năm 2026, các nhà nghiên cứu báo cáo về lỗi này. eMudhra là một tổ chức cấp chứng chỉ số (CA). Tám khóa CA trung gian của công ty có thể bị người ngoài lấy được khóa bí mật một cách dễ dàng. Sáu khóa dùng cho TLS, là lớp mã hóa của HTTPS. Hai khóa dùng để ký mã phần mềm.
Những con số chính
- Các khóa dùng đường cong P-384, lẽ ra có khoảng 384 bit giá trị có thể.
- Số bí mật phía sau mỗi khóa luôn nhỏ hơn 256. Điều này chỉ tương đương khoảng 8 bit độ mạnh, nên khóa rất dễ đoán.
- Có 8 khóa CA trung gian bị ảnh hưởng: 6 khóa TLS và 2 khóa ký mã.
- Bản thân thuật toán mã hóa không bị phá vỡ. Lỗi nằm ở cách tạo khóa kém.
Vì sao chứng chỉ quan trọng
HTTPS không chỉ mã hóa dữ liệu. Nó còn giúp kiểm tra bạn đang nói chuyện với đúng máy chủ thật. Trình duyệt kiểm tra một chuỗi chứng chỉ: CA gốc mà hệ điều hành hoặc trình duyệt tin cậy, rồi đến CA trung gian, rồi đến chứng chỉ của máy chủ. Nếu chuỗi dẫn đến một gốc đáng tin, trình duyệt sẽ tin trang web đó.
Vì sao điều này quan trọng
Nếu kẻ xấu lấy được khóa TLS, chúng có thể tạo chứng chỉ giả cho tên miền của người khác. Các máy khách tin CA này và không kiểm tra thêm sẽ chấp nhận chứng chỉ giả. Rủi ro lớn hơn là kẻ xấu mạo danh một trang thật, chẳng hạn cổng công việc của công ty, mà không có cảnh báo. Tuy vậy, kẻ tấn công vẫn cần chuyển hướng lưu lượng của nạn nhân, ví dụ qua mạng Wi-Fi giả hoặc máy chủ DNS bị sửa đổi. Khóa ký mã có rủi ro khác: chữ ký giả có thể làm phần mềm độc hại trông như đáng tin.
Nhà phát triển nên kiểm tra gì
- Kiểm tra mọi máy chủ, container, hệ thống CI/CD, ứng dụng máy tính và môi trường phát triển cục bộ xem có dùng CA bị ảnh hưởng không.
- Gỡ bỏ tin cậy với các CA gốc bị ảnh hưởng khi cần. Lưu ý rằng Java, Python certifi và Node.js có kho chứng chỉ riêng.
- Kiểm tra các công cụ dòng lệnh như curl, Git và AWS CLI, rồi cập nhật chúng hoặc cài đặt bộ CA.
- Theo dõi danh sách chặn của trình duyệt và bản vá của nhà cung cấp. Việc gỡ gốc Sectigo có thể làm một số trang web dùng chứng chỉ Sectigo bị lỗi.
Chú giải
- eMudhra
- Công ty ở Ấn Độ cấp chứng chỉ số, dùng để xác nhận danh tính trên mạng.
- TLS
- Lớp mã hóa giúp dữ liệu truyền qua mạng an toàn. HTTPS dùng TLS.