2017.04.17

クラウド時代にこそ理解しておきたい、シングルサインオン

難易度
1
カテゴリー
技術ナレッジ
タグ
GMOクラウド
セキュリティ

170417_sso_mv

こんにちは。フリーエンジニアの木下です。
システム管理者は、システムを利用するユーザーの立場で心掛けるセキュリティの基本に、ログインに使うユーザーIDとパスワードを適切に取り扱うことが要求されます。付与されたアクセス権を悪用されてしまうと情報漏洩や不正アクセスといった大きな問題に拡大する恐れがあるためです。しかし、いざパスワードを利用する現場では適切に、といかないことがいくつか起こることがあります。

■もうパスワードを覚えられないユーザー

「ユーザー名とパスワードを入力するように言われたんですが。」
そのユーザー名とパスワードはこれを使ってくださいね、という話をすると、
「Windowsにログインするのにユーザー名とパスワードを入力しているじゃないですか!」
いくつもユーザー名とパスワードを使い分けることに拒否反応を示されることがあります。
「なんて非効率だ!」「合理的じゃない!」
なんて言われることもしばしば…。
これは何かと言えば、利用する道具(ITサービス)ごとにユーザー名とパスワードが設定され、それらが相違してしまうことから起きてしまいます。

■ユーザー名、という名の文字列

「ユーザー名」と言われて何を思い出すでしょうか?Windowsのログオンで使用するユーザーIDでしょうか、はたまたGoogleサービス全般で利用するようなメールアドレスを想像する読者もいらっしゃるかもしれません。
「ユーザー名」や「ユーザーID」という同一の言葉で表現される箇所に入力する文字列は同一人物であってもそのシステムに登録されている名前、を入力する必要があります。そのためそのシステムではどんなユーザー名をIDとして利用するか、という仕様によって実際に使う側が「このシステムはこのユーザー名とパスワードのセットを使う」と記憶しておく必要が出てきます。

システムの仕様からうまく同一のユーザー名とパスワードを設定できたとしても、サービスを利用するときに同じユーザー名とパスワードを再入力するように要求されることもあります。これであっても覚えるユーザー名とパスワードは1組で済むとはいえ、いちいち手入力しなければならない、という手間は発生してしまいます。

こういった「ユーザーにとっての面倒」から次のような現象が起こります。

現象1:パスワードは使い回す

日常生活で入力が必要になるパスワード、とても多いですよね。多くてウンザリすることもよくあるのではないでしょうか。
ショッピングサイトを10サイト(10社)使っていれば10通りのユーザー名とパスワードのパターンが存在することになります。ショッピングサイト以外のフリーサービスなども含めると一人につきかなりの数のユーザー名とパスワードを覚えておく必要が出てきます。
世間一般ではパスワードは登録するサイトごとに変更しましょう、と言われていますが、現実的にそれほど大量のパスワードを覚えることなど不可能です。現代はそれほどまでにパスワードが要求されるサービスが氾濫しています。しかしそのサービスを利用することで便利な生活をおくれていることもまた事実です。

つまり、
■ 便利なサービスはドンドン利用したい
しかしパスワードは覚えていられない…
というジレンマを抱えることになります。
こうして何種類ものパスワードを覚えておくことができなくなったユーザーはパスワードを使い回すようになります。
ここにこういった動きを裏付ける調査結果がIPAから発表されていますのでご紹介します。
■参考資料:
IPA:プレス発表 パスワードリスト攻撃による不正ログイン防止に向けた呼びかけ(外部サイト)
この調査結果のうち「図3:パスワードの使い回しの状況」では、約半数以上のユーザーが複数のサイト(しかもそのうち25.4%は金銭に関連したサービスのサイトでも)に登録したパスワードと同一の文字列を別のパスワードとして使い回している、という調査結果が出ています。
さらに、パスワードを使い回している理由の第一位が「パスワードを忘れてしまうから」です。全体の64.1%を占めています。
パスワードを忘れないように、パスワードを同一にしている、という行動が見えてきますが、「パスワードの使い回しはしないようにしましょう」と言われてしまうとこのパスワード忘失は避けられないことになってしまいます。

現象2:パスワードを覚えられる簡単なものに

パスワードを使い回してはいけないのならば、「忘れるのなら忘れられないように簡単にしよう。」という発想が生まれます。自分の誕生日を8桁の数字にしてパスワードとしたり、好きな単語を組み合わせてパスワードにしたり、と言った”忘れようがない情報”にすがることになります。

例えば1989年1月7日が誕生日であれば「19890107」といった具合です。生年月日は意外と周囲に知られる情報です。つまり生年月日を知っていればログインできていしまうことになってしまいます。

