二段階認証は片方の時刻がずれていると機能しない?
とあるサイトにログインする時、Googleの二段階認証でログインをするように設定していたので、スマホのGoogleの二段階認証用アプリを開き、そこに表示される番号をサイトに入力し、ログインしたのですが、二段階認証アプリ(スマホ)はオフラインなのにもかかわらず二段階認証を突破できました。
てっきりオンライン上で、双方の端末の時刻(計算するタイミングなど)を合わせて計算した結果を出す仕組みで、オンラインにしてないと使えないのかと思ってました。
しかし、実際はスマホはオフラインにしてても大丈夫でした。
以下のページにはこのように書かれています。
>Google 認証システムの仕組み
https://sekika.github.io/2016/03/26/GoogleAuthenticator/
>Google 認証システムで採用されているRFC 6238の時間ベースのワンタイムパスワード (TOTP)は、サーバーとクライアントで共有する秘密鍵と現在時刻から、確認コードを計算するアルゴリズムである。
>ここで、サーバーとクライアントではそれぞれNTPのような仕組みによってある程度正確に現在時刻を得ることができるという前提であり、RFC 6238では通信のタイムラグと時刻のずれを調整するための仕組みを実装することが推奨されている。
なら片方の端末に、時刻の大幅なズレがあると、結果が一致しなくなり、認証できなくなる?
この時刻というのは、時計として確認できる時刻のことで間違いないですか?
だとすると、二段階認証も脆弱なのでは?
なぜなら、各端末の時刻を狂わすウイルスなどがバラまかれて、時刻表示・機能がバラバラになったら、このアプリの機能・計算結果は破綻するから。
少なくとも、この方式での二段階認証の話ですが。
よく色んな所で二段階認証の設定を推奨されているけど、使うのめんどくさいから、ほぼ使ってません。
スマホを交換(買い替え)する時に、二段階認証をオフにしてから変えないと、二段階認証を設定していたサイトにログイン出来なくなるリスクもあるんでしょう?
二段階認証を設定してなくても、被害に遭ったことは無いのに対して、機種変とかの時に二段階認証を設定してることを忘れていて機種変して、ログイン出来なくなるリスクの方が多いと思います。
あくまで個人的には、の話ですが。
そのように考えると、二段階認証のセキュリティーというのは、微妙ですね。
少なくとも、Googleの認証アプリでの二段階認証は。
以上、よろしくお願いいたします。
補足
ヘー?こんなテクニックも取り入れているのでしょうかね。 一度スマホを持参していって試してみます。