본문 바로가기 주메뉴 바로가기 검색 바로가기
연구원, 300만 달러 보관한 암호화폐 지갑의 11년된 비밀번호 풀었다
상태바
연구원, 300만 달러 보관한 암호화폐 지갑의 11년된 비밀번호 풀었다
11년된 로보폼 패스워드 매니저의 결함과 약간의 행운이 따른 덕분에 연구팀은 거액의 자산을 보유한 암호화폐 지갑의 패스워드를 찾아낼 수 있었다.
By KIM ZETTER, WIRED US

2022년, 암호화폐 주인인 마이클이 조 그랜드(Joe Grand)가 컴퓨터에 암호화 형태로 보관한 200만 달러 상당의 비트코인 접근 권한을 되찾고자 도움을 청했을 때 그랜드는 요청에 응하지 않았다.

익명을 요구한 유럽에 거주하는 암호화폐 투자자인 마이클은 패스워드 보호가 적용된 디지털 지갑에 암호화폐를 저장했다. 마이클은 로보폼(RoboForm) 패스워드 매니저로 암호화폐 지갑 패스워드를 생성하고, 패스워드를 트루크립트(TrueCrypt)라는 툴의 암호화된 파일에 저장했다. 이후 어느 순간에 파일이 손상되면서 마이클은 43.6BTC(2013년 기준 약 5,300달러)를 보관하고자 생성한 패스워드 20자에 접근할 권한을 잃었다. 마이클은 로포폼 패스워드 매니저로 패스워드를 생성했으나 패스워드 매니저 자체에는 저장하지 않았다. 마이클은 누군가가 컴퓨터를 해킹하여 패스워드를 탈취했을 가능성을 우려했다.

마이클은 “당시 보안 문제에 극도로 불안해졌다”라고 말했다.

그랜드는 2022년, 다른 암호화폐 지갑 주인이 200만 달러 상당의 암호화폐를 보유한 지갑 접근 권한을 복구하는 데 도움을 준 것으로 유명한 하드웨어 해커이다. 이후 그랜드에게 암호화폐 지갑 패스워드 복구 문의를 요청한 이는 수십 명에 이른다. 하지만 '킹핀(Kingpin)'이라는 이름으로 활동하는 그랜드는 다양한 이유로 대다수 요청을 거절했다.

그랜드는 10살 시절 컴퓨터 하드웨어 해킹을 시작한 전자 기사이자 2008년에는 디스커버리 채널의 TV 쇼 ‘프로토타입 디스(Prototype This)’ 공동 진행자로 활약했다. 이제 그랜드는 복잡한 디지털 시스템을 구축하여 하드웨어 해커가 시스템을 무력화하는 과정을 이해하도록 돕도록 상담한다. 2022년, USB-C 형태 지갑이 패스워드를 드러내도록 한 복잡한 하드웨어 기법을 이용하여 트레저(Trezor) 지갑을 해킹한 적이 있다.

그러나 마이클은 소프트웨어 기반 지갑에 암호화폐를 보관했다. 그랜드의 하드워드 해킹 역량과는 전혀 관련성이 없다는 의미이다. 그랜드는 스크립트를 작성하여 수백만 가지 패스워드를 직접 입력하고는 맞는 패스워드를 찾는 무작위 대입 방식으로 마이클의 패스워드를 찾는 방법을 고려했다. 그러나 무차별 대입 채택을 고려하는 것은 쉬운 일이 아니었다. 그랜드는 마이클이 패스워드 생성 당시 사용한 로보폼의 패스워드 생성 방식에 결함이 있다고 추측했다. 결함이 있을 때는 패스워드를 추측하기 수월하다. 그랜드는 패스워드 생성 방식의 결함을 의심했다.

마이클은 암호화 해독 전문가 여러 명에게 문의했다. 그러나 모두 암호화폐 접근 권한을 복구할 수 없다는 답변을 보냈다. 2023년 6월, 마이클은 도움을 받기를 바라면서 그랜드에게 다시 연락했다. 이때 그랜드는 패스워드 복구 시도를 하겠다는 답변을 보냈다. 이후 또 다른 디지털 지갑 해킹 경험이 있는 독일 친구 브루노와 함께 복구 작업을 시작했다.

