「ウチは大丈夫」が一番危ない!Webサービス管理者が気をつけたい「ログイン」セキュリティ5つのポイント
「セキュリティ?うちの会社はきっと大丈夫だよ」
セキュリティ対策に関して*「ここまでやれば大丈夫」*という線引きが非常に難しくなっています。
最近では、セキュリティが万全だと見なされていた仮想通貨取引所から多額の仮想通貨が窃盗されたり、ハッカー集団によるサイバーテロなどが話題に上がっています。また、クレジットカード情報を含む顧客情報の漏洩や脆弱性に漬け込んだ攻撃もよく見られます。
特に、ログイン機能を実装しているWebサービスやWebメディアは、ログイン画面を入口として攻撃されることもしばしばあるので、ログイン機能のセキュリティを強化するだけでも、情報漏洩や脆弱性攻撃に対するリスクを未然に防ぐことができます。
今回は、Webサービス管理者が気をつけたい「ログイン」セキュリティ5つのポイントをご紹介します。最近はハッキングの手口が以前にも増して巧妙になっているので、いくつかの手法を組み合わせて用いるとさらに効果が発揮されるでしょう。
Webサービス管理者が気をつけたい「ログイン」セキュリティ5つのポイント
1. パスワードを高度に暗号化して保存する
イメージ画像 / Unsplash
パスワードをどのように保管するかというのは、思っている以上に重要な問題です。IT大手でさえも、パスワードの取り扱いに関してはシビアになっています。
2016年9月、米Yahoo!から5億件以上のハッシュ化(任意のアルゴリズムにより暗号化)されたパスワードを含むユーザーアカウントの情報が流出し、それに続いてDropboxからも6,800万件ものパスワードが流出していたことが明らかになりました。
参考:
米ヤフー、アカウント5億件以上の個人情報流出 - WSJ
Dropboxのアカウント情報流出、被害は6800万件超に - ITmedia エンタープライズ
パスワードをプレーンなテキストで保存するのは非常に危険です。一方、「パスワードをハッシュ化」すれば問題ないのでは、と思われた方もいらっしゃるでしょう。ところが、昨今では暗号化・ハッシュ化されたパスワードから元のパスワードが割り出されてしまうケースも多く発生しています。
任意の文字列をあらかじめ代表的なハッシュ関数のアルゴリズムでハッシュ化し、パスワードとなりうる適当な文字列のハッシュ値と照らし合わせるレインボー攻撃によって、パスワードの特定は容易になります。
参考:
レインボー攻撃とは | セキュリティ用語解説 | 日立ソリューションズの情報セキュリティブログ
そのため、パスワードをハッシュ化する前に、ユーザーごとに任意の文字列を付与してからハッシュ化する「SALT」を施したり、ハッシュ値の計算を何千、何万回と繰り返す*「ストレッチング処理」*を行ったりして、パスワードを高度に暗号化することが重要です。
2. サードパーティー製ログインツールを導入する
イメージ画像 / Unsplash
自社でログイン機能を実装するのにコスト上もセキュリティ上も要求を満たせない場合には、GoogleやFacebook、TwitterやAmazonなどの主要なWebサービスのアカウントでログインできるサードパーティー製のログインツールを使ってみるのがいいでしょう。これらを導入することのメリットはいくつかありますが、大きく以下の2点に収斂されます。
サードパーティー製のログインツールを使用することで、自社サーバーにパスワードを含むログイン情報を保存せずに済みます。API経由でユーザーが許可した情報にアクセスすることができるため、必要な情報をサーバーに保管する必要もありません。
しかし、まれにサードパーティー製ログインツールでログインしたあとに自社サービスの登録も促すケースがありますが、これはセキュリティ上あまり意味のないことです。
また、GoogleやTwitterなどは2段階認証に対応しているため、仮にこうしたサービスのアカウント情報が流出してしまっても、乗っ取りを食い止めることができます。
ただし、ユーザーによっては“あえて2段階認証を設定していないケース”も考えられますので、セキュリティを高めたい場合はユーザーに2段階認証を推奨しましょう。
3. セッションやCookieの利用はHTTPS経由にする
イメージ画像 / Unsplash
HTTP通信自体に暗号処理をかけるHTTPSを行わなければ、Googleからの評価が下がることはすでにご存じの方もいるかもしれません。
しかし、残念なことに日本はインターネット先進国の中でHTTPSに対する関心が最も低いと言われていますが、HTTPSを行うのは、セキュリティ上も非常に大切なことです。
参考:
セキュリティを最優先事項と考えるGoogleのHTTPS要求に関する3つの事実
ログインを行なったあとに、ログイン情報を一時的に利用するためにセッションやCookieという技術が活用されるケースが多くあります。Cookieは、いくつかのデータをブラウザ側に記憶させることで、快適にページ遷移を行えるようにする技術です。
しかし、ページが暗号化されていないと、セッションIDやCooklieが通信経路上で漏洩してしまう危険性があります。
セッションIDが漏洩すると、セッションハイジャックと呼ばれる乗っ取りも行われます。もちろん、Cookieやセッション情報に機密情報を入れるべきではありませんが、万が一入れなければならない場合にも、HTTPS接続が望ましいです。
ただし、HTTSを活用しているから安全、というのは誤っているようです。旧NetScape社が開発したSSLというプロトコルは脆弱性が指摘されているため、TLSと呼ばれるプロトコルを使用するようにしましょう。
参考:
httpsだからというだけで安全?調べたら怖くなってきたSSLの話!? - Qiita
4. パスワードを定期的に変えさせる
イメージ画像 / Unsplash
最近では、セキュリティ上の理由でパスワードの設定に*「英大文字、小文字、数字、記号をすべて使ってください」*という条件をつけているケースも多いようです。しかし、昨今ではこのような混合文字種を使っているから安全だという神話は否定されています。
多くのユーザーは、このような条件を面倒に思うようです。その結果、何人かのユーザーが*「Password!1」*のように、10文字もあり、大文字も小文字も記号も数字も使っているパスワードを使います。しかし、先述したレインボー攻撃では、この手のパスワードはハッカーが容易に思いつくものとして真っ先に攻撃されてしまいます。
結局のところ、どれだけ複雑なパスワードを設定したところで、破られてしまうときはいつかやってくるのです。その場合に有効なのは、パスワードを定期的に変えさせることです。
もっとも、ユーザーが自主的にパスワードを変更してくれるということは、めったにないでしょう。3ヶ月ごとに強制的にパスワードを変えさせるようにすれば、面倒でもセキュリティ自体は向上します。
しかし、頻繁にパスワードを変えてもらうのがユーザー体験を損なうと考えるのであれば、後述するように2要素認証を用意してもいいでしょう。
5. Google Authenticatorで2要素認証を導入する
イメージ画像 / Mockupr
2要素認証とは、パスワードとは別に認証コードを利用してユーザーを認証する方式で、2段階認証とも呼ばれます。単一のパスワードでログインする方法と違って、2要素認証のほうがセキュリティが破られにくいというメリットがあります。
2要素認証を設定する最も簡単な方法は、Googleが提供しているGoogle Authenticatorと呼ばれるサービスを利用することです。このサービスでは、ワンタイムパスワードと呼ばれる、時間ごとに変わるパスワードを2段階目として利用するため、セキュリティがうんと高まります。
Google AuthenticatorはAPI経由で利用することができるので、サービスにもマッシュアップしやすいでしょう。PHPやJava、RailsやPython、Node.jsなどで実装することができます。WordPressに2要素認証を設定できるプラグインもあるので、積極的に利用しましょう。
参考:
今すぐできる、Webサイトへの2要素認証導入 – yohgaki’s blog
- アカウント
- アカウントとは、コンピューターやある会員システムなどサービスを使うときに、その人を認識する最低必要な情報として、パスワードと対をなして使う、任意で決めるつづりです。ユーザー、ID、などとも言います。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- Googleとは、世界最大の検索エンジンであるGoogleを展開する米国の企業です。1998年に創業され急激に成長しました。その検索エンジンであるGoogleは、現在日本でも展開していて、日本のYahoo!Japanにも検索結果のデータを提供するなど、検索市場において圧倒的な地位を築いています。
- Twitterとは140文字以内の短文でコミュニケーションを取り合うコミュニティサービスです。そもそもTwitterとは、「小鳥のさえずり」を意味する単語ですが、同時に「ぺちゃくちゃと喋る」、「口数多く早口で話す」などの意味もあります。この意味のように、Twitterは利用者が思いついたことをたくさん話すことのできるサービスです。
- アカウント
- アカウントとは、コンピューターやある会員システムなどサービスを使うときに、その人を認識する最低必要な情報として、パスワードと対をなして使う、任意で決めるつづりです。ユーザー、ID、などとも言います。
- Googleとは、世界最大の検索エンジンであるGoogleを展開する米国の企業です。1998年に創業され急激に成長しました。その検索エンジンであるGoogleは、現在日本でも展開していて、日本のYahoo!Japanにも検索結果のデータを提供するなど、検索市場において圧倒的な地位を築いています。
- Twitterとは140文字以内の短文でコミュニケーションを取り合うコミュニティサービスです。そもそもTwitterとは、「小鳥のさえずり」を意味する単語ですが、同時に「ぺちゃくちゃと喋る」、「口数多く早口で話す」などの意味もあります。この意味のように、Twitterは利用者が思いついたことをたくさん話すことのできるサービスです。
- アカウント
- アカウントとは、コンピューターやある会員システムなどサービスを使うときに、その人を認識する最低必要な情報として、パスワードと対をなして使う、任意で決めるつづりです。ユーザー、ID、などとも言います。
- HTTP
- HTTPとは、HTMLで記述されたWebページなどの情報を、WebサーバーとPCなどのクライアント端末間でやり取りする方法を定めた通信手順のことです。Hyper Text Transfer Protocolの略です。
- インターネット
- インターネットとは、通信プロトコル(規約、手順)TCP/IPを用いて、全世界のネットワークを相互につなぎ、世界中の無数のコンピュータが接続した巨大なコンピュータネットワークです。インターネットの起源は、米国防総省が始めた分散型コンピュータネットワークの研究プロジェクトARPAnetです。現在、インターネット上で様々なサービスが利用できます。
- HTTP
- HTTPとは、HTMLで記述されたWebページなどの情報を、WebサーバーとPCなどのクライアント端末間でやり取りする方法を定めた通信手順のことです。Hyper Text Transfer Protocolの略です。
- HTTP
- HTTPとは、HTMLで記述されたWebページなどの情報を、WebサーバーとPCなどのクライアント端末間でやり取りする方法を定めた通信手順のことです。Hyper Text Transfer Protocolの略です。
- セッション
- Googleアナリティクスは、ホームページに適切に組み込めばアクセス状況を把握できる便利なサービスです。Googleが無料で提供しており、日本でも大手企業や金融機関、政府など、その利用のシェアを広げています。そこで、もっとも基本的な単位がセッションです。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- セッション
- Googleアナリティクスは、ホームページに適切に組み込めばアクセス状況を把握できる便利なサービスです。Googleが無料で提供しており、日本でも大手企業や金融機関、政府など、その利用のシェアを広げています。そこで、もっとも基本的な単位がセッションです。
- セッション
- Googleアナリティクスは、ホームページに適切に組み込めばアクセス状況を把握できる便利なサービスです。Googleが無料で提供しており、日本でも大手企業や金融機関、政府など、その利用のシェアを広げています。そこで、もっとも基本的な単位がセッションです。
- セッション
- Googleアナリティクスは、ホームページに適切に組み込めばアクセス状況を把握できる便利なサービスです。Googleが無料で提供しており、日本でも大手企業や金融機関、政府など、その利用のシェアを広げています。そこで、もっとも基本的な単位がセッションです。
- セッション
- Googleアナリティクスは、ホームページに適切に組み込めばアクセス状況を把握できる便利なサービスです。Googleが無料で提供しており、日本でも大手企業や金融機関、政府など、その利用のシェアを広げています。そこで、もっとも基本的な単位がセッションです。
- HTTP
- HTTPとは、HTMLで記述されたWebページなどの情報を、WebサーバーとPCなどのクライアント端末間でやり取りする方法を定めた通信手順のことです。Hyper Text Transfer Protocolの略です。
- Googleとは、世界最大の検索エンジンであるGoogleを展開する米国の企業です。1998年に創業され急激に成長しました。その検索エンジンであるGoogleは、現在日本でも展開していて、日本のYahoo!Japanにも検索結果のデータを提供するなど、検索市場において圧倒的な地位を築いています。
- Googleとは、世界最大の検索エンジンであるGoogleを展開する米国の企業です。1998年に創業され急激に成長しました。その検索エンジンであるGoogleは、現在日本でも展開していて、日本のYahoo!Japanにも検索結果のデータを提供するなど、検索市場において圧倒的な地位を築いています。
- Googleとは、世界最大の検索エンジンであるGoogleを展開する米国の企業です。1998年に創業され急激に成長しました。その検索エンジンであるGoogleは、現在日本でも展開していて、日本のYahoo!Japanにも検索結果のデータを提供するなど、検索市場において圧倒的な地位を築いています。
- WordPress
- WordPressとは、CMS(コンテンツマネジメントシステム)の1種で、ホームページ管理システムのことです。ブログ感覚で記事の修正・追加が行えるうえ、通常のホームページ並みのデザインを作成することができます。
おすすめ記事
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング