2012-03-19 22 views
-1

(xposted from [email protected]ノード認証モデル/スキーム

ローカルに保存された認証方式は何ですか?

は、私はいくつかを見つけた:

  • http://dailyjs.com/2011/01/10/node-tutorial-9/
  • github.com/ncb000gt/node.bcrypt.js/tree/master/examples
  • github.com/Turbo87/locomotive-passportを-boilerplate /ブロブ/マスター/アプリ/モデル/(それはbcryptの例から来たように見えた) をaccount.js

マングース-AUTHは同様にbcryptのの例から実装するように見える:

をgithub.com/bnoguchi/mongoose-auth/blob/master/lib/modules/password/plugin.jsと、私はeveryauthがパスワードを生成する方法を見つけ出すことはできません。

  • github.com/bnoguchi/everyauth/blob/master/lib/modules/password.js

...と私はMath.random(日付に基づいて生成トンを発見しました。今* some_number)....そのようなもの - 右に見えなかったので、私は を正確に覚えていません。

このセキュリティを賢明にするための最良の方法は何ですか?

答えて

0

ローカルに認証された資格情報を格納することは、クライアントを認証する最悪の方法の1つです。これを取り除くには、暗号を使用する必要があります。これにより、強引な可能性がもたらされます。これがどうやって間違っているかの良い例はOracle Padding Attack used against .Netです。

安全なシステムが必要な場合は、これを実装しません。あなたは非常に安全ではないがおそらく動作する何かをしたい場合はHMACを使用する必要があります。 Bcrypt、ブロック暗号、ストリーム暗号は本当に正しい選択ではありません。あなたはbcryptでHMACを実装できますが、私はsha256のような別のハッシュ関数を選択します。

また、現在の日付時刻はであり、ランダム値ではないであり、これは決してランダム値の計算のために中継されるべきではありません。セッショントークンが期限切れになるように時間を記録する必要があります。あなたの秘密は、/dev/random

+0

のようなエントロピーストアで生成されるべきです。乱数のシードに日付が使用されています。また、wrt/dev/randomは、これを読んでランダム性を直接低下させ、代わりに/ dev/urandomを使うべきだと言われています。あなたが見逃したことやより良い認証方法があるかどうかを確認することをHMACに見ています(私のクライアントはLDAPや広告を好むだろうが、それらのモジュールは実験的に見えると思う) – ag4ve

+0

s/experiment /私はこれをまだサポートしたくない)./ – ag4ve

関連する問題