誕生日以外でもよく取り上げられる危険なパスワードとして「password」とそのままの文字列を使っていたり「qwerty」のようなキーボードの横並びをそのまま利用していたりと簡単なパスワードを上げれば枚挙にいとまがないほどです。
使い回してはいけないので忘れられないほど簡単にしてしまうことにより、結局のところパスワードは意味のないモノになってしまいます。何せ簡単に類推できてしまうので、本来は本人確認のための認証が誰でも本人になりすますことができるようになってしまうからです。

これらの現象を踏まえたパスワードの問題点を考えてみると3点に集約することができます。
よくあるパスワード認証の問題点は
1. 覚えられないからと、平易なパスワードを利用することによって、推測ないし解析され、権限を奪取されることがある。(ex.辞書攻撃)
2. パスワードの使い回しによって漏洩ないし解析されたときに複数のシステムへのアクセス権が奪取されてしまう(ex.リスト型攻撃/アカウントリスト攻撃)
3. 複雑なパスワードや長いパスワードは覚えることができず、紙にメモしてしまう(あまつさえそれをディスプレイに貼り付ける)ことでパスワードが衆目に晒される(ex.ショルダーハック)
といった点に集約することができます。

■解決策の一つ、シングルサインオン(SSO)

前述のID&パスワード認証が抱える3つの問題を完全に解消することは難しいかもしれませんが、ある程度状況を緩和することは可能です。その一つの解となる技術がシングルサインオンです。
実はシングルサインオンは新しいテクノロジーではなく、さまざまな会社がシングルサインオンサービスを提供しています。

原理としては基本には共通しており、サービス側が人間代わってIDとパスワードをあらかじめ記憶し、各サービスへのログイン時に代理入力してくれることで実現しています。

例えば、グローバルサインの提供するシングルサインオンサービス「SKUID」を利用した場合の画面が以下の画像となります。

あらかじめ登録しておいたサービスが並んでおり、ユーザーは各サービスのアイコンをクリックするだけでそのサービスにログインすることが可能になります。
我々人間の目の前にはキーボードとWebページが表示された画面が存在しています。ブラウザやアプリケーションなどで開いた画面にユーザー名とパスワードを入力しなければならない、とします。

このとき、通常であればその画面に表示されたシステムで使用するユーザーIDとパスワードを入力することになります。そして(パスワードの使い回しをしない前提であれば)そのシステムによってユーザーIDやパスワードは相違することが通常です。その入力画面に合致するユーザー名とパスワードという文字列を入力しなければならないのですが、システム(サービス)ごとにこの文字列が異なるために、覚えきれない・忘れてしまう、という事態が発生することになります。

例えばGoogleのサービスにログインするには一般的に「~@gmail.com」という形式のユーザーIDと登録時のパスワードを入力します。これによってGoogleのサービスであるGmailやGoogle+、Youtubeなどのサービスを利用することができます。しかし、これはあくまでGoogleのサービスを利用するためのログインなので、例えばMicrosoftのOffice365を利用するためにはMicrosoftアカウント(Live ID、例:~@onmicrosoft.comなど)を別の画面に入力することで別途ログインを実行する必要があります。

しかしシングルサインオンがあれば、この個別にログイン時にサービスに登録したユーザーIDとパスワードを個別にいちいち手入力する労力が省けるようになります。
具体的には次の図のように、パスワード管理データベースに登録されたユーザーIDとパスワードをコンピューターが自動的に代理入力してくれるようになります。

パスワード管理データベースには普段利用するサイトやシステムのユーザー名とパスワードが記憶されています。この記憶されたユーザー名とパスワードの組み合わせをコンピューターが代わりに入力してもらうために、パスワード管理システムにログインする必要があります。

ただし、パスワード管理システムにいったんログインしてしまえば、パスワード管理データベースに登録された大量のユーザーIDとパスワードは勝手にコンピューターが入力してくれるようになります。
つまり人間は「パスワード管理システムにログインするための、ユーザーIDとパスワードだけ覚えていれば良い」ということになり、大量の利用中のシステム(サービス)のユーザーIDやパスワードを全て記憶する必要がなくなります。

これによって、前述したパスワードの問題点がかなり現実的なところまで前進することになります。

1. 覚えられないから平易なパスワードを使う
覚えられない問題は「そんな難しいパスワードは覚えられないよ」が発端となって簡単なパスワードを使ってしまうことにあります。しかし、パスワード管理システムが複雑なパスワードを記憶してくれるため、人間側はそれほど複雑なパスワードを記憶しなくてもよくなります。ただしSSOで利用するパスワードにある程度の強度は必要です。

2. パスワードを使い回してしまう
パスワードの使い回しは「そんなにたくさんの種類のパスワードは覚えられないよ」が発端となっています。システム(サービス)ごとに違うパスワードを用意しても人間には覚えきれないかもしれませんが、パスワード管理システムは何十・何百あろうとも性能の限界まで個別のパスワードを記憶してくれます。

