ダークウェブ利用だけじゃないTorのすごいところ
Torと聞くと怪しいダークウェブにアクセスするための特別なブラウザのことでしょ、という認識の方が多いかと思います。あるいは、そもそもTorなんて知らないですよね。
前回のコラムでは、そんなTorという技術を俯瞰しました。
【2022/5/11】ビットコインも利用するTorとは
https://coinkeninfo.com/tor-1/
ここでは、Torはアクセス元のIPアドレスを隠すことができる技術ですよ、と紹介したのですが、実はTorには自宅サーバーを手軽に公開できる、といった側面もあります。
ダークウェブというのは、そもそもどこか得体の知れない場所で運営されているWEBサーバーが公開するWEBのことですね。
その得体の知れない場所が自宅であってもよいわけです。そして、サーバーも手軽にラズベリーパイであってもよいわけです。
ということで、今回はそんな自宅サーバーを手軽に公開できるよ、という側面についてご紹介します。
Onionサービス
Torネットワークを通してWEBといったサービスを提供する場合、Onionアドレスというものをサービスに紐付けます。
Onionアドレスは、次のような感じでランダムな文字列に.onionを付けたものとなります。
twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion
この例は、最近Twitterが始めたもので、Torブラウザを通してTwitterにアクセスできます。
こうしたOnionアドレスに紐付けて公開されるサービスをOnionサービスと呼びます。
OnionアドレスはIPアドレスの代わりになるもので、サービスを特定するために使われます。
見た目は.onionがつくことからドメイン名ぽいですが、技術的には別物です。
そのため普通のブラウザではこの文字列を解釈してサーバーに接続することはできないです。
TorブラウザやBraveブラウザのようなTor対応をうたっているブラウザは、このOnionアドレスを解釈し通常のURLアクセスのような勝手を実現しています。
サーバーの身元を一意に特定する必要があることから、ビットコインアドレスのように公開鍵を元に生成され、ランダムな文字列となります。
このへんはビットコインと同じで親近感が湧きますね。
でも、完全にランダムな文字列だと、サービスと紐付くにしては分かりにくいですよね。
そのためか、上述のTwitterのOnionアドレスは先頭の7文字をtwitterとしています。
これはバニティアドレスと呼ばれ、頑張って鍵を生成しまくってこうしたアドレスになるものを探すことで得られます。
バニティアドレスについては加藤さんのコラムを参照ください。
【2021/6/3】バニティアドレスをトラストレスに生成してもらうhttps://coinkeninfo.com/vanity-address/
Torで自宅サーバーを手軽に公開する
Umbrelというライトニングネットワークノードをラズベリーパイで立ち上げられるプロジェクトがありますが、これを使うと実は簡単にOnionサービスを自分で立ち上げて公開することができます。
そもそも、ビットコインノード自体もOnionアドレスで公開されるため、Onionサービスとしてフルノードサービスを提供している、ともいえますね。
Umbrel自体は本研究所でも何回か登場しています。是非こちらもご参照ください。
【2021/5/6】ビットコインエコシステムの新星:Umbrel
【2021/6/30】オープンソースなアプリとの付き合い方

【2021/10/14】Umbrelから聞こえるDLC普及の足音

Umbrelにはアプリストアが提供されており、様々なアプリをインストールできます。
外部公開することの出来るアプリにはそれぞれ別のOnionアドレスが紐付けられます。
そのため、アクセスできるポートを絞った状態と捉えることもでき、この点ではなにげにセキュアです。
例えばビットコインウォレットが同じラズベリーパイで動いていたとしても、そのウォレットに他のアプリ用のOnionアドレスを使ってアクセスされることはないです。
UmbrelにはBTCPay Serverというビットコイン決済に対応したECサイトをつくるアプリもインストールできます。
そんなトライをずいずいさんがやって記事にしてくれています。
こちらの記事は画像も多く、雰囲気がとても良く分かるのでおすすめです。https://spotlight.soy/detail?article_id=iod58ux0o
いやあ、りっぱなダークマーケットが出来上がってます笑
その他、Umbrelのストアには
- Agora - デジタルデータをビットコインで販売するサービス
- IPFS Podcasting - ポッドキャスト配信サービス
などの外向けOnionサービスを提供するものもあれば、
- Specter Desktop - マルチシグウォレット
- Vaultwarden - パスワードマネージャー
などの自分専用のOnionサービスを立ち上げられるアプリもあります。
スマートフォンから自宅サーバーにて動かしているアプリにアクセスできるってことですね。
まとめ
上で見たように、Onionアドレスを使うと自宅にあるラズベリーパイを使って世界中のどこからでもアクセスできるサービスを提供できます。
従来の方法ですと、一般家庭のネットワークだと動的なプライベートIPであったりルーター越しであったりして、サーバーを公開するのは結構大変です。
例えば、通常のやり方ですと
- 固定グローバルIPをプロバイダーと契約する
- IPアドレスとドメインとを紐付ける(ドメインを購入したり、DDNSをセットしたり)
- セキュリティを頑張る(余計なポートが開いたりしないようにする、サーバー証明書をセットする)
- NAT越しのアクセスができるような細工をする(ポートフォワードの設定など)
といった、いろんな作業をする必要があります。
これが、Onionサービスで公開する、とするだけでずいぶんとシンプルになります。
NAT越しアクセスの細工は相変わらず必要ですが、Umbrelでしたらここも自動で巻き取ってくれたりします。
このシンプルさは凄いよね、とDiamond Hands (日本のLNコミュニティ) 開発部でも一時期話題になりました。
シンプルに個人がサービスを提供する側に回れる仕組み。
これが、Torのあまり知られていないけど凄いところ、だと思います。
いやあ、個人主体の時代らしいですね。

次の記事
読者になる
一緒に新しい世界を探求していきましょう。

ディスカッション