6 điểm bởi GN⁺ 2024-06-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • Let's Encrypt từ lâu đã lo ngại rằng phần lớn hệ điều hành và hạ tầng mạng được viết bằng các ngôn ngữ không an toàn như C và C++
  • Phần mềm CA được viết bằng Golang an toàn bộ nhớ, nhưng phần OS/mạng lại thiếu an toàn bộ nhớ nên các lỗ hổng cần vá vẫn xuất hiện thường xuyên
  • Năm 2020, dự án Prossimo được khởi động với mục tiêu đưa an toàn bộ nhớ vào các hạ tầng phần mềm quan trọng

Những thành tựu chính của dự án Prossimo

  • Đã đầu tư vào nhiều thành phần phần mềm như thư viện TLS Rustls, Hickory DNS, proxy ngược River, sudo-rs, hỗ trợ Rust trong nhân Linux, ntpd-rs và hơn thế nữa
  • Gần đây đã triển khai ntpd-rs, phần mềm an toàn bộ nhớ đầu tiên của Prossimo, trong hạ tầng của Let's Encrypt

Tầm quan trọng của ntpd-rs

  • Hầu hết các hệ điều hành sử dụng Network Time Protocol (NTP) để xác định thời gian chính xác
  • Việc theo dõi thời gian là một tác vụ quan trọng của OS và có tương tác với Internet, vì vậy tính bảo mật của triển khai NTP là rất quan trọng
  • Tháng 4/2022, Prossimo bắt đầu phát triển ntpd-rs, một triển khai NTP an toàn bộ nhớ và an toàn hơn
  • Tháng 4/2024, ntpd-rs được triển khai trong môi trường staging của Let's Encrypt và hiện đang được sử dụng trong môi trường production

Kế hoạch sắp tới

  • Trong vài năm tới, Let's Encrypt có kế hoạch thay thế phần mềm C hoặc C++ trong hạ tầng của mình bằng các lựa chọn thay thế an toàn bộ nhớ
    • Thay OpenSSL và các dẫn xuất của nó bằng Rustls.
    • Thay phần mềm DNS bằng Hickory.
    • Thay Nginx bằng River.
    • Thay sudo bằng sudo-rs.

Ý kiến của GN⁺

  • Tầm quan trọng của an toàn bộ nhớ: Phần mềm được viết bằng ngôn ngữ an toàn bộ nhớ giúp giảm đáng kể các lỗ hổng bảo mật.
  • Ưu điểm của Rust: Rust đảm bảo an toàn bộ nhớ trong khi vẫn cung cấp hiệu năng cao, phù hợp với nhiều phần mềm nhạy cảm về bảo mật.
  • Vai trò của cộng đồng: Các dự án mã nguồn mở phụ thuộc lớn vào đóng góp của cộng đồng, và trường hợp của Let's Encrypt cũng không ngoại lệ.
  • Những điều cần cân nhắc khi áp dụng công nghệ: Khi đưa công nghệ mới vào, cần xem xét khả năng tương thích với hệ thống hiện có, đường cong học tập và các yếu tố liên quan.
  • Sự cần thiết của việc tăng cường bảo mật: Củng cố bảo mật cho hạ tầng Internet góp phần nâng cao độ an toàn của toàn bộ hệ sinh thái Internet.

1 bình luận

 
GN⁺ 2024-06-25
Ý kiến trên Hacker News
  • Ý tưởng triển khai NTPD bằng Rust: Quan tâm đến ý tưởng triển khai NTPD bằng Rust. Đang tìm tài liệu về hiệu năng, đặc biệt quan tâm đến hiệu năng đồng bộ thời gian trong các tình huống sự cố mạng. Cũng muốn xem so sánh với Chrony.
  • Độ phức tạp của vấn đề NTP: NTP vẫn chưa phải là một vấn đề đã được giải quyết hoàn toàn, và hiệu năng quan trọng hơn an toàn bộ nhớ. Đang dùng Chrony vì nó tốt hơn nhiều so với NTP mặc định của hệ thống.
  • Ý kiến của người yêu thích Rust: Với tư cách là một người yêu thích Rust, chỉ đáng cân nhắc ntpd-rs nếu nó có thể tiệm cận hiệu năng của Chrony.
  • Thảo luận về an toàn bộ nhớ: Việc nhấn mạnh an toàn bộ nhớ tạo cảm giác hơi kỳ lạ. NTPD có ít vector tấn công và đang hoạt động tốt mà không có vấn đề về bộ nhớ. Cần viết lại các thành phần quan trọng hơn bằng ngôn ngữ an toàn bộ nhớ.
  • Câu hỏi về phụ thuộc JSON: Thắc mắc vì sao NTPD lại có phụ thuộc vào JSON.
  • Đề xuất viết lại BGP: Bước tiếp theo nên là viết lại BGP bằng một ngôn ngữ an toàn bộ nhớ.
  • Việc sử dụng NTPsec: Thắc mắc liệu có ai thực sự đang dùng NTPsec hay không.
  • Vấn đề của máy chủ NTP: Vấn đề của NTP không nằm ở client mà ở các máy chủ phải xử lý các gói UDP giả mạo. Hoài nghi về khả năng NTPD sẽ trở thành chỉ dùng TCP. Đã ngừng vận hành máy chủ stratum 3 công cộng từ 10 năm trước.