世界を動かす技術を、日本語で。

頻繁な再認証はセキュリティを向上させない

概要

Tailscale はシームレスな セキュアアクセス を目指すが、頻繁なログイン要求は逆効果となりやすい。 再認証 の頻度を増やす従来の考え方は時代遅れ。 リアルタイムなセキュリティチェック で、ユーザーの負担を減らしつつ強固なセキュリティを実現。 OSの画面ロック継続的な検証 がより効果的な手法。 Tailscale のアプローチは、ユーザー体験と安全性の両立を重視。

頻繁なログイン要求は逆効果

  • セキュリティツール は本来ユーザーの生産性を妨げない設計が理想
  • 頻繁な ログインプロンプト は作業の中断・ユーザーのフラストレーション・セキュリティ低下を招く
  • パスワードだけならまだしも、 MFA (多要素認証)の繰り返しは大きな負担
  • MFA疲労攻撃 (MFA fatigue attack)のリスク増加
  • パスワード変更や頻繁な再認証は、かえってセキュリティを弱める場合が多い

本当に確認すべきこと

  • 認証は大きく分けて2つの目的
    • 端末の所持確認 (例:Windows Hello PIN、YubiKey、スマートカード)
    • 本人確認 (例:パスワード、Face ID、Touch ID)
  • IdP(Identity Provider) は主に本人確認に注力
  • AppleのFace ID/Touch IDWindows Hello は両方を同時に満たせる
  • 頻繁な再ログインは、 管理者が即時反映に自信を持てない ために導入されがち
  • SAML等の仕組みでは ポリシー変更の即時反映が難しい ことが原因

頻繁なログインが間違っている理由

  • 攻撃者の大半は遠隔 からのフィッシング攻撃
    • パスワードが漏れている前提でシステム設計が必要
    • 第二要素認証 が最大の防御策
  • 物理的な攻撃も考慮するが、 OSの画面ロック が有効
  • 頻繁な再認証は 攻撃者に認証情報を盗む機会を増やす だけ
  • OSの画面ロック で十分な場合が多い
  • Webセッションの短期失効 は現代の利用環境ではほとんど意味がない
    • 銀行など一部の高感度サービス以外では、 セッション期限の設定は形骸化

正しいセキュリティの実践方法

  • 必要な時だけ端末所持を確認
    • 例:Tailscale SSHのcheckモードやSlack Accessbot
    • 本当に必要なタイミングだけユーザーの存在を確認
  • OSの画面ロック設定を厳格に
    • 指紋や顔認証での解除が容易なため、積極的に活用
  • 継続的な検証(Continuous Verification)
    • 頻繁なログインではなく、 リアルタイムなデバイスポスチャチェックSCIMベースのアクセス制御 を活用
    • デバイスがオフライン・紛失・セキュリティチェック失敗時に即時アクセス剥奪
    • 役割や雇用ステータス変更時も自動でアクセス権更新

ユーザー体験を損なわない最適なセキュリティ

  • 頻繁なログインは ユーザーの悪習慣 (パスワード使い回し、フィッシングリンククリック、MFA疲労)を助長
  • 静かに機能するセキュリティ こそ最良
  • Tailscale は「適切なタイミングで最小限の認証」を重視
  • tsidpやApp Connector経由で他アプリへの リアルタイムセキュリティチェックの連携 が可能
  • SCIMやデバイスポスチャ非対応のレガシーアプリにも対応

まとめ:賢いセキュリティのすすめ

  • 頻繁な再認証は セキュリティシアター に過ぎない
  • リアルタイムな継続的検証OSの画面ロック の活用が現代の最適解
  • ユーザビリティとセキュリティの両立を目指す Tailscaleのアプローチ を推奨

Hackerたちの意見

頻繁な再認証は、セキュリティを大幅に向上させるわけじゃないよ(すごく長い有効期限がない限りね)。でも、ちゃんとした認証システムなら、セッションを取り消す機能は持ってるべきだよ。期限切れやユーザー/デバイスによってね。実際には、セッションを取り消したい時から、そのセッションが何にもアクセスできなくなるまでの遅延が、再認証の頻度よりも重要だと思う。これは認証方式やアーキテクチャの複雑さによって特に厄介になるんだよね。