그랜드와 브루노는 수개월 동안 마이클이 2013년 사용한 로보폼 프로그램 버전 역설계를 진행한 뒤 유사 임의 숫자 생성 툴이 패스워드 생성 과정에 동원되어 사실은 임의가 아닌 숫자 조합을 생성한 사실을 확인했다. 결함이 있는 로보폼 버전은 2015년, 새로운 버전이 출시될 때까지 배포됐다. 로보폼이 자체적으로 생성한 패스워드가 사용자 컴퓨터의 날짜와 시간과 관련성이 있다는 어리석은 결함이 드러났다. 로보폼이 컴퓨터 날짜와 시간을 판단한 뒤 예측할 수 있는 패스워드를 생성하는 방식으로 패스워드 생성 작업이 진행됐다. 다른 변수의 시간과 날짜를 알아낸다면, 과거의 특정 날짜와 시간에 생성한 패스워드를 계산할 수 있다.

마이클이 2013년, 패스워드를 생성한 날짜나 시간대와 패스워드 내 대소문자, 숫자, 특수문자 수 등 변수를 알았다면, 패스워드 추측 성공 가능성을 높일 수 있었을 것이다. 이후 로보폼의 컴퓨터 날짜, 시간 확인 기능을 가로채고는 패스워드 생성 시간대로 돌아가고는 현재 날짜가 마이클이 패스워드를 생성한 2013년이라고 속일 수 있다. 최종적으로 로보폼은 2013년, 마이클이 생성한 패스워드를 드러낼 수 있다.

여기서 한 가지 문제가 있었다. 마이클이 패스워드를 생성한 때를 기억하지 못했다.

소프트웨어 지갑 기록상 마이클은 2013년 4월 14일, 비트코인을 지갑으로 처음 전송했다. 하지만 비트코인 이체 당일 패스워드를 생성했는지, 혹은 이체 전이나 후에 패스워드를 생성했는지 기억하지 못했다. 결국, 그랜드와 브루노는 마이클이 로보폼으로 생성한 다른 패스워드의 변수를 분석하면서 로보폼이 2013년 3월 1일부터 2013년 4월 20일 사이 생성했을 법한 대소문자와 숫자, 특수 문자 8개 조합의 패스워드를 구성했다.
 
[사진=Freepik]
[사진=Freepik]

하지만 올바른 패스워드를 생성하지 못했다. 그랜드와 브루노는 패스워드 생성 시점을 2013년 4월 20일부터 6월 1일까지로 확장하고, 같은 변수를 적용했다. 이때도 패스워드를 찾지 못했다.

마이클은 복구 작업 도중 그랜드와 브루노가 자신이 사용한 변수가 확실한가 물어보았다고 전했다. 이때 마이클은 제대로 답하지 못했다.

마이클은 “그랜드와 브루노는 내가 10년 전 상황을 기억하지 못한다는 사실에 화를 냈다”라며, 당시를 떠올렸다. 마이클은 2013년, 로보폼으로 생성한 다른 패스워드 여러 개를 찾았다. 그중 두 개는 특수 문자가 없었다. 그랜드와 브루노는 이를 확인하고는 변수를 변경했다. 2023년 11월, 그랜드와 브루노는 마이클에게 연락하고는 직접 만날 것을 요청했다. 마이클은 “당시 나에게 패스워드 설정 조건을 다시 물어볼 것이라고 예상했다”라고 말했다.

대신, 그랜드와 브루노는 정확한 패스워드를 찾아냈다. 패스워드에는 특수 문자가 없었다. 패스워드는 2013년 5월 15일 오후 4시 10분 40초에 생성됐다.

그랜드는 “결국, 운이 좋게도 고려한 패스워드 변수와 시간대가 일치했다. 둘 중 하나라도 잘못되었다면, 막막한 상태에서 다양한 변수를 추측하고는 무작위 대입을 하는 과정을 반복해야 했을 것이다”라며, “가능한 패스워드를 모두 사전에 계산하는 데 오랜 시간이 걸렸을 것이다”라고 말했다.

그랜드와 브루노는 기술적 상세 사항을 더 자세히 설명하는 영상을 생성했다.

미국 기업 사이버시스템스(Siber Systems)가 개발한 로보폼은 시장에 최초로 출시된 패스워드 매니저 프로그램 중 하나이다. 사이버시스템스의 자체 보고서는 로보폼의 전 세계 사용자 수가 600만 명을 돌파했다고 전했다. 2015년, 사이버시스템스는 로보폼 패스워드 매니저를 수정한 것으로 보인다. 그랜드와 브루노는 2015년 생성된 유사 임의 생성 툴이 컴퓨터에 기록된 시간을 사용했다는 신호를 포착하지 못했다. 이를 근거로 2015년에는 결함을 수정했다고 생각했다. 그러나 그랜드는 구체적인 정보를 파악하기 위해 더 철저한 검증이 필요하다고 전했다.

