2 điểm bởi GN⁺ 2025-05-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Mycoria là một mạng overlay bảo mật mở nhằm kết nối mọi bên tham gia một cách bình đẳng, hướng tới tính mở và tinh thần phiêu lưu của Internet thời kỳ đầu
  • Việc tham gia không có thủ tục quan liêu; mọi kết nối đều mặc định dựa trên xác thựcmã hóa
  • Có thể kết nối qua Internet hoặc mở rộng thành mạng mesh riêng, nhằm hạ thấp rào cản tham gia mạng
  • Thiết kế tập trung vào cấu trúc nhỏ gọn và đơn giản, khả năng tương thích với hạ tầng hiện có như DNS, cùng bảo mật và quyền riêng tư mặc định
  • Cung cấp mã hóa đầu cuối tự động, định tuyến có khả năng mở rộng, dashboard, phân giải DNS .myco, khám phá dịch vụ; một số tính năng về quyền riêng tư và tự động tối ưu hóa vẫn ở trạng thái WIP

Cách kết nối mà Mycoria hướng tới

  • Mycoria là một mạng overlay bảo mật mở kết nối tất cả bên tham gia
  • Đi theo tinh thần tò mò và phiêu lưu của Internet thời kỳ đầu, đặt tự do kết nối làm giá trị cốt lõi
  • Các nguyên tắc cốt lõi như sau
    • Everyone is equal: Ai cũng có thể kết nối dễ dàng
    • Everyone is welcome: Là mạng mở có thể tham gia mà không cần thủ tục quan liêu
    • No spooking: Mọi kết nối đều được xác thực
    • No surveillance: Mọi kết nối đều được mã hóa và bao gồm Private Addresses
    • No barriers: Có thể kết nối qua Internet hoặc mở rộng Mycoria bằng mesh riêng

Mục tiêu thiết kế và các tính năng hiện tại

  • Mục tiêu là giữ cấu trúc nhỏ gọn và đơn giản
  • Có xét đến khả năng tương thích với hạ tầng hiện có như DNS
  • Bảo mật được áp dụng mặc định, còn quyền riêng tư mặc định vẫn ở trạng thái WIP
  • Các tính năng hiện đang cung cấp gồm
    • Mã hóa đầu cuối tự động
    • Mật mã học hiện đại
    • Định tuyến thông minh và có khả năng mở rộng
    • Dashboard
    • Phân giải DNS .myco
      • Cần cấu hình OS
    • Khám phá dịch vụ đơn giản
    • Tự động tối ưu hóa và phục hồi mạng cho Internet overlay
      • Đang ở trạng thái WIP
    • Private addresses luân phiên
      • Đang ở trạng thái WIP

