1. BoringSSL là gì
BoringSSL là thư viện mật mã học mã nguồn mở của Google dựa trên OpenSSL, được thiết kế đặc biệt cho các dự án Chromium và Android. Các thành phần cốt lõi bao gồm:
- Triển khai Giao thức: TLS 1.2/1.3, DTLS 1.2
- Nguyên hàm Mật mã học: AES-GCM, ChaCha20-Poly1305, RSA-PSS, ECDSA
- Xác minh Chứng chỉ: Xác thực chuỗi X.509
- Vận chuyển An toàn: Lớp trừu tượng BIO
Không giống OpenSSL, BoringSSL:
- Loại bỏ hỗ trợ các thuật toán lỗi thời (SSLv3, RC4)
- Loại bỏ các yêu cầu xác thực FIPS 140-2
- Sử dụng liên kết tĩnh làm mặc định
- Thực hiện các chính sách chứng chỉ nghiêm ngặt
2. Kiến trúc BoringSSL so với OpenSSL
Tính năng | BoringSSL | OpenSSL |
---|---|---|
Cơ sở mã | ~240Kloc (đã đơn giản hóa) | ~500Kloc |
An toàn luồng | Các phép toán nguyên tử | Khóa toàn cục |
Bộ nhớ | Bộ cấp phát tùy chỉnh | malloc/free tiêu chuẩn |
API | Đặc trưng của Chromium | Mục đích chung |
Cập nhật | Triển khai hàng tuần | Phát hành hàng quý |
Khả năng tương thích | Cố ý phá vỡ ABI | Duy trì tính ổn định của ABI |
Những khác biệt kiến trúc chính:
- BoringSSL sử dụng mô-đun BoringCrypto FIPS
- Không hỗ trợ API ENGINE
- Đã loại bỏ 80% các tùy chọn cấu hình
- Hệ thống xử lý lỗi được đơn giản hóa
3. Các Mô-đun Cốt lõi của BoringSSL
Ngăn xếp TLS
- Tiếp tục phiên mà không cần trạng thái máy chủ
- Tối ưu hóa False Start
- Trình xuất tài liệu khóa
Mật mã học
- Các triển khai thời gian không đổi
- Tăng tốc phần cứng (AES-NI, PCLMULQDQ)
- Các thử nghiệm mật mã hậu lượng tử
X.509
- Minh bạch chứng chỉ
- OCSP stapling
- Ràng buộc tên
Quản lý Bộ nhớ
- Macro ScopedOPENSSL
- Không có malloc/free trong các đường dẫn quan trọng
- Đảm bảo zero hóa
Kiểm thử
- Độ bao phủ dòng 92%
- Fuzzing với libFuzzer
- CI đa nền tảng
4. BoringSSL trong các Ứng dụng Hiện đại
Các vai trò quan trọng trong ngăn xếp bảo mật:
Tích hợp Chromium
- Cung cấp sức mạnh cho QUIC và HTTP/3 trong Chrome
- Xác minh chứng chỉ cho hơn 1 tỷ thiết bị
- Triển khai WebRTC DTLS
Tối ưu hóa Hiệu suất
- Bắt tay TLS 1.3 nhanh hơn 2 lần so với OpenSSL
- Kích thước nhị phân nhỏ hơn 40%
- Các phần mở rộng mật mã ARMv8
Cải thiện Bảo mật
- Khớp tên chứng chỉ nghiêm ngặt
- Tự động lựa chọn đường cong EC
- Minh bạch chứng chỉ luôn bật
Trải nghiệm Nhà phát triển
- Các bề mặt API được đơn giản hóa
- Chính sách ngừng hỗ trợ rõ ràng
- Tài liệu cho từng hàm
Bạn Cũng Có Thể Thích