それには再認証は必要ないよ。既存のトークンを更新すればいいだけ。認証と認可のタイムアウトを分けてね。

だからリフレッシュトークンが必要なんだよ。実際のトークンは定期的に期限切れになるけど、クライアントには新しいトークンを取得するためのトークンがある。取り消すっていうのは、新しいトークンを取得させないことなんだ。

頻繁な再認証は、結局人々がそれを回避するためのハックを考え出すだけだよ。パスワードが書き留められたり、Google Docsにパスワードが保存されたり、Yubikeyにサーボが付いたArduinoが使われたり、SMSがメールに転送されたり、TOTPコードがWeChatで送られたり、もういろいろだよ。

ちょっとこの辺りについて考えてたんだけど、うちの職場では二段階認証みたいな感じなんだ。1日に1回か多くて2回、ADFS + MFAを使ってKeycloakにログインして、その後ほとんどのシステムがOIDCプロバイダーとしてKeycloakに依存してる。トークンの有効期限は10〜15分くらい。このやり方だと、通常は1日に1回ログインするだけだけど、VPNが必要なサービスに関しては15分以内に誰かのアクセスをすべて消去できるんだ。ユーザーは通常の操作中にはあまり気づかないけどね。

うちのクライアントは、ほぼすべてのシステムで30分のタイムアウトを設定してる。Jiraを使うのが嫌なのに、チケットを確認するたびにログインしなきゃならないのは本当に最悪だよ。それで結局、実際の仕事をせずにHacker Newsを見てることになっちゃう。

提出する時にログインを求められるために、30分かけて書いたものが台無しになるほど最悪なことはないよね。幸い、最近のほとんどのサービスは作業内容をキャッシュしてくれるけど。

企業のIT部門は、まだNヶ月ごとにパスワードを変更させるんだよね。最大セッション時間を1日以上に延ばすように言ったら、どこかのVPが脳卒中起こしそう。

情報セキュリティを正しくやるインセンティブはほとんどないんだよね。誰もそれができてるかどうかわからないから、実際にやろうとする人も少ない。結局、彼らの尻を守るためのパフォーマンスに過ぎなくて、状況によってはそれを認めることもある。こんな馬鹿げたポリシーを変えたくないのは、何十年も逆効果なポリシーを強制してきたことを認めることになるからなんだ。

現代のIT組織では、2000年代中頃から定期的なパスワード変更を義務付けてるところはないよ。

これはすべてパフォーマンスで、彼らができることをやっているというアイデアを売り込むためのものなんだ。何か問題が起きた時には、責任を転嫁できるしね。

フィッシングリンクをクリックして、M365に再ログインするように求められると、ためらわずにログインしちゃうよね。だって、1日に5回もこういうのやってるから。もし仕事をするために常にログインしなくて済むなら、もっと多くの人が立ち止まると思う。

これがあるからApple製品が嫌いなんだよね。Apple製品全体にこのパターンが見られる。僕のMacでは、Touch IDを設定してApp StoreでAppleアカウントにログインしてるんだけど、アプリをインストールしようとすると、毎回パスワードを求められるんだ。Touch IDを使わせてくれればいいのに。無料アプリでも同じことが起こるから、もう本当に馬鹿げてる。妻のiPhoneでもちょっと見たけど、結局Appleは何も変わってない気がする。アプリをインストールするたびに、Touch IDでセキュリティがかかってるのに、何度もパスワードを求めてくる。特に電話をリセットして最初からやり直すと、Appleのパスワードを何度も求められるんだよね。

しかも、Apple以外のデバイスでAppleサービスにアクセスする時はさらに最悪。icloud.comにログインする時に「デバイスを信頼する」を何度クリックしても、次の日にはまたパスワードとワンタイムコードを求められる。無駄なイライラだよね。支払いをする時やアプリをインストールする時にFace IDが失敗すると(寝てたりサングラスをかけてたりする理由でよくある)、PINに戻るんじゃなくてAppleアカウントのパスワードを入力させられる。なんで?そのプロンプトが出てる時にパスワードマネージャーを開く方法もないし、完全にキャンセルしないといけないから、チェックアウトの時は本当に楽しい体験だよね。

本当に?新しいデバイスを手に入れない限り、再認証なんて必要ないよ。

