私はcrypt(3)の実装をjavascriptで探しています。 (一般的な "crypt"アルゴリズムではなく、たとえばLinuxシステムでは/etc/shadow
で使用されているcrypt(3))。誰か見た人は?オープンライセンスで?誰かがJavascriptでcrypt(3)の実装を見た?
パフォーマンスについても少し気になります.JavaScriptで書くことも可能でしょうか?例えば。 sha512-crypt sourceがあります
/* Repeatedly run the collected hash value through SHA512 to burn
CPU cycles. */
for (cnt = 0; cnt < rounds; ++cnt)
{ ... }
だからアルゴリズムはCで「CPUサイクルを燃やす」場合、それはJavaScriptで何をしますか?稚魚? (例:IE6?Yikes!)私はjavascriptでブルートフォース攻撃utilを書いていません。青い月に一度だけ暗号化呼び出しを行うので、おそらく大丈夫です。
背景:ユーザーが提供する//etc/shadow
ファイルからユーザーをインポートすることを検討しています。私たちがユーザのパスワードについて持っている唯一の情報はcrypt(3)の出力形式であるため、ユーザーのパスワードを平文で送り返すのを避けるために、クライアント側(javascript )crypt(3)を実装しているので、Webサーバがsaltを提供すると、クライアントはcrypt(3)の出力を返します(セキュリティのために適切にハッシュされます)。
/etc/password
//etc/shadow
に対してサーバーサイドを安全に認証できるようにし、https://を必要としないcrypt(3)クライアント側を使用する代わりに、有効な回答と見なされます。
攻撃者がman-in-the-middle攻撃を実行できると、クリアテキストのユーザーパスワードにアクセスできるようになります。期間。しかし、私はこれが必然的に[ノンス](http://en.wikipedia.org/wiki/Cryptographic_nonce)を使っても簡単なリプレイ攻撃の影響を受けやすいとは考えていません。ウェブサーバが '(nonce、crypt_salt)'を送り、クライアントが 'sha512(concat(nonce、crypt(password、salt)))'を返すと、 https://そして、クリアテキストでパスワードを送るだけで動作しますが、私の質問から明示的に除外されています(私の手の中から、悲しいことに) –