Arti-дің бірінші тұрақты шығарылымы, Tor in Rust ресми іске асырылуы

Анонимді 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 Congestion Control) және DDoS шабуылдарынан қорғау сияқты пияз қызметтеріне және қатысты мүмкіндіктерге қолдау көрсетеді деп күтілуде. C клиентімен теңдікке қол жеткізу 2.0 тармағы үшін жоспарланған, ол сонымен қатар әртүрлі бағдарламалау тілдеріндегі кодта Arti пайдалану үшін байланыстыруды ұсынады.

Алдағы бірнеше жылда жұмыс реле мен каталог серверлерін іске қосу үшін қажетті функционалдылықты енгізуге бағытталған. Rust коды C нұсқасын толығымен алмастыра алатын деңгейге жеткенде, әзірлеушілер Arti-ге Tor бағдарламасының негізгі іске асырылу мәртебесін беруге және C іске асыруды қолдауды тоқтатуға ниетті. C нұсқасы біркелкі көшіруге мүмкіндік беру үшін біртіндеп жойылады.

Ақпарат көзі: opennet.ru

пікір қалдыру