3. 紙にメモしてしまう
紙にメモする理由は「パスワードが覚えられないから」です。ですが利用中システム(サービス)の数だけある多種多様なパスワードを覚える必要性が人間側にないため、パスワード管理システムにログインするパスワードさえ記憶していれば良いことになります。

■もう一つのシングルサインオン

ここまで解説したシングルサインオンではあらかじめ登録されたユーザーIDやパスワードを代理入力する方式でした。最近では別の方式でサービスの垣根を越えてシングルサインオンを実現する技術も徐々に世の中に誕生しています。

代表的なものでは、Googleアカウントを利用してGoogle以外の企業が提供するサービスを利用できるサービスがいくつか存在しています。よくサービスを利用する際に「Googleアカウントでログインする」や「Facebookアカウントで登録する」といった表記を見掛けます。サービスを提供している企業はGoogleやFacebookとは何の関係もない企業ですが、その企業のサービスを利用するために必要な登録をGoogleアカウントやFacebookアカウントを使って行い、GoogleアカウントやFacebookのログイン情報をそのまま利用、あるいは一部利用して省力化を図ることができます。

そのサービス専用のアカウントを(個人情報を登録して)作成しなくても、既に普段から利用しているGoogleアカウントやFacebookアカウントを利用できるのは便利です。この場合、GoogleアカウントやFacebookアカウントでシングルサインオンをしている形になっていますが、そのサービスを利用する専用のユーザーIDやパスワードを代行入力しているわけではありません。これは利用するサービスがGoogleアカウントの認証に対応しており、「Googleアカウントで認証された状態を信頼して自社のサービスにアクセスする権利を付与している」という方式です。

この方式のシングルサインオンは「利用したいサービスが自分の利用している認証システムに対応している」ことが前提条件となります。そのため、例で言えばGoogleアカウントによる認証で自社サービスが利用できるように構成されているサービスでなければ利用できないことになり、利用は限定的なシングルサインオンと言えます。
ただしスマートフォンの利用拡大によってこの認証方式も拡大しており今後に期待したいシングルサインオン方式です。

■まとめ

・ 利用するシステム(サービス)が増えることによって、ログインに利用するユーザーIDやパスワードがサービスごとに必要になる。しかしそのIDやパスワードを覚えきれないユーザーは多い。

パスワードを覚えきれなくなったユーザーはパスワードを使い回したり、忘れないほど簡単なパスワードを設定したりするようになる傾向がある。しかしパスワードの使い回しや平易なパスワードはセキュリティのリスクに直結する。

一つの解決策はシングルサインオンによってIDとパスワードを統合してしまう。パスワードを覚える数を一つにまとめてしまうことで、複数のパスワードを覚えなくて良いようにする。

シングルサインオンを使えば、パスワード管理ツールがログイン情報を記憶してくれるため、ユーザーの負担を軽減しつつセキュリティのリスクも緩和することができる。

システム(サービス)ごとに登録するパスワードはバラバラで使い回しを防ぐことができる。

多種多様なIDとパスワードを覚えなくてよくなるため平易なパスワードの利用を抑制できる。

GoogleアカウントやFacebookアカウントといった大手ソーシャルサービスのアカウントは、他の事業者のサービスをそのまま利用可能にすることができる。これもシングルサインオンの一種。

シングルサインオンは既に登場して10年以上たっていて特に目新しい技術というわけではありませんが、システム(サービス)が社内ネットワーク(オンプレミス)からクラウドに徐々に移行していくトレンドの中で、クラウドサービスに分散していく認証システムの集約のためにこれから需要が増していく技術と目されています。

この記事を書いた人

木下肇

木下肇

東京/神奈川を中心に、都内中堅企業ではシステム部門の一員として部内インフラ業務に、別の小規模企業ではインフラ全般について管理業務の委託を受けるフリーエンジニア。オンプレミスの企業内インフラからクラウド環境のサーバ/ネットワークまで、OS守備範囲はWindowsからLinuxまで、障害の診断や修復/修理であればソフトからハードまで、幅広い守備範囲で日々お客様の業務を遂行しています。
お仕事のご相談はコチラ⇒http://www.treedown.net/

インタビュー記事

この記事を書いた人

木下肇

木下肇

東京/神奈川を中心に、都内中堅企業ではシステム部門の一員として部内インフラ業務に、別の小規模企業ではインフラ全般について管理業務の委託を受けるフリーエンジニア。オンプレミスの企業内インフラからクラウド環境のサーバ/ネットワークまで、OS守備範囲はWindowsからLinuxまで、障害の診断や修復/修理であればソフトからハードまで、幅広い守備範囲で日々お客様の業務を遂行しています。
お仕事のご相談はコチラ⇒http://www.treedown.net/

IoTの窓口

docker-tips_bnr

writer