様々なシステム、サービスでパスワードによる認証が使用されています。ここではパスワードを設定する際に覚えておきたい、安全で強固なパスワードの設定方法について解説します。パスワードによる認証システムを開発する際のパスワード要件としても当てはまります。様々なシステム、サービスでパスワードによる認証が使用されています。ここではパスワードを設定する際に覚えておきたい、安全で強固なパスワードの設定方法について解説します。ここで解説する安全なパスワードの設定方法は、パスワードによる認証システムを開発する際に受け入れ可能なパスワード要件としても使用することができるでしょう。点を守った上で、本人が覚えやすく、入力しやすいパスワードが、優れたパスワードと言えるでしょう。古くから、パスワードはランダムな文字の羅列(例えば「wz-7HK9y3o@M」のような)を使用するようにとよくいわれますが、いくつかの単語を組み合わせ、フレーズを作る「パスフレーズ」形式でも非常に強固なパスワードを作ることができます。パスフレーズを考える場合、下記の手順で行います。各単語の先頭文字だけ大文字にしてそれらをつなげます。4つの単語にしようと決めた上で、これらをつなげると下記のようなパスフレーズになります。文字の長さを持ち、十分な強度のパスワードを設定することができました。目の英単語を覚えやすい数字に変えたり、単語間に「-(ハイフン)」を入れるなどすれば、文字種の指定をクリアすることができます。文字程度を指定してくる場合、このパスフレーズ方式は避け、従来のラインダムな文字の羅列でパスワードを設定する方がよいでしょう。文字数がすくないと使える単語が少なく、十分な強度が保てないからです。文字以上のパスワードが設定可能なシステムであれば、このパスフレーズ方式は役に立つと考えます。当然ながら、同じパスフレーズの組み合わせを他のサービスやシステムで使い回すようなことはしないようにしてください。システムの開発時に注意すべきパスワードの要件ここまでを踏まえて、もしパスワードによる認証を伴うシステムを開発する場合、そのパスワードの要件をどうするか、別の言い方をすれば、「何をすべきでないか」について考えてみましょう。文字などに制限するシステムを目にする機会も多いですが、パスワードに設定可能な文字数の制限は原則として行うべきではありません。文字以下など十分な文字数を確保した上で上限を定めるべきです。文字程度にするとよいでしょう。文字の場合、生年月日だけで設定できてしまう文字数になります(例:20210401)。文字程度にしておけば、名前の一部と生年月日を組み合わせるなど、そこまで情報リテラシが高くない利用者であっても、自然とある程度強固なパスワードを設定するようになるでしょう。入力にも対応するとなおよいですが)。ここでいう文字種の指定とは、「パスワードには英数字、記号を必ず含め、さらにアルファベットは大文字と小文字を含んでください」というような指定を指します。開発者、サービス提供側の意図としては、この制限によって利用者が強固なパスワードを設定可能と考えるのかもしれませんが、パスワード自体に十分な長さがあれば、アルファベットのみでも十分強固なパスワードになりますし、前述したパスフレーズの例のように、大文字と小文字を混合させれば十分です。一方で、利用者がパスワードに記号や数字を使いたい場合は自由に使えるようにするべきです。使える記号をいくつかのみに制限するといったことはするべきではありません。結論よって、利用者に向けてパスワードの要件を示す場合は、下記の要件を満たすようにするとよいでしょう。パスワードに設定可能な文字数の上限は原則として指定しない。やむを得ず指定する場合でも十分な長さを確保する。文字程度を基本とする。パスワードに設定可能な文字種については原則指定する必要はないが、「アルファベットの大文字と小文字を混在させる」という指定は妥当と考える。一方で数字や記号も自由に使用できるようにし、例えば記号の中の一部だけ使用可能、といった制限は避けるべき。他のサービスやシステムですでに使用しているパスワードの使い回しは避けるよう、その危険性などを含めて利用者にわかりやすく案内する。上記を言い換えれば下記のようにも考えることができるでしょう。ブラウザや、パスワード管理ソフトなど、パスワードの自動生成機能をもったソフトウェアが生成するパスワードが、そのまま利用できるようにしておく。多くのパスワード自動生成機能は、前述したような安全な条件を満たすパスワードを生成します。利用者がパスワード生成機能を使用して安全なパスワードを生成したにもかかわらず、一部の記号が使えないなど、システム側がそれを受け入れられないようであれば、利便性が低下するだけでなく、パスワードの強度も低下する危険性があります。用いて禁止しているケースが散見されますが、これは全く無意味かつ利用者の利便性を大きく損なう行為であり、避けるべきです。そのような実装を行う開発者が何を意図しているのかは不明ですが、長く複雑なパスワードほど、手入力で正確に入力するのは困難ですし、パスワード管理ソフトで別途管理されたパスワードを使用したり、パスワードの自動生成機能を利用して生成したパスワードを使用する場合など、パスワード入力欄に対してコピー・アンド・ペーストができなければアクセシビリティ、ユーザビリティが著しく低下します。パスワードの要件とは少し話がずれますが、このような実装を行わないように注意しましょう。この記事の内容は、あくまでパスワード文字列の要件に関して述べたもので、パスワードデータの保存方法、例えば利用するパスワードハッシュ化関数などに関しては触れていません。桁など、少ない場合でも、それがただちに脆弱なパスワードとなるとは限りません。Articleパスワード入力欄のコピペ禁止はアクセシビリティを損なうパスワード入力欄をコピー・アンド・ペースト(いわゆる「コピペ」)禁止にしているウェブサイト、あるいはウェブアプリケーションを希に見かけますが、このような制限はアクセシビリティ上の問題を生じさせるため今すぐやめるべきです。そんな企業の皆様の想いにバーンワークスは真剣に向き合い、最適解を提供いたします。