それはワンタイム・パスワードの問題ではない
いやさ
て酷い釣りタイトルだよな,と思いつつモニタにツッコんでしまったよ(笑)
ハッキリ言おう。 それはワンタイム・パスワードの問題ではない。
ワンタイム・パスワードに問題がないわけではない。 NIST SP 800-63B によればスマホの TOTP アプリや専用のワンタイム・パスワード機器は「単要素 OTP デバイス(Single-Factor One-Time Password (OTP) Device)」と呼ばれる。 これはタイプとしては「知識」ではなく「所有」に分類される。 所有型の Authenticator には紛失・盗難のリスクが伴う。 また,基本的に OTP は認証する側とされる側との間で最初にシークレットを共有する必要があり(特にアプリでは)シークレットの受け渡しと管理の問題が発生するが,認証の段階でこのシークレットをやり取りすることはない。
しかし,上の記事の「ワンタイムパスワード」はこれとは異なる。 SMS やチャット・アプリ等を通してサービスプロバイダから使い捨てシークレットを通知し,シークレットをもらったユーザは通知を受けたチャネルとは別のチャネル(大抵はスマホ・アプリかブラウザで表示される Web ページ)でシークレットを返す。 送ったシークレットと返ってきたシークレットを比較して認証を行うわけだ。 こうした仕組みは NIST SP 800-63B の分類では「経路外デバイス(Out-of-Band Devices)」と呼ばれている。
経路外デバイスが筋が悪いのは攻撃者から見て攻撃ポイントが多いことだ。 上の記事で示される事例はまさにそこを突かれて認証を突破されている。
以前に拙文「Authenticator と AAL」で紹介したが,元々 NIST は SMS を使った認証を非推奨(または禁止)にするつもりだった。
しかしその後,色々あったようで,最終的には “RESTRICTED Authenticator” という位置づけまで緩和されてしまった。
でも,結局その「温情措置」が重大なセキュリティ・インシデントを招いているのだから「なんだかなぁ」という感じである。 電子メールや VoIP が経路外デバイスとして NG なら SMS だって NG だろう。
Authenticator による認証には3つのレベル(Authenticator Assurance Level; AAL)があるが,最初の記事の事例にあるような「暗号資産」を扱う重要な決済システムなら AAL3 は必須だろうし,そうであるなら認証手段として経路外デバイスを選択するのはあり得ない。 これは「闇」でも何でもなく,単にサービス・プロバイダが間抜けで迂闊だったというだけの話である。
道具は適切に組み合わせないと所定の性能を発揮できない。 私達エンジニアはこのことを肝に銘じておくべきだし,利用者としても「利便性はセキュリティとトレードオフできない」ことは知っておくべきだろう。
参考図書
- セキュリティはなぜやぶられたのか
- ブルース・シュナイアー (著), 井口 耕二 (翻訳)
- 日経BP 2007-02-15
- 単行本
- 4822283100 (ASIN), 9784822283100 (EAN), 4822283100 (ISBN)
- 評価
原書のタイトルが “Beyond Fear: Thinking Sensibly About Security in an Uncertain World” なのに対して日本語タイトルがどうしようもなくヘボいが中身は名著。とりあえず読んどきなはれ。ゼロ年代当時 9.11 およびその後の米国のセキュリティ政策と深く関連している内容なので,そのへんを加味して読むとよい。