[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[harden-mac:0036] Re: ログインパスワード長 (was Re: Jaguar で気になる点)



しろやまです。



ま、じゃ、浅知恵とやらでも披露しますか。

確かに、もったいぶる程のもんでもありませんしね。

>
> # ここら辺がUNIXパスワードに由来してウンヌンとかの話は、
> # 詳しくないので書けないので、どなたかお願いします。_o_
>


UNIXパスワードの認証は、まず、パスワードフィールドを作る
時に

1. 入力された文字列(8文字)のそれぞれ下7bitをとり、それを
   組み合わせて 7x8 = 56bit のデータを作り、それを「鍵」と
   します。56bitである理由は、crypt()の使うDESの鍵の長さ
   が56bitだったからです。

2. 適当に2文字の「salt」を決めます。

3. 全てがNUL(\0)文字のデータをその「鍵」と「salt」を用いて
   crypt()で暗号化します。

4. 3.による暗号化の結果に2文字の「salt」を繋いで、文字列を
   作ります。

これが古典的なパスワードフィールドの内容です。

認証するときも同じ事をします。つまりは入力されたユーザ名から
パスワードフィールドを持ってきておいて、その頭2文字からパス
ワードを作るときに使った「salt」を知り、ユーザのパスワード入力
から仮の「鍵」を作り、上の3 と同じ暗号化をします。

で、結果を比較して同じだったら「二つの暗号化で使った鍵は同じ」
->「元のパスワードと入力されたパスワードは同じ」->「パスワード
は正しい」という事になります。

「鍵」の作り方が硬である以上、8文字目以降は無視せざるを得
ないというわけです。


で、これは古典的なUNIXでは皆同じくやっていることで、たとえ
管理システムにNISを使おうがNetInfoを使おうが、/etc/passwdで
管理をしようが代わりありませんし、一種類のUNIXでかえてしまう
と、とそこだけ従来の管理システムからもらったパスワードで認証
ができなくなってしまいます。
# ただ、いろんな事情(crypt()のDESの米国外への輸出規制とか)
# で  DESのかわりにMD5を用いた方法をとってるものもあります。


じゃあ、認証方式を変えりゃいいじゃんと思うでしょう。

だからこそ Jaguarで PAMサポートをしたのでしょう。PAMは、「どう
やって認証するか」の部分をモジュール化して切り替えることがで
きるようにするものです。例えば、WindowsのPDCとやりとりして、
ドメインのログオンを持ってアカウントを認証するとかもできるよう
になります。


ただ、まだデフォルトでは昔ながらの方式が生きているって事です。

PAMの設定切り替えて、loginwindow に他の方式を使わせれば
8文字目以降も意味を持つかもしれません。

... もちろん、まだ試しておりません。



以上、「誰かが知ってる」情報です。

もっとも、「誰かが知ってる」情報を流すことに意味を見出せないの
ならば、世に生きるにさぞかし大変であろうとは思いますけどね :-P

---
SHIROYAMA Takayuki


--[PR]------------------------------------------------------------------
■■■■ウェブマスター様へ    Amazon.co.jpアソシエイト・プログラム
■■■
■■■■サイト作りのお手伝い | いろいろなリンク方法 | 3%〜5%の紹介料
■■■
■■■■ http://ad.freeml.com/cgi-bin/ad.cgi?id=bmshX
------------------------------------------------------------------[PR]--
<GMO GROUP> Global Media Online  www.gmo.jp