1

ユーザー ログオンの暗号化されたパスワードをデータベース (SQL Server) に保存しています。API の制限により、C# 側でパスワードを暗号化する必要があるため、データベースの組み込み暗号化を使用できません。これらのパスワードを暗号化する最速/最も簡単な方法は何ですか?後でユーザーがサードパーティのサービスに入力したものと比較できますか?

私は C# を初めて使用し、パスワードをプレーン テキストであってはならないことを理解しているため、最高のセキュリティを確保したいと考えています。関数を使用してみRSA.EncryptValue()ましたが、正しく使用する方法についてかなり迷っています。

どんな助けでも大歓迎です-前もって感謝します。

-ジミー

4

3 に答える 3

12

パスワードを暗号化して保存したくない場合。ハッシュを生成して保存します。次に、ユーザーがログインしているときに、ハッシュを再生成し、データベースに保存されているものと比較します。

この質問への回答は、c# でパスワードをハッシュする方法の例を提供します (1 つの回答には、「ソルト」ハッシュの実行に関する情報が含まれています)。

于 2012-04-19T21:03:51.047 に答える
3

まず、暗号化しないでください。ハッシュ。第二に、暗号化しないでください。ハッシュ。

パスワードは決して回復可能であってはなりません。

読むことをお勧めします... http://www.troyhunt.com/2010/05/owasp-top-10-for-net-developers-part-1.html 前面から背面へ。

適切なハッシュアルゴリズムを使用して、パスワードとハッシュをソルトする必要があります。ローエンドにはSHA512を使用するか、そのデータの保護に真剣に取り組んでいる場合は、BCrypthttp://code.google.com/p/bcryptnet/に沿ったものを検討してください。

暗号化ではなくハッシュのポイントは、ブルートフォース攻撃からサイトを保護することではありませんが、さらに重要なことは、データ損失からユーザーを保護することです。

すなわち http://www.bbc.co.uk/news/technology-11998648-Gawkerhttps://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=sony+hacked _ _

人々は、彼らの、しばしば哀れなパスワードの世話をするウェブ開発者の手に多くの信頼を置きます。それらの世話をすることは多くの違いの地獄を作ることができます。

BCryptを使用すると、ワークファクターをソルティングに設定します。また、データベースソルトを追加して(MSFTの実行方法については、トロイハントメンバーシッププロバイダーの記事を参照してください)、元のパスワード値を増やします。

BCryptサイトからの例(BCrypt.netもNUGETパッケージです)

 // Pass a logRounds parameter to GenerateSalt to explicitly specify the 
 // amount of resources required to check the password. The work factor  
 // increases exponentially, so each increment is twice as much work. If 
 // omitted, a default of 10 is used. 

 string hashed = BCrypt.HashPassword(password);

 // Check the password. 
 bool matches = BCrypt.CheckPassword(candidate, hashed);

それがお役に立てば幸いです。

もちろん、組み込みのフォーム認証暗号化システムを使用して、データを暗号化/復号化することができます。パスワードを暗号化することは、巧妙なことと危険なことの間のどこかにありますが。

また、Web構成にmachineKeyタグを追加する必要があります。マイクロソフトは、このためのジェネレーターを提供しています。http://aspnetresources.com/tools/machineKey このツールは、データ検証アルゴリズムとしてRijndaelを使用して、256ビットの復号化キーと512ビットの検証キーを作成します。

そして、もしあなたが平文のパスワードを投げ始める必要があるなら(あなたがそうしなければ撃たれるでしょう)、それはすべて聖なるものですが、サービスがIP(IPSec)によって制限されていることを確認してください。 。

于 2012-04-19T21:10:43.913 に答える
0

スティーブウェレンスが述べたように、ハッシュを生成します。これにより、利用可能なさまざまなものについての洞察が得られることを願っています

于 2012-04-19T21:09:46.720 に答える