定義
セッションタイムアウトとは、ウェブサイトやアプリにログインしたあと、一定時間なにも操作しないと、セキュリティのために接続を自動で切る仕組みです。開きっぱなしのアカウントを他人にこっそり使われるのを防ぎ、サーバー(情報を提供するコンピューター)の負担も軽くします。
銀行アプリはなぜ勝手にログアウトされるの?
カフェでノートパソコンのネットバンキングを開いたまま、トイレに行ったと想像してみてください。
画面がそのまま表示されていたら、通りがかった誰かが私のお金を別の口座に送ってしまうかもしれません。こうした事故を防ぐには、席を離れているあいだに自動でドアに鍵をかけてくれる安全装置が必要です。
IDとパスワードを入力してウェブサイトに入ると、サーバーは私たちに、仮の入場券のような「セッション」を発行します。この入場券のおかげで、画面を移動するたびにパスワードを入れ直さなくて済みます。
ところが、入場券を持ったまま何も操作せずにじっとしていると、タイマーが動き出します。決められた時間が過ぎると、システムはユーザーが席を離れたと判断して入場券を破棄します。これがセッションタイムアウトです。
置き去りの入場券を狙うハッカーたち
セッションタイムアウトが防ぐのは、私の画面をのぞき見する人だけではありません。
インターネットの世界には、ユーザーとサーバーがやり取りする信号をこっそり盗み取る攻撃手法があります。もしブラウザに残っているセッションの入場券がいつまでも有効だったら、ハッカーはパスワードを知らなくても、コピーした入場券だけで私のアカウントにアクセスできてしまいます。
これをセッションハイジャックと呼びます。セッションタイムアウトは入場券の寿命を短く区切ることで、たとえ入場券の情報が外に漏れても、それを使える時間を減らします。
おかげで、ハッカーが盗んだ入場券を後から使おうとするころには、すでに無効になった紙切れになっている可能性が高くなります。ただし、有効期間内にすぐ使われてしまえば防げないので、ほかのセキュリティ対策と組み合わせて使います。
もう少し正確に言うと:2種類の時計
実際のシステムでは、2種類のタイムアウトの時計が同時に動いています。
1つ目は、私たちがよく体験する「無操作タイムアウト」です。ページを移動したりボタンを押したりして、サーバーにリクエストが届くたびに、タイマーが最初にリセットされます。使い続けているかぎり、ログインは切れません。
2つ目は、どれだけ画面をクリックし続けていても、決められた時間がたてば必ず再ログインさせる「絶対タイムアウト」方式です。セキュリティがとても重要な金融システムや社内ネットワークでは、席を離れていなくても、数時間ごとに接続を切ります。
さらに、ログインしている大勢のユーザーの状態を覚えておくためにサーバーの記憶装置(メモリ)がいっぱいになるのを防ぎ、システム全体を快適に保つ役目もあります。
よくある誤解
セッションタイムアウトは、アプリやウェブサイトのエラーで弾き出されているのだ。
エラーではありません。ユーザーの個人情報や金融資産を守るために、きちんと計算されて動いている、正常なセキュリティ機能です。
日常で出会う場面
ネットバンキングを開いたまま10分間なにも押さずにいたら、自動的にログアウトされる場面です。
公共機関のポータルで書類の作成をしばらく中断し、保存ボタンを押したらログインページに戻されてしまう現象です。
つまり ひとことで
セッションタイムアウトは、席を離れたときにアカウントを乗っ取られるのを防ぐため、一定時間後に自動で接続を切るセキュリティタイマーです。