セキュリティ:OTP Pink が守るもの、守れないもの
このページは OTP Pink 拡張機能についてのものです。いまご覧のサイトはそれとは別のもので、訪問数を数えています。その方法は プライバシーのページ にあります。
何から守るか
- パスワードなしでのデータのコピー。 ブラウザの拡張機能用ストレージにある保管庫、自動バックアップ、
.pinkotpのエクスポートは暗号化されています。ブラウザのプロファイルやこれらのファイルのどれかをコピーした人にも、あなたのアカウントについては、保管庫のおおよそのサイズと鍵導出のパラメーター以外は何もわかりません。推測にかかる時間は、選んだパスワードによって決まります。 - 改ざんされたファイルや悪意のあるファイル。 暗号化されたデータ、それに結び付けられたメタデータ、ラップされた各鍵は認証されています。そのどれかが変更されると、保管庫やファイルは誤った内容で開くのではなく、開けなくなります。インポートするファイルは、鍵を導出する前に、サイズ、構造、鍵導出のパラメーターが検査されます。そのため、ファイルによって拡張機能に際限のない計算をさせることはできません。
- ネットワーク。 拡張機能はネットワーク通信を行わないため、データを漏らしたり侵害されたりするサーバーはなく、傍受されるものもありません。
- アクセスするページ。 OTP Pink はどのサイトにも常時アクセスする権限を持っていません。タブを読むのは、そのタブで OTP Pink を開いたあとだけで、それもブラウザがそのタブへのアクセスを保持している間だけです。そこで実行するスクリプトはページを読むだけで通信は行わず、見つけたものは、何かが追加される前にあなたに表示されます。
- 古いパスワード。 パスワードを変更すると、データ鍵が置き換えられ、保管庫が暗号化し直されます。そのため、古い鍵の情報を書き戻しても、古いパスワードで現在の保管庫を開くことはできません。
何から守れないか
- 侵害されたパソコンやブラウザ。 マルウェア、侵害されたブラウザ、または拡張機能をデバッグしたり検査したりできる別の拡張機能は、OTP Pink が表示するものを読み取れます。保管庫のロックが解除されている間は、その鍵も読み取れます。
- 古い状態への巻き戻し、削除、破損。 ブラウザの拡張機能用ストレージに書き込める人は、保管庫の古い、正しく暗号化されたコピーを戻すこと(削除したアカウントが復活します)も、保管庫を削除したり破損させたりすることもできます。自動バックアップは同じブラウザのプロファイルにあり、同じように手が届き、拡張機能とともに削除されます。元に戻す手段は、ブラウザの外に保管しておく
.pinkotpファイルです(バックアップ)。 - 弱いパスワード。 Argon2id は推測を遅くしますが、短いパスワードや使い回しのパスワードを安全にするわけではありません。
- 以前のファイル。 パスワードを変更する前に作られた
.pinkotpファイルや自動バックアップは、作られた時点で使っていたパスワードで引き続き開きます。そのパスワードが漏れたなら、それらを削除してください。 - 暗号化せずに取り出したもの。 暗号化なしのエクスポート、画面に表示した QR コード、印刷したリカバリーシートには、キーがそのまま入っています。クリップボードにコピーしたコードは、そこにある間、ほかのソフトウェアに読み取られることがあります。クリップボードの消去は便利な機能であって、保証ではありません。OTP Pink はクリップボードを読んで中身を確かめることができないため、コードのあとにコピーしたものも消去されます。
- フィッシング。 偽のサイトに入力したコードは、そのサイトにすぐに使われてしまう可能性があります。OTP Pink はいま開いているサイトのコードを先頭に表示しますが、そのサイトが信頼できるかどうかを代わりに判断するわけではありません。
- 保管庫の横に置かれる設定。 小さなデバイス記録が暗号化されずに保存されています:テーマ、自動ロックの時間、時刻の補正、ランダムなデバイス ID、このブラウザが最後に保管庫をエクスポートした日時(エクスポートを促す表示のため、その時点の暗号化された保管庫のダイジェストとともに)とその表示をいつまで後回しにしているか、そしてこのバージョンにはない機能の2つのスイッチです。
暗号化を数字で
- 保管庫は、ランダムな256ビットのデータ鍵を使い AES-256-GCM で暗号化され、書き込みのたびに新しい12バイトのノンスが使われます。暗号文の横に保存されるメタデータも、これによって認証されます。
- データ鍵は、パスワードから Argon2id で導出された鍵でラップされます:メモリ 64 MiB、パス数 3、並列度 1。
- パスワードは8文字以上で、保存されることはありません。
- インポートまたは復元するファイルは、パスワードから鍵を導出する前に検査されます:10 MiB を超えるファイルは拒否され、展開は 16 MiB までに制限されます。
ロック
保管庫は、選んだ無操作時間(1分、5分、15分、1時間、またはロックしない)が過ぎたときと、ブラウザを閉じたときにロックされます。ロックが解除されている間、拡張機能がブラウザのセッションストレージを自身のほかのコンテキストから閉ざせる場合は、データ鍵はそのセッションストレージに保持されます。セッションストレージはメモリ上にあり、ブラウザを閉じると消去されます。閉ざせない場合は、鍵は拡張機能のバックグラウンドのメモリにだけ置かれます。ロックの時間とパスワードの変更については ロックとパスワード にあります。
拡張機能に許可されていること
Chrome と Edge での権限:storage、alarms、activeTab、clipboardWrite、scripting、contextMenus、offscreen、sidePanel。Firefox では:storage、alarms、activeTab、clipboardWrite、scripting、contextMenus。オプションで、設定をオンにしたときにだけ求めるもの:tabs。
- ページ上で: OTP Pink を開いたタブでのみ(ツールバーのボタン、コンテキストメニューの項目、またはご自身のショートカットで開いたとき)。そこでは拡張機能に同梱されたスクリプトを実行し、QR コード、設定用リンク、または文字で書かれた2FAキーを探してページを読みます。何も変更せず、何も送信しません。ブラウザがそのタブへのアクセスを保持している間は、そのタブでページが読み込まれると、もう一度探します。スクリプトが届かない QR を読み取るときは、表示中のタブを画像として取り込みます。
- クリップボード: コピーしたコードを書き込み、あとで空の文字列を書き込んで消去します。クリップボードを読むことは決してありません。
- どのタブでもサイトのコードを表示 — オプションの設定です。オンにすると、ブラウザに
tabs権限を求め(ブラウザはこれを「閲覧履歴の読み取り」または「ブラウザーのタブへのアクセス」と表示します)、アクティブなタブのアドレスだけを読み取り、その内容は決して読みません。サイトが保存されるのは、アカウントに紐付けたときだけです。 - ホスト権限、
webRequest、ページに常駐するコンテンツスクリプトは ありません。コンテンツ セキュリティ ポリシーはdefault-src 'none'で始まり、connect-src 'none'を指定しています。
ご自身で確かめる
約束していること:拡張機能のコードは http:、https:、ws:、wss: のリクエストも、WebRTC の接続も行いません。サーバーに対しても、いま開いているページに対してもです。拡張機能自身に同梱されたファイルの読み込み(chrome-extension://…、moz-extension://…)と、ローカルの data: や blob: のアドレスは、ネットワーク通信ではありません。
- サイドパネル。 Chrome または Edge:パネル内を右クリック → 検証 → ネットワーク。Firefox:
about:debugging→ この Firefox → OTP Pink → 調査 → ネットワーク。このツールボックスは拡張機能のバックグラウンドのものです。サイドバーには専用のツールボックスが必要な場合があります(ブラウザーツールボックスを有効にしたうえで、サイドバー内を右クリック → 調査)。 - バックグラウンド。 Chrome または Edge:
chrome://extensions(またはedge://extensions)→ デベロッパー モード → OTP Pink → Service Worker → ネットワーク。Firefox では、同じ調査のウィンドウでこちらも確認できます。 - 拡張機能を使ってみてください:ロックを解除し、アカウントを追加し、ページ上の2FAキーを探し、コードをコピーし、エクスポートします。ネットワーク タブに表示されるのは拡張機能自身のファイルだけです。
パネルのフッターにあるリンク(301.st、ストア)は、クリックすると新しいタブで開く通常のリンクです。拡張機能がそこから何かを読み込むことはありません。
安全に使うために
- ほかで使っていない長いパスワード。
- パソコンから離れるときの習慣に合ったロック時間。
- ブラウザの外に保管した暗号化済みの
.pinkotpエクスポートと、覚えておいたそのパスワード。エクスポートから30日後、それ以降に保管庫が変わっていれば、パネルが再び知らせます。 - 暗号化なしのエクスポートは取り込みが済んだら削除し、印刷したシートはパスポートと同じように保管してください。