とあるところでMFA(Multi-Factor Authentication)への対応方法の説明で、
ワンタイムパスワード方式で使うアプリとしてWinAuthが例示されていた。
Google Authenticatorを差し置いて筆頭で書かれているのだが、
聞いたことがないので調べてみた。
調べたらすぐにわかったのだが、Windowsで動く認証アプリだった。
機能的にはGoogle Authenticatorとほぼ同じ。
それと同じことがWindows上でできるだけのことである。
WindowsでTOTPを表示させるという発想がなかったのだが、
そういうアプリがあって、そういうニーズがあるということらしい。
どうも説明を読むと、クラウドアプリケーションを使うPCでWinAuthを導入し、
WinAuthでTOTPをコピーして、クラウドアプリにペーストして使うと。
そういう使い方を想定しているようである。
このため2要素認証の1つがPCの中に搭載されてしまうのがセキュリティ強度として弱いかもしれないみたいな指摘は書かれていた。
ただ、クラウドアプリへのログイン認証の強固化にはけっこう効くかもしれない。
MFAを使わなければ、ID・パスワードが揃えばどこのPCからでもログインできる。
ワンタイムパスワード方式にすると、ワンタイムパスワードの生成器も必要となる。
その生成器がスマートフォンなのか、クライアントPCなのかはわからないが、
これらの実体をハードウェアを持っていない人が不正にログインすることは困難になる。
一方でPC自体を認証器にするのにワンタイムパスワードを使うのも違和感はある。
例えばTLSクライアント証明書とか。(cf. クライアント証明書で通す)
ただ、こういう仕組みは想定していないようである。
FIDOセキュリティキーを使う方法だと実質的にそんな感じになるのかも。
セキュリティキーはUSBやNFCで必要時に接続して使うことが想定されているが、
ところによってはクライアントPCに固定する形で使っているかも知れない。
こうするとクライアントPCからのログインのみ通すというのに実態として近くなる。
というわけでPCを認証器に使うというのも意味はあるが、
それならそれでもっといい方法があるんじゃない? とは思った。
ただ、他の方法との互換性を考えればこれが使いやすいというのも理解できる面はある。
まぁデスクトップPCだとデバイス自体の盗難対策はやりやすい面もある。
鍵で固定するとかそういう対策が効果的なので。
その点では認証器としてデスクトップPCを使うことは必ずしも悪くはない。
ただ、他のPCからログインする場合など、認証器を持ち運べないことの不便さもあるかもしれない。
スマートフォンを認証器に使うなら、そのスマートフォンの管理体制の問題もある。
そこら辺を考えてどれがよりよい方法かは考えるべきなのだろう。
少なくともWinAuthはスタンドアロンでワンタイムパスワードを管理できるという点では効果的である。
HMAC-based TOTPはソフトウェア的に容易に計算できるので、
ワンタイムパスワードのマネージメントをクラウド上で行う仕組みもある。
Authyとか1passwordがそのような仕組みを使っているとか。
しかし、この場合はワンタイムパスワードを管理するサービスの管理が問題になる。
ここが他の人に盗まれてしまっては結局意味がないというわけである。
スタンドアロンならその端末が盗まれなければとりあえずよいと言える。
その点ではWinAuthを使えば、これで妥当だという説明はしやすいと思った。