パスワードを考える
あけましておめでとうございます。ツナです。
3が日もおわり、今日からなるべく毎日記事を書いていきたいと思っているのですが、なかなか毎日書けるか怪しいので「なるべく」ということにしておきます。
さて、今日はパスワードについて一考してみました。
---
日常生活におけるパスワードの利用と管理
パスワード入力は日常生活において頻繁に出現する。
犬も歩けばパスワード入力に当たる、である。
例えば、通販サイトで商品を購入するケースを想定しよう。
まず会員制通販サイトにアクセスし、ログインを試みる。
通販サイト用のIDとパスワードを入力すると、「〇〇さん、こんにちは」などという文言とともに自分用の画面にログインすることができる。
友人にオススメされたチョコレート菓子をカートに入れ、購入画面に進む。
購入画面ではいくつかの方法で決済が可能である。そのうちの1つの送金サービスを選択する。送金サービス用ログイン画面に遷移する。
ログイン用のIDとパスワードを入力する。
決済を済ませ、通販サイトの画面に戻ってくる。
送り先などを入力し、発送を済ませる。
XX運輸での配送だが、XX運輸は荷物のトラッキングをサービスとして提供している。届くのが待ち遠しかったのでXX運輸のトラッキングサービスにアクセスし、登録したメールアドレスとパスワードを入力して、配送状況を確認する。
1週間後、やっと商品が届いた。
お気に入りのコーヒーを淹れ、チョコレート菓子を開封。金色に輝くつつみ紙に、1粒1粒丁寧にくるまれており、美しさに息を呑んでおもわず写真を撮る。友人とつながっている、フォロワー数330人ほどのSNSアカウントにアクセスする。そういえば、SNSを見すぎてしまうからと、前回ログアウトしていたのだった。アカウントIDとパスワードを入力してログインし、写真を投稿する。
…どうだろうか?
ここまでに、もし1つでもパスワードを忘れていたら、再設定などという面倒な手順を踏まなければいけない。
わたしたちはパスワードを信頼しきっており、ある意味すべての情報を委ねているわけで、それゆえにパスワードはいくつかの決まりやルールを持ってパスワード然としているのである。
パスワードは頻繁に変更したほうが良いのか?
定期的にパスワードを変更するような仕組みがたまにあるが、これは本当にパスワードを強力にしているのだろうか。
2017年6月にNIST(米国国立標準技術研究所)が「電子的認証に関するガイドライン」を、2018年3月に総務省はパスワードの「設定と管理のあり方」を改定しており、これはどちらも「定期的に変更しないほうが良い」という内容になっている。
どうやら、人間は「複数回変更してください」と言われると、複数回変更しても覚えていられるようなかんたんなパスワードにしてしまう、というのが理由のようである。人間の行動原理を考えなければいけないのはパスワードも同じということで、なかなかに業が深い。
※こちらに関してはケース・バイ・ケースで、パスワードを何人かで運用するときに人の入れ替わりのスパンが短い場合などは定期的に変更したほうがよい。
どういうパスワードだったらいいのか
- 『スパイダーマン:ファー•フロム•ホーム』より
安全なパスワードの作成
安全なパスワードとは、他人に推測されにくく、ツールなどの機械的な処理で割り出しにくいものを言います。
安全なパスワードの作成条件としては、以下のようなものがあります。
- (1) 名前などの個人情報からは推測できないこと
- (2) 英単語などをそのまま使用していないこと
- (3) アルファベットと数字が混在していること
- (4) 適切な長さの文字列であること
- (5) 類推しやすい並び方やその安易な組合せにしないこと
インターネットなどで配布されているツールの中には、パスワードクラッカーと呼ばれる機械的にパスワードを推測する機能を持つものがあります。このパスワードクラッカーには、パスワードでよく使われる単語が辞書として登録されており、この辞書に載っている単語や簡単な英数字の繰り返し(123やabc、aaaなど)を自動的に組み合わせることで、パスワードを探し出そうとします。このようなツールでパスワードを割り出されないようにするためには、推測しやすい文字列を使わないようにすることが大切です。
パスワードクラックの主な手法としては「類推攻撃」、「辞書攻撃」、「総当たり攻撃」などがある。コンピューティングパワーでパスワードを割り出していくから、基本的には割り出しのための計算時間を長くしていくことが、安全性を担保することにつながるのだろう。
こちらのサイトで、ブルートフォース攻撃(総当り攻撃)での計算時間を概算してくれるようであるので、チェックしてみても良いかもしれない:
また、NECが、パスワードについてのガイドを整理して記事に掲載していた。
最小文字数について以下のように考察されている。
パスワードの最小文字数を8文字としているケースが最も多く(と言っても3つ中2つですが)、これは一般的な認識と一致しているように見えます。ただし、CISとNISTはそれぞれ「多要素認証の場合」、「ユーザーが作成するパスワードの場合」というように条件付きであるため、一概には言えません。
なぜ一般的なパスワードの最小文字数が8文字なのか断言はできませんが、レガシーなシステムの場合、入力できる最大文字数が8文字だからという移植性の問題があることと、そうは言っても最低限度の強度のパスワードが欲しいというラインの妥協点として8文字が最小文字数であることのではないかと筆者は考えています。ユーザー向けであるNISCハンドブックでは8文字について触れられていない一方、開発者・技術者を対象読者に含むCISPPGとNIST63Bには8文字が最小文字数にあることもそれを裏付けているのではないかと思っています。
「レガシーシステムでの入力文字数が関係しているのでは」とのことだ。興味深い。
その他、管理ツールなど(1)(2)
パスワードマネージャーなるものがある。
パスワード管理のためのサービスで、パスワードマネージャー自体の安全性に問題がなければ、パスワード管理の煩雑性をかんがみるとつかってもよさそうである。
また、組織での管理については「MFA(多要素認証)」や「SSO(シングルサインオン)」を利用するのがよいとされている。
MFAには、
①ID・パスワードや事前に秘密の質問などに答える「知識情報」
②ワンタイムパスワードやICカードなどの端末を使って解除する「所持情報」
③指紋や顔認証といったユーザーの身体的な特徴をキーとする「生体情報」
の3種類があり、これらのうち「知識情報×所持情報」、「所持情報×生体情報」のように異なる種類の情報を2種類以上組み合わせ、セキュリティ性を高めることが可能である。
SSOは一度ユーザー認証 (ログイン) を行うと、以後そのユーザー認証に紐づけられているシステム・サービスを、追加の認証なしで利用できる機能を指す。これにより、利用者は各システムごとに何度もユーザー認証を行う必要がないため、利便性が高まるものだ。こちらもフェデレーション方式、代理認証方式など、いくつか種類がある。
まとめ
一度Evernoteに地球の裏側からログインされてしまった件もあり(見てもなにも有益なものはないのだが…)、以来パスワードはなるべく長く・複雑にを意識してきた。が、長くと言ってもどれくらい長くすればいいのかもわからないし、利用するサービスによってパスワードの命名規則(?)もぜんぜん違う。
そんなわけで、とくに最近パスワードの入力が面倒だと感じているので、現在のパスワードにまつわるきまりごとなどを追ってみてきた。
正直パスワードマネージャーを使ったことがなかったのでこれはぜひ取り入れたい。
パスワードマネージャーの中には、ブラウザで自動入力してくれるようなスグレモノもあるよう。※安全かどうかは確認しつつ…
パスワードの整理とか、こういったことは、年末年始とか時間にゆとりのあるときのほうが気が回りやすいな。
(1) 多要素認証の利便性を高める。シングルサインオン(SSO)の概要とメリットとは | Edu at Mitani
(2)シングルサインオン(SSO)とは-概要・仕組み | トラスト・ログイン byGMO(SSO/IDaaS)