最 小コストで最 大 限 の 不 正 行 為 対 策

昔から使われているパスワード
世界中の誰でも知っている昔々のアラビアの物語「アリババと40人の盗賊」をちょっとだけ思い出してみましょう。そこではすでに「ひらけゴマ」というパスワードによって動作する認証システムを採用しています。それほどパスワードというのはポピュラーで、そして、そのコンセプトも昔からあったものです。
パスワードの原理は、特定の人間のみが知っている情報を提示することによって、その特定の人間であると証明することです。
このパスワードに使う情報を他人が知るこ実
践

Linux

セキュリティー講座とがなく正しく運用されてさえいれば、これほど単純でコストがかからず、そして十分に強力な認証方法はありません。その一方で、パスワード方式は、きちんとした安全なシステムと運用方法をしなければ単純であるがゆえに簡単に破綻してしまいます。もっと短く言えば、使っているパスワードがバレてしまっては元も子もなくなってしまいます。フェイルセーフというものがありません。
パスワード方式の防御の原理原則は単純明快です。それは、使っているパスワードを「知られない／悟られない」ということです。

今回はパスワードとユーザーアカウントの管理について考えてみます。基本の基本

一方、単純であるがゆえに、そのためにはいであるパスワードの選び方から、今後求められる認証方法などを説明します。

ろいろな方策をとらなければなりません。

Linuxのユーザーアカウントに対する認証などは小規模（個人）利用を想定していますが、SOHOレベルではこの仕組みを正しく利用すれば十分に安心して使える記憶するのがベストものになるでしょう。
あるLinuxのイントール解説書には、「root第8回のパスワードを設定したあとで忘れると大変ユーザーアカウントを管理する書いてあったそうです。ある意味で、本音をなのでパスワードをメモしておきましょう」と含んでいるので苦笑いするしかありませんが、ソフトウェアコンサルタント すずきひろのぶ

一般論としては避けるべき行為です。
この連載を読んでいる方で、パスワードを書いた付箋紙をディスプレイに張ってあるよ
うな人はさすがにいないと信じていますが、それでいても、パソコンのようにコンピュータはコンソールの前にいる自分しか使うことがないような感覚でいる人も多いかもしれません。
筆者は自宅で利用しているLinuxのパスワ

334 INTERNET magazine 1999/9

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

ードをメモする行為を頭から否定する気はあ

キュメントの存在すら知らない人たちではなせからなる8文字の文字列にした場合、どれりません。頭の中に収めるというのがベストいかと思っています。くらいの強度になるかをちょっと計算してみですが、それが不安な場合、メモを取るといLinuxでパスワードを設定する場合、パスう非常手段に出ることもあると思います。

ワードが適当であるかどうかのチェックが必「メモすることは悪いことなのか」という話ず入ります（図2）。したがって、「任意の1文8文字のパスワードを選ぶ場合題は常に議論の対象となります。一番理想的字」とか「英単語辞書にある単語」というの1AからZまでの大文字小文字を区別して52なのは十分に複雑で長いパスワードを頭の中はあり得ません。一方、誕生日の組み合わせ個を組み合わせるに記憶しておくことです。しかし、そうは世のなどは数字の無意味な羅列として認識して入528 ＝53459728531456（約53兆とおり）

中うまくいくとは限りません。
「十分に複雑な力されてしまいますが、そのような数字の組20から9までの数字10個をさらに加えて62パスワードを記憶しろ」と強く言ったところ

み合わせは避けなければならないのは言うま個から組み合わせるで、ユーザーはパスワードを忘れることが不でもありません。コンピュータはあなたの誕生

628＝218340105584896（約218兆とおり）

安で簡単なパスワードを付けてしまう危険性

日を知らなくとも、あなたのサーバーを攻撃

3「!」や「*」など10種のキャラクターをさがあるのです。ならば、メモが外部に洩れないする者は知っているかもしれないことを思いらに加えて72個から組み合わせるような管理をしたうえで、複雑なパスワードを出すべきでしょう。

