セッショントークン
セッショントークン とは何ですか?
セッショントークン認証後に発行される不透明な識別子。クライアントが各リクエストで送り返し、サーバーはそれをキーにユーザーのセッション状態を引き当てる。
セッショントークンは、ステートレスな HTTP リクエストをまたいでユーザーのログイン状態を維持する資格情報です。多くの場合、暗号学的にランダムな文字列をサーバー側(データベース、キャッシュ、署名付き Cookie)に保管し、Secure・HttpOnly・SameSite を付与した Cookie としてブラウザに送信します。サーバーはこれをキーとして、ユーザー ID・ロール・メタデータを保持するセッションストアを参照します。
OWASP ASVS と Session Management Cheat Sheet は、セッション識別子に少なくとも 64 ビットの有効エントロピー(約 128 ビットのランダム値)を持たせ、セッションフィクセーションを防ぐためにログイン時と権限変更時に再生成し、アイドルと絶対の両タイムアウトを課したうえでログアウト時にサーバー側で無効化することを推奨しています。盗まれたトークンはパスワードや MFA すら回避してしまうことが多いため、セッションの窃取は攻撃者に好まれる手口です。Eric Butler が 2010 年に公開した Firesheep 拡張は、オープンな Wi-Fi 上で Cookie をたやすく「サイドジャック」し、業界全体の HTTPS 全面移行を加速させました。また、現代の情報窃取型マルウェア(RedLine、Lumma)は、有効なセッション Cookie を収集してアカウントを乗っ取ります。トークンをコンテキストに束縛すること——JavaScript による窃取を防ぐ HttpOnly、CSRF を弱める SameSite、ネットワーク上の傍受を止める TLS、任意で token binding やデバイスフィンガープリント——が、再送(リプレイ)を抑えます。よくある失敗には、推測可能な ID、URLs に露出したトークン、決して失効しないセッションがあります。
flowchart LR A[ユーザーが認証する] --> B[サーバーが高エントロピー<br/>トークンを生成] B --> C[Set-Cookie: Secure;<br/>HttpOnly; SameSite] C --> D[ブラウザが Cookie を保存] D --> E[リクエストごとに<br/>トークンを送信] E --> F[サーバーがセッション<br/>状態を参照] F --> G[ログアウト / タイムアウト:<br/>サーバー側で無効化]
● 例
- 01
Set-Cookie: SESSIONID=Z6r...; Secure; HttpOnly; SameSite=Lax
- 02
ログイン成功直後にセッション ID を再生成してフィクセーションを防ぐ。
● よくある質問
セッショントークン とは何ですか?
認証後に発行される不透明な識別子。クライアントが各リクエストで送り返し、サーバーはそれをキーにユーザーのセッション状態を引き当てる。 サイバーセキュリティの ID とアクセス カテゴリに属します。
セッショントークン とはどういう意味ですか?
認証後に発行される不透明な識別子。クライアントが各リクエストで送り返し、サーバーはそれをキーにユーザーのセッション状態を引き当てる。
セッショントークン からどのように防御しますか?
セッショントークン に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。