
2026/08/10 21:40
リレーを保護してください
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
2026年6月以降、Iroh サービスでは、不審な接続に伴うセキュリティリスクを排除するために、すべての管理されるリレーにデフォルトでトークンベースの認証を実行します。この重要な変化により、将来的なトラフィックへのアクセスには有効な API キー発行トークンの必要となり、公開された URL によって引き起こされる未許可のデータフローや帯域幅の濫用からの保護を図ります。それまでは、古いデプロイメントは所有者がRelays > Settings > Authenticationを介してこれらの設定を手動で構成するまで引き続き開放されます。
新しいシステムは、発行者データ、権限、有効期限を埋め込み、アクセスを厳格に制御するために署名された能力トークンを使用します。各接続では、リレーが秘密鍵を確認した後、トークンの検証が行われる HTTP ハンドシェイクを開始します。Iroh は数多くのデバイス上で動作する広範なオープンソースのネットワーク化ライブラリとして運用されているため、このアップグレードはインフラストラクチャの回復力を大幅に高めます。ユーザーは複数の地域でリレーをデプロイして高可用性を確保でき、推奨されるのはサービス継続性を確保するために少なくとも 2 つのリレーを異なる地域で動作させることです。
キーが侵害された場合、専用 API を介してアクセスを瞬時に取り消すことができます。重要なのは、リレー URL が漏洩したとしても有効なトークンがない限り無害になり、漏洩したトークンでも特定のエンドポイントのみに制限され、完全ななりすましを可能にしないことです。将来のアップデートでは、権限スコープと粒度のあるアクセス制御をさらに精査する予定です(現在はすべてのエンドポイントが同一の能力を受信します)。また、
iroh_services プレセットは手動での組立てを必要とせずに、API 秘密(IROH_SERVICES_API_SECRET)からリレースコープのトークンを自動的に発行し、Iroh サービス上の新しいリレーはデプロイ開始から最初の 30 日間無料で利用できます。本文
Iroh Services 管理型リレーへの認証機能導入のお知らせ
2 つのデバイスが直接接続できない場合、リレー(中継)を経由することで通信を維持します。しかし、リレー URL が公開されると、誰でもその経路を通じてトラフィックを送信可能になります。URL は配布されたすべてのクライアントに埋め込まれており、接続過程を観測する人々にも公開されるため、セキュリティ上の重大なリスクが存在しました。
このリスクに対処するため、Iroh Services における管理型リレーでは今後はデフォルトで認証が有効化されます。これにより、プロジェクトの API キーによって発行されたトークンを搭載したエンドポイントのみが利用可能となります。
⚙️ 設定について
設定を変更する必要があるわけではありません。
- すでに
プリセットを使用している場合: エンドポイントは自動的に認証されます。iroh_services - 2026 年 6 月以降にデプロイされる新リレー: 認証機能がデフォルトで適用されます。
- それ以前にデプロイされた既存リレー: 引き続きオープン状態となり、影響はありません。
認証設定を変更する必要がある場合は、以下の手順から設定してください:
- メニューから **[Relays(リレー)> Settings(設定)**へアクセスします。
- リレーの認証設定を有効化します。
🛡️ なぜ認証が必要なのか?
公開リポジトリやクライアントバンドルへの URL 漏洩、あるいはスパム攻撃によりインフラストラクチャが過負荷でダウンするリスクがあります。
- 帯域幅・接続スロットに限界がある: サーバーを自前でも借りても、URL を入手した他者がそのリソースを利用すると、あなたのトラフィックと競合し、サービス品質が低下します。
自前でリレーを実行する場合は独自の認証方式も構築可能ですが、当社の管理型リレーでは今月から**「API キー」を介したアクセス制御機能**を追加しました。
- 発行・ローテーション(鍵の更新)・削除: 制限なく可能です。
- 既存 API キーとの互換性: メトリクスプッシュなどで既に使用している API キーと同じものを利用できます。
- 専用リレーデプロイ: 30 日間の無料利用期間が設定されています。
🔐 認証システムの仕組み
すべてのリレー接続は、WebSockets へのアップグレードを行う HTTP ハンドシェイクから始まります。認証情報は標準的なヘッダーを通じて送信され、以下の 4 つの情報を内蔵した署名された機能トークンが発行されます:
- 発行元: プロジェクトの API キー
- 対象者: トークンを提示するエンドポイントの公開鍵
- 付与権限: リレーの利用のみ(それ以上の権限はありません)
- 有効期限: 短期間設定可能であり、漏洩しても長期悪用を防げます
認証フロー
- エンドポイントが接続すると、まず自身がキーを所有していることを証明します(これは認証の有無に関わらず実行)。
- リレーはトークンを検証し、以下の条件をすべて満たすか確認します:
- 署名が有効か
- 期限切れではないか
- リレー利用権限が付与されているか
- 対象エンドポイントと一致するか
- 発行元がプロジェクトの API キーか
すべての条件を満たせば接続承認されます。
セキュリティ上の重要な特性
この仕組みにより、以下の 2 つの強力なセキュリティ特性が得られます:
- URL の漏洩でも安全
- API キーで発行されたトークンを持たなければ、そのアドレスへのダイヤルは何も得られません。
- トークンの漏洩でもなりすましは不可能
- トークンは特定のエンドポイントの公開鍵に対してアドレス指定されています。
- 別のエンドポイントから提示すると失敗します(ハンドシェイクで秘密鍵の所有証明が必要であるため)。
リvoke(取り消し)機能
API キーをローテーションしたり削除したりすることで、そのキーが発行したトークンを無効化できます。これにより、不正なセッションも即座に切断されます。
💻 導入方法(コード例)
手動での設定は不要です。
iroh_services プリセットが API 機密情報からトークンを生成し、自動的に接続に付与します。認証済みのエンドポイントを構築するには、わずか数行のコードだけで実現可能です:
- API 機密情報の保護: プロセス内を離れません。
- スコープ付きトークン: プリセットが派生させ、リレーに送信されるのはその派生トークンのみです。
- 設定手順:
- プロジェクトダッシュボード上のリレー URL を
に指定します。.relays(...)
環境変数を設定します。IROH_SERVICES_API_SECRET
- プロジェクトダッシュボード上のリレー URL を
# 簡易的な設定イメージ(言語依存) import os os.environ["IROH_SERVICES_API_SECRET"] = "your_secret_api_key" # ダッシュボード上の URL を指定して接続設定 client = iroh_client(...) # .relays(url) のように指定
🔮 将来の機能開発
現時点では各エンドポイントに同一の権限(capabilities)が付与されていますが、将来的には以下の機能を追加予定です:
- スコープの異なるトークン発行: 特定のエンドポイントに対し高度な権限のみを付与可能に。
- 個別のアクセス権限取り消し: ダッシュボード以外からの API 操作も可能化予定。
ご関心があれば、Discordでご連絡ください。
🚀 運用上のアドバイス
現在リレーを実行中の場合は、リージョン障害に対応すべく、以下の構成をお勧めします:
- 少なくとも 2 つのリレーを異なるリージョンにデプロイしてください(エンドポイントの孤立防止のため)。
詳細なセットアップ手順については、管理型リレーガイド をご参照ください。ご質問や環境に関する議論は、Discord チャンネルまたは個別スケジュール調整での相談も承っております。
Iroh は「動作する」ネットワークライブラリです。
- 必要機能のみを備えた既存のプロトコルエコシステムからコンポーザブルに構成するか、
- 単純なパイプを超えたクリーンな抽象化に基づくカスタム実装も可能です。
すでに数万台以上のデバイスで本番環境にて稼働しています。
- ドキュメント で活用を開始するか、
- コードを直接確認するか、
- Discord チャットでお問い合わせください。