Arti เวอร์ชันเสถียรรุ่นแรก ซึ่งเป็นการนำ Tor ไปใช้อย่างเป็นทางการใน Rust

นักพัฒนาเครือข่าย Tor ที่ไม่ระบุชื่อได้สร้างโครงการ Arti รุ่นเสถียรรุ่นแรก (1.0.0) ซึ่งพัฒนาไคลเอนต์ Tor ที่เขียนด้วยภาษา Rust รุ่น 1.0 มีป้ายกำกับว่าผู้ใช้ทั่วไปสามารถใช้งานได้ และให้ความเป็นส่วนตัว การใช้งาน และความเสถียรในระดับเดียวกับการใช้งาน C หลัก API ที่เสนอให้ใช้ฟังก์ชัน Arti ในแอปพลิเคชันอื่นๆ ก็ได้รับความเสถียรเช่นกัน รหัสนี้เผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 และ MIT

แตกต่างจากการใช้งาน C ซึ่งได้รับการออกแบบครั้งแรกเป็นพร็อกซี SOCKS จากนั้นปรับแต่งให้เหมาะกับความต้องการอื่นๆ Arti ได้รับการพัฒนาในช่วงแรกในรูปแบบของไลบรารีแบบฝังตัวแบบโมดูลาร์ที่สามารถใช้งานได้โดยแอปพลิเคชันต่างๆ นอกจากนี้ เมื่อพัฒนาโปรเจ็กต์ใหม่ ประสบการณ์การพัฒนา Tor ที่ผ่านมาทั้งหมดจะถูกนำมาพิจารณาด้วย ซึ่งจะช่วยหลีกเลี่ยงปัญหาทางสถาปัตยกรรมที่ทราบ และทำให้โปรเจ็กต์เป็นแบบโมดูลาร์และมีประสิทธิภาพมากขึ้น

เหตุผลในการเขียน Tor ใหม่ใน Rust คือความปรารถนาที่จะบรรลุระดับความปลอดภัยของโค้ดที่สูงขึ้นโดยใช้ภาษาที่ปลอดภัยต่อหน่วยความจำ ตามที่นักพัฒนาของ Tor กล่าวไว้ อย่างน้อยครึ่งหนึ่งของช่องโหว่ทั้งหมดที่โปรเจ็กต์ตรวจสอบจะถูกกำจัดในการใช้งานแบบ Rust หากโค้ดไม่ได้ใช้บล็อกที่ "ไม่ปลอดภัย" นอกจากนี้ Rust ยังช่วยให้พัฒนาได้เร็วกว่าการใช้ C เนื่องจากภาษามีความชัดเจนและการรับประกันที่เข้มงวดซึ่งช่วยให้คุณหลีกเลี่ยงการเสียเวลาในการตรวจสอบซ้ำและเขียนโค้ดที่ไม่จำเป็น

จากผลการพัฒนาเวอร์ชันแรกการใช้ภาษา Rust ก็พิสูจน์ตัวเองได้ ตัวอย่างเช่น สังเกตว่าในแต่ละขั้นตอน มีข้อผิดพลาดเกิดขึ้นในโค้ด Rust น้อยกว่าการพัฒนาที่เทียบเคียงได้ใน C - ข้อผิดพลาดที่เกิดขึ้นในระหว่างกระบวนการพัฒนาส่วนใหญ่เกี่ยวข้องกับตรรกะและความหมาย คอมไพเลอร์สนิมที่มีความต้องการมากเกินไปซึ่งบางคนมองว่าเป็นข้อเสียนั้นจริง ๆ แล้วกลายเป็นพรเพราะหากโค้ดคอมไพล์และผ่านการทดสอบความน่าจะเป็นของความถูกต้องจะเพิ่มขึ้นอย่างมาก

การทำงานกับตัวแปรใหม่ยังยืนยันถึงการเพิ่มขึ้นของความเร็วในการพัฒนา ซึ่งไม่เพียงแต่เนื่องมาจากความจริงที่ว่าฟังก์ชันการทำงานถูกสร้างขึ้นใหม่ตามเทมเพลตที่มีอยู่ แต่ยังรวมถึงความหมายที่แสดงออกมากขึ้นของ Rust ไลบรารีฟังก์ชันที่สะดวกสบาย และการใช้ความปลอดภัยของโค้ดของ Rust ความสามารถ ข้อเสียประการหนึ่งคือแอสเซมบลีผลลัพธ์ที่มีขนาดใหญ่ - เนื่องจากไลบรารี Rust มาตรฐานไม่ได้รวมอยู่ในระบบตามค่าเริ่มต้นจึงต้องรวมอยู่ในแพ็คเกจที่เสนอให้ดาวน์โหลด

รุ่น 1.0 มุ่งเน้นไปที่งานพื้นฐานในบทบาทลูกค้าเป็นหลัก ในเวอร์ชัน 1.1 มีการวางแผนที่จะใช้การสนับสนุนสำหรับการขนส่งแบบปลั๊กอินและบริดจ์เพื่อหลีกเลี่ยงการบล็อก เวอร์ชัน 1.2 คาดว่าจะรองรับบริการ Onion และฟีเจอร์ที่เกี่ยวข้อง เช่น โปรโตคอลควบคุมความแออัด (RTT Congestion Control) และการป้องกันการโจมตี DDoS การบรรลุความเท่าเทียมกันกับไคลเอนต์ C นั้นได้รับการวางแผนสำหรับสาขา 2.0 ซึ่งจะเสนอการเชื่อมโยงสำหรับการใช้ Arti ในโค้ดในภาษาการเขียนโปรแกรมต่างๆ

ในอีกไม่กี่ปีข้างหน้า งานจะมุ่งเน้นไปที่การใช้ฟังก์ชันการทำงานที่จำเป็นในการรันรีเลย์และเซิร์ฟเวอร์ไดเร็กทอรี เมื่อโค้ด Rust ถึงระดับที่สามารถแทนที่เวอร์ชัน C ได้อย่างสมบูรณ์ นักพัฒนาตั้งใจที่จะให้สถานะการใช้งานหลักของ Tor แก่ Arti และหยุดการบำรุงรักษาการใช้งาน C เวอร์ชัน C จะค่อยๆ หมดไปเพื่อให้การย้ายข้อมูลราบรื่น

ที่มา: opennet.ru

เพิ่มความคิดเห็น