Ensimmäinen vakaa julkaisu Artista, Torin virallisesta toteutuksesta Rustissa

Anonyymin Tor-verkon kehittäjät ovat luoneet ensimmäisen vakaan julkaisun (1.0.0) Arti-projektista, joka kehittää Rust-kielellä kirjoitettua Tor-asiakasta. 1.0-versio on merkitty yleisten käyttäjien käytettäväksi ja tarjoavan saman tason yksityisyyttä, käytettävyyttä ja vakautta kuin pääasiallinen C-toteutus. Myös muissa sovelluksissa Arti-toiminnallisuuden käyttöön tarjottu API on vakiintunut. Koodia jaetaan Apache 2.0- ja MIT-lisenssien alla.

Toisin kuin C-toteutus, joka suunniteltiin ensin SOCKS-välityspalvelimeksi ja räätälöitiin sitten muihin tarpeisiin, Arti on alun perin kehitetty modulaarisena sulautettavana kirjastona, jota voidaan käyttää useissa sovelluksissa. Lisäksi uutta projektia kehitettäessä otetaan huomioon kaikki aiempi Tor-kehityskokemus, mikä välttää tunnetut arkkitehtoniset ongelmat ja tekee projektista modulaarisemman ja tehokkaamman.

Syynä Torin uudelleenkirjoittamiseen Rustissa oli halu saavuttaa korkeampi koodin suojaustaso käyttämällä muistiturvallista kieltä. Tor-kehittäjien mukaan vähintään puolet projektin valvomista haavoittuvuuksista poistetaan Rust-toteutuksessa, jos koodi ei käytä "vaarallisia" lohkoja. Ruoste mahdollistaa myös nopeampien kehitysnopeuksien saavuttamisen kuin käyttämällä C:tä kielen ilmaisukyvyn ja tiukkojen takuiden ansiosta, joiden avulla voit välttää ajanhukkaa kaksinkertaiseen tarkistamiseen ja tarpeettoman koodin kirjoittamiseen.

Ensimmäisen version kehitystulosten perusteella Rust-kielen käyttö oikeutti itsensä. Esimerkiksi Rust-koodissa havaittiin joka vaiheessa vähemmän virheitä kuin vastaavassa C:n kehityksessä - kehitysprosessin aikana esiin tulleet virheet liittyivät pääasiassa logiikkaan ja semantiikkaan. Liian vaativa rustc-kääntäjä, jonka jotkut totesivat haittana, osoittautui itse asiassa siunaukseksi, koska jos koodi kääntää ja läpäisee testit, sen oikeellisuuden todennäköisyys kasvaa merkittävästi.

Uuden muunnelman parissa työskentely vahvisti myös kehitysnopeuden lisääntymisen, mikä ei johdu pelkästään siitä, että toiminnallisuus luotiin uudelleen olemassa olevan mallin pohjalta, vaan myös Rustin ilmaisuvoimaisemmasta semantiikasta, kätevistä funktiokirjastoista ja Rustin koodisuojauksen käytöstä. kykyjä. Yksi haitoista on tuloksena olevien kokoonpanojen suuri koko - koska tavallista Rust-kirjastoa ei toimiteta oletusarvoisesti järjestelmissä, se on sisällytettävä ladattavissa oleviin pakkauksiin.

1.0-julkaisu keskittyy pääasiassa perustyöhön asiakasroolissa. Versiossa 1.1 on tarkoitus ottaa käyttöön tuki plug-in-kuljetukselle ja silloille eston ohittamiseksi. Version 1.2 odotetaan tukevan onion-palveluita ja niihin liittyviä ominaisuuksia, kuten ruuhkanhallintaprotokollaa (RTT Congestion Control) ja suojaa DDoS-hyökkäyksiä vastaan. Pariteetin saavuttamista C-asiakkaan kanssa suunnitellaan 2.0-haaralle, joka tarjoaa myös sidoksia Artin käyttöön koodissa eri ohjelmointikielillä.

Lähivuosina työ keskittyy välitys- ja hakemistopalvelimien suorittamiseen tarvittavien toimintojen toteuttamiseen. Kun Rust-koodi saavuttaa tason, joka voi korvata C-version kokonaan, kehittäjät aikovat antaa Artille Torin päätoteutuksen tilan ja lopettaa C-toteutuksen ylläpitämisen. C-versio poistetaan käytöstä asteittain sujuvan siirtymisen mahdollistamiseksi.

Lähde: opennet.ru

Lisää kommentti