ホームへ戻る

ログインする時の奇妙な文字は?

インターネット・ショッピングや銀行の預貯金などでホームページに入り込む(ログイン)時に、IDとパスワードだけではなく、図1のような画面に出ている「ひしゃげた変な文字」を読んで入力することがあります。大きさや向きがまちまちで踊るような恰好をしていて、別の模様と重なっていることもあります。これは本人の確認のための一つの手段です。コンピューターやネットワークシステムを利用する際に必要な本人確認のこと認証と言います。今回は認証について述べたいと思います。

CAPTCHA

図1 CAPTCHA

昔から当人が本人か偽者かを判断するために、山・川などの合言葉(あいことば)や二つに破いた紙を合わせる割符(わりふ)などが使われてきました。今では、インターネットが発達し、本人であることの確認にはパスワードを使用することが殆どです。ID(アイ・ディ、Identification:識別番号)とパスワードを事前に登録しておき、新たにホームページに入る時には、本人であることの確認のためIDとパスワードが求められます。IDに対する正しいパスワードの時は認証がなされ、ホームページの中に入ることが許されます。
パスワードが4桁の数字であれば0000~9999の1万個の数字の中に正しい数字があります。もし別の人がパスワードを知らなくても、最大で1万回の数字を入力すればホームページの中に入ることができます。人の手入力で1つずつ入力するとなれば大変ですが、電子機器(コンピュータ)であればあっと言う間に正解を見つけることができます。数字だけではなくアルファベット・記号を使うことで文字数を増やす、桁数を増やす、等が行われました。以前は桁数も変えながら全部の文字を入れるには何万年あるいは何百万年かかるとの話がありましたが、今ではコンピュータの性能向上で現実的な時間で当てられるようになっています。このように、パスワードを見つけるのに力任せに全ての文字・数字を入れるのを「総当たり攻撃」、あるいは、「ブルートフォース攻撃」(Brute-force attack)と呼ばれています。
クレジットカードなどで3回パスワードを入れ間違えるとその日は受け付けられなくなるなどの工夫がなされています。総当たり攻撃では3回以内に当てることはまずできません。そのため、これで良いのではないかと思われがちですが、別の悪だくみがあります。クレジットカード番号を1万個用意しておくと、1つの適当な数字がどれかのカードのパスワードと一致することが十分あり得ます。3回のいろいろな数字でトライすると恐らく当たりのカード番号が出てくるでしょう。このように1個のパスワードに対しIDの方を順繰りに代えて行く方法を「逆総当たり攻撃」(リバースブルートフォース)と言います。
「総当たり攻撃」とは言うものの出来るだけ効率的にパスワードを見つける方法に「辞書攻撃」があります。人間の思考は似たものなので、パスワードには簡単な英数字(例えば、123456、345678、abc123)や馴染みのある文字(iloveyou、password、スポーツ選手名、ゲームのキャラクター)が使われることが多いのです。「辞書」とは過去に誰かが使っていたパスワードや、狙われやすいパスワードをリスト化したファイルのことです。このファイルを基にしてパスワードの当たりを付けて捜していくのが辞書攻撃です。

こうしたコンピュータによる攻撃への対処のために開発されたのがCAPTCHA(キャプチャ)です。冒頭の「ひしゃげた変な文字」がCAPTCHAで(図1)、Completely Automated Public Turing test to tell Computers and Humans Apart(コンピュータと人間とを完全に自動識別するチューリング*テスト)の頭文字です。このような文字は人間であれば簡単に読むことができるのですが、コンピュータでは解読が難しいのでコンピュータが自動で操作しているのではないことの証左になります。

* チューリングは人名でアラン・チューリング(Alan Turing)。氏が論文「Computing Machinery and Intelligence」の中で「機械(=人工知能)は考えることができるのか?」という問いに対し、「このようなある種のゲームをうまくこなせるか?」という問いに置き換えて議論することを提案。
reCAPTCHA

図2 reCAPTCHA

最近ではコンピュータでもCAPTCHAをクリアすることができるようになってきました。それに対してreCAPTCHAという技術も出てきました。図2のように「私はロボットではありません。」という文言の横にあるボックスをチェックするようにするものです。これはクリックの有無を見るのではなく、クリックするまでの動作そのものがテストになります。チェックボックスに近づくときのユーザーのカーソルの動きから、顕微鏡レベルでの小さな無意識の動きを見て人間か機械かを判断します。

ワンタイムパスワードと言われるものもあります。インターネットバンキングなどでよく使われるものです。自分のeメールアドレスを事前に銀行に登録しておきます。パソコンからログインする時にIDやパスワードを入れると、銀行からeメールでワンタイムパスワードという6ケタ程度の数字が送られてきます。その数字を入力することでログインできます。このパスワードは一定時間が経つと無効になります。また1回しか使えません。失敗したら、また同じようにログインを行います。eメールだけではなく、スマホや電話でもパスワードを貰うことができます。また、トークンと呼ばれる小型の端末があり、スイッチを押すとパスワードが出てきます。そのパスワードをパソコンに入力すればログインできます。このパスワードは概ね30秒から1分位だけ有効です。時間がオーバーすると再び新しいパスワードが生成されます。なお、銀行側でもパスワード作成の時間とパスワードが分かるのでその端末を持っていることで本人と認証されます。

パソコンやスマホ、トークンなどは盗まれたらそのまま使われてしまいます。そのため、人間の体(指紋、顔、静脈、虹彩)や動き(声紋[音声]、署名[タブレット画面等への手書きのくせ])などの生体そのものが認証の手段として使われています。これを生体認証と言います。写真に手のひらが写っているとそれを基にして指紋のレプリカが作られ認証されたとの記事を見かけたことがあります。虹彩認証では、映画ですが、えぐり出した眼球でドアを開けるシーンがありました。気味悪いですね。

ホームへ戻る