728＝722204136308736（約772兆とおり）

ましょう。

選択するのも1つの選択ではないでしょうか。

最近のLinuxはLinux-PAM（Pluggable

このような記憶に頼るタイプのパスワード

Authentication Module for Linux）という認

ランダムなパスワードを破るには試行を繰

による認証の限界は、利用するユーザーの賢証を強化するセキュリティーフレームワークり返す方法しかありません。この方法をイクさを超えることはできないと筆者は考えていが追加されています。これについては、今回ゾースト攻撃あるいはブルートフォース攻撃ます。ただし一言厳しいことを言わせてもらの話題の範囲では弱いパスワードのチェックなどと呼びます。外部からパスワード認証をえば、SOHO環境では数多くのシステムを同をしてくれるものという認識で十分でしょう。

呼び出して試行するような手順で攻撃するな時に管理するわけではないのですから、せめて8文字程度の記号列ぐらいは記憶してほしらば628 程度の組み合わせで半永久的に解け8文字の強度はどれぐらいかないでしょう。

いと思います。

パスワードファイルが盗まれた状態（パスパスワードをランダムな英数字の組み合わ

ワードファイルの構造に関しては後に説明しシステムがチェックするが…
図1 「ユーザー全体の86パーセントのパスワードが弱い」という根拠
パスワード初心者に「十分に複雑なパスワードを選択してください」と言っても、何をパスワードにしてよいかわかりません。まった
く知識がないユーザーがパスワードを選ぶ場合、弱いパスワードになってしまうでしょう。と言っても、Linuxでは、よく雑誌などに3289ケースの中パスワードが...
任意の1文字である ...........................................15ケース
任意の2文字である ..........................................72ケース
任意の3文字である .........................................464ケース
4文字のアルファベットである .................................477ケース
5文字のアルファベットで大文字のみか小文字のみである .............706ケース
6文字のアルファベットで小文字のみである .......................605ケース
英語辞書にある単語である ....................................492ケース
トータル 2831

書かれている「ユーザー全体の86パーセントのパスワードが弱いパスワードである」というような事態にはなりません。この数字だけ一人歩きしていますが、もともとは1975年のUNIX System Manager's Manual（6th ed）

図2

passwdコマンドで弱いパスワードを入力した場合# passwd
New UNIX password:
BAD PASSWORD: it is too short"hello"と入力短いので拒否されるにあるRobert MorrisとKen Thompsonが書いたドキュメント"Password Security: A
Case History"に現われる数字です（図1）。
筆者が想像するには、今ごろこの86パーセン
トという数字を出す人はこのドキュメントに# passwd
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
# passwd
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic"password"と入力
辞書にある単語だと拒否"1234567890"と入力単純すぎるので拒否目を通したことがない人たちか、あるいはドインターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1999/9335

ます）ではどうなのでしょうか？

パスワードに簡単で次のコマンドを実行するだけです。

ファイルがあるならばパスワード生成の内部$ mkpasswd

ルーチンを直接使えばいいので、高速にパスlvs76SJpx ← 表示されるパスワード候補文字列ワードを試行するのが可能になります。非常に大ざっぱですが、毎秒100万回の試行が可次 の例 がp w c o n v を実 行 した後 の/etc/passwdにあるrootのエントリーです。
root:x:0:0:root:/root:/bin/bash

パスワードがあるべき部分が"x"となっていシャドウパスワードを使う

能[注]という仮定で、全体の50パーセントをます。パスワード部分は/etc/shadowに移ります。以 降 、システムは自 動 的 に/ e t c /試行するにはどれくらいかかるか計算してみ何もしない場合、Linuxは/etc/passwdとます。結論から先に言えば、SOHOレベルでいうファイルにパスワードを保存します。しあれば3.46年程度保護できれば十分でしょう。

