パスワード(password)は文字通り、関門を通るための「合言葉」です。情報システムの分野だけでなく、社会活動の様々な分野でパスワードによる認証方式が使われています。例えばキャッシュカードやクレジットカードの暗証番号などもパスワードの一種です。
情報システム分野でのパスワードは、パソコンやスマートフォンなどの端末機器や特定の機能・サービスを利用する際に、利用者が本人であることを認証するためのもので、一般的にはユーザーIDと対にして使用されます。
パスワードは、本人のみが知るということが前提で、一般的には文字と数字を組み合わせた文字列です。パスワードに用いることができる文字の種類や文字列の長さは、利用する機能や情報サービスによって異なりますが、近年は、数字だけでなく、アルファベット(大文字・小文字を区別)や記号(+-/!"#|_ など)を組み合わせ、より複雑なものを設定するよう求めることが多くなっています。
ちなみに、数字だけのパスワードは、暗証番号あるいはPIN(Personal Identification Number)とも呼ばれます。金融機関の暗証番号は4桁が通常ですが、これだと1万通りの組み合わせしかありませんので、試行錯誤を繰り返してパスワードが見破られるおそれが高いと言わざるを得ません。このように短いパスワードの場合は、入力の試行回数は3回まで、というような少ない試行回数を上限とすることが普通ですが、それでも危険性は残ります。
明らかに、パスワードは複雑なものほど、なりすまし対策として有効なのです。
上述で何気なくユーザーIDという言葉を使いましたが、最近はアカウントIDという言葉をよく目にされると思います。ユーザーIDとアカウントIDはほぼ同じことと考えて差し支えありません。
アカウント(account)とは、直訳すると取引先とか口座という意味で、主に会計的な意味での顧客のことを言います。すなわち、アカウントIDという時のアカウントは、情報サービスの提供者が、有料であるか無料であるかを問わず、顧客を管理するために開設した口座を意味します。通常、そこには取り引きに関わる諸情報ー氏名その他の会員情報、クレジットカード番号などの利用料の支払いに関わる情報、などが紐づけれています。顧客側から見ると、アカウントを持つということはその業者が提供するサービスを利用する権利がある、ということになります。
強いてユーザーIDとアカウントIDとのニュアンスの違いを言えば、ユーザーIDは利用者を識別するだけのもの、アカウントIDは取り引きのある利用者を識別するためのもの、ということができるかもしれません。また、ユーザーIDは一般にサービス提供者側が付与し、1つのアカウントに複数のユーザーIDを付与することもあるのに対して、アカウントIDは利用者(取引先=支払者)にひとつで、どちらかと言えば利用者のメールアドレスなどをそのままアカウントIDとしていることが多い、ということでしょうか。
ということで、以下の解説においては、特に必要のない限り、ユーザーIDを用いることにします。
パスワードが悩みの種であるのは、他人に類推されないような複雑なものであるべきながら、覚えやすいものでないと、実際には使いにくいからです。皆様もこんな思いをされたことがあるのでは?
実際、利用するすべてのサービスに、別の、ランダムな組み合わせの、長いパスワードを付け、定期的に変更する、ということを守ろうとしたら、パスワード管理ソフト(あるいはサービス)でも使わないと無理です。パスワード管理システムを使うことのデメリット(有料である、それ自体がセキュリティリスクになるなど)もありますので、ここでは、パスワード管理システムに頼らないで、上記悩みを解決する方法はないか考えることにします。
ここから先は、筆者の個人的な考え方です。異論もあるかと思います(特にセキュリティの専門家からは)が、こんな考え方もあるんだ、程度にお読みください。
ポイントとなるのは、3の「覚えやすい事柄や数字を、自分のルール(その1)で組み合わせ・加工する」ということです。パスワードは覚えられなくても、自分で決めたルールは忘れないでいられるでしょう。
ルールは以下のような観点で考えると良いでしょう。
インターネットで「パスワード 決め方」などで検索すると、参考になる例が見つかると思います。
5のパスワード管理リスト上のパスワードを「自分のルール(その2)で加工」することと、Excelブックにパスワードを付けて保存するのは、盗難や紛失への対策です。Windowsの「メモ帳」ではパスワード付きの保存はできませんので、Excelの利用をお勧めします。
悪意のある者が、何らかの方法で事前に入手したIDとパスワードのリストを流用し、自動的に連続入力するプログラムなど使って、色々なウェブサイトに不正ログインを試みる手口をパスワードリスト攻撃と言います。ここでログインが成立したIDとパスワードの組み合わせはその後、他の不正アクセスに悪用され、最終的には直接金銭的被害に結びついてしまうこともあります。
注意すべき点は、パスワードリスト攻撃においては、その元となるIDとパスワードは、個人のパソコンからではなくインターネットサービスのサーバから盗み取られている場合が多い、ということです。つまり、利用者側で強固なパスワードを設定し、かつパソコン上でセキュリティソフトを利用して守っていても、同一のパスワードを使い回している限り、パスワードリスト攻撃の被害を防ぐことはできません。
ワンタイムパスワードとは、文字通り1回しか使えない「使い捨てパスワード」、およびそれを採用した認証の仕組みのことです。
ワンタイムパスワードでは、認証を行うたびに毎回異なるパスワードを使用し、一度使用したパスワードは再利用せずに使い捨てにします。万が一、ワンタイムパスワードを窃取されたとしても、すでに使われたワンタイムパスワードは再度使うことはできないので、安全性が向上します。
それに加えて、一般的に有効期間が30秒~1分程度で、とても短いのも特徴です。不正を目論む者にパスワードを破る時間的な余裕を与えないことも有効な対策となっています。
ワンタイムパスワードは、不正アクセスを防ぐ有効な手法として、主に金融機関のインターネットバンキングなどに普及していて、徐々にオンラインゲームなどの他のサービスにも広がっています。インターネットバンキングでは、各種サービスへのログインだけでなく、口座からの送金など、慎重さが求められる操作する際にもワンタイムパスワードでの認証がされます。
ワンタイムパスワードを生成する方式には、タイムスタンプ方式(タイムシンクロナス方式、時刻同期方式ともいいます)とチャレンジ・レスポンス方式の2通りがあります。ここでは、銀行系で一般的なタイムスタンプ方式についてのみ解説します。
【タイムスタンプ方式の仕組み】
タイムスタンプ方式では、トークン(token)というツールを利用して、ワンタイムパスワード(一般的には6桁の数字)を生成します。認証を行う際には、ユーザーはユーザーIDとトークンに表示されたワンタイムパスワードを送信します。認証サーバ側では、あらかじめ把握してあるユーザーとトークンの情報および時刻を判断して、送られてきたワンタイムパスワードが、本人のものであるかどうかを判断する仕組みです。
この方式は、タイムスタンプという名の通り、ワンタイムパスワードを生成するための情報として時刻を使います。そのため、認証サーバとトークンの間で時刻の同期がとれていることが必要です。ただし物理的に別のものですので、時刻の厳密な同期はできません。そのため認証サーバには時刻のずれを吸収するような仕組みも備えられています。
トークンという用語は、もともとの意味が「しるし」「証拠」「記念品」「引換券」「形ばかりの」などであることから、例えば、地下鉄やバスなどの代用通貨とか、商品券・図書券などのことを指したり、通信や仮想通貨の分野でも使われたりします。ワンタイムパスワードでのトークンは、正確には「セキュリティトークン」のことで、ワンタイムパスワードを発行する器具(ハードウェアトークン)またはアプリ(ソフトウェアトークン)を指します。
ワンタイムパスワードで利用されるハードウェアトークンには、主に以下の2種類です。
【キーホルダー型】
小さく、ボタンも一つしかないため、使いやすい
【カード型】
薄く、お財布やカード入れなどに入れて持ち運びやすい。10キーのキーボードが付いているものが多い。
銀行系などでは、もともとキーホルダー型の専用トークンを採用していましたが、トークンの紛失・盗難時の不正取引の防止強化のため、振り込みをする際に相手の口座番号などを入力してパスワードを生成することのできる、カード型のトークンに移行しています。
りそな銀行では、キーボードの代わりにカメラを内蔵したカード型トークンを発行しています。
ソフトウェアトークンは、ワンタイムパスワードをパソコンやスマートフォン等の画面上に表示するアプリケーションのことです。ハードウェアトークンという専用機器を配布しないで済むので、スマートフォンの利用拡大に伴って各銀行では積極的にこのアプリの利用を呼び掛けています。