비밀번호의 강도를 알려주는 zxcvbn

dev | 2023-04-23

사용자가 추측하기 쉬운 비밀번호를 사용하면 계정이 탈취될 수 있기 때문에 보통 비밀번호 규칙을 정해서 너무 쉬운 비밀번호는 사용 하지 못하게 한다. 최소 길이를 제한하거나 영어 대소문자나 숫자, 특수문자를 포함하도록 하는 경우가 많다.

하지만 다양한 기호를 섞어서 비밀번호를 만들기 보다는 16자 정도의 충분히 긴 비밀번호를 사용하는 것이 보안상 더 도움이 되는 듯 하다. zxcvbn 소개 글에도 언급되어 있는 xkcd의 만화가 좋은 예를 보여주고 있다. 'Tr0ub4dour&3' 같이 복잡한 기호를 사용했지만 짧은 비밀번호 보다 'correcthorsebatterystaple' 같이 쉬운 단어를 사용했지만 충분히 긴 비밀번호가 해커가 추측도 힘들고 사용자가 기억하기도 더 쉽다는 내용이다. 'Passw0rd!' 같은 비밀번호도 복잡한 기호를 섞어서 비밀번호 규칙은 통과하지만 실제로는 많이 공유되어서 취약한 비밀번호이다. 또한 'admin'이나 '1234'같이 많이 사용되는 문자를 섞어 사용하는 것도 비밀번호 강도를 낮추게 된다.

이러한 고민의 영향을 받아 쉽게 사용할 수 있도록 고안된 비밀번호 강도를 나타내주는 라이브러리가 바로 Dropbox에서 만든 zxcvbn이다. 많이 사용되는 구문이나 사람들이 자주 사용하는 비밀번호도 사전으로 만들어서 강도 계산에 사용한다. zxcvbn('Passw0rd!')와 같이 비밀번호를 넣어주면 비밀번호에 대한 다양한 정보를 알려준다. score를 이용하면 간단하게 비밀번호 강도를 보여주는 것이 가능하다.

Strength:

라이브러리가 사전을 포함하고 있어서 803KB로 용량이 큰데 번들에 포함시키기 보다는 동적으로 로딩하는 것을 권장하고 있다.

큰 사이트들이 비밀번호 강도 검사를 어떻게 하고 있는지 살펴봤는데 'Passw0rd!' 같은 공개된 비밀번호도 대부분 사용할 수 있고 'correcthorsebatterystaple' 같이 충분히 긴 비밀번호는 사용할 수 없게 하는 경우가 많았다. 기호를 섞어 쓰는 룰기반의 비밀번호 규칙을 쓰고 있어서 생기는 한계다. 요즘은 브라우저나 운영체제에서 제공하는 비밀번호 관리 기능을 많이 사용하는데 여기서 생성한 충분히 강력한 비밀번호도 사이트의 규칙과 맞지 않아서 사용하지 못하는 경우도 있다. 룰기반으로 제한을 두기 보다는 비밀번호 강도를 계산하고 알려주는 방식으로 바뀌면 이러한 불편한 점도 사라지고 비밀번호를 관리해주는 툴도 잘 사용할 수 있어서 전반적인 보안 강화에 도움이 되지 않을까 싶다.

사이트별 비밀번호 강도
Site Passw0rd! qwER43@! Tr0ub4dour&3 correcthorsebatterystaple
PasswordMonster Very Weak Weak Medium Very Strong
Search Space 1h 46m 12s 1m 7s 200ms 1.74 centuries 7.83 hundred billion centuries
Tools43 low guessable guessable strong
Twitter 사용가능 사용가능 사용가능 사용가능
JS Pattern 4 4 4 1
The Password Meter Strong Very Strong Very Strong Weak
Naver 안전 안전 안전 사용불가
Kakao - - - 숫자, 특수문자를 함께 입력해 주세요.
dcinside 안전 안전 안전 사용불가
coupang 사용 가능한 비밀번호입니다. 사용 가능한 비밀번호입니다. 사용 가능한 비밀번호입니다. 영문/숫자/특수문자 2가지 이상 조합 (8~20자)
KT 사용가능 사용가능 사용가능 사용불가
SKT 안전한 비밀번호 안전한 비밀번호 안전한 비밀번호 영문, 숫자, 특수문자를 모두 이용해 8자 이상을 입력해주세요.
Facebook Strong Strong Strong Weak
fmkorea 입력가능 입력가능 입력가능 입력가능
namu 입력가능 입력가능 입력가능 입력가능
RULIWEB 사용가능 사용가능 사용가능 사용가능

* namu는 1을 허용. RULIWEB은 12341234를 허용.

Comments

    Post a comment

    :

    : 공개 되지 않습니다. Gravatar를 표시 합니다.

    :

    : HTML 태그를 사용할 수 없습니다.