かし、/etc/passwdは一般ユーザーが読み取れるファイルです。つまり、誰でも、そこかshadowのパスワードを参照するようになります。

パスワードファイルの作り方

らパスワードを取り出してイクゾースト攻撃

英字（大小区別あり）のみ約300日
英数字から8文字ランダムに選んだ場合
約3.46年
加えてキャラクター10文字を加えた場合
約11.45年

ちなみに、100万回を処理するのに必要な計算力は、現在RC5-64解読に参加しているグループのトップ10チームの合計よりも大きいものです。
distributed.net

www.distributed.net[注]これはかなり余裕を持った計算量です。DES暗号を使っているパスワードプログラムなら毎秒2500万回ものDESの計算が必要になります。MD5ハッシュ関数を使っているものでは毎秒10億回ものMD5の計算が必要になります。

複雑なパスワードを作る
今までの解説書の多くには「ランダムな文ができるようになっています。それではあまりパスワードファイルに含まれるパスワードにも問題ですので、最近はrootしか参照できは、すでに一方向性ハッシュ関数によって撹ないシャドウパスワードファイルを利用するの拌されている値となってなっています（図4）。

が常識的な運用になっています。ユーザーすしたがって、パスワードファイルの中にあべてが丈夫なパスワードを付けているならばるすでに撹拌されているパスワードの値だけ問題はないと思うかもしれませんが、きちん持っていても、そこから元のパスワードを逆と隠しましょう。Linuxではシャドウパスワー算することはできません。いろいろな入力値ドが標準で入っています。

を一方向性ハッシュ関数に与えて、その出力使い方は簡単です。root権限でpwconvコ

結果と手元にあるパスワードファイルの内容

マンドを実行すると、自動的に/etc/passwdとを比較する方法、つまり、イクゾースト攻から/etc/shadowというシャドウパスワード撃でしか探すことはできません。

用のファイルを生成します。また、grpconv

実際のパスワードの生成は入力された文字

コマンドを使えばグループのパスワードを保存

列にシステムが用意したSalt（塩）と呼ぶ初期している/etc/group をシャドウ化します。

値を加えたものを一方向性ハッシュ関数に与pwconvを実行したあと、grpconvも実行しえ、何度か繰り返し計算をしてビットのパタておきましょう（図3）。pwconv、grpconvーンをしつこいくらいに撹拌します。

ともに一度実行したら、それ以降追加するユ

一方向性ハッシュ関数には、暗号化するたーザーやグループについても自動的にシャドめのDESを一方向性ハッシュ関数として代用ウパスワードが有効になります。

するもの（UNIXオリジナルの方法）
、一方向

図3

パスワードをシャドウ化する字列を思い浮かべて利用しなさい」ぐらいの書き方がされていますが、実は慣れない人にとってはランダムな文字を思い浮かべること自体がとても難しいのです。といって、身近な所でサイコロを振って決めたとしても6 8 の組み合わせ程度しかありません。
そこで、おすすめなのがLinuxのmkpasswdコマンドです。これは自動的にパスワードを生成するプログラムです。パスワードを決め兼ねているくらいなら、このコマンドを使って決めたほうが確実で安全です。方法は非常336 INTERNET magazine 1999/9

シャドウパスワードを使ったシステムでは、以前のUNIXのようにエディターで直接/etc/passwdにユーザーエントリーを作るようなことはできない（なぜなら/etc/shadowには反映されていないから）。すべてadduserなどの管理用コマンドを経由しなければならない。また、パスワードのチェックが必要な一般アプリケーションの場合、シャドウのAPIを介して/etc/shadowにアクセスする。

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D最 小コストで最 大 限 の 不 正 行 為 対 策

性ハッシュ関数MD5を使うものがあります。

サーバーでNISは使わない

OTPはセットアップが必要

DESを使う場合は25回繰り返して計算します。MD5の場合は1000回繰り返して計算し

