i2pd - Ứng dụng khách I2P cho lớp mạng ẩn danh mã hóa đầu cuối
(github.com/PurpleI2P)- i2pd là bản triển khai C++ đầy đủ tính năng của ứng dụng khách I2P, là phần mềm dùng để tạo và sử dụng mạng I2P ẩn danh
- I2P là một lớp mạng ẩn danh đa dụng; mọi liên lạc trên I2P đều ẩn danh, được mã hóa đầu cuối và người tham gia không để lộ địa chỉ IP thực
- Mạng I2P ẩn danh thường được dùng cho các ứng dụng P2P ẩn danh như chia sẻ tệp và tiền mã hóa, cũng như các ứng dụng client-server ẩn danh như website, trình nhắn tin tức thời và máy chủ chat
- Các đặc điểm chính gồm framework mạng ẩn danh phân tán, giao tiếp mã hóa đầu cuối, dung lượng cài đặt nhỏ, phụ thuộc đơn giản, hiệu năng nhanh và bộ API dành cho nhà phát triển ứng dụng bảo mật
- Cách cài đặt dễ nhất là sử dụng các gói và tệp nhị phân đã biên dịch sẵn; phần lớn có thể tải từ trang release
- Cách build và chạy được cung cấp trong documentation; tệp cấu hình ví dụ là
contrib/i2pd.conf - Các hệ thống được hỗ trợ gồm GNU/Linux, CentOS, Fedora, Mageia, Alpine, ArchLinux, openSUSE, Gentoo, Windows, Mac OS, Docker image, Snap, FreeBSD, Android và iOS
- i2pd cho Android được cung cấp tại i2pd-android, bản Qt GUI tại i2pd-qt, và bản GUI cho macOS tại gui-i2pd
- Giấy phép là BSD 3-clause license trong tệp
LICENSEở thư mục gốc của dự án
1 bình luận
Ý kiến trên Hacker News
Tôi thực sự rất thích dự án I2P và cho rằng nó được thiết kế đúng đắn ở nhiều khía cạnh
Ví dụ, thay vì chỉ trông chờ vào thiện chí của các relay operator, việc mọi người tham gia mạng đều chuyển tiếp một phần lưu lượng nội bộ khiến một thực thể đơn lẻ khó kiểm soát đủ số hop để giải ẩn danh người dùng hơn nhiều
Đáng tiếc là ngoài torrent ra thì I2P dường như không đạt được nhiều traction, và có vẻ lép vế trước dự án Tor có nguồn lực tài chính dồi dào hơn
Đặc biệt là qBitTorrent 4.6 đã tích hợp hỗ trợ, nên hy vọng nó sẽ lan rộng. Việc chia sẻ tệp hiện nay đang trì trệ theo kiểu cái gì cũng cần VPN, nên cần có thứ gì đó khuấy động lại
Có lý do để Tor Project không làm như vậy: https://support.torproject.org/alternate-designs/
“Nhiều người dùng Tor không thể là relay tốt. Ví dụ, một số client Tor ở sau tường lửa hạn chế, dùng modem, hoặc ở trong môi trường không thể chuyển tiếp lưu lượng. Việc vẫn phục vụ những người dùng này là điều quan trọng để cung cấp tính ẩn danh hiệu quả cho tất cả mọi người. Có rất nhiều người dùng Tor chịu những ràng buộc như vậy, và cần bao gồm họ để tăng kích thước tập ẩn danh…”
“Ngoài ra, chúng ta cần hiểu rõ hơn rủi ro khi kẻ tấn công vừa gửi lưu lượng qua relay của tôi, vừa lúc tôi khởi tạo lưu lượng đã được ẩn danh. Ba bài nghiên cứu mô tả cách xác định relay trong một circuit bằng cách bơm lưu lượng qua các relay ứng viên và quan sát mức giảm lưu lượng khi circuit đang hoạt động. Các cuộc tấn công nghẽn mạng như vậy không quá đáng sợ trong bối cảnh Tor miễn là relay không bao giờ đồng thời là client…”
Nếu thuật toán mã hóa bị phá vỡ, có thể sẽ lộ ra việc người ta đã vô tình chuyển tiếp CSAM mà không hề hay biết. Dù không cố ý thì vẫn vậy. Mô hình của I2P chẳng phải cũng làm dấy lên cùng một mối lo sao?
Tôi nhớ trước đây torrent trên Tor thường bị nhìn bằng ánh mắt khó chịu vì làm bão hòa mạng. Nếu mục đích là tránh thông báo vi phạm bản quyền, thì đặc biệt về tốc độ, tôi không thấy lý do gì nó lại tốt hơn gần như bất kỳ VPN nào
99% người dùng Tor chỉ dùng Tor để duyệt Internet thông thường, nên tôi cho rằng không thực sự có một “cộng đồng Tor” đúng nghĩa
Liên kết này có vẻ là phiên bản C++ của I2P
Phiên bản Java “chính thức” gốc, phức tạp hơn và có nhiều tính năng tích hợp sẵn hơn, ở đây: https://geti2p.net
Dù sao thì hiện tại i2pd hoạt động rất tốt với IRC, mail, NNTP, Gopher, web và Telnet
Thật ra tôi thắc mắc tại sao một thứ gần với mức thấp như thế này lại không có triển khai bằng C
Tôi cho rằng trường hợp sử dụng thực tế nhất của I2P là tạo đường hầm SSH access tới một thiết bị khó lộ diện nằm sau NAT, khi bạn không thể hoặc không muốn dùng thứ như Tailscale
Hoặc có thể nghĩ tới một torrent box đang seed bộ sưu tập sách hoặc nhạc hiếm. Chi phí máy chủ có thể trả bằng tiền mã hóa, nhưng I2P cho phép truy cập và cấu hình máy chủ đó một cách riêng tư
Yggdrasil là một “greynet”. Nó được mã hóa đầu cuối, tự tổ chức bằng distributed hash table (DHT), nhưng không có onion/garlic routing. Dù vậy, nó vẫn có thể tương tác với cả Tor lẫn I2P, và một số node Yggdrasil là chỉ-I2P hoặc chỉ-Tor. Nó giống một cây thế giới vươn rễ (đường hầm) vào mọi cõi tồn tại, tức nhiều mạng khác nhau
Nó cấp cho người dùng địa chỉ IPv6. Địa chỉ này được tạo tự động từ chữ ký khóa công khai nên về cơ bản gần như không thể spoof, đồng thời mang lại xác thực tự động và mã hóa đầu cuối. Cảm giác như IPsec được triển khai toàn diện và hoàn toàn trong suốt
Nó cũng có stealth mode cho các chế độ kiểm duyệt, để router không tự quảng bá mà chỉ âm thầm chờ đợi
Bài liên quan:
Invisible Internet Project (I2P) - https://news.ycombinator.com/item?id=25734254 - tháng 1 năm 2021, 23 bình luận
Kovri – triển khai C++ an toàn, riêng tư và không thể truy vết cho mạng I2P - https://news.ycombinator.com/item?id=14963044 - tháng 8 năm 2017, 53 bình luận
I2P-Bote – plugin email cho mạng I2P sử dụng distributed hash table - https://news.ycombinator.com/item?id=14236331 - tháng 5 năm 2017, 20 bình luận
I2P: Invisible Internet Protocol - https://news.ycombinator.com/item?id=12022917 - tháng 7 năm 2016, 56 bình luận
Vài năm trước tôi đã thử dùng I2P để kiểm tra giới hạn về tính ẩn danh mà nó có thể cung cấp
Điều đáng tiếc là có vẻ như dự án không nhận được nhiều tài trợ. Theo tôi, nó vượt trội hơn Tor ở hầu như mọi mặt. Phần lý thuyết đã được xây dựng rất kỹ trước khi triển khai
Dù vậy, trải nghiệm người dùng của router thực sự rất tệ. Cần có các binary độc lập hoạt động hoàn hảo và nhanh trên mọi nền tảng, đồng thời cũng cần một GUI không đòi hỏi quá nhiều kiến thức kỹ thuật trước. Router hiện tại được viết bằng Java, và tôi từng hy vọng i2p-rust sẽ bắt kịp, nhưng nó trông gần như là một dự án chết dở
Thuyết phục mọi người thử một ngôn ngữ mới hào nhoáng thì dễ hơn nhiều
Tuy nhiên, vì mục đích đó, tôi cũng thấy Rust/Go đã phần nào rời khỏi tâm điểm chú ý. Nếu muốn theo hype thì có lẽ phải nhìn sang Zig hay Nim, hoặc thứ gì đó mà tôi còn chưa từng nghe tới
Tôi tò mò không biết việc tạo mạch mới trong I2P dễ đến mức nào
Tôi cũng muốn biết liệu API có hỗ trợ không, và mất bao lâu
Để nói rõ bối cảnh, tôi đang phát triển một hệ thống bỏ phiếu cần gửi các phiếu bầu được ký bằng bút danh qua một kênh ẩn danh. Ngoài ra, nếu hai bút danh dùng cùng một kênh ẩn danh thì tính ẩn danh sẽ suy yếu, nên điều đó tuyệt đối không được xảy ra
[1]: https://janiserdmanis.org/artefacts/EVOTEID-2023-poster.pdf
Tôi đang tự xây dựng một bộ sản phẩm internet phi tập trung, nên trước đây đã đào khá sâu vào lĩnh vực này
Tôi từng phỏng vấn Ian Clarke, người sáng lập Freenet: https://www.youtube.com/watch?v=JWrRqUkJpMQ
PerfectDark cũng rất thú vị
Tôi thích nhất là http://maidsafe.net/. Có vẻ sau 14 năm thì cuối cùng nó cũng sắp ra mắt. Nhân tiện, tôi không liên quan gì đến họ
Tôi thấy tiếc vì có vẻ người bảo trì i2p là zzz đã rời dự án sau khi vấp phải phản ứng tiêu cực liên quan đến chính trị
Điều đó khiến tôi nghĩ rằng chúng ta nên biết ơn công sức nặng nhọc mà các maintainer mã nguồn mở bỏ ra mà không được trả công
Rõ ràng đó là một sự rời đi rất đột ngột
I2P là một dự án tuyệt vời do những con người tuyệt vời vận hành
Nói ngắn gọn khi so với Tor, I2P mạnh trong hệ sinh thái nội bộ của I2P. Đáng tiếc là lần gần nhất tôi kiểm tra thì chỉ có vài exit node, và ở điểm đó Tor mạnh hơn
Tor Browser là ứng dụng sát thủ của Tor
I2P cũng cần một trình duyệt an toàn, đơn giản và khó bị fingerprinting, chỉ xử lý HTML cơ bản. Nếu không thì chẳng khác nào tự rước họa vào thân
Dùng trình duyệt thông thường là một điểm yếu lớn đối với tính ẩn danh của I2P. Tor Browser cố gắng làm cho mọi người dùng trên mạng Tor trông giống hệt nhau
Người dùng I2P chẳng phải cũng có thể chỉ cần dùng Tor Browser để nhận được cùng lợi ích là giảm khả năng bị fingerprinting trình duyệt sao?