Keybase.io 使ってみた

数ヶ月?くらい前に耳にして招待の待ち行列に並んだ記憶は残ってたのだけど、すっかり忘れてた Keybase.io というサービスがあるのですが、突然招待が届いたので、一通り登録して使ってみました。

1 年以上前からあるサービスみたいなので、少し乗り遅れた感はあるのですが、折角このタイミングで使えるようになったんだから仕方ない。

(改めて) 免責: 本稿における内容は全て著者の理解に基づくもので、内容の正確性は一切保証されません。以下の内容を参考にした行動について、著者は一切の責任を負いかねます。

Keybase.io はいわゆる公開鍵基盤と呼ばれる類のもので、個人がアップロードした PGP 公開鍵と様々なソーシャル アカウントを確実な形で紐付けることで、鍵を保持する個人の証明を行うことができるサービスのようです。

基本的な仕組みとしては全く真新しいものでもない (というか、もっと原始的で確実な手法もあるし…) ですが、個人的には、

  • ソーシャル アカウントに特化した個人証明
    • (それに付随して) 任意のソーシャル アカウントがあればすぐ使える
  • 手軽なインターフェイス (Web / コマンドライン クライアント)

という点がサービスとして優秀であると感じました。

鍵の登録

とりあえず自分の公開鍵を登録 (or 鍵ペアを作成) するのですが、その後に秘密鍵のアップロードも任意で求められます。

セキュリティ的にちょっと心配な感じもありますが、クライアント サイドで暗号化して、その結果を送信しているらしい (実際、送信フォームの挙動も JavaScript でゴリゴリやってる感じ) です。なので、秘密鍵自体をサーバが保持している…みたいなアレな感じのシステムではないと思われます。

あるいは、秘密鍵を送信せず、公開鍵のみアップロードするという選択肢もあり、その場合は Web インターフェイス上での処理 (後述) ができないので便利さがかなりスポイルされてしまう感じではありますが、単純な GPG のフロントエンドとして動作するコマンドライン クライアントで十分便利に使うこともできるみたいです。

個人証明

鍵を登録したら、続いてソーシャル アカウントとの紐付けを行うことになるのですが、現状、Twitter や GitHub などの各種 Web サービスや、あるいはドメイン名などと紐付けることができるみたいです。

で、証明の手法が面白くて、Keybase が生成するデータ ― こんなの (Twitter) とか こんなの (GitHub) とかを自分のアカウントで投稿して、それを確認してもらうことで個人の証明とするみたいです。

なんとなく、フローが現代っぽくて興味深いですし、検証についても一回限りというわけではなく、投稿したデータは一定期間ごとに内容のチェックが走るようなので、そこら辺の雑なメールの送受信による証明よりはよっぽどまともではないかと思われました。

ちなみに、ドメイン名の所有証明には DNS の TXT フィールドを使うこともできる (もしくは静的ファイルの設置) のですが、その際に、@.domain-name.example が SPF レコードとかで既に専有されている場合は、

1
2
"v=spf1 include:foo.bar.example ~all"
"keybase-site-verification=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

のような感じで複数行 (レジストラのインターフェイスによって表現が違うかもですが…) にしてやることで併置させられるみたいです。

インターフェイス

上部のヘッダ メニューには、テキストの暗号化・復号化、署名および署名の検証を行うリンクが並んでおり、ここから表示されるフォームにデータを入力するだけで、簡単に Web 上で処理を完結させることができるようになっているみたいです。

Keybase のユーザページ (例えば私の) には、暗号化署名の検証のフォームへのリンクだけでなく、ここでユーザを track することもできるみたいです ― 感覚的には follow のようなものでしょうけど、システム的には keychain に追加するイメージのほうが本来的かと思われます。

また、各所でコマンドライン クライアントで同等の操作を行う例も掲示されているので、コマンドライン版での操作にもそう迷うことはないかと感じました。

ソーシャル アカウント連携

前述のとおり、Keybase アカウント (と登録した PGP 鍵) は各種ソーシャル アカウントと紐付けて個人証明を行うわけですが、従って、任意のソーシャル ネットワークのアカウント名、たとえば Twitter のユーザ名さえ知っていれば、簡単にその人に向けた暗号化メッセージを作成したり、署名を検証することができるようになっています。

ヘッダのユーザ検索ボックスであったり、あるいはメッセージの暗号化フォームでの Recipient 欄でユーザ名の補完が効きますが、ここでも何か 1 つのソーシャル アカウントさえ知っていればユーザを選択できるようになっているので、便利な感じが出ていて好印象です。

結び

正直なところ、PGP システムによる各種暗号メッセージ処理は、(少なくとも自分は) 特定分野を除くとあまり積極的に使う場面がありませんでした。このサービスは一連の作業が Web 上で完結しており、また、ソーシャル ネットワークと密に接続されていることで、自分のような今まであまり積極的に使ってこなかったユーザの (特にカジュアルな用途で) 利用への障壁を下げてくれそうな感があります。

この手の分野にはあまり明るくないので、既にこういうきちんと整った (というと語弊がありますが) サービスも、私が知らないだけで世にたくさんあるのかもしれませんが、Keybase は現状 β リリースにもかかわらずそれなりにうまく纏まっており、かつ取っ付きやすさも感じられる (主観) ので、ユーザ登録が開放されることで、より普及する素地はあると思います。既存の大規模なソーシャル ネットワークとの相乗効果があってこそのサービスですし、早く一般開放してほしいところです。

Invitation Available

招待枠をいくつか持っているので、興味のある方は Twitter 等でお声掛けいただければ先着で招待します。