NISはサン・マイクロシステムズが考案したOTP（One Time Password、使い捨てパます。RedHat5.2はLinux-PAMを利用してネットワーク経由でユーザーのアカウントやネスワード）とは、ログインするごとにシステムいるのでMD5を使っての撹拌が行われていまットワークホストの管理を行うシステムです。

が要求するパスワードが異なるようなパスワす。いずれも暗号学的には十分な強度が得らUNIXを中心としたLAN環境では広く使われードのシステムです。システムに与えるパスワれていると言えます。ているものです。LinuxにもNISのパッケージードは、ワンタイムパスワードを生成するプがあります。

ログラムや専用ICカードを使って計算します。

ログインできるユーザー

ウェブサーバーやメールサーバーを動かすサ

残念ながらLinux上では広くは利用されていーバーマシン（以下サーバー）上でNISを利ません。現時点の標準パッケージでは、S/サーバーにログインできるユーザーは極力最用することはやめましょう。ネットワーク上KeyやOPIEのようなOTPのシステムとしてよ小限にしてください。ユーザーが増えれば増で利用するユーザーのアカウントが一括してく知られているものでもパスワード認証シスえるほどパスワードが洩れる危険性が高まる

管理できる利点はあります。しかし、こういテムに組み込まれていません。これらを利用からです。

ったサーバーのアカウント管理の問題とサーするとなると、独自のセットアップが必要になります。

しかし、何らかの正当な理由でサーバーをバー以外でのネットワーク全体のアカウント使用する必要があるユーザーがいる場合は、管理の問題が混在してしまいます。サーバー利用を拒否するのではなく、きちんと教育しのアカウントの問題はサーバーの中だけに限たあとに利用させるようにしてください。こ定すべきです。

こでは説明は省きますがルールとは最終的に次回
TCP WRAPPERに関しての話題を取り上げます。

バランスの問題に還元されると筆者は考えるからです。
たとえば「ネットワーク経由での一切のログインを禁止しコンソールからの作業のみ許

図4

一方向性ハッシュ関数す」というルールを作るのは簡単ですが非現実的です。ネットワークでのログインには、今後連載で取り上げる予定のSSHのようなシステムを使いましょう。

セキュリティートークンカードが本当の意味でのパスワードとなる
ここで解説するのは専門的な話になります。必筆者は大規模ユーザーを抱えるサイトにはスト効果を考えれば、ほかの特殊な認証方法をずしもSOHO環境で使える話ではないのですが、Secure IDやSafewordのような人間の記憶に使うよりも安い買い物だと筆者は考えます。人間知識としてぜひ持っておいてほしいことです。

頼らないセキュリティートークンカードの導入をですから、万が一パスワードが知らぬ間に他人に筆者は「記憶に頼るタイプのパスワードによるすすめます。ユーザーが付けるパスワードから発洩れてしまった場合などは、そのパスワードで侵認証の限界は利用するユーザーの賢さを超えるこ生するセキュリティーホールを防ぐには、このよ入されていても気付くのが非常に困難です。とはできない」と指摘しました。ユーザー教育をうに人間に左右されない方法が必要です。

セキュリティートークンカードの利用範囲はま

徹底できない大規模ユーザーシステムでは、記憶今まで0円だった認証のための初期投資コストだ広がってはいませんが、セキュリティーが必要に頼るパスワードはあっと言う間に破綻してしまが1人当たり1万円を超すようになると思います。

なところは必ずこのような「人の賢さに左右されいます。もちろん86パーセントという非現実的しかし、企業などで必要なセキュリティーの対コない」方法を利用するべきです。

な数字にはなりませんが、それでいても10パーセントや20パーセントは抜け穴となる弱いパスワードを使うユーザーが現れるでしょう。

SecureIDwww.securitydynamics.com/japan/html/products/securid_tokens.html

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1999/9337

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバーアーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.