パスワード管理ツールとして人気の「1Password」が採用するメタデータ管理用のAgile Keychainに、条件次第でユーザーのプライバシー情報を第三者に盗み見されるおそれのある脆弱性があることが指摘されています。

1Password Leaks Your Data

http://myers.io/2015/10/22/1password-leaks-your-data/

Microsoftのソフトウェアエンジニアのデール・マイヤーズ氏は、パスワード管理ツール「1Password」を使っている中で、個人データが漏れ出る恐れがある脆弱性を発見しました。

マイヤーズ氏によると、1Passwordがデータ保管フォーマットとして取り入れている「Agile Keychain」の「.agilekeychain」ファイルの中には、「1Password.html」という名前のファイルが含まれているとのこと。このファイルにHTTP経由でアクセスするとグレイページが開かれ、パスワード入力画面でパスワードを入力すると、自分の保存するデータを閲覧することができるようになっています。

この仕組みの下では、ユーザーのキーチェーンページのリンクURLを知っている誰もがリンクを修正することで「1Password.agilekeychain/data/default/contents.js」というファイルにアクセスできるところ、このファイル内には1Passwordで管理しているサイト情報が暗号化されていない平文でメタデータとして保存されているとのこと。このため、ファイル内のメタデータにアクセスすれば、ユーザーがどんなサービスのアカウントを保存しているのかは丸裸になるそうです。



By Blake Patterson

さらに都合が悪いことに、1Passwordでは、ログイン場所がキーチェーンにエントリーされる仕組みが採られているとのこと。例えば、「https://example.com/login」にサインインした場合、このリンクがキーチェーンのエントリーに保存されるそうです。

マイヤーズ氏は自身が使用しているISPのセキュリティ上のバグが原因でパスワードをリセットする必要があったそうですが、パスワードリセットのためにメールで送られてきたリセット用URLリンクが1度使用された後でも有効化されている状態にあり、パスワード再設定後に、再びリンクURLをクリックすることでパスワードを再度リセットできる状態だったそうです。マイヤーズ氏によると、これはISP側の設定上のミスではあるものの、このようなミスは珍しくはないとのこと。



上記のようにパスワードリンクを再度踏むことができる場合、1Passwordは認証情報だけでなくパスワードリンクページについてもメタデータとして保存するため、第三者は平文のデータであるパスワード変更リンクにアクセスすることができるわけで、パスワードリンクからパスワードを再設定されればアクセス権限を奪われてしまうことに。

マイヤーズ氏は1Passwordを提供するAgileBitsに、上記の脆弱性について報告したところ、「この脆弱性については認識しているが、仕様である」という回答を得たとのこと。1PasswordのAgile Keychainが開発された数年前には、メタデータまで暗号化すると、データにアクセスする際にはすべてのメタデータを復号化してから必要なデータを検索することになり、動作が重くなるためこのようなメタデータは暗号化されないという仕様が採用されたそうです。

1Passwordが現在のシステムを変更しない限り、利用するサービスなどの情報が流出するのを防ぐには、ユーザーのキーチェーンページのリンクURLが第三者に知られないように注意して管理しなければいけないようです。