それに、macOSとAndroidの両方で、デバイスのロック解除に時間がかかることがあるんだよね。たまに「Touch IDを有効にするにはパスワードが必要です」とか「しばらくパターンを使ってないから追加のセキュリティが必要です」みたいなクソみたいなメッセージが出て、無効にする方法がないのが本当にイライラする。俺のデバイスなのに、何をすべきか教えてくるなんておかしいだろ。俺が何をするか決めるんだよ、従えよ、絶対に。リスクは自分で評価するから、余計なお世話だよ。

それと、iPhoneをMacに接続して同期するたびに「このデバイスを信頼しますか?」って聞いてくるんだよね。MacとiPhoneの両方で。俺は「はい」とクリックするのに、次回また聞いてくる。

子供が使っているすごく古いiPadがあるんだけど、iOS 10.3に固定されてるんだ。それに、パスワードマネージャーも使えない。ブラウザが古すぎてウェブサイトが読み込まれない(32ビットアプリ)。で、PWマネージャーのアプリはこんな古いデバイス用には作られてない。だからAppleは、App Storeアプリを使うたびに50文字以上のパスワードを入力させようとしてくる。ほんと面倒くさい。

たまにパスワードを要求されるのは驚かないよ(俺の場合、週に1回か2回くらい)。そうじゃないと、みんなパスワードを忘れて文句を言ってくるからね。俺が問題だと思うのは、誰がパスワードを求めているのか、なぜ必要なのかを説明してくれないこと。代わりに、Appleは人々に無意識にパスワードを入力させるように仕向けてる。なんでこんな馬鹿げてて危険で逆効果なことをしてるんだろう?

業界全体のITセキュリティは「IBMを買ったことで誰も解雇されない」という現象に動かされてる。物事が壊れてても関係ない。ルールに従ってやったかどうかが重要なんだ。そしてそのルールは30年前に書かれたもので、全然不十分なんだけどね。でも、情報セキュリティのVPに「従業員が3ヶ月ごとにパスワードを変える必要はない」って納得させるのは難しいよ。

これの裏側として、以前住んでいた家にRingのドアベルがあったんだ。引っ越して元カノと別れたんだけど、数年後に新しいRingのドアベルを取り付けたら、インストールしてすぐに彼女から「新しいRingカメラから通知が来てる」ってメッセージが来たんだ。どこかに放置されたアカウントがあって、再認証を求めないせいで敏感な情報が漏れてるんじゃないかって考えるとちょっと怖い。iMessageが一番の問題だと思う。SMSメッセージが時々iCloud経由で送信されて、昔のAppleデバイスで見られることがあるって理解するのはすごく簡単だよね。iMessageから自分の電話番号を解除しようと5回くらい試したけど、全然うまくいかない。

これらの記事を読むべきなのは監査人たちだよ。彼らの期待が変わらない限り、監査を通過しなければならない多くの企業は、業界標準だけど非常に馬鹿げたことをやり続けることになる。特にセキュリティ監査が重視される特定の分野の小規模ビジネスでもそうなんだ。実際に役に立たないことが分かっている対策を、少なくとも半ダースは導入しているけど、監査人が今は譲らないってことも知ってる。

俺の会社が最近、すべてのMicrosoftログイン(Teamsとか)で毎日の再認証を始めたんだ。最悪なのは、24時間ごとで、始業時じゃないから、会議に参加したいと思った瞬間に再認証が必要になることもある。まだモバイル用の設定は見つけてないから、デスクトップのTeamsは使わなくなるかも。

前に働いてた施設のWiFiシステムがそんな感じだったな。WiFiに接続すると、ゲストポータルに飛ばされてインターネットに繋がる仕組み。ゲストポータルでは、あなたのMACアドレスに24時間のアクセスが与えられるんだ。だから、例えば1日目は9時に出勤して、次の日は8時55分に入ると、5分間だけWiFiが使えるってわけ。でも、その後はすぐに使えなくなって、システムが再認証が必要だって気づくのにちょっと時間がかかるんだよね。

パスワードを何度も要求するのがより安全だとされる理由がわからない。結局同じパスワードなのに。もし攻撃者がそれを見つけて一度入力できたら、何度でもできるはずだよね…。