1

この質問は主観的なものかもしれませんが、私はこれについてはかなり新しいので、このテーマについてはたくさんあります。私はまだこれについて良い意見を述べることができていません。おそらく、私は新しいので、自分のプロジェクトの観点からしか考えることができないためだと思います。これは異常なことではありません。

だから私は自分の環境で認証のための最良のオプションは何ですか?最良のセッションはどのような方法ですか?クッキー?他に何かありますか?また、どのようにしてパスワードをテーブルに安全に保存しますか?私はデータ型を調査しましたが、それは何か助けになるようです。テーブルや列を作成するために特別なことはありますか?最終的には、自分のサイトに他の認証方法(Facebook、Google、OpenIDなど)を追加したいと思いますが、最初にこれを理解する必要があると思います。

私の環境はASP.NETで、VBにコードがあります。私はMSSQL2005を使用しています(ただし、必要に応じて2008にアクセスできます)。

ありがとうジョシュ

4

1 に答える 1

2

私は ASP に詳しくないので、セッション中に通信して資格情報を保持する最善の方法についてはお答えできません。他の人が示唆しているように、組み込みのメンバーシップ システムを使用するのが最も安全な方法のようです。しかし、物事を自分で行い、それらが内部でどのように機能しているかを理解したいというあなたの願望には完全に同情します. 自分でこれに取り組みたい場合は、データベース側について話すことができます。

可能な限り、実際のパスワードをどこにも保存しないでください。パスワードから生成された不可逆的に暗号化された値のみを保存する必要があります ( SHA512Managedなどのハッシュ暗号化アルゴリズムを使用)。ユーザーを認証するには、保存されたパスワードを復号化して 2 つの平文パスワードを比較するのではなく、入力したパスワードを暗号化してから、暗号化された 2 つの値を比較します。実際のパスワードを保存すると、それが可逆暗号化アルゴリズムで暗号化されている場合でも、大きなセキュリティ リスクになります。

また、シード値を指定できる暗号化アルゴリズムを使用している場合は、元のパスワードに基づいてシード値を生成するアルゴリズムを使用する必要があります。すべてのパスワードに同じ暗号化シード値を使用したくない場合。

また、ほとんどの暗号化方式は、通信ストリームに使用できるように高速に設計されています。ただし、それらが高速であるということは、誰かがブルート フォース攻撃でより迅速にクラックできることを意味します。したがって、暗号化をより安全にする最善の方法は、合理的に可能な限り遅くすることです。多くの場合、これは、暗号化された値を一定回数ループ内で何度も再暗号化することによって実現されます。

于 2013-01-17T22:05:35.977 に答える