DEFCON: 새로운 패스워드 파일 korear.kr
- korear.kr_plain_text_password.txt 파일은 무엇인가?
- 한글 패스워드 저장 파일로 GPKI 인증서 크랙에 활용
- 한글 패스워드에서 사용하는 주요 특수문자 : !, @, *, ^
올해 데프콘에서 프랙(Phrack)을 통해 공개된 자료들을 본지에서는 계속해서 분석해 나가고 있다. 이번 주에는 result.txt와 pass.txt를 분석해 보도했다. 이번 기사에서는 korear.kr_plain_text_password.txt라는 파일을 분석해 보고자 한다. 파일 이름 자체에 korea라는 단어가 들어가 있기 때문에 열어보지 않을 수 없었다.해당 파일은 /work/home/user/Downloads/cert/라는 폴더에 저장돼 있었다.
뭔가 이상하다
덤프 파일 전체에서 패스워드인 bjm60693975#라는 문자열을 검색하면 result.txt와 korear.kr_plain_text_password.txt가 결과로 나타난다. 참고로 bjm60693975#은 이번 주 본지가 분석했던 result.txt라는 파일에서 추출한 것으로, result.txt는 해커가 확보한 각종 패스워드를 크래킹했을 때의 결과가 정리되어 있는 파일이다.

보다 상세한 내용은 이전 기사들을 통해 확인이 가능하지만, 읽지 않을 일부 독자들을 위해 간략히 정리하자면 다음과 같다.
1) Pass.txt : 사전 공격(dictionary attack)을 위해 해커가 마련한 패스워드 모음집
2) Result.txt : 확보한 패스워드를 크래킹 시도 한 후 그 결과를 정리해 둔 문서
3) korear.kr_plain_text_password.txt : 공격자가 크래킹을 통해 확보한 것으로 보이는 여러 패스워드 중 하나인 bjm60693975#를 내포하고 있는 정체 불명의 문건. 이번 기사를 통해 확인 예정.
일단 이상하다. 왜 pass.txt에는 bjm60693975#이라는 패스워드가 없을까? 크래킹한 결과인 result.txt에는 있으면서, 크래킹 원재료를 모아둔 pass.txt에는 없다? 출력값은 있는데 입력값은 없는 이 상황을 어떻게 봐야 할까? 이 답의 열쇠를 korear.kr_plain_text_password.txt가 가지고 있는지도 모른다.
열어보니 더 이상하다
일단 파일을 열어보니 총 20,829개의 패스워드가 저장돼 있었다. 47만 개 이상의 패스워드 문자열을 담고 있었던 pass.txt에 비하면 소량이다. 하지만 숫자로만은 보이지 않는 것이, 실제 이 korear.kr_plain_text_password.txt를 여니 보였다. 한 행에 문자열 하나, 그것도 전부 같은 12자 길이로만 저장돼 있었던 것이다.

역시 이상하다. 어떻게 같은 길이의 패스워드들만 2만 개 넘게 저장돼 있을까? 왜 12자리일까?
본지가 분석하고 있는 데이터 덤프의 원 주인 해커는 이 GPKI 패스워드를 확보해 크래킹했던 것으로 보이며, 이와 관련된 상세 내용은 데프콘 : GPKI 패스워드 크랙(세부버전) 기사에서 열람이 가능하다. 이러한 맥락에서 보면 다음과 같은 질문이 생겨난다. ‘GPKI 9자리 패스워드와, korear.kr_plain_text_password.txt의 12자리 패스워드는 어떤 관계를 가지고 있는가?’
12자 패스워드, 어떻게 구성돼 있는가?
먼저는 이 12자 패스워드들이 어떻게 구성돼 있는지부터 분석했다. pass.txt와 비슷한 결과가 나왔다. 즉 대부분의 패스워드가 3가지 요소들(예 : 영문 소문자, 영문 대문자, 숫자)로 구성돼 있었다는 것이다. 세 가지 요소의 조합으로 구성된 패스워드의 비율은 상당히 높았으며, pass.txt 내 3조합 패스워드의 비율보다도 높았을 정도였다. 그런데 4가지 요소로 구성된 패스워드도 생각보다 많았다. 다음과 같은 것들이었다.
- miNJae@59709
- @Rhaoddl1726
- EG_dbwlsdl11
- gksmfEkd*122
- Toy97503014!
- beTHEspark#1
- ojs4637389A!
- 79@Tkdl0dnjs
- Ydg73073988@
- Danhs@060502
- Aatlsdlswk1!
- FWGKorea@091
- nam1946NAM@@
- whcnsgP2769!
- Bigfatcat!00
- gudfo&gPtnr1
- gPs*12081004
이 문자열들만 놓고 봤을 때 나타나는 대략적인 패턴이 있다. 특수문자 중 !와 @가 많이 사용된다는 것, 그리고 첫 글자가 대문자인 경우가 제법 있다는 것이다. 그 외 숫자와 특수문자, 소문자와 숫자 등 각종 조합별 현황을 분석했을 때 다음과 같은 결과를 얻을 수 있었다.

