i2pd - ไคลเอนต์ I2P สำหรับเลเยอร์เครือข่ายนิรนามแบบเข้ารหัสจากต้นทางถึงปลายทาง
(github.com/PurpleI2P)- i2pd คืออิมพลีเมนเทชันภาษา C++ ที่มีฟังก์ชันครบถ้วนของไคลเอนต์ I2P และเป็นซอฟต์แวร์สำหรับสร้างและใช้งานเครือข่าย I2P แบบนิรนาม
- I2P เป็นเลเยอร์เครือข่ายนิรนามสำหรับใช้งานทั่วไป โดยการสื่อสารทั้งหมดบน I2P เป็นแบบนิรนามและเข้ารหัสจากต้นทางถึงปลายทาง และผู้เข้าร่วมจะไม่เปิดเผยที่อยู่ IP จริง
- เครือข่าย I2P แบบนิรนามมักใช้กับแอปพลิเคชัน P2P แบบนิรนาม เช่น การแชร์ไฟล์และคริปโทเคอร์เรนซี รวมถึงแอปพลิเคชันไคลเอนต์-เซิร์ฟเวอร์แบบนิรนาม เช่น เว็บไซต์ อินสแตนต์เมสเซนเจอร์ และเซิร์ฟเวอร์แชต
- จุดเด่นหลักคือเฟรมเวิร์กเครือข่ายนิรนามแบบกระจายศูนย์, การสื่อสารเข้ารหัสจากต้นทางถึงปลายทาง, ขนาดติดตั้งเล็ก, dependency ที่เรียบง่าย, ประสิทธิภาพรวดเร็ว และชุด API สำหรับนักพัฒนาแอปพลิเคชันด้านความปลอดภัย
- วิธีติดตั้งที่ง่ายที่สุดคือใช้แพ็กเกจและไบนารีที่คอมไพล์ไว้ล่วงหน้า โดยส่วนใหญ่ดาวน์โหลดได้จากหน้า release
- วิธีบิลด์และรันมีอยู่ใน documentation และไฟล์ตั้งค่าตัวอย่างคือ
contrib/i2pd.conf - ระบบที่รองรับ ได้แก่ GNU/Linux, CentOS, Fedora, Mageia, Alpine, ArchLinux, openSUSE, Gentoo, Windows, Mac OS, Docker image, Snap, FreeBSD, Android, iOS
- i2pd สำหรับ Android มีให้ที่ i2pd-android, เวอร์ชัน Qt GUI มีให้ที่ i2pd-qt, และเวอร์ชัน GUI สำหรับ macOS มีให้ที่ gui-i2pd
- ไลเซนส์คือ BSD 3-clause license ตามไฟล์
LICENSEในรูทของโปรเจกต์
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ชอบโปรเจกต์ I2P มากจริง ๆ และมองว่าออกแบบมาได้ถูกทางในหลายด้าน
ตัวอย่างเช่น แทนที่จะพึ่งพาแต่เจตนาดีของผู้ให้บริการ relay การให้ ผู้เข้าร่วมเครือข่ายทุกคนช่วย relay ทราฟฟิกภายในบางส่วน ทำให้เป็นเรื่องยากขึ้นมากที่ผู้เล่นรายเดียวจะยึดครอง hop ได้มากพอจนสามารถทำให้ผู้ใช้หมดสภาพนิรนามได้
น่าเสียดายที่นอกจากทอร์เรนต์แล้ว I2P ดูเหมือนจะยังไม่ได้รับ traction มากนัก และถูกโปรเจกต์ Tor ที่มีเงินทุนมากกว่ากลบไป
โดยเฉพาะ qBitTorrent 4.6 ที่รวมการรองรับไว้แล้ว หวังว่าจะกระจายตัวได้ดี ทุกวันนี้การแชร์ไฟล์ชะงักอยู่กับแนวทางที่เหมือนต้องใช้ VPN กับทุกอย่าง จึงควรมีอะไรมาเขย่าวงการบ้าง
Tor Project มีเหตุผลที่ไม่ทำแบบนั้น: https://support.torproject.org/alternate-designs/
“ผู้ใช้ Tor จำนวนมากไม่สามารถเป็น relay ที่ดีได้ ตัวอย่างเช่น ไคลเอนต์ Tor บางรายอยู่หลังไฟร์วอลล์ที่จำกัด ใช้งานผ่านโมเด็ม หรืออยู่ในสภาพแวดล้อมที่ไม่สามารถ relay ทราฟฟิกได้ การให้บริการผู้ใช้เหล่านี้ด้วยเป็นสิ่งสำคัญต่อการมอบความเป็นนิรนามที่มีประสิทธิภาพให้ทุกคน เพราะมีผู้ใช้ Tor จำนวนมากที่อยู่ภายใต้ข้อจำกัดเหล่านี้ และการรวมพวกเขาเข้ามาจะเพิ่มขนาดของกลุ่มนิรนาม…”
“นอกจากนี้ เรายังต้องเข้าใจความเสี่ยงให้ดีขึ้นในกรณีที่ผู้โจมตีส่งทราฟฟิกผ่าน relay ของฉัน พร้อมกับตอนที่ฉันเริ่มทราฟฟิกแบบนิรนาม งานวิจัยสามฉบับอธิบายวิธีระบุ relay ภายในวงจร โดยการปล่อยทราฟฟิกผ่าน relay ผู้สมัคร แล้วสังเกตการลดลงของทราฟฟิกระหว่างที่วงจรทำงานอยู่ การโจมตีด้วยความแออัด แบบนี้ไม่น่ากลัวนักในบริบทของ Tor ตราบใดที่ relay ไม่เคยเป็นไคลเอนต์…”
หาก อัลกอริทึมเข้ารหัสถูกเจาะได้ อาจเผยให้เห็นว่าผู้คนเคยส่งต่อ CSAM โดยไม่รู้ตัว แม้จะไม่ได้ตั้งใจก็ตาม โมเดลของ I2P ก็ทำให้เกิดความกังวลแบบเดียวกันไม่ใช่หรือ?
จำได้ว่าแต่ก่อนการใช้ทอร์เรนต์บน Tor มักถูกมองไม่ดี เพราะทำให้เครือข่ายอิ่มตัว ถ้าจุดประสงค์คือหลีกเลี่ยงการแจ้งเตือนละเมิดลิขสิทธิ์ โดยเฉพาะในแง่ความเร็ว ก็ไม่เห็นเหตุผลว่าทำไมมันจะดีกว่า VPN แทบทุกเจ้า
ผู้ใช้ Tor 99% แค่ใช้ Tor เพื่อท่องอินเทอร์เน็ตทั่วไปเท่านั้น ดังนั้นผมมองว่าไม่มี “ชุมชน Tor” จริง ๆ
ลิงก์นี้ดูเหมือนจะเป็น เวอร์ชัน C++ ของ I2P
ส่วนเวอร์ชัน Java “ทางการ” ดั้งเดิมที่ซับซ้อนกว่าและมีฟีเจอร์ในตัวมากกว่ามากอยู่ที่นี่: https://geti2p.net
อย่างไรก็ดี ตอนนี้ i2pd ทำงานกับ IRC, เมล, NNTP, Gopher, เว็บ และ Telnet ได้ดีมาก
จริง ๆ แล้วสงสัยว่าของที่ ค่อนข้างใกล้ระดับล่าง แบบนี้ทำไมถึงไม่มี implementation ภาษา C
ผมมองว่าการใช้งาน I2P ที่เป็นประโยชน์ที่สุดคือการ tunnel การเข้าถึง SSH ไปยังอุปกรณ์หลัง NAT ที่ไม่ค่อยเปิดเผยตัว เมื่อใช้ Tailscale อะไรทำนองนั้นไม่ได้หรือไม่อยากใช้
หรือจะนึกถึงกล่องทอร์เรนต์ที่ seed หนังสือหายากหรือคอลเลกชันเพลงก็ได้ ค่าเซิร์ฟเวอร์จ่ายด้วยคริปโตได้ แต่ I2P ทำให้เข้าถึงและตั้งค่าเซิร์ฟเวอร์นั้นแบบส่วนตัวได้
Yggdrasil เป็น “graynet” เข้ารหัสแบบ end-to-end และจัดระเบียบตัวเองด้วย distributed hash table (DHT) แต่ไม่มี onion/garlic routing ถึงอย่างนั้นก็ยังทำงานร่วมกับทั้ง Tor และ I2P ได้ และ node ของ Yggdrasil บางตัวเป็นแบบ I2P-only หรือ Tor-only โครงสร้างเหมือนต้นไม้โลกที่แผ่ราก (tunnel) ไปทุกห้วงแห่งการมีอยู่ หรือก็คือหลายเครือข่าย
มันแจกที่อยู่ IPv6 ให้ผู้ใช้ ที่อยู่นี้สร้างอัตโนมัติจากลายเซ็นกุญแจสาธารณะ จึงแทบ spoof ไม่ได้ และให้ทั้งการยืนยันตัวตนอัตโนมัติกับการเข้ารหัสแบบ end-to-end ให้ความรู้สึกเหมือนมี IPsec ปูอยู่ทุกที่แบบโปร่งใสโดยสมบูรณ์
ยังมี stealth mode สำหรับระบอบที่มีการเซ็นเซอร์ด้วย ทำให้ router ไม่โฆษณาตัวเองและรออย่างเงียบ ๆ ได้
บทความที่เกี่ยวข้อง:
Invisible Internet Project (I2P) - https://news.ycombinator.com/item?id=25734254 - มกราคม 2021, 23 ความคิดเห็น
Kovri – implementation ภาษา C++ ที่ปลอดภัย เป็นส่วนตัว และติดตามไม่ได้ของเครือข่าย I2P - https://news.ycombinator.com/item?id=14963044 - สิงหาคม 2017, 53 ความคิดเห็น
I2P-Bote – ปลั๊กอินอีเมลสำหรับเครือข่าย I2P ที่ใช้ distributed hash table - https://news.ycombinator.com/item?id=14236331 - พฤษภาคม 2017, 20 ความคิดเห็น
I2P: Invisible Internet Protocol - https://news.ycombinator.com/item?id=12022917 - กรกฎาคม 2016, 56 ความคิดเห็น
เมื่อหลายปีก่อนเคยลองใช้ I2P เพื่อทดสอบ ขีดจำกัดของความเป็นนิรนาม ที่มันสามารถให้ได้
น่าเสียดายที่ดูเหมือนจะไม่ได้รับเงินสนับสนุนมากนัก ผมมองว่ามันเหนือกว่า Tor มากในทุกด้าน ก่อนลงมือทำจริง เขาวางรากฐานทางทฤษฎีไว้อย่างหนักแน่นมาก
ถึงอย่างนั้น ประสบการณ์ผู้ใช้ของเราเตอร์ก็แย่มากจริง ๆ จำเป็นต้องมีไบนารีแบบสแตนด์อโลนที่ทำงานได้สมบูรณ์และรวดเร็วบนทุกแพลตฟอร์ม และต้องมี GUI ที่ไม่ต้องอาศัยความรู้ทางเทคนิคล่วงหน้ามากนักด้วย ตอนนี้เราเตอร์เขียนด้วย Java และเคยหวังว่า i2p-rust จะไล่ตามทัน แต่ดูเหมือนโปรเจกต์นั้นแทบจะกึ่งตายไปแล้ว
การโน้มน้าวให้คนลองใช้ภาษาใหม่ ๆ ที่ดูฉูดฉาดนั้นง่ายกว่ามาก
แต่สำหรับจุดประสงค์นั้น ผมว่า Rust/Go ก็เริ่มหลุดจากสปอตไลต์ไปบ้างแล้วเหมือนกัน ถ้าต้องการกระแส hype คงต้องดู Zig หรือ Nim หรืออะไรสักอย่างที่ผมยังไม่เคยได้ยิน
สงสัยว่าการสร้าง วงจรใหม่ ใน I2P ทำได้ง่ายแค่ไหน
อยากรู้ด้วยว่า API รองรับหรือไม่ และใช้เวลานานแค่ไหน
เพื่อให้บริบท ตอนนี้กำลังพัฒนาระบบลงคะแนนที่ต้องส่งคะแนนที่ลงนามด้วยนามแฝงผ่านช่องทางนิรนาม นอกจากนี้ หากนามแฝงสองตัวใช้ช่องทางนิรนามเดียวกัน ความเป็นนิรนามจะอ่อนลง ดังนั้นจึงสำคัญมากที่เรื่องนั้นจะต้องไม่เกิดขึ้นโดยเด็ดขาด
[1]: https://janiserdmanis.org/artefacts/EVOTEID-2023-poster.pdf
ผมกำลังสร้าง ชุดผลิตภัณฑ์อินเทอร์เน็ตแบบกระจายศูนย์ เองอยู่ เลยเคยลงลึกในสาขานี้พอสมควร
เคยสัมภาษณ์ Ian Clarke ผู้ก่อตั้ง Freenet: https://www.youtube.com/watch?v=JWrRqUkJpMQ
PerfectDark ก็น่าสนใจ
ที่ชอบที่สุดคือ http://maidsafe.net/ หลังผ่านไป 14 ปี ดูเหมือนในที่สุดก็ใกล้จะเปิดตัวแล้ว อนึ่ง ผมไม่ได้เกี่ยวข้องกับพวกเขา
รู้สึกเสียดายที่ดูเหมือนผู้ดูแล I2P ชื่อ zzz จะออกจากโปรเจกต์ไปหลังเจอแรงต้านทางการเมือง
ทำให้คิดว่าเราควรขอบคุณความทุ่มเทอันหนักหน่วงที่ผู้ดูแลโอเพนซอร์สลงแรงให้โดยไม่ได้รับค่าตอบแทน
แน่นอนว่าเป็นการจากไปที่กะทันหันมาก
I2P เป็นโปรเจกต์ที่ยอดเยี่ยม ดำเนินงานโดยคนที่ยอดเยี่ยม
ถ้าเทียบกับ Tor แบบสั้น ๆ I2P แข็งแกร่งใน ระบบนิเวศภายใน I2P แต่น่าเสียดาย ครั้งล่าสุดที่ตรวจดูมี exit node อยู่แค่ไม่กี่ตัว และตรงส่วนนั้น Tor แข็งแกร่งกว่า
Tor Browser คือ killer app ของ Tor
I2P ก็ต้องมีเบราว์เซอร์ที่ปลอดภัย เรียบง่าย และติดตามลายนิ้วมือได้ยาก ซึ่งรองรับเฉพาะ HTML พื้นฐาน ไม่อย่างนั้นก็เท่ากับหาเรื่องใส่ตัว
การใช้เบราว์เซอร์ทั่วไปเป็นจุดอ่อนใหญ่ต่อความเป็นนิรนามของ I2P Tor Browser พยายามทำให้ผู้ใช้ทุกคนบนเครือข่าย Tor ดูเหมือนกันหมด
ผู้ใช้ I2P ก็แค่ใช้ Tor Browser แล้วได้ประโยชน์แบบเดียวกันคือช่วยลดโอกาสถูกติดตามด้วย browser fingerprint ไม่ใช่หรือ?