자바 스크립트에서 crypt(3)의 구현을 찾고 있습니다. (일반적인 "crypt"알고리즘은 아니지만 예를 들어 리눅스 시스템에서 /etc/shadow
에 사용 된 crypt (3)). 아무도 본 사람 없니? 오픈 라이선스로?Javascript에서 crypt (3) 구현을 본 사람이 있습니까?
성능에 대해 조금 걱정합니다. 자바 스크립트로도 작성할 수 있습니까? 예 : sha512-crypt source가 있습니다
/* Repeatedly run the collected hash value through SHA512 to burn
CPU cycles. */
for (cnt = 0; cnt < rounds; ++cnt)
{ ... }
그래서 알고리즘을 C에서 "CPU 사이클을 타"경우 자바 스크립트에서 무엇을 할 것인가? 튀김? (예 : IE6에서 Yikes!) 나는 자바 스크립트에서 무차별 공격 유틸리티를 작성하지 않고 있으며, 파란색 달에 한 번만 암호를 울리므로 아마 괜찮을 것입니다.
배경 : 웹 제공을 위해 사용자가 제공 한 /etc/password
//etc/shadow
파일에서 사용자를 가져 오려고합니다. 사용자의 암호에 관한 정보는 crypt (3) 출력 형식이므로 사용자의 암호를 일반 텍스트로 보내지 않으려면 내가 볼 수있는 한 클라이언트 쪽 (javascript)이 필요합니다.) 구현의 crypt (3) 그래서 웹 서버가 소금을 제공하면 클라이언트는 crypt (3) 출력을 보냅니다 (보안을 위해 적절히 해시 됨).
/etc/password
//etc/shadow
에 대해 서버 측 인증을 안전하게 허용하고 https : //가 필요없는 crypt (3) 클라이언트 측을 사용하는 다른 방법도 유효한 답변으로 간주됩니다.
공격자가 man-in-the-middle 공격을 수행 할 수 있으면 일반 텍스트로 사용자 암호에 액세스 할 수 있다는 것을 알고 있습니다. 기간. 그러나 나는 이것이 반드시 nonce (http://en.wikipedia.org/wiki/Cryptographic_nonce)를 사용하여 간단한 재생 공격에 취약하다는 것에 동의하지 않습니다. 웹 서버가'(nonce, crypt_salt)'를 보내면 클라이언트는'sha512 (concat (nonce, crypt (password, salt)))'를 되돌려 보냅니다. https : // 그런 다음 일반 텍스트로 비밀번호를 전송하면 작동하지만 내 질문에서 명시 적으로 제외됩니다 (아, 내 손에서). –