Bản phát hành ổn định đầu tiên của Arti, bản triển khai chính thức của Tor trong Rust

Các nhà phát triển mạng Tor ẩn danh đã tạo ra bản phát hành ổn định đầu tiên (1.0.0) của dự án Arti, dự án phát triển ứng dụng khách Tor được viết bằng Rust. Bản phát hành 1.0 được đánh dấu là phù hợp để người dùng phổ thông sử dụng và cung cấp cùng mức độ riêng tư, khả năng sử dụng và độ ổn định như bản triển khai C chính. API được cung cấp để sử dụng chức năng Arti trong các ứng dụng khác cũng đã được ổn định. Mã được phân phối theo giấy phép Apache 2.0 và MIT.

Không giống như triển khai C, ban đầu được thiết kế dưới dạng proxy SOCKS và sau đó được điều chỉnh cho phù hợp với các nhu cầu khác, Arti ban đầu được phát triển dưới dạng thư viện có thể nhúng mô-đun có thể được sử dụng bởi nhiều ứng dụng khác nhau. Ngoài ra, khi phát triển một dự án mới, tất cả kinh nghiệm phát triển Tor trước đây đều được tính đến, điều này tránh được các vấn đề kiến ​​trúc đã biết và làm cho dự án trở nên mô đun và hiệu quả hơn.

Lý do viết lại Tor trong Rust là mong muốn đạt được mức độ bảo mật mã cao hơn bằng cách sử dụng ngôn ngữ an toàn cho bộ nhớ. Theo các nhà phát triển Tor, ít nhất một nửa số lỗ hổng được dự án giám sát sẽ bị loại bỏ trong quá trình triển khai Rust nếu mã không sử dụng các khối “không an toàn”. Rust cũng sẽ giúp bạn có thể đạt được tốc độ phát triển nhanh hơn so với sử dụng C, do tính biểu cảm của ngôn ngữ và các đảm bảo nghiêm ngặt cho phép bạn tránh lãng phí thời gian vào việc kiểm tra kỹ và viết mã không cần thiết.

Dựa trên kết quả phát triển của phiên bản đầu tiên, việc sử dụng ngôn ngữ Rust là hợp lý. Ví dụ, người ta nhận thấy rằng ở mỗi giai đoạn, mã Rust xảy ra ít lỗi hơn so với quá trình phát triển tương đương trong C - các lỗi xuất hiện trong quá trình phát triển chủ yếu liên quan đến logic và ngữ nghĩa. Trình biên dịch Rustc đòi hỏi quá cao, được một số người coi là bất lợi, thực sự lại là một điều may mắn, vì nếu mã biên dịch và vượt qua các bài kiểm tra, khả năng đúng của nó sẽ tăng lên đáng kể.

Làm việc trên biến thể mới cũng xác nhận tốc độ phát triển tăng lên, điều này không chỉ do chức năng được tạo lại dựa trên mẫu hiện có mà còn do ngữ nghĩa biểu cảm hơn của Rust, thư viện chức năng tiện lợi và việc sử dụng bảo mật mã của Rust. khả năng. Một trong những nhược điểm là kích thước lớn của các tập hợp kết quả - vì thư viện Rust tiêu chuẩn không được cung cấp trên các hệ thống theo mặc định nên nó phải được bao gồm trong các gói được cung cấp để tải xuống.

Bản phát hành 1.0 chủ yếu tập trung vào công việc cơ bản trong vai trò khách hàng. Trong phiên bản 1.1, nó được lên kế hoạch triển khai hỗ trợ vận chuyển plug-in và các cầu nối để vượt qua việc chặn. Phiên bản 1.2 dự kiến ​​sẽ hỗ trợ các dịch vụ củ hành và các tính năng liên quan, chẳng hạn như giao thức kiểm soát tắc nghẽn (Kiểm soát tắc nghẽn RTT) và bảo vệ chống lại các cuộc tấn công DDoS. Việc đạt được sự ngang bằng với máy khách C được lên kế hoạch cho nhánh 2.0, nhánh này cũng sẽ cung cấp các ràng buộc để sử dụng Arti trong mã bằng nhiều ngôn ngữ lập trình khác nhau.

Trong vài năm tới, công việc sẽ tập trung vào việc triển khai chức năng cần thiết để chạy các máy chủ chuyển tiếp và thư mục. Khi mã Rust đạt đến mức có thể thay thế hoàn toàn phiên bản C, các nhà phát triển dự định sẽ cấp cho Arti trạng thái triển khai Tor chính và ngừng duy trì triển khai C. Phiên bản C sẽ được loại bỏ dần dần để cho phép di chuyển suôn sẻ.

Nguồn: opennet.ru

Thêm một lời nhận xét