私の愛しいアップルパイへ
この愛すべきブログを常時SSL化(https化)して通信が暗号化されるようになったのは以下でお話しした通りです。
この愛すべきブログのような個人ブログ(WordPress)でも常時SSL化する必要があるのか?個人情報や決済情報など機密情報を扱うサイトだけでいいのではないか?結局SEO的な意味しかないのではないか?そう思ったでしょうか。
しかし、それは勘違いというものです。ということで、個人ブログのような機密情報の入力がないサイトでもセキュリティ的な観点から常時SSL化が必要な理由をまとめましょう。
WordPressの個人ブログでもhttps化が必須となるセキュリティ的な5つの理由
インターネットが発明されて以来、インターネットの重要性は増すばかりです。その流れのなかで個人ブログのようなサイトでも常時SSL化は必須となってきています。
Googleの推進もあり常時SSL化の波は徐々に大きくなってきていますが、常時SSL化しないことで実際にどのようなセキュリティ的なリスクがあるのかはあまり理解されていないように思います。
今日はITのセキュリティ対策に詳しくないあなたでもWordPress(をはじめとした個人ブログ)常時SSL化によってどんなメリットがあるか分かりやすく説明しましょう。ポイントは以下5つです。
- 1.セッションハイジャック対策
- 2.管理画面のハッキング対策
- 3.問い合わせ情報などの盗聴対策
- 4.インフラのハッキング対策
- 5.プログラムのセキュリティバグ対策
ちなみに、私はセキュリティ専門家というわけではありませんので、より正確で詳細なセキュリティ情報を知りたくば、いますぐこのページを閉じてオライリーの元にでも行くがいい!!!
1.セッションハイジャック対策
常時SSL化とは、インターネット通信をSSLという暗号化技術を使って暗号化するものです。これによって通信内に流れている情報が暗号化され、容易には盗聴できなくなります。
これによって最も有効な効果を発揮するのはセッションハイジャックへの対策です。セッションハイジャックとは、セッション(デバイスとサーバー間の通信)の情報をハッキングすることで、セッションを乗っ取る攻撃方法です。
セッションをハイジャックをされるとサーバー間との通信において簡単に他人になりすますことができます。
個人ブログで特に危険性が高いのは、ブログ管理画面に対するセッションハイジャックでしょう。セキュリティレベルの低い公共の無線LANなどからブログの管理画面にアクセスしたときにセッションハイジャックされると、悪意のある第三者がブログの管理画面にアクセスできるようになってしまいます。
あたり前ですが管理画面にアクセスされてしまうと記事を改変し放題になります。例えば、そのブログの人気記事に「さらなる詳細はこちらのpdfファイルをダウンロードしてみてください」と書いてウィルスをダウンロード&実行させることも容易になってしまいます。
こうなってしまうと読者さんをことごとくウィルスに感染させてしまうという最悪の事態が発生します。
2.管理画面のハッキング対策
個人ブログとはいえ、管理画面はとてもセキュリティ的な意味の高いページです。個人ブログにはたとえ機密情報がないとしても、上述のとおり管理画面からは様々な攻撃ができてしまいます。
セッションハイジャックに限らず、通信を盗聴されて管理画面のURLやID、パスワードが漏洩してしまうと様々な攻撃が可能になってしまうのです。
管理画面をハッキングされるリスクを減らすためにも常時SSL化は必須と言えるでしょう。
3.問い合わせ情報などの盗聴対策
個人情報では機密情報がないといいつつも意外なところで重要な情報を盗まれるリスクは確実に存在します。
例えば問い合わせ情報などが盗聴されてしまうと、メールアドレスをはじめ本名などが漏洩してしまいます。また、問い合わせ内容に機密情報が書かれていた場合にはそれも漏洩してしまいます。
また、WordPressには登録ユーザーがコメントできる機能などがあるので管理者だけでなく一般ユーザーの登録画面も存在します。不特定多数の人がユーザー登録できるのです。このユーザー登録機能がONだった場合、ユーザー登録時の情報を盗み見される危険があります。
そして、そのユーザーがユーザー登録に使ったIDやパスワードを他のサービスでも使いまわしていた場合に重大な攻撃につながりかねません。
4.インフラのハッキング対策
これは以前とあるレンタルサーバーで実際に発生した攻撃ですが、WordPressの設定情報にはサーバーに関する様々な情報が設定として書かれています。そして、そのWordPressが他のブログやサービスとサーバーを共用している場合には、他のブログやサービスの情報をハッキングするための情報を与えてしまう可能性があるのです。
例えば、WordPressで使うデータベースの情報を盗み見られた場合、同じサーバーの同じデータベースを使っているサービスのデータにもアクセスできてしまうかもしれません。
そのサービスが機密情報を扱っていた場合には、その機密情報のデータを読み取れてしまう可能性があります。もちろんデータベースなどにはサーバー管理者によってユーザーごとの適切な権限設定がなされているべきですが、サーバーを提供している会社がどこまで厳格にユーザーごとのパーミション設計をできているかはわからないのです。
5.プログラムのセキュリティバグ対策
では、管理画面や問い合わせページなどセキュリティリスクの高いページだけ常時SSL化すればいいのではないか?と思うでしょうか。いいえ、そんなことはありません。
通常、暗号化されていない情報と、SSL化されている情報はセキュリティレベルが違います。そのため、例えばCookieなどでは暗号化されているページとそうでないページが混在する場合には、暗号化されている通信で使う情報と、暗号化されていない通信で使う情報の保存場所を区別するようにプログラミングします。
そして通信によって暗号化されている場合に扱うデータとそうでない場合に扱うデータを切り分けるようにプログラミングします。
しかし、このような暗号化されているか暗号化されていないかによって扱う情報を切り替える処理はプログラムを複雑化します。そして、そのプログラム自体にバグがあるとセキュリティホールになってしまいます。
すべてのページがきちんとSSL化(常時SSL化)されていれば、このようなデータの出し分けをする必要がなくなり、プログラムはシンプルなものとなります。どのようなリスクが潜んでいるかわからないから常時SSL化した方がいいというだけでなく、プログラミング的な面では確実にセキュリティレベルが高まるのです。
これから作るWebサイトは常時SSL化(https化)が基本
個人的にはこれから作るサイトはすべて常時SSL化(https化)が基本だと考えています。
特にhttp→https化をする場合に様々な移行作業が発生します。そのため、https化するために一番楽なのは最初から常時SSL化(https化)しておくことです。
ですから、これからWebサイトを作るときには最初からhttps化しておく予定です。最近はLet’s Encryptのように無料で常時SSL化が可能となるサービスもでていますので、こちらの利用もおすすめです。
貴下の従順なる下僕 松崎より