セッショントークン
セッショントークン とは何ですか?
セッショントークン認証後に発行される不透明な識別子。クライアントが各リクエストで送り返し、サーバーはそれをキーにユーザーのセッション状態を引き当てる。
セッショントークンは、HTTP リクエストをまたいでユーザーのログイン状態を維持する資格情報です。多くの場合、暗号学的にランダムな文字列をサーバー側(DB、キャッシュ、署名付き Cookie)で保管し、Secure・HttpOnly・SameSite 付きの Cookie としてブラウザに送ります。サーバーはこれをキーとしてユーザー ID やロール、メタデータを保持するセッションストアを参照します。良いセッショントークンは高エントロピーで、ログイン時や権限昇格時に再生成され、アイドルと絶対の両方のタイムアウトを持ち、ログアウト時にサーバー側で無効化されます。代表的な攻撃はセッションフィクセーション、ハイジャック、推測可能 ID、ログアウト未実装です。
● 例
- 01
Set-Cookie: SESSIONID=Z6r...; Secure; HttpOnly; SameSite=Lax
- 02
ログイン成功直後にセッション ID を再生成してフィクセーションを防ぐ。
● よくある質問
セッショントークン とは何ですか?
認証後に発行される不透明な識別子。クライアントが各リクエストで送り返し、サーバーはそれをキーにユーザーのセッション状態を引き当てる。 サイバーセキュリティの ID とアクセス カテゴリに属します。
セッショントークン とはどういう意味ですか?
認証後に発行される不透明な識別子。クライアントが各リクエストで送り返し、サーバーはそれをキーにユーザーのセッション状態を引き当てる。
セッショントークン はどのように機能しますか?
セッショントークンは、HTTP リクエストをまたいでユーザーのログイン状態を維持する資格情報です。多くの場合、暗号学的にランダムな文字列をサーバー側(DB、キャッシュ、署名付き Cookie)で保管し、Secure・HttpOnly・SameSite 付きの Cookie としてブラウザに送ります。サーバーはこれをキーとしてユーザー ID やロール、メタデータを保持するセッションストアを参照します。良いセッショントークンは高エントロピーで、ログイン時や権限昇格時に再生成され、アイドルと絶対の両方のタイムアウトを持ち、ログアウト時にサーバー側で無効化されます。代表的な攻撃はセッションフィクセーション、ハイジャック、推測可能 ID、ログアウト未実装です。
セッショントークン からどのように防御しますか?
セッショントークン に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
● 関連用語
- identity-access№ 1018
セッション管理
認証済みセッションを発行・維持・更新・失効させる一連のコントロール。ログアウトや期限切れまで、利用者の身元を後続のリクエストに紐付ける。
- attacks№ 1016
セッションハイジャック
セッション識別子を盗用または偽造して被害者の認証済みセッションを乗っ取り、攻撃者が認証情報なしで本人として振る舞う攻撃。
- appsec№ 1015
セッション固定化
攻撃者が事前に既知のセッション ID を被害者のブラウザに仕込み、認証後もそのまま自分が利用できる状態にする攻撃。
- appsec№ 983
Secure Cookie フラグ
Cookie を HTTPS でのみ送信させる属性で、ネットワーク上の平文露出を防ぐ。
- appsec№ 500
HttpOnly Cookie フラグ
document.cookie からのアクセスを禁じて Cookie を JavaScript から隠す属性で、XSS が悪用された際のセッション窃取を抑止する。
- appsec№ 961
SameSite Cookie
クロスサイトリクエストで Cookie を送信するかをブラウザに指示する属性で、値は Strict・Lax・None。主に CSRF 対策に用いる。
● 関連項目
- № 256CSRF トークン