사이버시스템스는 와이어드의 문의에 2015년 6월 10일 자로 배포한 로보폼 7.9.14 버전에서 문제를 수정했다고 밝혔다. 그러나 사이버시스템스 대변인은 결함 수정 방법에는 답변하지 않았다. 사이버시스템스 웹사이트 내 변경 기록(changelog)에는 사이버시스템스 프로그래머는 생성된 패스워드의 임의성을 높이기만 했다는 설명이 작성되었을 뿐, 구체적인 방법은 명시되지 않았다. 사이먼 데이비스(Simon Davis) 사이버시스템스 대변인은 “로보폼 7 버전은 2017년, 서비스 지원이 중단되었다”라고 답변했다.

그랜드는 공격자가 사이버시스템스의 문제 수정 방식을 알지 못한 채로 2015년 수정 전 배포된 로보폼 버전으로 패스워드 재생성 공격을 개시할 수 있다고 전했다. 그랜드는 현재 배포된 로보폼 버전에도 결함이 있는지 확실히 알지 못하는 상태이다.

그랜드는 “최신 버전 프로그램의 패스워드 생성 수준 개선 방식을 알지 못한 상태에서 로보폼을 계속 신뢰할 수 있을지 확신하지 못한다. 로보폼의 패스워드 재생성 공격 취약점 수준의 심각성을 알았는지도 알지 못한다”라고 말했다.

많은 고객이 지금도 로보폼이 결함을 수정하기 전의 초기 프로그램으로 생성한 패스워드를 사용할 수도 있다. 2015년, 사이버시스템스가 로보폼 7.9.14 버전을 배포하면서 고객에게 기존 버전의 결함을 알려 중요한 계정이나 데이터의 패스워드를 새로 생성하도록 공지하지 않은 것으로 드러났다. 사이버시스템스는 문제 수정 전 배포된 패스워드 매니저 프로그램의 결함 관련 사항 문의에 답변하지 않았다.

사이버시스템스가 고객에게 이전 패스워드 매니저 프로그램의 결함을 알리지 않았다면, 2015년 전 로보폼으로 패스워드를 생성한 사용자와 지금도 패스워드를 사용 중인 사용자 모두 해커의 패스워드 재생성 공격에 취약한 상태로 노출되었을 수도 있다.

그랜드는 “사용자 대부분 변경 안내를 받기 전까지 패스워드를 변경하지 않는다. 개인적으로 사용하는 패스워드 매니저 935개(로보폼 제외) 중 220개는 2015년 이전에 개발됐다. 지금도 2015년 전에 개발된 패스워드 매니저 프로그램 대부분을 사용한다”라고 말했다.

사이버시스템스가 2015년 당시 결함을 수정하고자 택한 방식에 따라 새로 생성한 패스워드도 보안 공격에 취약한 상태일 수도 있다.

2023년 11월, 그랜드와 브루노는 직접 패스워드 복구 작업을 한 마이클의 지갑에 보관된 비트코인 중 일정 비율을 수수료로 받고, 패스워드 접근 권한을 되찾아 주었다. 당시 비트코인은 3만 8,000달러 선에서 거래됐다. 마이클은 비트코인이 6만 2,000달러로 급등할 때까지 기다린 뒤 매도했다. 현재 지갑에는 30BTC(약 300만 달러)를 보관한 상태이며, 비트코인 거래가가 10만 달러로 상승할 때까지 기다리고 있다.

마이클은 과거에 생성한 패스워드를 분실한 것이 운이 좋았다고 말한다. 패스워드를 기억했다면, 비트코인이 4만 달러 수준에 거래될 때 매도하여 거액의 투자 수익을 실현할 기회를 놓쳤을 수도 있기 때문이다.

마이클은 “암호화폐 지갑 패스워드 분실이 재정적으로는 좋은 일이었다”라고 말했다.

** 위 기사는 와이어드US(WIRED.com)에 게재된 것을 와이어드코리아(WIRED.kr)가 번역한 것입니다. (번역 : 고다솔 에디터)

<기사원문>
How Researchers Cracked an 11-Year-Old Password to a $3 Million Crypto Wallet
이 기사를 공유합니다
RECOMMENDED