Tor in Rust-ийн албан ёсны хэрэгжилт болох Arti-ийн анхны тогтвортой хувилбар

Нэргүй Tor сүлжээний хөгжүүлэгчид Rust хэл дээр бичигдсэн Tor клиентийг хөгжүүлдэг Arti төслийн анхны тогтвортой хувилбарыг (1.0.0) бүтээжээ. 1.0 хувилбар нь энгийн хэрэглэгчдэд хэрэглэхэд тохиромжтой гэж тэмдэглэгдсэн бөгөөд үндсэн C хэрэгжилттэй ижил түвшний нууцлал, ашиглах боломжтой, тогтвортой байдлыг хангадаг. Arti функцийг бусад програмуудад ашиглахад санал болгож буй API нь тогтворжсон. Кодыг Apache 2.0 болон MIT лицензийн дагуу түгээдэг.

Эхлээд SOCKS прокси хэлбэрээр бүтээгдсэн, дараа нь бусад хэрэгцээнд тохируулсан C хэрэгжилтээс ялгаатай нь Arti нь эхлээд янз бүрийн програмуудад ашиглагдах модульчлагдсан суулгагдсан номын сан хэлбэрээр бүтээгдсэн. Нэмж дурдахад шинэ төсөл боловсруулахдаа Tor хөгжүүлэлтийн өмнөх бүх туршлагыг харгалзан үздэг бөгөөд энэ нь мэдэгдэж буй архитектурын асуудлаас зайлсхийж, төслийг илүү модульчлагдсан, үр дүнтэй болгодог.

Tor-ийг Rust-д дахин бичих болсон шалтгаан нь санах ойд аюулгүй хэлийг ашиглан кодын аюулгүй байдлын өндөр түвшинд хүрэх хүсэл байв. Tor хөгжүүлэгчдийн үзэж байгаагаар, код нь "аюултай" блокуудыг ашиглаагүй тохиолдолд төслийн хяналтанд байгаа бүх эмзэг байдлын дор хаяж тал хувь нь Rust хэрэгжүүлэлтээр арилах болно. Rust нь хэлний илэрхийлэл, давхар шалгах, шаардлагагүй код бичихэд цаг үрэхээс зайлсхийх боломжийг олгодог хатуу баталгааны ачаар C хэлийг ашиглахаас илүү хурдан хөгжлийн хурдад хүрэх боломжийг олгоно.

Эхний хувилбарыг боловсруулах үр дүнд үндэслэн Rust хэлийг ашиглах нь өөрийгөө зөвтгөв. Жишээлбэл, үе шат бүрт Rust код дээр C-тэй харьцуулж болохуйц хөгжүүлэлтээс бага алдаа гарсан нь анзаарагдсан - хөгжүүлэлтийн явцад гарсан алдаанууд нь голчлон логик, семантиктай холбоотой байв. Хэт их эрэлт хэрэгцээтэй rustc хөрвүүлэгч нь зарим хүмүүсийн сул тал гэж тэмдэглэсэн нь үнэндээ адислал болж хувирсан, учир нь кодыг эмхэтгэж, туршилтыг давах юм бол түүний зөв байх магадлал эрс нэмэгддэг.

Шинэ хувилбар дээр ажиллах нь хөгжүүлэлтийн хурд нэмэгдэж байгааг нотолсон бөгөөд энэ нь одоо байгаа загвар дээр тулгуурлан функцийг дахин бүтээснээс гадна Rust-ийн илүү илэрхийлэлтэй семантик, тохиромжтой функцын сангууд, Rust-ийн кодын аюулгүй байдлыг ашигласантай холбоотой юм. чадварууд. Сул талуудын нэг нь үүссэн угсралтын хэмжээ нь том хэмжээтэй байдаг - стандарт Rust номын сан нь систем дээр анхдагчаар хангагддаггүй тул татаж авахаар санал болгож буй багцад заавал оруулах ёстой.

1.0 хувилбар нь үйлчлүүлэгчийн үндсэн ажилд голчлон анхаардаг. 1.1 хувилбарт бөглөрөлтийг тойрч гарах гүүр болон залгах тээвэрт дэмжлэг үзүүлэхээр төлөвлөж байна. Хувилбар 1.2 нь сонгины үйлчилгээ болон түгжрэлийг хянах протокол (RTT түгжрэлийн хяналт) болон DDoS халдлагаас хамгаалах зэрэг холбогдох функцуудыг дэмжих төлөвтэй байна. 2.0 салбар нь C клиенттэй ижил түвшинд хүрэхээр төлөвлөж байгаа бөгөөд энэ нь мөн Arti-г янз бүрийн програмчлалын хэл дээр кодоор ашиглах боломжийг санал болгоно.

Дараагийн хэдэн жилийн хугацаанд реле болон лавлах серверүүдийг ажиллуулахад шаардлагатай функцуудыг хэрэгжүүлэхэд чиглэнэ. Rust код нь C хувилбарыг бүрэн орлож чадах түвшинд хүрэхэд хөгжүүлэгчид Arti-д Tor-ийн үндсэн хэрэгжилтийн статусыг өгч, C хэрэгжилтийг хадгалахаа зогсоохыг зорьж байна. Шилжилтийг жигд явуулахын тулд C хувилбарыг аажмаар хасна.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх