디지털 환경이 날이 갈수록 자동화된 봇넷 등으로 위협을 겪고 있습니다. 길이가 긴 문자열만이 비밀번호 보안의 요소가 아닙니다. 생성 과정 중 사용되는 암호화학적 엔트로피가 본질적인 강력함을 구성합니다. 본 문서는 비밀번호 도구에 사용되는 웹 크립토 기반의 생성 원리를 분석합니다.

Math.random() 함수의 치명적 결함

가장 일반적인 자바스크립트의 표준 함수인 Math.random()은 유사 난수 생성기(PRNG)로 동작합니다. 인간에게 무작위로 보이지만 이는 결정론적인 시드 상태에서 파생되며, 해커가 이 초기 상태만 유추하면 암호학적 규칙을 모두 해제할 수 있습니다. 이를 사용한 토큰이나 키의 보안 생성은 가장 중요한 취약점으로 분류됩니다.

Web Crypto API 및 하드웨어 연산

현대 브라우저는 Web Crypto API의 window.crypto.getRandomValues()를 제공합니다. 이는 물리적 운영체제와 통신하며 진정한 하드웨어 엔트로피 (마우스 이동, 하드웨어 클럭의 불규칙성, 열 노이즈 등) 를 끌어들여 예측 불가능한 값을 도출합니다. 이것이 안전한 비밀번호 생성에 있어서 가장 중요한 규칙입니다.

비밀번호가 안전한지는 "이론적인 엔트로피 비트"에 의해 결정됩니다. 문자 조합 및 순열을 통해 80~100비트를 넘기면 현대 컴퓨팅으로도 크랙이 무용지물이 됩니다. 비밀번호를 길게 만드는 것이 더 중요합니다.