安全なプライベートメッセージングのゴールドスタンダードは、関係者間でエンドツーエンドの暗号化を行い、メッセージングサービス側がメッセージの暗号化に使用された鍵を入手できないようにすることです。Open Whisper SystemsのSignal ProtocolとSignalアプリは、その最良のバージョンを実装しているように見えます。
しかし、ちょっとした問題があります。Signalアプリは電話番号に紐付けられており、Open Whisperは登録システムを使ってユーザー同士をマッチングし、他のユーザーを見つけています。WhatsApp(Facebook傘下)などの企業はSignalプロトコルを採用し、自社アプリに組み込んでいますが、管理が集中化してしまうという同様の問題を抱えています。しかも、その管理はうまくいっているとはいえ。
しかし、WhatsAppもOpen Whisperも、システムの設計上、チャットに関係するキーを取得することはできません。これが重要な点です。AppleのiMessageはエンドツーエンドでセキュリティが確保されていますが、設計が脆弱なため、Appleがユーザーに気付かれずにシステムを改訂し、メッセージの完全なプライバシー保護能力を低下させる可能性は(可能性は低いとはいえ)あります。
まさにこの点に、Keybase が新たに提供する控えめなサービスが当てはまります。Keybase は、暗号化要素を用いてユーザーによるアイデンティティ所有権の管理を重視する企業です。このアイデンティティは、ソーシャルメディアアカウント、ウェブサイト、ビットコイン、その他の手段を通じて証明・検証されます。Keybase は、ユーザーが管理する暗号化と検証のみに依存する、エンドツーエンドの暗号化チャットオプションを導入しました。
証明する
Keybaseについては以前にも記事を書いたことがあります。シンプルでありながら強力なアイデンティティを提供するために彼らが採用している様々なアプローチに感銘を受けたからです。同社のコードはオープンソースで、検証が可能であり、業務の根幹となる部分の一部にはオープンソースソフトウェアを活用しています。その秘訣は、それらをグラフィカルで美しく、ユーザーが理解しやすいフォーマットにまとめ上げていることです。このフォーマットは、基盤となる詳細に全く興味がない人や知識がない人でも容易に理解できます。1年前に導入されたデスクトップソフトウェアも大きな助けになっています。
Keybaseは、20年以上の歴史を持つPGP形式の鍵を基盤としています。PGPは、公開鍵暗号の強力な機能と、よりシンプルな対称暗号化を組み合わせることで高速化を実現します。これは、Webやメールの暗号化セッションにおけるSSL/TLSの仕組みと実質的に同じです。
PGP鍵は公開鍵と秘密鍵のペアで構成され、非常に複雑な計算によって2つの絡み合った鍵を生成します。片方の鍵を知っていても、もう片方の鍵を特定することは不可能です。片方の鍵は公開鍵(「公開鍵暗号」と呼ばれる)であり、自由に配布できます。もう片方の鍵は秘密鍵であり、何としても守らなければなりません。
PGPを使って1人または複数の相手にメッセージを暗号化するには、まず相手の公開鍵を取得し、アルゴリズムを用いて各公開鍵で強力なセッション鍵(暗号化と復号化の両方が可能な鍵)を暗号化します。メッセージはセッション鍵で暗号化されますが、関連付けられた秘密鍵を持つ受信者だけがセッション鍵を取得してメッセージを復号化できます。
IDG PGP 暗号化により、対応する秘密鍵を持たない人には結果が理解できなくなります。
ファイル署名を作成することもできます。これは、文書が署名後に変更されていないことを証明します。ファイルは「ハッシュ」アルゴリズムにかけられ、送信者の秘密鍵で暗号化された一意の数値表現が作成されます。受信者は元の文書を同じアルゴリズムにかけ、送信者の公開鍵で署名を復号することで、文書が変更されていないことを確認できます。公開鍵で復号できる有効な署名を作成できるのは、秘密鍵を持つ者だけです。
Keybase をご利用の場合、PGP 鍵は常にお客様のプライベートな情報として保持されます。Keybase によって暗号化されていない形で保存されることはなく、Keybase が鍵にアクセスすることも決してありません。鍵の使用はすべて、ユーザー側のブラウザまたはネイティブアプリで行われます。(既存の鍵を持っている必要はありません。Keybase が鍵の生成をお手伝いします。)
共同創業者のマックス・クローン氏は、「もし誰かがオフィスに押し入り、銃を突きつけて『このユーザーの暗号化認証情報を間違って渡すように要求する』と言ったら、私たちは絶対にそうはできないと言わざるを得ないでしょう」と語る。仮にKeybaseのシステムが侵害されたとしても、漏洩するのは暗号化されたデータのみで、ロックを解除するにはユーザーの鍵とパスフレーズが必要になる。
Keybaseは2013年に立ち上げられ、PGP鍵に関するいくつかの大きな課題を解決することを目指しました。それは、他の人の鍵を見つけ、相手が正当に使用していることを確認することです。Keybaseが登場する前は、PGP鍵の交換は主に個人(対面またはウェブサイトで確認)か、公開鍵サーバーを介して行われていました。しかし、これらのサーバーは時代遅れのジャンク鍵で溢れており、時には1人の人物に対して数十、数百もの鍵が存在し、どれが有効なのか判断する手段がありませんでした。
IDG ユーザーの Keybase プロファイルには、そのユーザーの ID に関連付けられたすべての証明が含まれます。
この問題に対処するため、Keybaseでは、ツイート、Facebookの公開メッセージ、自分が管理するウェブサイト、ビットコインアドレスへの接続など、様々な場所に「証明」を投稿することで、自分の身元を証明できるようになっています。証明の数が多いほど、Keybaseに登録されている自分の名前のプロフィールに関連付けられた鍵を、自分が管理していると他人が信じる可能性が高まります。誰かがあなたの身元を偽装するには、異なる保護対策が施された複数のアカウントを乗っ取る必要があります。(2015年にApple Mailで無料のGPGTools暗号化ソフトウェアを使用する際に、この問題の一側面について記事を書きました。)
Keybaseはこれをチャットにも拡張し、現在WindowsとmacOSで利用可能です。モバイル版は次に優先的に開発されます。インターフェースはシンプルで使いやすく、私のテストでは問題なく動作しました。
これらのチャットは、他のあらゆる規模のエコシステムとは大きく異なります。使用されるキーはユーザーが完全に制御し、証明のためのすべての関連付けはユーザーが選択して自由に取り消すことができるため、自分が誰であるかの証明が破られ、その結果、あなたとチャットしたりやり取りをしているすべての人に知られることになります。
他のシステムはすべて、ユーザーに代わって暗号化情報を生成し、電話番号などの関連付けを維持しています。WhatsAppに関する最近のセキュリティ問題(誤報)では、ユーザーがセキュリティ警告をオフにした場合、チャット相手の電話番号を誰かが乗っ取ると、会話が途切れることなく継続されるという、正当な問題が提起されました。(ただし、以前のメッセージを見ることはできません。)
Signalアプリでは、この種の警告を無効にすることはできませんが、同じ電話番号で新しいデバイスを登録することは可能です。これにより、会話中の相手に通知されますが、電話番号は依然として唯一の確認ポイントとなります。
Signal や WhatsApp が劣っているというわけではありませんが、Keybase のチャットではさまざまな検証および同期オプションが適切に提供されています。
Keybaseの違い
Signal と WhatsApp (アーカイブを無効にした場合) では、前方秘匿性が合言葉です。つまり、特定の受信者がメッセージを受信すると、そのメッセージは他の誰にも解読できません。たとえアカウント情報にアクセスして電話番号を乗っ取られたとしてもです。(iMessage には前方秘匿性がなく、iOS と macOS のあらゆる場所にトランスクリプトが保存されます。)
KeybaseはチャットにPGPを使用しません。PGPはメッセージングや大規模な利用には扱いにくいためです。Keybaseは、デバイスごとに異なる公開鍵と秘密鍵のペアを生成します。Keybaseは追加されたデバイスを追跡し、透明性を確保するためにオンライン(というか紙媒体)で記録します。また、アカウントから任意のデバイスを削除できます。デバイスを追加すると、復旧用のオフライン鍵も取得されるため、暗号化を常に管理できます。
Keybaseを使用すると、デバイス間での履歴と同期が可能ですが、クラウドサービスへのデータの同期や保存は行われず、Keybase自身や他社が読み取れる形でメッセージを保存することもありません。デバイスに保存されているトランスクリプトも暗号化されており、ロック解除にはアプリ、キー、パスフレーズが必要です。(Keybaseがサービスを停止した場合でも、必要なキーはすべて手元にあるため、他の暗号化ソフトウェアを使って復号することも可能です。)
クローン氏は、同社がシグナルのような保護機能を提供するモードを検討しており、実質的にメッセージを単一のデバイスにロックし、後で「焼き付け」て回復不可能にすることができると述べた。
しかし、これはPGPやその他の静的公開鍵システム全般、特にKeybaseにおいて既知の弱点です。つまり、あなたの秘密鍵を入手した第三者は、その鍵で暗号化されたすべてのメッセージを読むことができるのです。そのため、Keybaseでは、ファイルであれメッセージであれ、保護対象を自由に選択できます。
Keybaseは、コアシステムの利用拡大に向けて、他にも計画を進めています。約1年前に暗号化ファイルシステムの拡張ベータ版をリリースしており、正式リリースが近づいています。Keybaseファイルシステムは、デスクトップデバイス上に暗号化されたオンデマンドパスを作成し、そこに何かを置くと自動的に暗号化され、暗号化された状態でクラウドに同期されます。ファイルは、Dropboxなどのシステムのように常に同期されるのではなく、必要に応じて読み込まれ、キャッシュされます。(初期バージョンは無料で10GBのストレージが付属しています。有料ストレージは正式リリース後に提供されます。)
これはMacで他の方法で実現するのはかなり面倒です。特に数年前に暗号化ディスクイメージの代替手段が消滅したことを考えるとなおさらです。Dropboxはユーザー管理の暗号化ディレクトリを許可しておらず、ディスクイメージはこれを管理するには面倒な方法です。Keybaseは私が見つけた唯一の合理的な解決策であり、これが正式リリースされるのを楽しみにしています。
ただし、ファイルシステム オプションのもう 1 つの優れた点は、暗号化されたディレクトリを他のユーザーと共有できることです (チャットの記録や関連ファイルはこのように保存されます)。また、認証されたユーザーから公開共有ディレクトリにアクセスできます。
Keybase は、使用するためのトレーニングが少なく、独自仕様で制限されたインフラストラクチャへの依存が少なく、安全な部分の所有権が強化された、ユーザー中心の暗号化の未来を垣間見ることができるものです。
現時点では、準招待制となっています。Keybaseは定期的に新規アカウントの開設を行っていますが、無料ストレージを悪用するスパマーを防ぐため、必ずしもアカウント作成の機会が提供されるとは限りません。招待が必要な場合は、私のように既にKeybaseアカウントを持っている人を探してください。
訂正: このコラムでは当初、Keybase がチャット システムとファイル システムの暗号化に PGP を使用していると述べていましたが、これは同じ Keybase コア ID にリンクされた、異なる公開鍵/秘密鍵アルゴリズムです。