Mycoria - 誰もが平等につながるオープンネットワーク
(mycoria.org)- Mycoria は、すべての参加者を対等につなぐことを目指すオープンなセキュア・オーバーレイネットワークであり、初期インターネットの開放的で冒険的な性格を志向している
- 参加に官僚的な手続きはなく、すべての接続は 認証 と 暗号化 を基本前提とする
- インターネット上で接続することも、独自の メッシュネットワーク として拡張することもでき、ネットワーク参加の障壁を下げようとしている
- 設計は小さくシンプルな構造、DNS のような既存インフラとの互換性、基本的なセキュリティとプライバシーに重点を置く
- 自動エンドツーエンド暗号化、スケーラブルなルーティング、ダッシュボード、
.mycoDNS 解決、サービスディスカバリーを提供し、一部のプライバシー・自動最適化機能は WIP 状態である
Mycoria が目指す接続のあり方
- Mycoria は、すべての参加者をつなぐオープンなセキュア・オーバーレイネットワークである
- 初期インターネットの好奇心に満ちた冒険的な精神に従い、接続の自由を中核価値としている
- 中核原則は次のとおり
- Everyone is equal: 誰でも簡単に接続できる
- Everyone is welcome: 官僚的な手続きなしに参加できる開かれたネットワークである
- No spooking: すべての接続は認証される
- No surveillance: すべての接続は暗号化され、Private Addresses を含む
- No barriers: インターネットで接続することも、独自メッシュとして Mycoria を拡張することもできる
設計目標と現在の機能
- 構造は小さくシンプルに保つことを目標としている
- DNS のような既存インフラとの 互換性 を考慮している
- セキュリティはデフォルトで適用され、基本的なプライバシーは WIP 状態のままである
- 現在提供されている機能は次のとおり
- 自動 エンドツーエンド暗号化
- モダンな暗号技術
- スマートでスケーラブルなルーティング
- ダッシュボード
.mycoDNS 解決- OS の設定が必要
- シンプルなサービスディスカバリー
- インターネット・オーバーレイ向けのネットワーク自動最適化・復旧
- WIP 状態である
- ローテーション式 private addresses
- WIP 状態である
1件のコメント
Hacker News のコメント
作者です。Safing で共同創業者/CTO としてこの8年間、プライバシー技術を作ってきました。最大の技術的成果は SPN(旧 Port17/Gate17)でした。
SPN は VPN と Tor の隙間にあるプライバシーネットワーク、つまりレイヤー5プロキシで、設定ミスが起こりようがなく、速度もそれなりで、オニオン暗号化と認証/認可の分離により VPN よりはるかに優れたプライバシーを提供していました。
興味深いことに、この分離された認証方式は後に Apple Private Relay と Google One VPN にも実装されました。
SPN はおおむねうまく動作していましたが、拡張が難しく、メタデータを減らしてプライバシーを高めるためにレイヤー5プロキシとして作ったせいで、トラフィック制御と輻輳制御も再実装する必要がありました。これは簡単ではなく、今でも問題を起こしています。
その間、cjdns と Yggdrasil を読み、追いかけるうちにネットワーキングのアイデアに興味を持ち、2023年11月ごろ、これまでの経験と知識で、プライバシーの一部と完全なセキュリティを維持するスケーラブルなレイヤー3メッシュネットワークをどこまで作れるのか気になりました。
数か月間、ほとんどの夜の時間を費やして作り、思ったよりうまく進みましたが、そこそこの MVP と、小規模な本番環境で最初に使ってくれた友人ができた後は、さらに作業する時間がありませんでした。
今は新しいプロジェクトを始めているところで、そこにこれをうまく活用する予定なので、今後数年間で開発はかなり進むはずです。Mycoria は現時点では、少なくとも小規模では動作しますが、全体としては MVP に近いものです。
レイヤー3で採用できる標準ベースのセグメントルーティングをソースルーティング対応に使わず、カスタムのレイヤー4トランスポートを作った特別な理由があるのか気になります。
セキュリティ分析に BAN 論理や ProVerif 検証ツールを使ったのかも気になります。
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
friendの代わりに peer のような用語を提案したいです。些細な揚げ足取りではなく、ユーザーエージェントの領域で閉じない関係の意味論は、インフラ層では使わないほうがよいからです。私のノートPCサーバーも私のユーザーエージェントで、スマートフォンで動いているインスタンスも同様なので、両者はピアです。
この基盤の上に作られるアプリケーションはおおむねユーザーの社会的関係を扱うことになり、
friendのような表現はその層で有用になるでしょう。だとすると、参加のインセンティブを、金銭的かどうかにかかわらず、導入することを検討したのか気になります。この分野の核心的な難題は、ネットワークのインフラサービス提供者向けの標準化された匿名決済を解決することにあるように見えます。
理論的には可能に見えるので、そういうアプローチならどのような方式なのか知りたいです。あるいは、ルーターアドレスにはメタデータがなく、エンドユーザーのアドレスだけがそのようにエンコードされるのかも気になります。
Private Relay はありますが、Safari など一部の Apple アプリでしか動作せず、動作中かどうかも分かりにくく、トラフィックを必ずそちらだけに送るよう強制することもできません。
技術的には、こういうものは本当に良いと思います。遠い未来に、かっこいいナードやギークたちがあらゆる逆境の中で、基本的なインフラだけを使って自分たちのコミュニティネットワークを築く様子まで想像してしまいます。
しかし結局、一般的な分散型のものに参加するのは不便で気が進みません。児童性的虐待コンテンツの共有や配布を手助けすることになりそうだからです。
Tailscale は少なくとも私的な範囲にとどまりますが、これはより広いネットワークの一部になるように感じます。自分のノードがそうしたトラフィックのルーティングに使われることになるのか気になります。
幸運を祈ります、ビッグ・ブラザーさん。
それならインターネットも発明されるべきではなかったのでしょうか? 手紙、Facebook、自動車、銃、ナイフ、農業も同じでしょう。
cjdns と Yggdrasil から学んだ点がどこに反映されているのかがはっきり見えて、プロジェクトはとても素晴らしいです。
ただ、有望に見えますし新しいプロジェクトも興味深いので、細かい点を指摘したいです。FAQ によるとルーター IP には構造があり、特殊目的のプレフィックスを除けば、大半は地理表示プレフィックスの中に入ります。各国と米国の各州は Mycoria 内で固有のプレフィックスを持ち、同じ国のルーターはグローバルなレベルで同じプレフィックスを共有し、近い国同士ではプレフィックスもおおむね似ています。
国別プレフィックスの中では Mycoria がアドレス距離ルーティングを使い、既知の他のルーターのうちアドレス上もっとも近い相手へパケットを送ります。最も効率的なルーティングではありませんが、特に Mycoria のようにより小さな地理的領域に限定すれば、いくつかの追加措置と合わせてかなりうまく機能します。
IPv4 インターネットと IANA IP を各 RIR が管理してきた方法、そして IPv4 ブロックに地理情報を付けた方法から得た不幸な教訓のひとつは、政策担当者は地理タグの上に政策を載せるのが大好きだという点です。たとえば Maxmind があるアドレスをパキスタンにあると判断し、パキスタン法では別のアドレスが提供するコンテンツが禁止されているなら、ブロックされる、といった具合です。
ネットワークプレフィックスに地理認識が組み込まれると、ユーザーが望まない形で悪用される可能性があります。もちろん許容できるトレードオフかもしれませんし、ユーザーが地理認識プレフィックスの利点を十分に得て、欠点を受け入れるシナリオも容易に想像できます。
前者であれば、地理認識プレフィックス、つまり「この管轄区域内の他の人たちと X マイル以内」ではなく、遅延認識プレフィックス、つまり「このプレフィックス内の他の人たちと X ms 以内」へ移行する案を検討する価値があります。
ただし自分の提案に自分で反論するなら、地理認識プレフィックスの上に第 8 層のポリシーを実装しようとする側は、遅延認識プレフィックスも十分に近いと意図的に誤解できるでしょうし、そうなると多くの努力が無駄になるかもしれません。
プライベートアドレスには地理表示がなく、ルーティングされません。たとえばランダムに生成され、地理的位置に簡単には帰属させられません。
ドキュメントがよくできていて、興味深そうです。実際に使ってみる必要がありますが、最初に浮かぶ質問は、Mycoria がネットワーク内でノード全体を露出するため、ポートアクセス制限などにファイアウォールが必要なのか、ということです。
Yggdrasil ではこれが必要なので聞いています: https://yggdrasil-network.github.io/faq.html#will-my-machine...
デフォルトでは誰もあなたのデバイスにアクセスできません。設定の
servicesセクションで明示的に許可する必要があります。Veilid(https://veilid.com/)と比べるとどうなのか気になります。
Reticulum[0] は見たことがありますか。Mycoria のネットワーキング層とどれくらい重なるのかも知りたいです。
[0]: https://github.com/markqvist/Reticulum
私が何かを完全に見落としているのかもしれませんが、Mycoria はネットワーク参加者が Mycoria ルーター ID に対応する公開インターネット IP アドレスを突き止められないようにしようとしているのでしょうか。
設定の
ianaフィールドを見ると、これは目標ではないように見えます。だとするとこのシステムは、IPv6 とグローバル名前空間を持つ Tailscale に近いように見えます。この場合、ほぼすべてのインターネットホストは BitTorrent のような NAT 越え技術で互いに直接到達できるので、なぜ「ルーティング」を強調しているのかよく分かりません。Tor の隠しサービスのように公開インターネット IP アドレスを隠そうとしているのだとすれば、ルーティング方式もあまり理解できません。おそらく、決定的または遅延依存の戦略で経路を選ぶと、情報が漏れることを望まないはずだからです。
現在のインターネットが「正常に」動作していても、同様のネットワークの多くのユーザーが、オーバーレイネットワークのルーティングによってより良い接続性を得られたと報告しています。IANA インターネットのルーティングは大きく影響を受けるためです。
Mycoria に設定を生成させると、デバイスの現在の公開インターフェースが含まれるため、これはサーバーについてのみ当てはまります。Mycoria は IANA アドレスに依存していませんが、ネットワーク構造を自動的に改善するために使います。つまり IANA インターネット経由でルーター間のより良い経路を探します。
すでに存在する i2p のようなネットワークに貢献するほうが、より有用かもしれません。
その多くは十分な採用率を得られずに失敗しましたが、大きな理由は、デスクトップコンピューター市場の 90% 以上が Linux や BSD を使っていないという事実を認めないためです。
一部は Windows クライアントを中途半端にサポートしており、デスクトップ市場の 20〜30% ほどを占める macOS をサポートするものはほとんどありません。
zrok(https://zrok.io/)と比べるとどうなのか気になります。自分で試してみたいですが、デフォルトではプライベートではないように聞こえるので少し心配です。
デフォルトでは何もあなたのデバイスにアクセスできません。サービスを定義し、
friends、つまり自分の他のデバイスを追加して、アクセスを許可する必要があります。