1 bình luận

 
GN⁺ 2025-05-09
Ý kiến trên Hacker News
  • Tôi là tác giả. Trong 8 năm qua, với vai trò đồng sáng lập/CTO tại Safing, tôi đã xây dựng công nghệ quyền riêng tư, và thành tựu kỹ thuật lớn nhất là SPN (trước đây là Port17/Gate17)
    SPN là một mạng quyền riêng tư nằm ở khoảng giữa VPN và Tor, tức một proxy tầng 5; không thể cấu hình sai, tốc độ cũng khá ổn, và nhờ mã hóa onion cùng việc tách xác thực/ủy quyền, nó cung cấp quyền riêng tư tốt hơn VPN rất nhiều
    Điều thú vị là cách xác thực tách biệt này về sau cũng được triển khai trong Apple Private Relay và Google One VPN
    SPN nhìn chung hoạt động tốt, nhưng khó mở rộng; vì được làm thành proxy tầng 5 để giảm metadata và tăng quyền riêng tư, nên chúng tôi cũng phải triển khai lại cả điều khiển lưu lượng và điều khiển tắc nghẽn, việc này không dễ và đến nay vẫn còn gây vấn đề
    Trong thời gian đó, tôi đọc và theo dõi cjdns cũng như Yggdrasil, rồi bắt đầu hứng thú với các ý tưởng networking; khoảng tháng 11/2023, tôi tự hỏi với kinh nghiệm và kiến thức đến lúc đó thì có thể xây dựng một mạng mesh tầng 3 có khả năng mở rộng, giữ được một phần quyền riêng tư và bảo mật hoàn toàn, đến mức nào
    Tôi dành hầu hết các buổi tối trong vài tháng để làm, và tiến triển tốt hơn dự kiến; nhưng sau khi có một MVP khá ổn và một người bạn đầu tiên dùng nó trong production quy mô nhỏ, tôi không còn thời gian để làm tiếp nữa
    Hiện tôi đang bắt đầu một dự án mới và dự định tận dụng thứ này thật tốt trong đó, nên trong vài năm tới việc phát triển sẽ còn tiến xa hơn đáng kể. Hiện tại Mycoria hoạt động được, ít nhất ở quy mô nhỏ, nhưng nhìn chung vẫn gần với MVP

    • Mycoria trông có vẻ hứa hẹn và gợi nhớ đến các hệ thống peer-to-peer thời đầu như Napster và Gnutella
      Tôi tò mò liệu có lý do đặc biệt nào khiến bạn không dùng segment routing dựa trên tiêu chuẩn có thể áp dụng ở tầng 3 để hỗ trợ source routing, mà lại tạo một cơ chế truyền tải tầng 4 tùy chỉnh không
      Tôi cũng tò mò liệu trong phân tích bảo mật bạn có dùng logic BAN và công cụ kiểm chứng ProVerif không
      https://en.wikipedia.org/wiki/Gnutella
      https://en.wikipedia.org/wiki/Segment_routing
      https://en.wikipedia.org/wiki/Burrows%E2%80%93Abadi%E2%80%93...
      https://en.wikipedia.org/wiki/ProVerif
    • Tôi muốn đề xuất dùng thuật ngữ như peer thay vì friend. Đây không phải là bắt bẻ vụn vặt; ở lớp hạ tầng, tốt hơn là không dùng ngữ nghĩa quan hệ mở thuộc phạm vi user agent
      Máy chủ laptop của tôi cũng là user agent của tôi, instance chạy trên điện thoại cũng vậy, nên chúng là peer của nhau
      Các ứng dụng được xây dựng trên nền tảng này phần lớn sẽ xử lý quan hệ xã hội của người dùng, và những cách gọi như friend sẽ hữu ích ở lớp đó
    • Các giải pháp tương tự dường như có điểm chung là bỏ qua khía cạnh thương mại. Tôi không biết liệu mục tiêu có phải là được chấp nhận rộng rãi hay không, nhưng tôi đoán càng nhiều người dùng thì các đặc tính về quyền riêng tư và ẩn danh càng tốt hơn
      Nếu vậy, tôi tò mò liệu bạn đã cân nhắc đưa vào các động lực khuyến khích tham gia, có thể là tiền tệ hoặc không, hay chưa. Bài toán khó cốt lõi trong lĩnh vực này có vẻ là giải quyết thanh toán ẩn danh được chuẩn hóa cho các nhà cung cấp dịch vụ hạ tầng của mạng
    • Chỉ đọc tài liệu thì chưa rõ: nếu địa chỉ giống IPv6 của router là dấu vân tay của khóa công khai, thì nó có mã hóa cả tiền tố địa lý và khoảng cách không
      Về lý thuyết điều đó có vẻ khả thi, nên nếu đó là hướng tiếp cận thì tôi muốn biết cách làm. Hoặc tôi tò mò liệu địa chỉ router không chứa metadata, còn chỉ địa chỉ người dùng cuối mới được mã hóa theo kiểu đó
    • Hồi còn dùng Windows, Portmaster và SPN rất tuyệt. Ước gì macOS cũng có thứ như vậy
      Private Relay thì có, nhưng chỉ hoạt động trong một số ứng dụng Apple như Safari; cũng khó biết nó có đang hoạt động hay không, và không thể buộc lưu lượng nhất định phải đi qua đó
  • Về mặt kỹ thuật, những thứ như thế này thật sự rất hay. Nó còn khiến tôi tưởng tượng về một tương lai xa, nơi những nerd và geek tuyệt vời, giữa muôn vàn nghịch cảnh, tự dựng mạng cộng đồng của riêng họ chỉ bằng hạ tầng cơ bản
    Nhưng rốt cuộc, tôi vẫn thấy bất tiện và ngại tham gia vào các hệ sinh thái phi tập trung nói chung. Vì có cảm giác mình sẽ giúp chia sẻ và phân phối nội dung bóc lột tình dục trẻ em
    Tailscale ít nhất vẫn nằm trong phạm vi riêng tư, còn thứ này có cảm giác như trở thành một phần của một mạng rộng hơn. Tôi tò mò liệu node của mình có bị dùng để định tuyến loại lưu lượng đó không

    • Trên thực tế, rủi ro nghiêm trọng và thực tế hơn là chế độ bạo quyền. Những kẻ bạo chúa thường cũng là những kẻ lạm dụng
    • Kết luận như vậy sẽ là phải xóa bỏ mọi quyền riêng tư trên Internet, nhưng ngay cả thế cũng sẽ không ngăn được nội dung bóc lột tình dục trẻ em
      Chúc may mắn nhé, ông Big Brother
    • Bất cứ thứ gì bạn tạo ra cuối cùng cũng sẽ được dùng cho việc bất hợp pháp
      Vậy có phải Internet lẽ ra cũng không nên được phát minh? Thư từ, Facebook, ô tô, súng, dao, nông nghiệp cũng vậy thôi
  • Có thể thấy rõ những bài học từ cjdns và Yggdrasil đã được áp dụng vào đâu, và dự án rất tuyệt
    Tuy vậy, vì nó trông đầy hứa hẹn và dự án mới cũng thú vị, tôi muốn chỉ ra một chi tiết nhỏ. Theo FAQ, IP của router có cấu trúc, và ngoại trừ các tiền tố dành cho mục đích đặc biệt, phần lớn nằm trong tiền tố chỉ thị địa lý. Mỗi quốc gia và mỗi bang của Mỹ có một tiền tố riêng trong Mycoria; các router trong cùng một quốc gia chia sẻ cùng tiền tố ở cấp toàn cầu, và các quốc gia gần nhau thì tiền tố nhìn chung cũng tương tự nhau
    Bên trong tiền tố quốc gia, Mycoria dùng định tuyến theo khoảng cách địa chỉ, gửi gói tin tới router có địa chỉ gần nhất trong số các router khác đã biết. Đây không phải cách định tuyến hiệu quả nhất, nhưng đặc biệt khi giới hạn trong các khu vực địa lý nhỏ hơn như Mycoria, nó hoạt động khá tốt nếu kèm thêm một vài biện pháp bổ sung
    Một bài học không may rút ra từ Internet IPv4, cách các RIR quản lý IP của IANA, và cách thông tin địa lý được gắn vào các khối IPv4 là: những người làm chính sách rất thích đặt chính sách lên trên các thẻ địa lý. Ví dụ, nếu Maxmind cho rằng một địa chỉ nằm ở Pakistan, và theo luật Pakistan thì nội dung do một địa chỉ khác cung cấp bị cấm, thì nó sẽ bị chặn
    Nếu nhận thức địa lý được tích hợp sẵn vào tiền tố mạng, nó có thể bị lạm dụng theo những cách người dùng không mong muốn. Tất nhiên đây cũng có thể là một đánh đổi chấp nhận được, và cũng dễ hình dung những kịch bản trong đó người dùng nhận đủ lợi ích từ tiền tố nhận thức địa lý để chấp nhận nhược điểm
    Nếu là trường hợp trước, có lẽ đáng cân nhắc chuyển từ tiền tố nhận thức địa lý — tức “trong vòng X dặm với những người khác trong cùng khu vực tài phán này” — sang tiền tố nhận thức độ trễ, tức “trong vòng X ms với những người khác trong tiền tố này”
    Tuy nhiên, tự phản biện lại đề xuất của mình thì những bên muốn triển khai chính sách tầng 8 trên tiền tố nhận thức địa lý có thể cố tình diễn giải tiền tố nhận thức độ trễ là đủ gần, và khi đó rất nhiều công sức có thể trở thành vô ích

    • Cảm ơn bạn đã dành thời gian góp ý. Tôi muốn giải quyết vấn đề này bằng địa chỉ riêng tư
      Địa chỉ riêng tư không có chỉ thị địa lý và không được định tuyến. Ví dụ, chúng được tạo ngẫu nhiên và không thể dễ dàng quy về một vị trí địa lý
  • Tài liệu được viết tốt và trông khá thú vị. Tôi sẽ phải tự dùng thử, nhưng câu hỏi đầu tiên nảy ra là liệu Mycoria có phơi bày toàn bộ node trong mạng, khiến cần firewall để hạn chế truy cập cổng, v.v. hay không
    Tôi hỏi vì trong Yggdrasil thì điều này là cần thiết: https://yggdrasil-network.github.io/faq.html#will-my-machine...

    • Mycoria mặc định an toàn và hầu như không cần cấu hình gì
      Theo mặc định, không ai có thể truy cập thiết bị của bạn. Bạn phải chủ động cho phép trong phần services của cấu hình
  • Tôi tò mò nó so với Veilid(https://veilid.com/) thì thế nào

  • Không biết bạn đã xem Reticulum[0] chưa. Tôi cũng muốn biết nó chồng lấn với tầng mạng của Mycoria đến mức nào
    [0]: https://github.com/markqvist/Reticulum

  • Có thể tôi đã bỏ sót hoàn toàn điều gì đó, nhưng Mycoria có đang cố ngăn người tham gia mạng tìm ra địa chỉ IP Internet công khai tương ứng với ID router Mycoria không?
    Trường iana trong cấu hình khiến mục tiêu có vẻ không phải là như vậy, và nếu thế thì hệ thống này trông giống Tailscale có IPv6 và không gian tên toàn cục hơn. Trong trường hợp này, gần như mọi host Internet đều có thể trực tiếp kết nối với nhau bằng các kỹ thuật vượt NAT như BitTorrent, nên tôi không hiểu lắm vì sao lại nhấn mạnh “định tuyến”
    Nếu mục tiêu là che giấu địa chỉ IP Internet công khai như các dịch vụ ẩn của Tor, thì cách định tuyến cũng khó hiểu. Vì có lẽ ta sẽ không muốn chọn đường đi bằng một chiến lược mang tính quyết định hoặc phụ thuộc độ trễ, bởi điều đó có thể làm rò rỉ thông tin

    • Mycoria được tạo ra vì khả năng phục hồi, và không phụ thuộc vào việc backbone Internet hiện tại hoạt động hoàn hảo
      Ngay cả khi Internet hiện tại hoạt động “bình thường”, nhiều người dùng các mạng tương tự đã báo cáo rằng họ có kết nối tốt hơn nhờ định tuyến mạng overlay. Định tuyến của Internet IANA chịu ảnh hưởng lớn
      Nếu để Mycoria tạo cấu hình, nó sẽ bao gồm các giao diện công khai hiện tại của thiết bị, nên điều này chỉ đúng với server. Mycoria không phụ thuộc vào địa chỉ IANA, nhưng dùng chúng để tự động cải thiện cấu trúc mạng. Tức là nó tìm các đường đi tốt hơn giữa các router thông qua Internet IANA
  • Có lẽ đóng góp cho những mạng đã tồn tại như i2p sẽ hữu ích hơn

    • Không chỉ i2p, đã có những dự án hiện có gần như giống hệt đang tồn tại
      Phần lớn trong số đó thất bại vì không đạt được mức độ chấp nhận đủ lớn; một lý do lớn là họ không thừa nhận thực tế rằng hơn 90% thị trường máy tính để bàn không dùng Linux hay BSD
      Một số hỗ trợ client Windows một cách nửa vời, và rất hiếm dự án hỗ trợ macOS, vốn chiếm khoảng 20–30% thị trường desktop
  • Tôi tò mò nó so với zrok(https://zrok.io/) thì thế nào. Tôi muốn tự thử nghiệm, nhưng hơi lo vì nghe như mặc định không riêng tư

    • Với các use case mà Zrok đưa ra, Mycoria cũng rất tương tự
      Theo mặc định, không có gì có thể truy cập thiết bị của bạn. Bạn phải định nghĩa dịch vụ và thêm friends, tức các thiết bị khác của bạn, thì mới có thể cho phép truy cập