人の造りしもの――“パスワード”の破られ方と守り方セキュリティ対策の「ある視点」(9)(2/4 ページ)

» 2008年05月08日 00時00分 公開

復元ツールの存在を踏まえたパスワードの保護設定を考える

 前回の記事では言及しなかったが、Windows 2000 Server/Server 2003などのデフォルトの設定状態で、パスワードハッシュは、LMとNTLM形式の両方で格納されている。今回問題にも登場した以下の情報を見てほしい。

Administrator:500:5FE055EE93CA7DB048D7645CD4E30C86:

4FEBC2EC1E27A3168F24289B5850F48D:::

(編注:都合上改行を入れていますが、実際には1行となります)


 上記は、

ユーザー名:uid:ハッシュ


のように記述されていることを前回解説したが、ハッシュに当たる文字列(2つ目の「:」以降)を見てほしい。よく見ると、区切り文字である「:」がある。実は、ハッシュの部分も「:」で分割されており、前半と後半で意味があるのである。この文字列の前半が「LMハッシュ」、後半が「NTLMハッシュ」となる。

 セキュリティ的な視点からLMハッシュとNTLMハッシュの違いを大まかではあるが見てみよう。

LMハッシュ NTLMハッシュ
暗号化アルゴリズム DES(ソルトなし)【注2】 MD4(ソルトなし)
大文字小文字の区別 なし あり
文字列分割 7文字ずつの区切りあり 7文字ずつの区切りなし
表1 LMハッシュとNTLMハッシュの違い

【注2】

ソルトとは、元の値への復元を困難にするために加えられる、ランダムな文字列のこと。


 分かりやすいポイントとしては、2点あるだろう。まず1点目は大文字と小文字の区別である。LMハッシュは大文字と小文字を区別しないため、John The Ripperを用いてパスワードの復元を試みた際に文字列を割り出すまでの時間が少ない。当然、システムへログオンする際には、大文字小文字の区別をするため、最終的にはそこまで特定する必要はあるのだが、どのような文字列かまったく分からずにアタリをつけるのと、分かっていてアタリをつけるのとでは、ワケが違うということは容易に想像がつくだろう。

 2点目は、7文字ごとの区切りである。7文字区切りの場合どちらか一方が復元されることにより残りの文字列を推測されてしまう恐れがあることは、今回と前回の記事で証明済みである。NTLMハッシュのみでの格納にしていた場合は、後半の文字列が先に復元されてしまうというようなことはない。

 これで、LMハッシュの方式がNTLMに比べ脆弱であるということが分かっていただけただろうか。

 両方がデフォルトで格納されるのは、LMハッシュによる認証しか行うことができないシステムに対する下位互換のためである。つまり、この互換が必要ない環境においては、LMハッシュをシステム内に格納しておく必要がないのである。

 それでは、LMハッシュがシステム内に格納されないようにする設定を紹介しよう。

Windows 2000 SP2以降の場合

 レジストリエディタ(regedit.exe)でレジストリキー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa」を見つけ、右クリックする。

図2 変更すべきレジストリの項目 図2 変更すべきレジストリの項目

 右クリックメニューから「新規」→「キー」とクリックし「NoLMHash」という名前のキーを作成する。

図3 「NoLMHash」を作成 図3 「NoLMHash」を作成

 その後、システムを再起動する。

Windows XP、Windows Server 2003の場合

 レジストリエディタ(regedit.exe)でレジストリキー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa」を見つけ、右クリックする。

図4 変更すべきレジストリの項目 図4 変更すべきレジストリの項目

 右クリックメニューから「新規」→「DWORD値」とクリックし「NoLMHash」という名前を付ける。

図5 「NoLMHash」を作成 図5 「NoLMHash」を作成

 作成した「DWORD値」を右クリックし「修正」をクリックして、編集ウィンドウを開き、「値のデータ」を「1」にする。その後、システムを再起動する。

 設定の変更だけでは、格納されたLMハッシュは残ったままなので注意が必要である。設定を変更した後、各ユーザーのパスワードを再設定しなければならない。再設定すると、上書きが行われ、そこで初めてNTLMハッシュのみの格納となるのである。この際に、現行のパスワードと違うものにする必要はなく、同じパスワードを再設定してもハッシュの上書きが行われる。

 以下は、設定を施した場合の、パスワードを変更する前と後のPwDump7の結果である。

図6 パスワード変更前後でのPwDump7の実行結果 図6 パスワード変更前後でのPwDump7の実行結果(クリックすると拡大します)

 「Administrator」のパスワードハッシュに変化があることが分かるだろう。2回目のPwDump7の実行では、パスワードハッシュの「:」で区切られた前半の部分、つまり、LMハッシュが表示される部分が「NO PASSWORD*********************」となっていることが分かるだろう。

 このハッシュをJohn The Ripperで「--format=NT」を付けずに実行したのが下図である。

図7 ハッシュをJohn The Ripperにかけた結果 図7 ハッシュをJohn The Ripperにかけた結果

 これで、LMハッシュを元に復元できないようになったわけである。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。