digit은 숫자, special은 특수문자, lower는 소문자, upper는 대문자를 의미한다.
이 히트맵에 따르면 소문자와 숫자의 조합이 5555개로 총 26.67%를 차지하고 있음을 알 수 있다. 소문자와 숫자, 특수문자의 조합은 14,112개로 무려 67.76%의 비율을 이루고 있다. 이를 ‘패스워드를 크랙한다’는 맥락에서 바라보면 어떤 의미가 될까? 대문자는 무시해도 된다는 뜻이 된다. 소문자(26)와 대문자(26), 숫자(10)와 특수문자(29) 조합으로 패스워드를 고루 구성하면 91개의 문자를 사용해야 하는데, 여기서 대문자가 빠지면 65개로 줄어든다. 크래킹 시간과 효율이 크게 높아진다. 12자 패스워드를 사용하고는 있지만 ‘방어 잠재력’을 다 살리지는 못하고 있는 상황이다.
한글로 만들어진 패스워드
korear.kr_plain_text_password.txt 파일을 처음 열자마자 한국 사람은 딱 느낌이 온다. 저장된 문자열 상당수가 한글을 영타로 놓고 친 거라는 것. pass.txt 분석 때와 동일한 작업을 이어갔다. 그리고 가나다 순으로 결과를 정리했다. 예상한 그대로의 결과가 나왔다. 일례를 보면 다음과 같다.


이름을 한글로 친 후에 숫자나 특수문자를 조합하거나, 다년간 전 세계 인기 1위 패스워드 자리를 유지하고 있는 ‘password’를 번역한 ‘비밀번호’를 한글로 친 후에 다른 문자/숫자를 조합하거나, password를 영타로 입력하면 나오는 문자열인 ‘ㅔㅁㄴㄴ잭ㅇ’을 ‘비밀번호’ 대신 사용하거나, 짧은 문구나 문장 등을 영타로 입력한 패스워드가 상당히 많음을 알 수 있다.
이렇게 한글을 응용한 패스워드는 주로 어떤 식으로 구성돼 있을까? 한글 2자를 사용하는 사람 기준으로 분석하니 가장 많이 사용되는 패턴은 ‘한글 2자 + 숫자 4자 + 특수문자 2자’였다. 이런 패스워드는 452개였다. 그 다음 많이 나타나는 건 ‘한글 2자 + 숫자 4자 + 특수문자 1자’였다. 총 167개가 발견됐다. 한글 두 글자로 구성된 패스워드를 사용하는 사람들의 경우 상당수가 숫자 4개, 특수문자 1~2개를 선호한다는 걸 알 수 있다.
한글 3자를 사용하는 사람들은 어떨까? ‘한글 3자 + 숫자 4자 + 특수문자 1자’ 조합이 가장 많았다. 총 1002개였다. 그 다음은 숫자 4자와 특수문자 0자 조합이, 그 다음은 숫자 2자와 특수문자 1자를 뒤섞은 구성이 각각 2, 3위를 차지했다. 한글 4자 패스워드는 ‘숫자 2자와 특수문자 0자’로 구성된 조합이 가장 많았다(370개). ‘비밀번호12’, ‘사용해요99’ 등이 여기에 해당하며, 이런 형태들이 실제 파일 안에서도 상당 수 발견되고 있다. 그 다음 많은 패턴은 한글 4자에 숫자 4자, 특수문자 0자를 섞은 것, 혹은 한글 4자에 숫자 3자, 특수문자 0자를 섞은 것이었다. 한글 4자로 패스워드를 만들 경우 특수문자를 포함시키지 않으려는 경향이 있음을 알 수 있었다.
특수문자 사용 현황
이 문건에 나타난 바에 따르면 한국 사람들은 어떤 특수문자를 선호할까? 따로 분석하지 않더라도 다들 머릿속으로 ‘!’와 ‘@’를 떠올릴 것이다. 실제 파일 내 문자열들을 전수 집계했을 때, ‘!’가 1위,’@’가 2위를 차지했다. 3위는 ‘*’이었고, 4위는 ‘^’였다.

