今はサーバへの接続に対して公開鍵認証が一般的になっています。しかし秘密鍵が漏洩したらすべて終わりで、その意味では若干怖い認証かも知れません。最近では二段階認証が流行っており、スマートフォンなどで自動生成されるコードを管理するケースがあります。 今回紹介するKryptoniteは公開鍵認証においてスマートフォンを用いようという試みになります。セキュリティとして新しい試みと言えそうです。

Kryptoniteの使い方

最初の実行時にQRコードが出ます。これをiOS/Androidアプリ側で読み取ります。

こちらはiOSアプリです。

登録が終わると、SSH接続できます。この時、スマートフォン側で認証して良いかという確認が出るようになります。

許可すると秘密鍵を使ってログインします。

Kryptoniteは秘密鍵を別途(恐らくクラウド上)で管理する仕組みと思われます(ここの検証ができていません…)。そしてスマートフォン側で許可すると、その秘密鍵を一時的に開放する仕組みと思われます。ローカルには秘密鍵がないので、万一盗まれたとしても漏洩はしません。利用しようとしてもスマートフォン側で許可しないとサーバにログインできない仕組みです。

後はKryptoniteがどれだけ信用できるかというレベルなのですが、Kryptoniteは今のところオープンソースではないもののソースコードが公開されています。これを自分で立てればセキュリティも自己保証できるようになるでしょう。

KryptoniteはGo製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

Kryptonite - The new way to protect your private key on your phone.