보안 (Security)

패스워드, 안전하게 사용하기 (2) - 내 패스워드는 얼마나 안전할까?

재민스 2025. 3. 25. 14:34
반응형

 

여는 글

 

개인과 조직의 정보를 보호하기 위한 가장 기본적인 안전장치는 패스워드입니다.

이전 글에서 어떤 방식으로 패스워드가 유출되는지를 확인했습니다.

패스워드, 안전하게 사용하기

 

패스워드, 안전하게 사용하기

목 차1. 여는 글2. 설명3. 방법4. 맺음 글5. 관련 글 여는 글 당신의 패스워드는 안전하신가요?개인과 조직의 정보를 보호하기 위한 가장 기본적인 안전장치는 패스워드입니다.패스워드가 뚫리면

jaeminsg.tistory.com

 

이번 글에서는 내 패스워드는 얼마 만에 크랙이 되는지, 어떤 방식으로 작성해야 안전한지를보겠습니다. 

 

 

내 패스워드는 얼마나 안전하게 작성되었나?

 

먼저 아래 사이트에서 내 패스워드가 얼마 만에 크랙이 되는지를 확인해 봅시다.

 

https://www.security.org/how-secure-is-my-password/

 

How Secure Is My Password? | Password Strength Checker

Passwords are the bloodline of data and online security, but our research on the password habits in the U.S. shows that less than half of Americans feel

www.security.org

 

접속해서 나의 패스워드를 입력해 봅니다.

이 사이트가 잘못될 수도 있으니, 그대로 입력하지 말고 글자를 변경해서 입력해 봅니다.

중요한 것은 내 패스워드 작성 규칙이 얼마나 허술한가를 보기 위함입니다.

 

 

영소문자 + 숫자 + 특수기호의 3가지 조합, 8글자로 이루어진 내 패스워드는 크랙에 19분이 걸립니다.

법에서 요구한 규칙은 3가지 조합에 8자리 또는 2가지 조합에 10자리입니다.

 

입력할 때 구글의 비밀번호 관리자가 제시한 패스워드로는 15 billion years 가 나옵니다. 어마어마한 차이네요.

(구글 제시한 암호 : h5XjfJLL!KRCxM2)

 


 


 

 

 

경우의 수 계산해 보기

 

패스워드를  test1234 라고 해봅시다.

즉시 크랙이 된다고 나옵니다.

 

한 글자

 

첫 글자에 t가 나오는 경우의 수를 계산해 봅니다.
패스워드가 영소문자 한 글자로 이루어져 있다면, 즉 패스워드가 t 라면알파벳이 26개 이므로, 경우의 수는 26이 됩니다.
최대 26번 대입하면 찾을 수 있습니다.

 

두 글자

 

패스워드가 영소문자 두 글자로 이루어져 있다면, 두 번째 글자 역시 영소문자이므로  26X26 = 676 입니다.
즉 최대 676 번 대입하면 찾을 수 있습니다.
(운이 좋으면 한 번에도 찾을 수 있지만, 운이 없어도 676번 대입하면 됩니다)

 

2조합 8자리

 

그런데 애초에 test1234 라면 영소문자와 숫자로 이루어진 8자리입니다.

즉 영소문자 26개와 숫자 10개가 한 글자 한 글자마다 들어올 수 있으므로 첫 글자에 36개 (= 영소문자 26 + 숫자 10) 를 대입해야 하고, 두 번째 글자에도 36개를 대입해야 합니다.

 

자리 수만큼 36을 곱해야 하는 것이지요.

8자리 이므로 36x36x36x36x36x36x36x36 = 2,821,109,907,456 번의 대입이 필요합니다.

2.8조 번만큼 대입합니다.

 

사람은 안되지만, 컴퓨터는 순식간에 찾아냅니다.

 

조합과 자릿수

 

조합은 하나의 자릿수에 대입하는 개수이고, 자릿수는 그 개수를 몇 번 곱하는가의 문제입니다.

 

조합은 영소문자는 26개, 영대문자 26개, 숫자는 10개, 특수기호 20여 개입니다.

여기서 특수기호를 다 사용할까요?

 

사이트마다 사용불가 특수기호가 많다 보니, 보통 10개 안 되는 특수기호만 대부분 사용합니다.

개수가 많은 것을 조합으로 사용하는 것이 유리합니다.

 

즉 영소문자(26) = 영대문자(26) > 숫자 > 특수기호 입니다.

많이 사용하는 영소문자+숫자+특수기호는 46 정도이고 보안을 강화한 경우 영대문자+영소문자+숫자+특수기호는 72 입니다.

이 숫자를 자릿수만큼 곱하게 되면 그 차이가 더욱  커집니다.

 

조합과 자릿수별 크랙 시간

 

숫자 10자리 > 즉시

 

영소문자 + 숫자 조합 10자리 > 1일

 

영소문자 + 숫자 + 특수기호 10자리 > 1달

 

영소문자 + 영대문자 +숫자 10자리 >  7달

 

영소문자 + 영대문자 +숫자 + 특수기호 10자리  > 5년

 

영소문자 + 영대문자 +숫자 11자리 > 41년

 

영소문자 + 영대문자 +숫자 12자리 > 2천년

 

영소문자 + 영대문자 +숫자 13자리 > 10만년

 

 

조합에 따른 경우의 수가 크면, 자릿수 하나 늘 때마다, 거의 기하급수적으로 크랙이 불가능해집니다.



영소문자 + 숫자 만의 조합으로도 위 조합만큼은 아니지만 크게 증가하는 것을 볼 수 있습니다.

영소문자 + 숫자 10자리 >  1일

영소문자 + 숫자 11자리 >  1달

영소문자 + 숫자 12자리 >  3년

영소문자 + 숫자 13자리 >  1백년
  

즉 기본적으로 3가지 조합으로 11자리를 사용하면 이처럼 성능 좋은 시스템으로도 4년이 걸림을 알 수 있습니다.

다만 양자 컴퓨터를 사용하면 바로 크랙이 되겠지만요..

 

 

맺음 글

 

보통 사용하는 영소 + 숫자 + 특수기호의 3가지 조합에서 10자리 이상은 사용해야 함을 확인했습니다.

다음에는 실제로 안전하게 패스워드를 작성할 수 있는 방법을 알아보겠습니다.

 

 

 

 

 

관련 글

 

패스워드, 안전하게 사용하기

 

패스워드, 안전하게 사용하기 (3) - 패스워드 안전하게 작성하는 법

 

 

반응형