パスワードは、システムに入るための鍵です。不正なログインを防ぐには、できるだけ安全にしておく必要があることは言うまでもありません。これは、はるかに大きなセキュリティ上の問題に対する最初の手段でもあります。攻撃を鈍らせるほど強力なパスワードの使用は、将来大きな問題に直面しないためのきわめて重要で単純な手段です。
多くのユーザーが使用しているパスワードは、きわめて簡単に推測できるものです。Red Hat Linuxには、システムへの認証を与えるために異なる方法がいくつも用意されています。これには、cryptを使用した暗号化パスワード、シャドウパスワード(the section called シャドウユーティリティ in Chapter 12に詳しく説明されています)、Kerberos 5などが含まれます。認証スキームの一環としてパスワードを決める場合、少なくとも部分的には、そのスキームのセキュリティは選択したパスワードの複雑さにかかっていることになります。
なぜ推測の難しい安全なパスワードを作成する必要があるのでしょうか。簡単に言ってしまえば、強力なコンピュータハードウェアの価格が下がり続ける一方、パスワードを破るための自由に入手可能なツールや手法も増え続けています。多くの単純な認証スキームにおけるパスワードの格納方法のおかげで、いったんシステムユーザーのパスワードが格納されているファイルへのアクセスできれば、攻撃者は辞書にある単語を暗号化パスワードとして試してみることによって、比較的短時間でパスワードのいずれかを推測できてしまいます。認証スキームはこの種の攻撃を認識しており、こうしたことを起こりにくくするためのさまざまな手法を講じていますが、どれも確実な方法とはいえません。したがって、特にrootアカウントに対しては、選択するパスワードの種類やその変更頻度には多大な注意を払うべきです。
優れたパスワードは、以下のような特質を備えています。
最低8文字以上であること—一般に、パスワードは短いほど推測されやすくなります。
文字、数字、記号の組み合わせであること—文字の間に数字や記号を隠す(またはその逆)ことにより、ある文字についての可能な組み合わせ数が増え、結果としてパスワードそのものが強化されます。
一意であること—自分がほかで使用しているパスワードとは別のパスワードを選択します。すべてのパスワードが同じか非常に似ている場合、セキュリティを侵害された場合のリスクがはるかに大きくなってしまいます。
次のようなパスワードの使用は避けるべきです。
辞書にあるような単語—パスワードとして辞書にある単語を使用すると、システムへの侵入を非常に楽にしてしまうことになります。このようなことは行うべきではありません。また、ユーザーがパスワードとして辞書にある単語を使用するのを防止する認証スキームを無効にすべきではありません。
個人情報と結びついたもの—自分の誕生日、配偶者の名前、自分の車の車種などをパスワードにすることは、みずからトラブルを求めているようなものです。自分が使用しているすべてのパスワードについて、自分を知っている誰かが推測できるものかどうか判断してみましょう。もし少しでも可能性があれば、そのパスワードを使用すべきではありません。
素早く入力できないもの—パスワードが複雑すぎて、入力する際に毎回文字を探しまわらなければならない場合、簡単に指の動きを覗き見てそのパスワードを推測できてしまいます。少なくとも自分のパスワードについては、1人のときに素早く入力できるよう練習しておきましょう。