4

I am implementing ASP.NET Membership, using default SQL Provider, default web.config settings.

I notice that passwords are hashed. But I don't know how asp.net hash my passwords, so I am not sure whether it is possible for a hacker to decrypt this?

If asp.net use the same rule to hash password, which everyone knows. than a hacker can easily crack it.

for example. If asp.net use MD5(123456), which result is "E10ADC3949BA59ABBE56E057F20F883E", then a hacker may have a MD5 Dictionary to look up this.

My settings is:

<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />

-- SQL Statement:

SELECT am.UserId, am.[Password], am.PasswordSalt FROM aspnet_Membership am

-- The result is:

F10A635D-22DA-419C-84E6-767D2A35A010,tpeiwPt5+kFbcocQZOuc4aoHeuI=,PVq9dPtbFxze9Erbfd7HrA==

The password is 123456, it become "tpeiwPt5+kFbcocQZOuc4aoHeuI=".

Is this value always the same on different machines or different apps?

If this value has something to do with the salt "PVq9dPtbFxze9Erbfd7HrA==", is it possible for hackers to use this salt to decrypt my password?

4

1 に答える 1

7

この質問に答えられるようにするには、ハッシュの役割と塩の役割という2つのことを理解する必要があります。

ハッシュのポイントは、一方向のプロセスで任意の文字列を既知の長さの文字列に抽出することです。つまり、優れたハッシュアルゴリズムは、同じ値にハッシュする文字列を見つけるのが難しいような方法でこれを実行します。

ただし、問題は、同じ入力が与えられた場合、ハッシュアルゴリズムが常に同じ結果を返すことです。ソルトのポイントは、パスワードデータベースが盗まれた場合にこの問題を軽減することです。パスワードをハッシュするたびに、完全にランダムなソルトを生成します。これは秘密にする必要はなく、ハッシュするにパスワードの前に追加します。このようにして、特定のパスワードをハッシュするたびに、異なる結果が得られるようにします。ランダムソルトが秘密である必要はなく、実際にはハッシュされたパスワードと一緒に「プレーンテキスト」に保存する必要がある理由は、元のハッシュの生成に使用されたものと同じソルトが認証目的で、指定されたパスワードはハッシュと一致します。

ユーザーがパスワードを変更するたびに適切なソルトがランダムに生成されるため、パスワードを保存するアプリケーションがソルトを適切に使用している限り、同じパスワードを復元しても、ほぼ確実にまったく異なるハッシュが作成されます。

ハッシュアルゴリズムが適切に構築されている場合、ランダムソルトで保存されたパスワードに対して可能な攻撃はブルートフォース検索のみです。MD5のようないくつかのハッシュアルゴリズムは、ブルートフォース時間よりも速く、いわゆる「ハッシュ衝突」を見つけることができるという点で、「壊れた」と見なされます。プラットフォームがパスワードハッシュを生成するために使用しているアルゴリズムを確認し、そのアルゴリズムでハッシュの衝突が検出されるかどうかを確認するために少し読んでください。

于 2012-07-27T05:43:45.617 に答える