|
LMハッシュ(LanMan、LAN Managerハッシュとも)は、もともとLAN ManagerやWindows NT以前のWindowsでパスワードを保存するために使われていたハッシュ関数であるが、後述のように、すでに破られている。過去のLAN Managerへの後方互換性を図るため、LMハッシュはのちのWindowsでも生成されていたが、マイクロソフト自身がこのハッシュ生成をオフにするよう管理者へ推奨している。そして、Windows Vistaではデフォルトでオフとなるに至ったが、サードパーティ製のCIFS実装の中には、未だにLMハッシュを使うものが存在する。 == アルゴリズム == LMハッシュの計算方法は次のようになっている。 # パスワードは最長14文字に規制される〔14文字を超えるパスワードからは、LMハッシュを生成することができない。〕。 # パスワードをの小文字を大文字に変換する。 # パスワードをOEMコードページとして解釈する。 # 14バイトに足りない分をヌル文字でパディングする。 # 14バイトの長さになったパスワードを前後7バイトずつに分ける。 # それぞれの片割れ(7バイト = 56ビット)をDESの鍵として使えるように、7ビットごとに区切り、区切った1つ1つの最上位に0のビットを1ビット追加して(例えば、 1010100 を01010100 とする)64ビットの長さに変換する。なお、DESの実質の鍵長は56ビットであるが、パリティビットである8ビットを加えた64ビットの形でやりとりされる。この過程で挿入したビットは、そのパリティビットの位置に当たり、DESの計算には使われない。#生成した鍵でASCII文字列の「 KGS!@#$% 」〔この「KGS!@#$%」という文字列は、Key of Glen and Steve、そして、 Shift + 12345を意味するとされる。Glen ZornとSteve Cobbは RFC 2433 (Microsoft PPP CHAP Extensions)の著者である。〕を暗号化する。DESの暗号利用モードはECBモードとし、パディングモードはNONE とする。# こうして得られた2つの暗号文字列をつなげた16バイトの値がLMハッシュとなる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「LMハッシュ」の詳細全文を読む スポンサード リンク
|