1 điểm bởi GN⁺ 2024-08-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Nomad Network là công cụ nhắn tin mesh ngoài lưới nhằm tạo ra một nền tảng liên lạc riêng tư, có khả năng chống chịu, do người dùng trực tiếp sở hữu và kiểm soát, không cần đăng ký, điều khoản, gửi dữ liệu hay người phê duyệt quyền hạn
  • Nền tảng này dựa trên LXMFReticulum, cung cấp chức năng mạng mesh được mã hóa và định tuyến tin nhắn P2P, hoạt động trên nhiều phương tiện truyền thông khác nhau, từ packet radio đến cáp quang
  • Có thể sử dụng mà không cần Internet công cộng, IP hay Ethernet; vận hành được trên packet radio, LoRa, serial line, và nhờ Reticulum đã có trường hợp sử dụng được trên liên kết vô tuyến 300bps
  • Tính năng gồm nhắn tin mã hóa, liên lạc mesh không cần cấu hình, kho lưu trữ tin nhắn mã hóa phân tán cho người dùng ngoại tuyến, các node lưu trữ trang và tệp, trình duyệt dựa trên văn bản và bộ nhớ đệm trang
  • Hiện là phần mềm beta; tuy được xây dựng với các thực hành tốt nhất về mã hóa, nhưng chưa được kiểm toán bảo mật bên ngoài và có thể tồn tại lỗi làm phá vỡ quyền riêng tư

Mô hình liên lạc mà Nomad Network cung cấp

  • Nomad Network cho phép xây dựng một nền tảng liên lạc riêng tư, có khả năng chống chịu, hoàn toàn do người dùng kiểm soát và sở hữu
  • Không cần đăng ký, đồng ý điều khoản, gửi dữ liệu, hay người phê duyệt quyền hạn/gatekeeper
  • Kho lưu trữ này là mirror công khai; việc phát triển thực tế đang diễn ra ở nơi khác
  • Nếu muốn có client LXMF với giao diện người dùng đồ họa, có thể dùng Sideband cho Linux, Android và macOS

Công nghệ nền tảng và phương tiện mạng

  • Nomad Network được xây dựng trên LXMFReticulum
    • Hai dự án này cung cấp chức năng mạng mesh được mã hóađịnh tuyến tin nhắn P2P mà Nomad Network phụ thuộc vào
  • Nhờ nền tảng này, chương trình có thể dùng trên rất nhiều phương tiện truyền thông, từ packet radio đến cáp quang
  • Hoạt động ngay cả khi không có kết nối Internet công cộng; mạng IP hoặc Ethernet cũng không phải điều kiện bắt buộc
    • Có thể dùng chỉ với packet radio, LoRa, serial line
    • Khi cần, có thể bridge mạng tách biệt sang Internet hoặc Ethernet riêng
    • Cũng có thể tạo mạng hoạt động hoàn toàn trên Internet
  • Vì sử dụng Reticulum, nó hiệu quả ngay cả trên phương tiện có băng thông rất thấp và đã từng được dùng thành công trên liên kết vô tuyến 300bps

Tính năng chính

  • Cung cấp nhắn tin mã hóa trên packet radio, LoRa, WiFi, v.v. do Reticulum hỗ trợ
  • Hỗ trợ liên lạc mesh với không cấu hình và hạ tầng tối thiểu
  • kho lưu trữ tin nhắn mã hóa phân tán để giữ tin nhắn cho người dùng ngoại tuyến
  • Các node có thể kết nối có thể lưu trữ trang và tệp
  • Node có thể tạo trang bằng PHP, Python, bash, v.v.
  • Tích hợp trình duyệt dựa trên văn bản để tương tác với nội dung của node
  • Cung cấp ngôn ngữ đánh dấu dễ dùng, hiệu quả về băng thông để viết trang
  • Hỗ trợ lưu trang vào bộ nhớ đệm trong trình duyệt

Cài đặt và chạy

  • Cách cài đặt dễ nhất là dùng pip
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
  • Trên các hệ điều hành chặn cài đặt gói cho người dùng thông thường, có thể khôi phục hành vi của pip bằng cách thêm cấu hình sau vào phần [global] trong ~/.config/pip/pip.conf