이 상위 4개 특수문자(!, @, *, ^)는 압도적인 비율을 차지한다. 사용된 전체 특수문자의 80% 이상이다. korear.kr_plain_text_password.txt 파일에 존재하는 모든 특수문자 중(일반 키보드로 입력 가능한 특수문자를 말한다) 단 한 번도 사용되지 않은 것이 있었는데, 바로 ‘|’였다. 사실 이 글자는 이전에 분석했던 pass.txt에서도 0회 등장했다. 사용자들이 패스워드를 설정할 때 사실상 단 4개 특수문자만 사용한다고 해도 과언이 아닌 상황이라는 걸 알 수 있다. 상위 8개로까지 범위를 넓히면 93%다. 이쯤 되면 해커 입장에서 패스워드를 크래킹할 때 특수문자는 딱 8개만 고려하면 된다는 의미가 된다.
무엇을 배웠는가
문제의 파일 korear.kr_plain_text_password.txt를 분석했을 때 우리가 얻을 수 있는 건 무엇일까? 12자리 패스워드를 사용자들이 설정한다고 했을 때 주로 어떤 패턴을 보이는가?이다. 여기서 말하는 ‘사용자’는 사실 ‘한국인’을 의미한다. 해당 파일이 GPKI 인증서 크랙과 관련된 것으로 보인다는 걸 감안하면(해커가 GPKI 패스워드 크랙 결과를 저장한 result.txt에 나타나는 문자열과, korear.kr_plain_text_password.txt 파일 내 저장된 문자열 상당수가 겹치기도 한다.), ‘한국인 중에서도 공공 기관 인증 체제(GPKI)를 사용하는 사람’이라고 범위를 좁힐 수도 있다. 공격자는 한국 GPKI 인증서 패스워드를 분석하면서 그런 한국인 사용자들의 설정 패턴을 익혔을 가능성이 높다. 크랙에 걸리는 시간이 줄어들 가능성이 매우 높다는 의미다.
패스워드의 강력함을 결정하는 많은 요소 중 하나는 ‘길이’이다. 패스워드를 구성하는 글자와 숫자의 수가 늘어나면 늘어날수록 크래킹에 걸리는 시간은 기하급수적으로 늘어난다. GPKI 패스워드를 처음 설정할 때 사용자는 최소 9자리를 유지해야 하는 상황에서 12자 패스워드를 사용한다는 건 ‘길이’라는 측면에서 봤을 때 상당히 좋은 신호다.
하지만 그냥 길기만 해서는 안 된다. 예를 들어 숫자 ‘1’만으로 30자리 패스워드를 만든다면 어떨까? 공격자가 패스워드 설정자가 1을 선호한다거나 한 가지 문자로만 패스워드를 만드는 경향을 가지고 있다는 추가 정보가 있지 않은 이상 30자리 전부를 크래킹하려면 상당히 오랜 시간이 걸릴 것이다. 하지만 그러한 패턴이나 습관에 대해 공격자가 알게 됐다면, 30자리가 아니라 30000자리 패스워드더라도 소용이 없게 된다. 즉, 패스워드를 설정할 때 각 자리에 들어가는 문자나 숫자를 좀 더 다양화해야 긴 패스워드가 진짜 강력함을 갖추게 된다.
공격자가 나의 습관, 패턴, 선호하는 것을 알 수 있을까? 당연하다. 요즘 사이버 공격자들은 ‘심리전’을 기본적으로 수행한다. 당신이 ‘1’만으로 패스워드를 길게 설정한다는 사실 정도는 쉽게 알 수 있다. 애초에 비밀번호 탈취를 통한 계정 장악이 너무나 흔한 공격 전략이라는 것 자체가 이를 방증한다.
이러한 상황을 이해했다면 GPKI 인증서 패스워드를 즉시 변경해야 한다는 것도 이해할 수 있을 것이다. 다만 이를 사용자 개개인의 움직임에 맡겨서는 안 되고, 시스템적인 강제 조치가 이뤄져야 할 것으로 예상된다. 여러 기업들이 해킹 사고 발생 후 고객 개별 메시지나 전체 공지를 통해 패스워드 강제 변경을 하고 있으며, 따라서 사용자들도 대부분 패스워드 변경 요구를 낯설어하지 않을 것이므로, 패스워드 변경에 따른 이용자 불만은 그리 많지 않을 것으로 보인다.
Related Materials
- 125+ Password Statistics to Inspire Better Security, 2024
- Password Strength Detection via Machine Learning, 2024
- Comparison of the strongest methods of cracking ..., 2025
- The State of Password Security 2025 Report, 2025
- 2024 Password Manager Industry Report and Statistics, 2025
- 50+ Password Statistics & Trends to Know in 2024, 2024





