今回の記事は「Eorzea Side (FF14)」をメインカテゴリーとしていますが、スクウェア・エニックス アカウントの話なので、ドラクエ10も共通です。ということで、珍しく両カテゴリーに紐づけしています。
最近、FF14で「ワンタイムパスワードを入れていたのに、アカウントを乗っ取られた」という趣旨の話がTwitterで話題になりました。トレンドにも「ワンパス貫通」なんて言葉が出たりして、さすがにそれはないんじゃないの?と、わたしは思っていました。
結果的に、その方はフィッシングサイトの被害に遭っておられたようです。今は元ツイートも削除されているので、詳細を確認できないのですが、少なくとも何かしらのハッキング行為で「ワンタイムパスワードが破られた」というような事態ではなかったようです。
今回は、ワンタイムパスワードの安全性がどれほどのものなのか、そしてフィッシングサイトなどで情報を盗み取られることなく、「ワンタイムパスワードを破られること」が実際に起こり得るのかどうか、そのあたりのことを書いてみたいと思います。
フィッシングの手口についても注意喚起として、あわせて書いていきます。
ワンタイムパスワードの仕組み
まず、ワンタイムパスワードとは、どういう仕組みなのかを見てみましょう。
スクエニの場合、ワンタイムパスワードの発行手段として、次の4種類が提供されています。
- セキュリティトークン(1,273円で販売)
- ソフトウェアトークン(スマホ要、無料)
追記 2023年8月22日に、2023年11月21日をもって新規登録を終了する旨、告知されました。これから登録する方は、下の「各種認証アプリ」をお勧めします。 - 各種認証アプリ(スマホ要、無料)
- Google Authenticator
- Microsoft Authenticator
以降、セキュリティトークン、ソフトウェアトークン、各種認証アプリを、まとめて「トークン」と呼びます。
いずれのトークンを使用した場合も、共通して「時刻同期型」という仕組みが利用されています。これは、サーバーとトークンで、同一の計算式を使ってパスワードを生成し、その時刻に、ユーザーがトークンを見て入力したパスワードと、サーバーで生成されたパスワードが一致すれば認証される、という仕組みです。
各トークンを識別するものとして、セキュリティトークンには「シリアルコード」、ソフトウェアトークンには「登録用パスワード」、各種認証アプリには「暗唱キー」があります。以降、これらをまとめて「シリアルコード」と呼びます。
たとえば、「シリアルコード12桁」に「日付と時刻(年4桁/月2桁/日2桁/時2桁/分2桁で合計12桁)」を足したものに「52をかけて」、出た数字の「左から2文字目、4文字目、6文字目、8文字目、10文字目、12文字目の6桁」をワンタイムパスワードとする、という計算式がセットされていたとしましょう。
- シリアルコード=123456789012
- 日付と時刻=202211251125 (2022年11月25日 午前11:25)
上記のように仮定するなら、次の計算式でワンタイムパスワードが出てきます。
つまり、この時刻のワンタイムパスワードは「637881」です。
ちょっと複雑に感じたかもしれませんが、これはごくシンプルに暗号化を施した例です。
ワンタイムパスワードの「637881」をどのように解析しても、シリアルコードの「123456789012」には戻せません。それが有効な時刻「2022年11月25日 午前11:25」も割り出せません。逆にシリアルコードの「123456789012」と「2022年11月25日 午前11:25」という情報だけを入手したとしても、「637881」というワンタイムパスワードを計算で求めることはできません。
なぜ計算できないかというと、「52をかけて」「左から2文字目、4文字目、6文字目、8文字目、10文字目、12文字目の6桁」という肝心の計算式情報がないからです。
この隠された計算式を「アルゴリズム」といいます。
今回は説明を単純化するために、どのシリアルコードであっても「52をかけて」「左から2文字目、4文字目、6文字目、8文字目、10文字目、12文字目の6桁」という共通のアルゴリズムを使う形で説明しましたが、実際にはシリアルコードごとにアルゴリズムを個別に設定している、と推定されます。時刻も秒単位でしょう。
トークンと認証サーバーには、その「シリアルコード」に対応する、同じ「アルゴリズム」がセットされています。そして最初の利用登録を行う際に、シリアルコードとスクエニアカウントを紐づけします。それによって、そのアカウントでログインしようとした際に、まずIDとパスワードを認証し、それがパスした場合にのみワンタイムパスワードを照合して認証する、いわゆる「二段階認証」ができるようになるわけです。
非常にざっくりとした説明ですが、ワンタイムパスワードの仕組みはこんな感じです。
遠隔操作でアルゴリズムを解読可能?
犯罪者の手元に、不正侵入を企んでいるユーザーのセキュリティトークン実機がなく、不正アクセスでトークンのアルゴリズムを盗み出すことが可能かどうか、という点を考えますと、これは100%不可能です。なぜなら、セキュリティトークンには、通信機能がそもそも備わっていないためです。Bluetoothや磁気など、外部から内部にアクセスする手段がない以上、スキミングなどの手法も使用できません。
次にスマホのソフトウェアトークンや認証アプリですが、パスワードの生成時にサーバーとの通信は行いません。Wi-Fiもモバイル通信も完全にオフにした状態(機内モードなど)で、ワンタイムパスワードを表示してみてください。きちんとそのパスワードでログインできるはずです。通信が発生しないので、パスワードを生成したときに、それを遠隔操作で盗み出すようなことも不可能です。
そしてアプリの内部情報へのアクセスですが、これはスマホの機種変更を行い、新機種にデータをコピーしても、トークンアプリは初期化され、そのまま使用できないことからもわかるように、容易にはアクセスできないようになっています。もっとも、スマホのOSにセキュリティホールなどがあり、そこを攻撃者に突かれる可能性までは否定できませんが、トークンアプリの内部情報は、簡単に解読できないよう暗号化されているため、相当な苦労をして内部情報を盗み出せたとしても、さらにそれを解読するのは至難の業といえます。
犯罪者が、スマホへ外部から不正侵入して、トークンの内部情報を盗み出すことに成功してしまったという事例が仮にあるとすれば、ゲームへの不正ログインなどの前に金融関係で大事故が起きているはずですが、そうした話は聞きませんので、この手法でトークンの内部情報を盗まれ、解読されたケースはおそらくないでしょう。
そして、IDとパスワードを正確に把握し、入力できるという前提で、アルゴリズムなども何もわからないまま、30秒しか有効ではないワンタイムパスワードを予想して、見事に的中させる確率は100万分の1です。これも完全に運任せなので、狙って当てることなど不可能でしょう。
最後に、認証サーバーに不正アクセスしてアルゴリズムを盗み出す可能性についてですが、それ自体が非常に困難であることはもちろん、仮に外部から接続できるサーバーへの侵入に成功できたとしても、常識的にそのサーバー内にアルゴリズムはありません。そこを踏み台に複数のサーバーをハッキングする必要があり、仮にそれにも成功したとしても、盗み出した情報は暗号化されているでしょう。それ以前に、まず最初のサーバー侵入に成功された段階で何らかのセキュリティシステムが作動し、外部からの接続を全面遮断するはずです。
このように、遠隔操作でパスワード生成ロジックを得るのは、ほぼ不可能と考えられます。
物理的に盗まれた場合は?
セキュリティトークン、またはスマホを紛失、あるいは盗難に遭い、IDとパスワードを記録したメモやテキストファイルも同時に失くした場合は、普通に不正アクセスの被害に遭う可能性はあります。むしろ被害に遭う可能性が高いです。
これは、鍵を入れたパスケースを落として、そこに自宅住所のメモも入っていた、という事態を想像して頂けると、それを入手した人物が悪人であれば侵入を試みるのは当然の話ですね。
もっとも、相手を特定した上での意図的な盗難であればともかく、RMTなどを目的として、ゲームへの不正アクセスを試みる人物が偶然それを拾う、というのは極めてレアでしょう。一般的な犯罪者であれば、銀行口座などの方を真っ先に狙うでしょう。
これについては、単純に物理的な盗難被害であり、ハッキングなど以前の問題ですから、今回の「ワンタイムパスワード突破」という話からは除外します。
物理的に盗んだうえでアルゴリズム解読は?
アルゴリズムの記録データを盗み出すには、次のいずれかを行う必要があります。
- セキュリティトークンを物理的に盗み出し、分解して解析する
- スマホを物理的に盗み出し、内部データを解析する
さらっと書きましたが、どちらも難易度が高すぎる上に、成功しても無意味です。
物理的に盗み出したなら、解析などせずにそのままトークンを使う方が手っ取り早いのは言うまでもありませんし、そんなに簡単に「解析」できるようなものではないです。スマホを盗み出してデータを抽出できたとしても、こうしたアプリの内部データは強固に暗号化されていますし、スマホのクローンを作ったところでコピーできないようになっています。なんとか解読できたとしても、それはそのユーザーのトークンに限られる話で、他のトークンにも同じことをして解読できるとは限りません。
つまり、盗んだトークンが手元にあるなら、労力をかけてそこまでする意味がないのです。ハッカー(クラッカー)と呼ばれる人たちの自己満足は得られるかもしれませんが…w
トークンへの直接アクセス以外の手法は?
ここまで見てきたように、トークンに遠隔操作でアクセスして、ワンタイムパスワードを作るアルゴリズムを盗み、それを解析するという手法は、ほぼ不可能だろうというのが、わたしの結論です。
ID、パスワード、トークンをセットで物理的に盗難を受けた場合は、不正アクセスの被害を防ぐのは難しいので、普段からID/パスワードと一緒の場所にトークンを保管しないようにしましょう。
それでは、ワンタイムパスワードを導入していても不正アクセスされる可能性として、PCにマルウェアなどを仕掛けられ、PCの管理権限を奪取されるケース、外部ツールの危険性、冒頭で紹介したFF14のプレイヤーが被害に遭った「フィッシングサイト」のケースについて、それぞれ説明していきます。
マルウェアによるPCへの不正侵入
マルウェアというのは、ウィルス、ワーム、スパイウェアなど、コンピューターに被害をもたらす悪質なソフトウェアの総称です。インターネットに接続しているPCは、Webサイトへのアクセスやメールなど、様々な手段でマルウェアが入り込んでくる危険性があります。
セキュリティ対策ソフトの導入で大部分は起動する前にブロックされ、被害を食い止めることができるのですが、そのマルウェアがセキュリティ対策ソフトで検出されないタイプであったり、まだ新しく、セキュリティ対策ソフトが対応できていない、という可能性もあります。
とはいえ、セキュリティ対策ソフトを入れていれば、少なくとも検出・駆除できるマルウェアからはPCを守ることができるので、何も入れないよりは入れておいた方が安全性は高まります。個人的にはESETが動作も軽く、価格も安く、なによりゲーム中に邪魔されない点でお勧めですw
広告これらのセキュリティ対策ソフトを導入した上で、怪しいサイトにアクセスしない、メールに添付されたファイルを不用意に開かない、といった自衛手段も重要です。
マルウェアに感染し、PCの制御を完全に外部から握られた状態になってしまうというのは、あなたがゲームにログインしようとしていることも、その際に入力したパスワードも、もちろんワンタイムパスワードも、PCでのすべての行動が第三者の監視下に入っているということです。
あなたが、マルウェアに感染していることを知らずに「アカウント管理システム」にログインしたとします。その画面を開いて少し離席している間などのスキを攻撃者が突き、ワンタイムパスワードの利用を止めて、パスワードを変更してしまえば、それだけでアカウントの乗っ取りに成功されてしまうのです。
冒頭のFF14プレイヤーさんの話を最初に聞いたとき、「フィッシングサイトではないのなら」という条件付きですが、わたしはこのケースを想定しました。ただ、ここまでの事態に陥ってアカウントを乗っ取られたとすれば、ゲームどころかそのPC自体がすでに汚染されてボロボロの状態です。
外部ツールの危険性
わりと見落とされやすいのが、外部ツールの使用です。
FF14もドラクエ10も、ゲーム内データに直接アクセスするタイプの外部ツールは存在しているようです。敵の残りHPを表示するだとか、いろんなものがあるそうですが、わたしみたいな非バトル勢は興味すらないので、ほぼその内容を理解していませんw
ただ、はっきり言えるのは、こういうツールはゲーム内データにアクセスできているという時点で、非常に危険性が高いということです。こうしたツールは、当然ながらゲームメーカーの利用規約では使用を禁止されています。ということは、これらの外部ツールは、ゲームメーカーからのライセンスを受けて作られているはずもないので、その開発元はきちんとしたメーカーではあり得ません。言葉は悪いですが、どこの馬の骨かわからないようなメーカーや個人が、ゲーム内データを解析して作っているのです。(解析自体も規約違反です)
たとえばゲームにログインを行う際に、その外部ツールがバックグラウンドで起動して、ある種のキーロガーを立ち上げ、そのIDやパスワードの入力データを抜き取り、どこかのサーバーに送信する、というようなことも、やろうと思えばできてしまう可能性がある、ということです。
FF14では、外部ツールの中にログインランチャーもあるそうで、これは文字通りログイン操作そのものを行うアプリですから、開発者がよからぬことを考えたとすれば、数ある危険の中でも最高クラスに危険な存在です。
もちろん外部ツールを入れる際に、同時にマルウェアを仕掛けるということも起こり得ます。外部ツールの使用がそもそも規約違反行為であることはもちろん、高い危険性もあることを認識しておきましょう。
フィッシングサイトに情報を入力してしまうケース
ワンタイムパスワードを抜き取られた事例として最も多いのが、フィッシングサイトです。
ワンタイムパスワードという二段階認証そのものは安全性が高いのですが、唯一、フィッシングサイトに対しては非常に高い脆弱性があります。
なぜなら、ユーザー自身が正規サイトだと思い込み、ID、パスワード、ワンタイムパスワードを疑いなく入力してしまえば、物理的にトークンを盗んだり、ましてワンタイムパスワードのアルゴリズムを解読といった面倒なことをしなくても、難なく30秒有効な認証情報を瞬時に盗み出せるからです。
ユーザーのセキュリティ意識における落とし穴を巧みに突くことで、どれだけ強固なアルゴリズムを作ろうと一瞬で破られてしまう、いわばユーザー心理に対する脆弱性なのです。
フィッシングサイトを見破る方法
どうしてフィッシングサイトの被害が起きるのかといえば、本物のログイン画面と巧妙に似せているから、というのは、よく挙げられます。ただ、それは特別なことではなく、わたしを含めて、Webサイトを作る知識を持っている人であれば、巧妙に似せたログイン画面など本当にあっさり作れてしまいます。
FF14とドラクエ10のプレイヤーがログインを求められる場面は、主に次の5通りあります。
- ゲーム開始時
- 「おでかけ超便利ツール」「FF14コンパニオン」使用時
- アカウント管理システムへのログイン(Crysta購入など)
- 「The Lodestone」「冒険者の広場」へのログイン
- e-STOREでの商品購入、履歴確認など
1と2は、所定のアプリを起動した状態での入力になります。マルウェア感染などの状態でない限り、通常はフィッシングサイト等の被害に遭うことは考えにくいです。
3~5は、Webサイトでログインを行うため、フィッシングサイトの標的にされやすいのですが、これらのログイン画面には共通している点があります。
この3点をひとつの画面で入力するようになっていれば、100%フィッシングサイトです。
正規サイトは、まずID/パスワードの入力を行い、それが認証された場合にのみ、ワンタイムパスワードの入力欄が表示されます。最初からワンタイムパスワードを求めてくるサイトでは、絶対に入力しないでください。
ただし、これを逆手にとったようなフィッシングサイトもあります。
まずID/パスワードのみを入力させ、次の画面でワンタイムパスワードを入力させるのですが……
そもそもIDとパスワードの認証が通らなければ、ワンタイムパスワードを求められることはないのです。
上記は、実際にサイトへアクセスした後に、フィッシングサイトかどうかを見破る方法として紹介しましたが、本来はアクセスしてしまった時点でアウトなのです。なぜなら、これらのサイトへアクセスしたということは、次のいずれかのことが考えられるためです。
- メールに書かれていたURLをクリックした
- スクエニ公式サイト以外からのリンクでアクセスした
- チャットで送られてきたURLをクリックした
ログインが必要なサイトは、ブックマーク(お気に入り)に登録しておいて、必ずそこからアクセスするようにしてください。
メールも、スクエニから送られてきた正規のメールなら良いのですが、巧妙に似せた偽メールの可能性もあります。少し前にJR東日本の「えきねっと」からを装ったフィッシングメールが話題になりましたが、ああいう可能性もあるので、「スクエニからだ」と思い込んで、偽メールをクリックしてしまうのは非常に危険です。
外部サイトからのリンク、あるいはチャットに書かれていたURLをクリックして「The Lodestone」や「冒険者の広場」にアクセスした場合も、それが正規のサイトかどうかをしっかり確認しておかないと、リンク先が偽装されている可能性も絶対にないとは言い切れないのです。冒頭のFF14プレイヤーは、まさにゲーム内チャットで送られてきたURLにアクセスした結果、フィッシングサイトの被害に遭ったようです。
以下は、「The Lodestone」と「冒険者の広場」の各ログイン画面ですが、URLをよくご覧ください。
いずれもURLが「https://secure.square-enix.com/oauth/oa/oauthlogin」となっています。本当はその後に「識別子」がついていて、どのページからのログインかを判別するようになっていますが(同じURLなのにログイン画面のデザインが異なるのはそのためです)、画像ではその部分を削除してあります。
正規のログイン画面は「secure.square-enix.com」というドメインだということをしっかり認識しておいて、外部サイトなどからアクセスした場合、必ずURL欄を見るようにすべき……なのですが、仮に「secure.square-enlx.com」と書かれていたとして(小文字のアイがエルになっています)、それを咄嗟に偽サイトだと見破れるかというと、心もとないですよね。
やはりメールや外部サイト、チャット等でURLが送られてきても、そこからはアクセスしない、少なくともログインはしない、ということを徹底すべきだと思います。
FF14運営さんに求めたいこと
スクエニでは、2009年4月からワンタイムパスワード認証を導入しています。FF14もドラクエ10もサービスを開始していない頃です。今でこそ二段階認証の必要性が説かれ、GoogleやYahoo!といった大手ポータルサイトでも二段階認証を導入したりしていますが、スクエニがワンタイムパスワードを導入したのは13年も前です。まだ「セキュリティのためにパスワードを頻繁に変更しましょう!」などと言われていた時代です。
※総務省の2022年現在の見解は下記引用の通りです。(下線は筆者)
パスワードを定期的に変更することを求められることもありますが、実際にパスワードを破られアカウントが乗っ取られたり、サービス側から流出した事実がなければ、パスワードを変更する必要はありません。むしろ定期的な変更をすることで、パスワードの作り方がパターン化し簡単なものになることや、使い回しをするようになることの方が問題となります。
安全なパスワード管理|社員・職員全般の情報セキュリティ対策|企業・組織の対策|国民のための情報セキュリティサイト(総務省)
その頃に早くも二段階認証を導入したスクエニは、先見の明があったといえます。
それだけに、FF14で次のいずれかの対応だけはお願いしたいと思っています。
- チャットでURLが送られてきても、クリックでは開かないようにする
- ホワイトリスト(スクエニが認定したサイト)のドメインに限り、クリックで開けるようにする
- ホワイトリスト(スクエニが認定したサイト)のドメインに限り、クリックで開けるようにして、それ以外のサイトは「認定サイトではありません」と警告を出す
かつてのオンラインゲームは、比較的PCに詳しい人ばかり遊んでいた世界だったかもしれません。それが2022年の今では、よりカジュアルな存在となっていて、必ずしもPCに詳しい人ばかりの世界ではありません。つまり、フィッシングサイトのURLがチャットで送られてきても、危機意識をもたずに開いてしまう人もいて、だからこそこうした被害が実際に発生しているわけです。
当初から子どもの利用が想定されていたドラクエ10では、チャットにURLが書かれていても、それを開くことなどできませんし、それどころかコピペすらできません。大人にはやや不便ではあるものの、セキュリティという面では完璧なまでの対策にはなっています。
FF14では、チャットでURLを送っても容易に開けます。コピペもできます。とても便利なのですが、それを悪用する犯罪者と、その被害者が現実に存在するのです。ゲームをプレイする層の大半は大人なんだから自己責任といえば、それまでなのかもしれませんが、ゲームプレイ中に、検索やブックマークを使わず、あえてチャットからURLを開くという操作が、それほど必要ともいえず、しかもそれが犯罪の温床となり得るのであれば、早急に制限を行う必要があると、わたしは思います。
ワンタイムパスワードは必要です!
今回の騒ぎを受けて、「ワンタイムパスワードを入れても入れなくても、不正アクセスされる危険があるなら、入れなくていいじゃん!」と考えてしまった人がいるなら、声を大にして言っておきます。
ワンタイムパスワードは絶対に入れましょう!
不正アクセスされる危険性は、ワンタイムパスワードを入れると飛躍的に低下します。ワンタイムパスワード自体は非常に強力なアルゴリズムで作られており、その有効時間の短さもあって、盗まれて不正ログインされる可能性は非常に低いのです。
危険なのは、フィッシングサイトに引っかかってしまうことです。どれだけ強固なパスワードを使っていても、それをフィッシングサイトで入力してしまっては全く意味がありません。それはワンタイムパスワードを使う、使わないの問題ではなく、あくまでセキュリティ意識の問題ですからね。
ワンタイムパスワードを導入して終わりではなく、PCのセキュリティ対策を行い、外部ツールの使用を避け、不用意にURLをクリックしない、これをきちんと守ることで、セキュリティは強化されるのです。
あなたの大切なキャラをしっかり守りつつ、楽しくプレイしましょう♪
コメント