会社でパスワードマネージャーを導入する際、数多のパスワードマネージャーから採用候補を選ぶ必要がありました。
ここで絞り込んででてきたのが、おそらく最もスタンダードな 1Password と LastPass でした。
今回目的としていた利用用途はクラウドベースのパスワード管理だったので、機能面ではどちらを選んでも致命的な差はありません。しかし今回重要視していたセキュリティーの面で、両者には大きな違いがありました。
セキュリティー・ホワイトペーパー
1PasswordとLastPassはどちらもセキュリティー設計についてのホワイトペーパーを公表しています。
暗号鍵がひとつか、ふたつか
1PasswordやLastPassなどのパスワードマネージャーは登録したパスワードを暗号化し保存してくれるのですが、その際暗号鍵としてユーザーにひとつの「マスターパスワード」を入力してもらって、それがなければ暗号化された登録情報を読めないという仕様になっています。
そして1PasswordやLastPassに共通するセキュリティー仕様として「暗号化や復号の処理はクライアント上でのみ行い、サーバーは一切復号に関知しない・できない」ようになっています。
つまりこれらのパスワードマネージャーに登録された情報は、マスターパスワードがなければどうやっても読み出すことができないという安全仕様になっているのです。
多要素認証に重要な違い
さて、ここでホワイトペーパーを見るとどちらも同じようなセキュリティー機構を採用しているのですが、両者が備える多要素認証、つまりパスワードの他に別の認証要素を要求する機構に特徴的な違いがありました。
この多要素認証は、ご存知の方には耳にタコかもしれませんが「パスワードは漏洩するかもしれない」という前提の元、ユーザーの持つデバイス(スマートフォンやPCなど)自体を追加の認証要素にしよう、パスワードと一緒にそのデバイスが手元にないと認証できないようにしようという仕組みです。
この他要素認証においてLastPassが一般的な多要素認証をそのまま採用する中、1Passwordは「シークレットキー」と呼ばれる128bit以上の共通鍵を使用する特殊な方法になっていました。この仕様は実際のところ多要素認証とは趣を異にするものであり、1Passwordも実際に「多要素認証のかわりにシークレットキーを採用した」としています。
「認証要素」としての多要素認証
多要素認証は複数の方式がありますが、近年様々なサイトで見かけるようになった30秒ごとに書き換わるコードを入力して認証する Time-based One-time Password (TOTP) を筆頭に、その仕様はいずれも「サーバー側に認証情報の登録を必要とする」ものになっていました。たとえばTOTPではコード生成用の鍵をサーバー・クライアントの双方に保存しておく必要があり、サーバーはそれを認証時に読み取れる必要があるのです。
「追加の暗号鍵」としてのシークレットキー
反面シークレットキーはユーザーごとに固有の固定値であり、この値そのものはサーバー側に保存される必要はありません。クライアントサイドでマスターパスワードと合わせて計算した認証鍵によって認証が行われ、サーバーはシークレットキーを知る必要がないのです。
ユーザーもまたこのシークレットキーを覚える必要はなく、各デバイスにはログインする際に1Passwordアプリケーションにシークレットキーが保存されます。そのためユーザー目線では引き続きマスターパスワードの入力だけで情報を開けるようになります。
さて、では1Passwordはこのシークレットキーを何に使っているのかというと、認証に加えて暗号化を強化するために使っているのです。パスワードなどの登録情報を暗号化する鍵を生成する際、マスターパスワードとシークレットキーを掛け合わせてより強力な鍵を生成しているのです。
なぜシークレットキーがよいのか
この特性は原理上LastPassの多要素認証では実現できないものであり、現にLastPassのホワイトペーパーでも暗号鍵の生成にはマスターパスワードのみが利用されています。
この場合、暗号を破るのにLastPassではパスワードのみがあればいいようになっているので、暗号データとパスワードが流出してしまうともう手立てはありません。
反面シークレットキーの仕組みであれば、暗号化の解除にシークレットキーの所有も欠かせなくなるため、より安全性を確保できるのです。
おわりに
ここでは最も顕著な違いであったシークレットキーについて取り上げました。冒頭で述べたパスワードマネージャーの選定ですが、セキュリティーを検討する上で実際にこのシークレットキーの仕様が決め手のひとつとなり1Passwordの採用へと至りました。
他にも両者にはアカウントのリカバリー(パスワードを忘れたアカウントの復活)などにも違いがあり、ホワイトペーパーで細かな仕様が紹介されているのでぜひご一読をおすすめします。特に1Passwordのホワイトペーパーは様々なセキュリティーリスクへの対策や限界などについても詳らかにされており読み応えがあります。