[global]
break-system-packages = true
  • Nếu muốn cài trong môi trường cô lập, có thể dùng pipx
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
  • Nếu đây là lần đầu cài chương trình bằng pip trên hệ thống và lệnh chạy không được nhận diện, có thể cần khởi động lại hệ thống rồi thử lại
  • Khi chạy chương trình lần đầu, Guide section chứa thông tin cần thiết để bắt đầu sử dụng sẽ được hiển thị

Sử dụng packet radio, LoRa và testnet

  • Để dùng Nomad Network trên packet radio hoặc LoRa, bản cài đặt Reticulum phải được cấu hình để sử dụng TNC packet radio hoặc thiết bị LoRa tương ứng
  • Nếu muốn thử nghiệm mà không tự tạo mạng vật lý, có thể kết nối tới Unsigned.io RNS Testnet qua Internet
    • Testnet đã có một số hoạt động của Nomad Network và LXMF
    • Sau khi kết nối, hãy chạy nomadnet một thời gian để nhận announce từ các node khác đang lưu trữ trang hoặc dịch vụ
  • Các node testnet có thể thử kết nối trực tiếp:
    • abb3ebcd03cb2388a838e70c001291f9: Dublin Hub Testnet Node
    • ea6a715f814bdc37e56f80c34da6ad51: Frankfurt Hub Testnet Node
  • Để duyệt trang của một node chưa được biết đến, trong phần Network của chương trình, mở hộp thoại URL bằng Ctrl+U, nhập địa chỉ rồi chọn Go hoặc nhấn Enter
    • NomadNet sẽ cố gắng phát hiện và kết nối tới node được yêu cầu

Android và Docker

  • Trên Android, có thể cài Nomad Network bằng Termux, nhưng cần nhiều lệnh hơn so với cách cài một dòng thông thường
    • Quy trình được ghi trong Android Installation của Reticulum Manual
    • Sau khi cài Reticulum, có thể cài Nomad Network bằng pip
  • Nếu cần ứng dụng đồ họa Android native, có thể dùng Sideband
  • Nomad Network được tự động phát hành dưới dạng image Docker trên GitHub Packages
    • Tag image là master cho commit mới nhất hoặc dạng số phiên bản phát hành cụ thể
    • Ví dụ tag phiên bản là 0.2.0
docker pull ghcr.io/markqvist/nomadnet:master
docker run -it ghcr.io/markqvist/nomadnet:master --textui
docker run -i ghcr.io/markqvist/nomadnet:master --daemon --console

Công cụ, phần mở rộng và lộ trình

  • Nomad Network là một nền tảng linh hoạt, có thể mở rộng, có các công cụ do cộng đồng cung cấp và phần mở rộng phía node
  • Có thể yêu cầu hỗ trợ, thảo luận và chia sẻ ý tưởng tại Nomad Network discussions pages
  • Các tính năng lớn mới trong lộ trình phát triển gồm bulletin và discussion thread được lan truyền trên toàn mạng, bản đồ cộng tác và chia sẻ thông tin không gian địa lý
  • Các mục cải tiến/sửa lỗi gồm hiển thị trạng thái liên kết, phím tắt di chuyển menu, chia sẻ node, sửa lỗi trình soạn thảo nội bộ trên một số OS, cơ chế thử lại tin nhắn thất bại, v.v.

Trạng thái bảo mật và lưu ý

  • Nomad Network nên được xem là phần mềm beta
  • Dù được xây dựng với mức ưu tiên rất cao cho các thực hành tốt nhất về mã hóa, nó chưa được kiểm toán bảo mật bên ngoài
  • Có thể tồn tại lỗi làm phá vỡ quyền riêng tư
  • Có hướng dẫn liên hệ nếu muốn giúp kiểm toán hoặc tài trợ

