アカウント番号というラベルの付いたフィールドは自動的に公開の参照情報ではありませんし、ラベルがテストではありません。テストは、所持によって何ができるかです。番号を知ることで誰かがサインインし、接続プロファイルがダウンロードされ、またはデバイスが承認されるなら、その番号はライフサイクルを持つ資格情報です。サービスが数値の識別子を発行して無害と呼ぶたびに、私は以下の五つの確認を行います。それぞれが短い記録に一行を生み、その記録こそが成果物であって、製品への評決ではありません。

所持が実際に何を許すかを棚卸しする

番号が解錠する行為を一つずつ書き出します。ポータルへのサインイン、設定ファイルの取得、新しいデバイスの承認、受け入れられたトンネルログインの提供は異なる権限であり、サービスは一つを他なしで実装できます。番号を唯一のフィールドとして受け付けるポータルは、 トンネルがピアをどう認証するか 後で、あるいはトラフィック鍵がどう導出されるかについては何も語りません。

一般モデルは簡単に述べられます。bearer 資格情報とは、保有者が別個の暗号鍵の所持を証明せずに使えるものであり、それが RFC 6750 がトークンについて引く区別です。これは比較であって、番号ベースのサービスが OAuth を実装しているという主張ではありません。保有者が他に何も必要としないなら、番号を bearer の秘密として扱い、設計の残りをそれに応じて分類してください。

参照情報ではなく秘密として保護する

保管は分類から従います。サインインさせる値はパスワードマネージャーに入れるもので、スクリーンショット、クリップボード履歴、チャットメッセージ、ブラウザのメモに入れるものではありません。スクリーンショットはよくある漏洩です。番号は短く無害に見えるため、それが由来したデバイスより長く生き残るサポートスレッドに残ります。

フィッシングはもう一つの失敗モードで、番号がどれほどランダムかは関係ありません。値を欲しがる詐欺師はフォームに貼り付けるよう求めますし、決して失効せず第二要素のない資格情報は努力に値します。サインイン経路にはブックマークか既知のアドレスから到達し、番号も求めるメッセージのリンクからは到達しないでください。

回復用の素材を秘密の一部として扱います。事業者が回復コード、PIN、またはアカウントをリセットできるメールアドレスも発行したなら、それらは同じ保護要件を持つ別の資格情報です。保護されていないリセット経路が一つあるだけで、他のすべての制御は飾りになります。

推測への耐性と速度制限を一緒に確認する

長さは生成方法の隣でしか意味を持ちません。予測可能な列から作られた長い番号は、暗号生成器から出た短い値より弱く、印象的な桁数は予測不能性を証明しません。どれほど推測しにくいかを論じる前に、値がどう生成されるかを尋ねてください。

推測への耐性だけでは、無制限の試行速度にも耐えません。重要な制御は事業者が実装するものです。失敗回数のカウンタ、ロックアウト、送信元ごとの制限、そして誤った番号が存在しない番号と区別できるかどうかです。サービスが対応していれば、一度の失敗でエラーの形と再試行カウンタの有無が分かります。

# one attempt, then read the response and any counter or delay
# do not script repeated guesses against a live account
curl -i -X POST https://portal.example.invalid/login -d "account=000000000000"

応答が何を明かすかを記録します。未知のアカウントに対する別個のエラーは、番号が推測不能でも列挙オラクルであり、その発見は、クライアント側で直せるかどうかに関わらず記録に属します。

必要になる前にローテーションと失効を計画する

紛失または露出した番号についてのサポートされた手順を見つけ、すべてが動いているうちに書き留めます。アカウントの資格情報はそもそも交換できるのか。交換は既に登録されたデバイス、有効なセッション、ダウンロード済みの設定を無効にするのか。手順はどの回復素材を要求するのか。メール依存のないサービスは利用者により多くの回復責任を移すことがあり、それは手順をより重要にします。

アカウントの交換と資格情報の失効を分けます。番号が鍵、証明書、プロファイルのダウンロードを承認するなら、番号を交換してもそのダウンロード済み素材は有効なままかもしれませんし、ダウンロード済み素材の失効は別の所有者による別の操作かもしれません。変更された一つのフィールドがすべての接続を終わらせると仮定しないでください。事業者の実際のモデルを確認し、どこで検証したかを記録してください。

決定を文書化し、後で再確認する

サービスごとに一ページの記録を保ちます。番号が与える権限、保管場所、リセットできる人、利用の証拠、開示後の最初の一時間に何をするか。その記録が、用語についての議論を誰かが監査できる決定に変えます。

プライバシーの主張には独自の範囲が必要です。ランダムに生成された番号でも、時間をまたいでアカウントの出来事を結びつける安定した識別子になり得ます。予測不能性は非連結性ではなく、どちらの性質も保持されたネットワークメタデータについては何も語りません。サインイン画面のフィールドを数えるのではなく、設計全体を比較してください。

記録する前に:

  • 番号が与えるすべての権限が、ダウンロードとデバイス承認を含めて列挙されている。
  • 保管経路と回復経路が、番号自体と同じ基準で保護されている。
  • 生成方法と速度制限が既知であり、長さから仮定されていない。
  • 交換手順と失効手順が存在し、どちらがどちらを無効にするかを知っている。
  • 記録が、誰が値をリセットできるか、使用後にどんな証拠が残るかを示している。

関連記事