Thông báo gần đây về việc Rustls có hiệu suất vượt trội hơn OpenSSL và BoringSSL đã làm dấy lên một cuộc tranh luận kỹ thuật thú vị trong cộng đồng lập trình viên, đặc biệt liên quan đến việc triển khai các nguyên tắc mã hóa và phương pháp kiểm thử.
So sánh hiệu năng của các triển khai TLS khác nhau, cho thấy sự tiến bộ vượt trội của Rustls so với OpenSSL và BoringSSL |
Tranh cãi về triển khai mã hóa
Trong khi Rustls được quảng bá như một giải pháp thay thế an toàn về bộ nhớ cho các triển khai TLS dựa trên C, các cuộc thảo luận trong cộng đồng đã chỉ ra một điểm đáng chú ý: các hoạt động mã hóa mặc định của Rustls thực chất được hỗ trợ bởi aws-lc-rs, vốn dựa trên mã C có nguồn gốc từ OpenSSL và BoringSSL. Điều này dẫn đến việc đặt câu hỏi về mức độ đóng góp của Rust trong việc cải thiện hiệu suất.
An ninh và Triển khai
Các chuyên gia bảo mật trong cộng đồng đã cung cấp những thông tin quý giá về lịch sử lỗ hổng của OpenSSL. Theo các cuộc thảo luận, hầu hết các vấn đề bảo mật trong OpenSSL xảy ra ở:
- Triển khai giao thức TLS
- Xử lý định dạng (X.509, PKCS)
- Các khu vực ngoài các nguyên tắc mã hóa cốt lõi
Điều này cho thấy việc triển khai an toàn về bộ nhớ của Rustls đối với các thành phần cấp cao hơn có thể mang lại lợi ích bảo mật đáng kể trong khi vẫn tận dụng được các nguyên tắc mã hóa đã được kiểm chứng.
Phương pháp kiểm thử bị xem xét kỹ lưỡng
Phương pháp kiểm thử hiệu suất đã thu hút sự chú ý đặc biệt từ cộng đồng. Các điểm thảo luận chính bao gồm:
- Các bài kiểm tra được thực hiện trên CPU Intel Xeon E-2386G
- Tối ưu hóa AVX-512 được thực hiện với sự giúp đỡ của Intel
- Kiểm tra được thực hiện với tính năng điều chỉnh tần số bị vô hiệu hóa
- Hyper-threading bị vô hiệu hóa
Một số lập trình viên cho rằng cấu hình kiểm tra có thể thiên vị cho các triển khai AVX-512, mặc dù đáng chú ý là theo nhóm Rustls, CPU kiểm tra không gặp phải các vấn đề giới hạn năng lượng như các bộ xử lý AVX-512 đời trước.
Hệ sinh thái rộng lớn hơn
Cuộc thảo luận cũng làm nổi bật tình trạng của mã hóa dựa trên Rust:
- RustCrypto tồn tại như một triển khai thuần Rust nhưng gặp thách thức về tài liệu
- Hầu hết các dự án mã hóa Rust lớn vẫn dựa vào các nguyên tắc cơ bản từ C
- AWS-LC, mặc dù được phân nhánh từ libcrypto, đã trải qua quá trình xác minh chính thức một phần
Hướng tới tương lai
Mặc dù những cải tiến về hiệu suất là đáng kể, cuộc thảo luận của cộng đồng cho thấy một bức tranh chi tiết hơn về sự chuyển đổi của hệ sinh thái mã hóa sang các triển khai an toàn về bộ nhớ. Sự thành công của Rustls chứng minh rằng việc kết hợp các triển khai giao thức an toàn về bộ nhớ với các nguyên tắc mã hóa được tối ưu hóa có thể mang lại cả lợi ích về bảo mật và hiệu suất.
Lưu ý: Các tuyên bố về hiệu suất và chi tiết triển khai được đề cập trong bài viết này dựa trên thông báo tháng 10 năm 2024 của Internet Security Research Group (ISRG).