1 bình luận

 
GN⁺ 2024-08-16
Ý kiến trên Hacker News
  • Có thể sẽ không như vậy nếu NextNav chiếm một phần lớn của băng tần ISM 900MHz: https://news.ycombinator.com/item?id=41226802
    https://en.wikipedia.org/wiki/ISM_radio_band
    Có thể gửi ý kiến tại đây: https://www.fcc.gov/ecfs/search/docket-detail/24-240

    • Không thấy ngay cách để để lại ý kiến đó. Nếu đến tôi còn không tìm ra thì người khác cũng có thể vậy, nên sẽ tốt nếu ai đó chỉ giúp phải vào đâu
    • Tôi không tìm thấy khu vực bình luận. Tôi lớn tuổi và mắt cũng kém rồi, nhưng thật sự không thấy; agent cũng không tìm được liên kết
    • LoRaWAN WiFi nằm trong băng tần 900MHz như một phần của WiFi 6 hay 7 gì đó, nên mong rằng ngay cả trong kịch bản tệ nhất nó cũng được coi là ngoại lệ
  • Có một luồng thảo luận liên quan đang diễn ra:
    Private, Secure and Uncensorable Messaging over a LoRa Mesh (2022) - https://news.ycombinator.com/item?id=41256623 - tháng 8/2024, 21 bình luận

  • Mạng Reticulum nền tảng mà cái này sử dụng khá thú vị, vì nó hỗ trợ nhiều phương tiện truyền tải như packet radio

    • Reticulum cực kỳ linh hoạt và cũng có một hệ sinh thái công cụ đang được phát triển. NomadNet chỉ là một trong các messenger; còn có Sideband, client ứng dụng di động (https://github.com/markqvist/Sideband), và Reticulum MeshChat, client dựa trên trình duyệt do Liam Cottle phát triển (https://github.com/liamcottle/reticulum-meshchat)
      Reticulum có thể hoạt động trên bất kỳ phương tiện nào miễn là có thông lượng từ 5 bit/giây trở lên và MDU 500 byte. Nó không chỉ chạy trên hàng trăm carrier như LoRa, BLE, packet radio, các mạng overlay như Tor hay I2P, mà các carrier này cũng có thể trở thành một phần của cùng một mạng
      Tôi đã làm một bản proof of concept nhanh chạy trên radio HF. Tôi cấu hình hai node cách nhau khoảng 144 km; cả hai đều dùng ICOM-7300 và Raspberry Pi 5 để chạy modem phần mềm nhận các gói Reticulum rồi gửi qua sóng vô tuyến: https://www.youtube.com/watch?v=blwNVumLujc
      Node 1 ở ngoài trời còn node 2 ở nhà. Trên node 2, tôi cấu hình một interface cho modem HF và một interface khác kết nối với TCP testnet, nên node 1 có thể truy cập mọi peer trên TCP testnet
      Cũng có một video giới thiệu ngắn giải thích các khái niệm cơ bản của Reticulum: https://www.youtube.com/watch?v=q8ltLt5SK6A
    • Buồn cười là nó có thật. Tôi cứ tưởng đó là trò đùa về mạng máy tính reticulum hư cấu trong tiểu thuyết Anathem của Neal Stephenson
    • Tôi đang xem phần khả năng chịu độ trễ của giao thức; nếu nó còn hỗ trợ cả sneakernet làm phương tiện truyền tải thì sẽ hoàn hảo
      Sửa: không phải vậy. Có vẻ nó được cấu hình ở cấp toàn cục chứ không phải theo từng liên kết
  • Ý tưởng thì thú vị, nhưng vấn đề là giao tiếp với những người dùng thiết bị iOS/iPadOS. Thông thường các hạn chế của hệ điều hành khiến không thể dùng các ứng dụng như thế này[1], và do hiệu ứng mạng, phần lớn mọi người sẽ rất khó sử dụng
    [1] https://forums.developer.apple.com/forums/thread/685525

  • Tôi không hiểu làm sao người ta có thể gõ bằng bàn phím cảm ứng trên thiết bị Android hay iOS mà vẫn cảm thấy quyền riêng tư được bảo đảm
    Nếu thật sự muốn riêng tư, cần dùng một bàn phím/terminal chạy mã bare-metal để thu và hiển thị văn bản, mã hóa, truyền các gói đã mã hóa, theo kiểu gửi các blob đã mã hóa qua client Reticulum
    Ví dụ có thể là serial có dây hoặc Bluetooth, và cũng có thể dùng một MCU riêng để xử lý mạng và giao thức. Điểm mấu chốt là chạy mã đã được kiểm chứng, không có blob nhị phân, trên bare-metal, và chỉ gửi payload đã mã hóa tới node mạng. Nếu có thể, giữa bộ điều khiển terminal và bộ điều khiển mạng thì liên kết serial TTL là tốt nhất

  • Tò mò không biết NomadNet/Reticulum so sánh với Yggdrasil, IPFS, Nostr, Scuttlebutt như thế nào

    • Khó mà so sánh những thứ khác nhau như vậy với nhau, nhưng tôi sẽ thử
      Scuttlebutt: Reticulum là một network stack định tuyến dữ liệu theo thời gian thực, chứ không phải mạng xã hội phi tập trung
      Nostr: giống Scuttlebutt
      IPFS: Reticulum không lưu trữ dữ liệu, mà truyền dữ liệu. Tuy nhiên, một số giao thức chạy trên Reticulum như LXMF có tùy chọn cung cấp chức năng lưu trữ tin nhắn tạm thời
      Yggdrasil là ví dụ tương tự gần với Reticulum nhất trong những thứ được nhắc tới, nhưng tìm sơ qua thì tôi không thấy thông tin chi tiết về cách nó hoạt động. Hiện có vẻ nó chỉ hoạt động trên IPv6, theo kiểu có dùng một phần đường hầm IPv4, còn Reticulum khác ở chỗ nó chạy được trên bất cứ thứ gì
      Nếu quan tâm, tôi khuyên ít nhất nên đọc http://reticulum.network/manual/understanding.html để xem Reticulum hoạt động ra sao
  • Ghi chú về tính khả dụng sau khi lướt nhanh, có thể là trong tình trạng chưa hiểu rõ
    Việc hiển thị con số dùng làm địa chỉ định danh ở phía trước theo cách người dùng có thể hiểu ý nghĩa là tốt hơn đa số. Cách xử lý định danh và độ tin cậy cùng nhau trong hộp thoại cũng có vẻ tương đối dễ hiểu. Có các phân loại ngoài tin cậy/không tin cậy (không rõ) là ý hay, nhưng không thể hiểu ngay lập tức. Người dùng cần được hướng dẫn rằng “trust” trong ngữ cảnh này chính xác có nghĩa là gì
    Người dùng không cần biết tới mức rằng hệ thống đang dùng Curve25519, chỉ cần biết rằng một dạng mã hóa nào đó đã được thiết lập
    Hiển thị số định danh bằng hệ thập lục phân là lựa chọn tệ nhất trong các hệ cơ số có thể dùng. Hệ thập phân quen thuộc hơn cho việc nhận dạng, hoặc base32 ngắn hơn, sẽ tốt hơn; số định danh nên được hiển thị nhất quán theo một cách nhóm có ích. Ví dụ như 4 nhóm, mỗi nhóm 5 chữ số

  • Đọc cái này làm tôi cực kỳ phấn khích. Việc xây dựng mạng mesh off-grid là tiền đề trung tâm trong tiểu thuyết SF 'Mesh' của tôi: https://inkican.com/mesh-middle-grade-scifi-thriller/

  • Làm tôi nhớ tới Meshtastic, nhưng có vẻ Nomad dành cho PC còn Meshtastic dành cho vi điều khiển
    https://meshtastic.org/

  • Tôi đã tìm nhưng không thấy. Cái này đã từng được audit chưa?

    • “Nomad Network là phần mềm beta và nên được xem như vậy. Nó được xây dựng với ưu tiên hàng đầu là các thực hành tốt nhất về mật mã học, nhưng chưa được kiểm toán bảo mật bên ngoài và hoàn toàn có thể tồn tại các lỗi làm phá vỡ quyền riêng tư. Nếu bạn muốn giúp đỡ hoặc muốn hỗ trợ tài trợ cho một cuộc audit, hãy liên hệ.”
    • Ở giai đoạn này, nếu không trả chi phí hoặc đứng ra dẫn dắt hoạt động gây quỹ, tôi cho rằng kỳ vọng một sản phẩm phi thương mại có audit chính thức là không hợp lý