コストを掛けずウェブサイトを構築できるWordPressですが、セキュリティ面での脆弱性が問題になることがあります。WordPressはオープンソースで情報が公開されているため、多くのエンジニアの知恵が集めやすいところは、理想的な開発環境です。その反面、ハッカーにとっては手の内を読みやすく、ハッキングしやすくなっているといえます。WordPressでサイトを運営している人にとっては、ハッキング被害が心配になることもあるでしょう。この記事ではセキュリティを高めるための方法として2段階認証を紹介し、そのメリットやデメリットについて解説していきます。
目次
2段階認証とは
パソコンやスマートフォンを使う場合に、「認証」を求められることが一般化しています。自宅のパソコンはスイッチを入れて起動してしまえば、すぐに使えるかもしれません。オフィスや学校の共有パソコンは、ユーザー名とパスワードの入力が求められる場合が多いでしょう。これを認証といいます。システムにより「ログイン」または「サインイン」と表示されることがあります。認証の役割は、端末を使う人を排他的に識別することです。会社や学校にあるパソコンは、個人情報や企業秘密など、部外者に知られると権利の侵害や経済的損失を生じる恐れのある情報につながっています。
そのため、組織に所属するものだけにアクセスを許す仕組みになっているのです。そこで、登録された個人のIDであるユーザー名と、その本人だけが知っているパスワードでアクセスを制限しています。このような、パスワードのみの認証は1段階認証と呼びます。2段階認証は、さらに本人だけが得られる認証情報の提供が要求される仕組みです。認証に用いられる情報には3種類あります。
1つ目は「知識」で、本人だけが知っている情報になります。具体的には、パスワード、暗証番号、秘密の質問などです。2つ目は「所有」で、本人だけが持っているものになります。具体的には、ICカード、スマートフォンのアプリ、スマートフォンのSIMカード(SMS受信ができる)、USBトークンなどです。3つ目は「生体」で、本人の身体的特徴を示すものになります。たとえば、指紋、虹彩、顔などです。この分類でいえば、1段階認証ではパスワードという「知識」要素を認証情報に使っているわけです。2段階認証を設計する際には、セキュリティを向上させるために、気をつけなければならない点があります。たとえば、「知識」要素としてのパスワードと、「所有」要素としてのスマートフォンとそのアプリの組わせや、パスワードと「生体」要素虹彩などの異なる認証情報の組み合わせが推奨されます。
このような組み合わせでは、どちらかの情報が悪意を持つ他人に知られたとしても、もう一方を保護できれば、不正なアクセスの可能性を最小限にできるでしょう。それは、1段階目と2段階目に別の種類の情報を用いるからです。セキュリティ効果を高めるためには、各段階で要求する情報の種類を変えるのがポイントということです。スマートフォンで使う認証情報表示アプリ(所有要素)と、同じスマートフォンの電話番号あてに配信されるSMSメッセージ(同じく所有要素)は2段階認証に向きません。なぜなら、悪意を持ったハッカーがスマートフォンを入手した場合、両方の認証情報を取得できる可能性が大きくなるからです。
要するに、2つの要素を簡単に手に入れられないように分散することが2段階認証のポイントといえます。なお、ユーザー名とログイン用のパスワードでPCログインして、もう一度パスワードが要求される2段階認証システムがあります。スマートフォンのアプリなどで表示され、時間で入力値が変わる可変型パスワードを2つ目の認証要素として入力するタイプです。これは、両方共パスワードですが、「知識」として覚えているものと、「所有」しているスマートフォンに表示されるものなので、認証要素の種類が異なります。そのため、悪意を持ったハッカーとしては認証情報の入手が難しくなり、セキュリティのレベルが高くなるのです。
ワンタイムパスワードとは
2段階認証で利用される、時間で入力値が変わる可変型パスワードは「ワンタイムパスワード」と呼ばれています。意味は「使い捨てパスワード」のことで、スマートフォンの普及によって一般化してきました。使い方は、まずスマートフォンにワンタイムパスワードを発行するアプリをインストールします。ウェブサービスごとに異なるアプリを利用するものがほとんどなので、専用のものをインストールしましょう。
例えば、Yahoo!JAPANの場合、「Yahoo! JAPAN ワンタイムパスワード」アプリをスマートフォンにインストールしておきます。Yahoo! JAPANのIDとパスワードでウェブサイトにログインすると、ワンタイムパスワード認証画面が表示されます。そこで、インストールしたアプリを立ち上げます。すると6桁のパスワードが表示されますが、画面に表示されているプログレスバーの色が変わってしまう30秒間だけ有効なのです。そこで、すばやくパスワードをコピーします。ブラウザーに戻り、コピーしたワンタイムパスワードを入力欄にペーストしましょう。あとは、表示されている「認証」ボタンを押して、入力値に間違いがなければ、サイトへのログインが成功します。
2段階認証を導入するメリット
2段階認証を導入するメリットは、主に3つあります。1つ目は、セキュリティを高めることができる点です。1段階認証では、1つの認証要素を知られてしまえば、あとは不正アクセスが可能になります。そして、認証要素としてはパスワードが使われることが多くなっています。認証要素が1つしかないので、セキュリティレベルを高くするには、パスワードを複雑にするしかありません。一般的なパスワードは数字と文字を組み合わせた6桁から8桁程度の文字で構成されます。文字数が少なすぎると解析されやすく、長すぎると覚えられないので、このような桁数になっているのです。
さらに、悪意を持ったハッカーの解析を困難にするために、大文字と小文字を混ぜることや、数字とアルファベットの混在が要求されることが多くなっています。また、生年月日などの覚えやすいにもかかわらず、他人に推測されやすいものは使えないのが通常です。しかし、そのような規則を複雑にすればするほど、ユーザーは覚えられなくなります。メモ帳に書き留めてそれを参照するような人も出てくるのです。本来は本人が覚えておくためのパスワードなのですが、それをメモ帳に書いておく行為は、セキュリティレベルを著しく低下させます。
2段階認証はこのようなパスワードが引き起こす問題を低減し、セキュリティレベルを高める効果があるのです。1段階のパスワードは覚えやすいものにしておいて、2段階のものを覚える必要のないものにするわけです。例えば、指紋認証や顔認証であれば、記憶する負担もなく、「生体」要素なので盗まれる恐れもなく、パスワードが他人に知られたとしても、セキュリティレベルは維持されます。
2つ目は、アカウント乗っ取り対策になる点です。悪意を持ったハッカーによってアカウントが乗っ取られる主な原因は、パスワードを知られることです。メモ帳に書いておいたものを読み取られなくても、乗っ取られることがあります。それは「ブルートフォースアタック(brute force attack)」という手法などで解析されてしまうからです。これは「総当たり攻撃」と訳されることがあり、コンピュータを用いてパスワードの文字を1つずつ変えながらログインを繰り返す方法です。入力ミスを繰り返すとログインを停止する仕組みがなければ、6桁程度のパスワードなら15秒程度で解析できるといわれています。2段階認証にしておけば、仮に1段階のパスワードが解析されてしまっても、セキュリティレベルは維持されるのです。
3つ目は、ハッキングなどによる被害を未然に防ぐことができる点です。2段階認証のシステムによっては、ハッキング行為をユーザーに通知するサービスがあります。たとえば、Googleアカウントなどでは、通常と異なる場所にあるパソコンや使ったことのないスマートフォンからログインすると、メールで通知が来ます。ログインが成功しても、成功しなくても通知が来るのです。この通知が来る場合としては、2つの事象が考えられます。アカウントを持っている本人がパスワードを間違えた場合と、悪意を持ったハッカーがブルートフォースアタックを開始した場合です。
つまり、本人がログインを試みていないのに、このような通知が来たときには、アカウントがハッキングを受けている可能性があります。すぐにパスワードの変更や、より強力なセキュリティ対策をとる必要があります。このとき2段階認証になっていれば、ハッカーが次の段階に進んで被害が出る前に、ある程度のセキュリティを確保しつつ、余裕を持って対策を取ることができます。
2段階認証を導入するデメリット
2段階認証はセキュリティレベルを高めますが、デメリットもあります。1つ目は、ログイン時に余分に時間がかかってしまうことです。1段階認証のようにパスワードだけであれば、すばやく作業環境や情報にアクセスできますが、2段階認証になるとどうしても手間と時間が必要になります。セキュリティの重要性が高い銀行などのサイトであれば、2段階認証を導入する際のユーザーの理解が得られやすいでしょう。一方で、ECサイトなどの場合、よほど誘引力のあるコンテンツや商品が提供されていないと、ログインが容易な他のサイトに移行されることがあります。
2つ目は、別のプラグインとの不具合を起こしログインできなくなるケースがある点です。とくに、WordPressをアップデートしたときには動作確認を怠らないようにしましょう。3つ目は、パスワードを紛失してしまった際に、再度取得する手続きが手間になるケースがある点です。場合によっては、2段階認証に必要なそれぞれの認証要素を新しく取得しなおすシステムもあります。2段階認証のセキュリティレベルの高さを維持するためには、認証要素の管理もそれに応じて厳しくなるのです。
【おすすめプラグイン】1.Two Factor Authentication
WordPressログイン画面のセキュリティを強化するプラグインの1つが、Two Factor Authenticationです。通常のユーザー名とパスワードの画面に、1分ごとに入力値が変わるワンタイムパスワード認証画面を追加して2段階認証化します。ワンタイムパスワードを発行するのは、スマートフォンにインストールしたGoogle認証アプリです。Two Factor Authentication導入の方法は、まずインストールしたあとで、有効化します。
次に、管理画面の左コラムに表示された「Two Factor Auth」ボタンをクリックして、表示されるプルダウンメニューから設定を行います。このとき表示される設定画面では、2段階認証のためのQRコードの取得ができるのです。一方、管理者情報の設定は、同じコラム上にある「設定」の下層にある「Two Factor Authentification」から行います。すべての機能を使うには有料サービスの契約が必要です。
【おすすめプラグイン】2.Google Authenticator
Google認証システムを利用するプラグインには、Google Authenticatorもあります。このプラグインを使う際に、すでにスマートフォンにGoogle認証アプリがインストールされている場合は、新しくWordPressのアカウントの追加が必要です。導入は、まずインストール後、プラグインを有効化します。次に、管理画面の左コラムにある「ユーザー」ボタンの下層にある、各ユーザーのプロフィール設定画面で詳細設定を行います。なお、Google Authenticatorでは、最初のログイン画面に、ユーザー名、パスワードと共に、Google Authentificator codeの入力欄がまとめて表示される点が特徴です。
【おすすめプラグイン】3.Defender
WordPressサイトのセキュリティを全般的に向上させるプラグインDefenderには、2段階認証機能が含まれています。導入に際して、インストール後、プラグインを有効化する点は、他のプラグインと同じです。管理画面の左コラムにある「Defender」ボタンを押すと表示されるプルダウンメニューから詳細な設定が可能です。2段階認証機能は「高度な設定」から「2段階認証」へ移ってアクティベーションを行います。ユーザーごとの設定は、「ユーザー」ボタンを押して表示される各ユーザーのプロフィール画面で適用するかどうかを決めます。
3段階認証について
WordPressのログインの際に、2段階認証よりもさらにセキュリティレベルの高い3段階認証を実装することも可能です。3段階認証であれば、ブルートフォースアタックを受けても、かなりの確率で不正アクセスを許す可能性が低下するでしょう。認証手順は、まずBASIC認証画面、次に通常のWordPressのログイン画面、最後にワンタイムパスワード入力画面が順番に表示されます。なお、BASIC認証は、WordPressのファイル・フォルダに.htaccessと.htpasswdの2つのファイルを設置して実装します。
さらに、ログインの失敗回数を制限するLimit Login Attemptsや、ワンタイムパスワードを設置する Spirits and Goblinsなどのセキュリティ系プラグインを併用することになります。ちなみに、Crazy Boneなどのプラグインを使うと、ログイン履歴の記録が可能です。ハッキングの可能性があるときにはインストールおくとよいでしょう。
まとめ
WordPressで運用しているウェブサイトがビジネスや私的な活動で重要な役割を果たしているのであれば、ハッキングされた際の被害は甚大なものとなるでしょう。大切な情報資産を守り、顧客の信頼を維持するためには、少なくとも2段階認証を導入することをおすすめします。
コメントを残す