논문 리뷰 - (6) 디지털포렌식 기법을 활용한 암호화폐 확보 방안에 대한 연구 - 라이트웨이트 암호화폐 지갑의 백업기능을 중심으로
리뷰/논문 리뷰

논문 리뷰 - (6) 디지털포렌식 기법을 활용한 암호화폐 확보 방안에 대한 연구 - 라이트웨이트 암호화폐 지갑의 백업기능을 중심으로

동국대학교 정보보호학과 석사학위논문을 정리해보겠습니다.

keyword : 미기재

 

디지털포렌식 기법을 활용한 암호화폐 확보 방안에 대한 연구 - 라이트웨이트 암호화폐 지갑의 백업기능을 중심으로

 

서론

암호화폐는 중개기관이 없고, 시간·장소·국적에 관계없이, 실시간 거래가 이루어질 수 있어 거래수단으로써의 활용도가 증가되고 있습니다. 하지만 암호화폐까 갖는 익명성, 실시간 거래, 중개기관 부재, 분산 네트워크를 통한 거래 등의 특징은 불법 거래, 자금세탁, 조세회피, 암호화폐 탈취 등의 범죄수단으로 악용되고 있습니다.

범죄수익은 암호화폐를 통해 유통되거나 보유되고 있으며, 수사기관에 의해 범죄수익으로 판명 나는 경우 압수·몰수가 이루어지고 있습니다. 이때 암호화폐를 압수하는 방법은 피의자가 범죄수익으로 인해 얻는 암호화폐 지갑을 통제할 수 있는 권한이 있는 개인키를 수사기관에 제공해야 가능합니다.

하지만 피의자가 개인키를 임의제출하지 않거나 진술을 거부한다면 수사기관에서는 암호화폐 지갑에서 암호화폐를 확보하기가 매우 어려워지게 됩니다.

이에 본 연구에서는 피의자가 진술을 거부하여 암호화폐 지갑에서 암호화폐를 확보할 수 없는 상황에서 암호화폐 지갑으로 사용됐던 PC를 분석하여 암호화폐를 확보할 수 있는 방안에 대해 연구를 진행하고자 합니다.

 

연구의 범위 및 방법

연구 대상으로 라이트웨이트 지갑을 지원하는 암호화폐를 선정했습니다. 이와 관련된 암호화폐 지갑은 일반 사용자들이 대용량의 블록체인 데이터를 다운받지 않아도 사용할 수 있는 라이트웨이트(Light-Weight) 지갑을 대상으로 하였으며 Electrum, Electron Cash, Exodus, Jaxx, Toast, Foxlet, Neon 등 총 7종의 지갑을 분석했습니다.

특히 암호화폐 지갑에서 개인키 등을 확보하기는 사실상 어렵기 때문에 지갑의 백업 기능 및 방식을 분석하여 개인키 및 니모닉 시드를 확보할 수 있는 방안에 대한 연구를 진행하고자 합니다.

 

연구의 방법

암호화폐 지갑별 백업기능을 실시하여 백업방식을 분석하고 각 암호화폐별 개인키 특징 등을 도출합니다. 또한 암호화폐 지갑별 백업방식, 암호화폐별 개인키 특징점을 기반으로 키워드 검색, 데이터 카빙 등 다양한 디지털포렌식 기법을 활용하여 백업 데이터 탐색, 삭제된 데이터 탐색 및 복원할 수 있는 방안을 연구하고자 합니다.

 

본론

암호화폐 정의 (생략)

암호화폐 현황

가상화폐공개(ICO)를 통해 새로운 암호화폐가 지속적으로 개발되고 있습니다. 하지만 국내에서는 '17년 9월 29일 금융위원회를 주축으로 한 가상통화 관계기관 합동 태스크포스(TF)에서 유사수신행위 규제에 관한 법률 개정으로 ICO를 유사수신행위의 한 형태로 규정하고 ICO 전면 금지를 발표해 국내에서의 ICO를 불법으로 규정했습니다.

 

암호화폐 시스템

블록체인 (생략)

개인키, 공개키 및 주소

암호화폐는 공개키 암호 알고리즘을 기반으로 설계되어 있으며, 개인키(비밀키), 공개키, 주소 등 3가지의 구성요소를 가지고 있습니다. 개인키와 공개키는 쌍으로 구성되어 있으며, 개인키는 암호화폐의 개인 비밀키 역할을 하고, 공개키는 개인키로부터 생성되며 암호화폐 주소를 만들 수 있는 키로써 사용됩니다. 주소는 공개키를 통해 생성되며 은행계좌번호와 같은 역할을 하고, 소유할 수 있는 주소 개수에 대한 제한은 두고 있지 않습니다. 개인키->공개키->주소 이며, 역으로의 계산은 성립되지 않습니다.

 

암호화폐 지갑 및 키 저장 형식

암호화폐 지갑

암호화폐 지갑에는 지갑의 비밀키인 개인키와 지갑 주소, 공개키, 거래 정보가 저장되어 있습니다. 지갑은 P2P 네트워크를 통해 블록체인으로부터 새로운 정보를 얻거나 새로운 거래가 생기면 이를 블록체인 네트워크에 브로드캐스팅하는 역할, 공개키를 블록체인 네트워크에 동기화하는 역할, 개인키를 통한 거래 서명·확인 등의 기능을 가지고 있습니다.

암호화폐 지갑은 기능에 따라 블록체인 데이터를 모두 저장하고, 블록을 검증하는 역할을 하는 코어 지갑(또는 풀 클라이언트 지갑), 블록체인 데이터는 저장하지 않고, 제3자의 서버를 통해 사용자가 쉽고 빠르게 사용가능한 라이트웨이트(Light_Weight) 지갑, 웹 브라우저를 통해 사용자의 지갑을 사용할 수 있는 웹 지갑으로 분류할 수 있으며, 암호화폐를 사용하고자 하는 디바이스에 따라 데스크탑 지갑, 모바일 지갑, 하드웨어 지갑, 웹 지갑으로 구분할 수 있습니다.

 

니모닉 시드

니모닉 시드는 니모닉 코드 혹은 니모닉 복구 문구라고 불리며, 암호화폐 지갑을 복구하기 위해 필요한 정보를 암호화폐 사용자들이 쉽게 기억할 수 있도록 만들어진 단어 리스트입니다. 계층적 결정지갑을 지원하는 암호화폐 지갑에서 지갑 생성 시에 생성되어 집니다.

니모닉 시드는 일반적으로 BIP39(Bitcoin Improvement Proposals 0039) 표준을 따르며 영어, 중국어, 간자체, 중국어, 번자체, 프랑스어, 일어, 한국어, 스페인어, 이탈리아어에 대한 2,048개의 단어 리스트 중 랜덤한 12개의 단어 리스트가 사용됩니다.

 

Base58Check 인코딩 형식 (생략)

WIF(Wallet Import Format) (생략)

 

계층적 결정 지갑

계층적 결정 지갑은 하나의 시드값으로부터 다수의 파생 키값을 쉽게 생성하기 위해 BIP32에서 제안되었으며, HD 지갑 또는 계층적 결정지갑으로 불립니다.

계층적 결정 지갑은 하나의 시드값으로부터 생성된 마스터키와 마스터키로부터 생성된 트리구조로 된 하위키를 포함하고 있으며, 비 결정적(무작위) 지갑에 비해 다음과 같은 장점을 가지고 있습니다.

  1. 마스터키를 통해 트리 구조로 된 다수의 하위 키들을 생성가능하고, 이를 통해 하위 키들을 다양한 용도로 사용이 가능합니다.
  2. 하위키를 분실하여도 마스터키 또는 시드 값을 통해 전체 킷값을 복원할 수 있습니다.

 

암호화폐 범죄 및 포렌식

암호화폐 범죄 (생략)

블록체인 포렌식

블록체인 데이터는 공개되어 있어 누구나 이 정보에 접근하여 거래내역을 확인할 수 있으며, 이는 풀 클라이언트 암호화폐 지갑에 저장되어 있는 블록체인 데이터를 이용하거나 블록체인 데이터를 온라인에서 제공하는 사이트를 통해서 확인이 가능합니다. 이러한 블록체인의 특성을 활용하여 암호화폐 범죄에 있어 블록체인의 거래흐름을 추적할 수 있는 블록체인 포렌식 기술이 활용되고 있습니다.

H. Kuzuno는 블록체인 익스플로러 상에서 비트코인 주소를 기반으로 특정 주소의 거래흐름을 분석하여 관련 있는 주소를 그룹화 하고, 시각화 하여 범죄에 악용되는 주소를 식별하는 연구를 진행했으며, M. Spagnuolo는 웹상에서 비트코인 주소를 탐색해 실제 비트코인 사용자와의 연관성을 찾아내고, 동일 사용자에 의해 사용된 주소 및 라벨이 있는 주소 등을 그룹화하여 비트코인 주소와 실 사용자간의 연관성을 추출해 범죄에 사용되는 비트코인 주소를 추적하는 연구를 진행했습니다.

블록체인 포렌식 연구를 기반으로 한 상용화 포렌식 솔루션인 Chainalysis REACTOR와 같은 프로그램도 국내 암호화폐 거래소에서 자금추적 솔루션으로 사용 중에 있습니다.

이승환은 비트코인 블록체인 데이터를 이용해 비트코인 주소의 거래 유형을 분석하여 4가지 유형으로 분류하였으며, 정상적인 거래 유형과 범죄수단으로 사용될 수 있는 거래유형을 구분했습니다.

 

암호화폐 지갑 포렌식

M. Doran은 비트코인 지갑 Bitcoin-QT와 Multibit 프로그램을 하드 드라이브 중심으로 수집할 수 있는 아티팩트를 선별했습니다.

L. Van Der Horst는 비트코인 지갑 Bitcoin Core와 Electrum을 프로세스 메모리 중심으로 수집할 수 있는 아티팩트를 분류하였습니다.

Chriswcohen은 비트코인에서 사용되는 개인키값이 WIF, WIF Compressed, Hex, Base64, QR Code of WIF 등 다양한 형식으로 사용될 수 있다고 했으며, 정규표현식을 통해 주소, 개인키, 공개키 값을 추출하고 검증할 수 있는 BTCscan 파이썬 스크립트를 제공하고 있습니다.

암호화폐 지갑에 대한 앞선 연구들은 암호화폐의 개인키 추출을 위한 목적이 아닌 암호화폐의 아티팩트 수집을 중심으로 이루어졌으며, 개인키의 추출도 메모리 덤프 중 일부에서만 가능했습니다.

 

암호화폐 압수 및 포렌식 한계

 

2018년 1월 '수원지법 2018.1.30., 선고, 2017노7120, 판결 : 상고' 에서는 음란물 유포죄에 대한 항소심 판결에서 음란물 유포행위로 취득한 비트코인에 대해 '범죄수익은닉의 규제 및 처벌 등에 관한 법률'에서 규정하고 있는 '재산'에 해당한다고 판단하여 압수된 216.1249474 비트코인 중 191.32333418 비트코인을 몰수의 대상이 된다고 선고하였습니다. 기존의 1심 판결에서 비트코인이 현금과 달리 실체가 없는 전자화된 파일로 몰수 할 수 없다고 판결 하였지만 이를 뒤집은 것으로, 국내 수사기관에서 암호화폐를 몰수한 최초의 판결입니다.

- 논문 리뷰 (5) 에서도 다뤘던 내용입니다.

 

비트코인 압수의 한계

위 판결문에서는 피고인의 진술을 통해 피고인의 개인 비트코인 지갑에서 수사기관의 비트코인 지갑으로 임의제출을 통해 이전받는 방식으로 비트코인 압수를 진행한 것으로 보이나, 비트코인의 전자서명 구조 특성상 A지갑에서 B지갑으로의 이전을 위해서는 반드시 A지갑을 소유한 개인의 개인키를 통해 전자서명을 하거나 개인키를 수사기관에 제공해야 가능합니다.

이 때, 피고인이 범죄수익으로 얻은 비트코인 지갑주소의 개인키에 대해서 임의제출을 하지 않고 형사소송법 제283조의2(피고인의 진술거부권)을 통해 진술을 거부할 경우, 개인키를 어떻게 압수해야하는지가 해결과제로 남습니다.

 

해외 암호화폐 압수

실크로드 비트코인 압수 (생략)

유엔 마약범죄 사무소 암호화폐 압수 절차 

유엔 마약범죄 사무소(UNODC)에서는 2014년 6월 '가상 통화를 사용한 범죄 세탁의 탐지 및 조사에 관한 기본 메뉴얼(Basic Manual on the Detection And Investigation of the Laundering of Crime Proceeds Using Virtual Currencies)에서 가상화폐 압수 절차를 4단계로 분류하고 있습니다.

  1. 재정 조사 : 범죄행위 과정에서의 자금의 움직임을 확인하고 문서화
  2. 자산 추적 : 실제 압수 이전의 준비단계로, 압수할 암호화폐 대상 결정
  3. 자산 통제권 획득 : 중앙화/탈중앙화 가상화폐로 분류하여 통제권 획득
  4. 자산 관리 : 압수된 가상화폐가 유통되지 않도록 이동식 하드웨어 또는 안전한 저장장치에 보관

 

1단계는 재정조사 단계로 범죄행위 과정에서의 돈의 움직임을 확인하고 문서화하는 단계지만 가상화폐에 초점을 맞춘 재무조사 방법은 아직 검증된 접근법이 없다는 것을 명시하고 있습니다.

2단계는 자산추적 단계로 실제 압수할 가상화폐를 특정하는 단계로 '적색 깃발(red flags)' 지표를 통해 이를 식별할 수 있습니다.

  • 동일한 가상화폐 관리자 또는 거래소가 보유한 은행계좌가 사업과 연관성이 없는 흐름으로 보이는 경우
  • 가상화폐 관리자 또는 거래소가 한 국가에 위치하고 있지만 고객이 없는 다른 나라에도 계좌를 보유하고 있는 경우
  • 서로 다른 위치에 있는 가상화폐 관리자 또는 거래소간의 은행계좌 거래 흐름이 있는 경우
  • 적절한 등록절차가 부족하거나 범죄 단체들에게 인기가 있는 것으로 알려진 가상화폐 시스템

3단계는 자산 통제권 획득 단계로 범죄 수익이나 수단이 확인되면 재산의 소유, 관리 또는 특정 재산을 통제하는 것으로 무형자산인 가상화폐의 경우 기존 금융기관 및 거래의 영역을 넘어서는 것으로 중앙화된 가상화폐와 분산화된 가상화폐로 구분하여 접근해야 합니다.

  • 중앙화된 가상화폐의 경우 이를 관리하는 회사에 범 집행기관이 합법적인 요청을 통해 압수가 가능합니다.
  • 탈중앙화된 암호화폐의 경우 중앙화된 가상화폐와 달리 별다른 통제 및 관리기관이 없기 때문에 개인 사용자가 보유하고 있는 지갑과 주소에 있는 가상화폐가 압수의 대상이 됩니다. 이론적으로 가상화폐의 경우 통제권을 획득하기 위해서는 두 가지 방법이 있습니다.

첫 번째 방법은 개인 사용자가 지갑과 관련된 자료를 제출하도록 강요하는 것이고, 두 번째 방법은 법 집행기관의 지갑으로 가상화폐를 이전하여 통제권을 획득하는 방법으로, 후자의 방법은 다음과 같은 단계가 필요합니다.

  1. 가상화폐 항목/지갑 및 금액 결정
  2. 용의자의 협조 또는 지갑에 대한 통제권을 행사하여 법 집행기관이 관리하는 지갑으로 이전
  3. 가상화폐 이전 내용에 대한 기록

4단계는 자산을 관리하는 단계로 압수된 가상화폐는 디지털 아이템으로 부주의로 인해 데이터가 변경되거나 손실 될 우려가 있어, 이를 지갑이 아닌 이동식 하드웨어 지갑 또는 안전한 저장소에 보관해야 합니다.

 

유엔 마약범죄 사무소의 암호화폐 압수 절차의 한계

가상통화인 암호화폐를 압수하기 위해서는 용의자의 협조를 받아 암호화폐 지갑과 연관된 개인키로 전자서명을 통해 이전받거나 개인키를 받아야 가능합니다. 용의자가 이를 거부할 경우 압수대상에 대한 이전이 불가능해지게 되는 문제가 발생합니다.

 

암호화폐 지갑 포렌식의 한계

M.Doran은 비트코인 지갑인 'Bitcoin-QT'와 'Multibit'에 대해 개인키 및 공개키가 저장되어 있는 지갑 백업 파일의 위치·파일명, 로그 파일에 저장되는 내용, 지갑내부 구조 등 포렌식 아티팩트에 대해 분석하였으나 개인키를 획득하는 방법은 암호화 된 지갑 백업파일을 복호화하지 못할 경우 개인키를 확보할 수 없었습니다.

L. Van Der Horst는 'Bitcoin Core'와 'Electrum'지갑의 프로세스 메모리를 중심으로 분석하여, 개인키 및 공개키, 지갑주소 등에 대해 분석했지만 'Bitcoin Core' 지갑에서만 암호화되어 있지 않은 개인키값을 발견할 수 있었고(암호화 기능을 사용하지 않은 경우), 'Electrum" 지갑에서는 개인키가 암호화가 되어 있어 메모리상에서 개인키를 확인하지 못하였습니다.

범죄수익으로 얻는 암호화폐를 수사기관이 압수 또는 몰수를 위해서는 용의자 또는 피의자가 암호화폐 개인키를 수사기관에 임의제출하는 방식의 협조가 필요하지만, 피의자가 진술거부를 통해 협조가 이루어지지 않는다면 수사기관에서는 피의자의 암호화폐 지갑을 압수하여 지갑 내부에 있는 개인키 및 니모닉 시드값을 확보해야 합니다.

이에 일반 사용자가 해킹, 시스템 에러, 사용자 부주의에 의한 지갑 프로그램 삭제 등의 위협으로 부터 암호화폐 자산의 손실을 막기 위한 지갑 백업기능을 사용한 경우 백업된 파일 또는 데이터로부터 암호화되어 있지 않은 개인키 및 니모닉 시드를 탐색하여 암호화폐를 확보할 수 있는 방법에 대해 연구하고자 합니다.

 

Electrum

wallet file은 니모닉 시드값, 개인키값, 공개키값, 지갑 주소값 등의 지갑과 관련된 중요 정보가 저장되어 있는 지갑의 데이터베이스 역할을 하는 파일로 지갑 프로그램이 손상되더라도 해당 파일을 통해 지갑을 정상적으로 복원할 수 있습니다. 니모닉 시드를 별도의 파일로 저장할 수는 없으며 클립보드에 복사는 할 수 있습니다. 개인키의 경우 생성된 각각의 지갑주소별로 개인키를 백업할 수 있으며, 전체 지갑주소에 대해서도 개인키 백업이 가능합니다. 전체 지갑 주소에 대한 백업을 진행할 경우, 'CSV'형식 또는 'JSON'형식의 파일로 저장됩니다. 각 지갑주소별 개인키를 백업하는 경우에는 전체 개인키 백업과 달리 클립보드 복사를 통한 개인키 백업과 개인키 정보가 담긴 QR코드 이미지로 백업할 수 있습니다.

 

Electron Cash

Electron Cash 지갑은 비트코인 캐시를 지원하는 지갑으로 Electrum 지갑과 동일한 기능과 백업 방식으로 Wallet file 백업, 시드 백업, 개인키 백업 등 3가지 백업방식을 제공하고 있습니다. 전체적으로 Electrum 지갑과 동일한 방식으로 백업이 가능합니다.

 

Exodus

Exodus 지갑은 지갑간의 전송·수신뿐 아니라 서로 다른 암호화폐간 교환도 지원하고 있습니다. Exodus 지갑의 백업방식은 니모닉 시드 백업, 복구 이메일 링크 백업, 개인키 백업 등 총 3가지의 백업기능을 제공하고 있습니다. 니모닉 시드는 프린트 하거나 클립보드를 통한 복사방식의 백업만 가능합니다. 니모닉 시드 값을 통해 Exodus 지갑에 있는 모든 정보에 대해서 복구가 가능합니다. 이메일 백업의 경우 이메일로 링크가 전송되며, 지갑 복원 시 이메일 백업 링크와 사용자가 설정한 암호문구를 입력하여 복원이 가능합니다. 해당 방법 또한 모든 데이터를 획득할 수 있습니다. 개인키의 경우 각 암호화폐별로 개인키에 대한 백업이 가능합니다. 개인키 백업 시 암호화폐별 백업 파일이 CSV 형식으로 생성됩니다. 개인키 백업은 암호화폐별로 생성되며 각 암호화폐별 지갑주소에 대해서만 복구가 가능합니다.

 

Jaxx

니모닉 시드 백업과 개별 개인키에 대한 백업을 제공합니다. 니모닉 시드 백업의 경우 클립보드 복사, 파일 저장 기능은 지원하지 않으며, 수기로만 적을 수 있도록 권장합니다. 니모닉 시드의 QR 코드 이미지 백업도 별도의 파일로는 저장할 수 없으며 카메라를 통한 스캔으로 백업하는 것을 권장합니다. 개인키 백업의 경우 각 암호화폐별로 백업이 가능합니다. 하지만, 클립보드를 통한 복사만 가능하며, 별도의 파일로 개인키를 저장하지는 않습니다.

 

Toast

Toast는 Ripple을 지원하는 암호화폐 지갑입니다. 지갑을 생성하고 최소 20개의 리플이 해당 주소에 있어야 정상적으로 지갑 사용이 가능합니다. 해당 지갑에서는 암호화된 지갑 코드 백업과 비밀키 백업 방식을 지원합니다. 암호화된 지갑 백업코드 방식의 경우 클립보드 복사를 통해서만 백업이 가능합니다. 지갑 복구 시에는 암호화된 백업 코드 뿐만 아니라 사용자가 설정한 패스워들 통해서도 복구가 가능합니다. 지갑주소에 대해서는 Secret key의 클립보드 복사와 QR 코드를 통한 백업만 지원하며, QR코드의 경우 별도의 파일로 저장하거나 클립보드로 복사하는 기능은 지원하지 않습니다.

 

Foxlet

Foxlet 지갑은 스텔라를 지원하는 암호화폐 지갑으로 최소 1개 이상의 루멘이 있어야 사용이 가능합니다. 지갑주소에 대한 Secret key의 백업만을 지원하며 별도의 백업방식은 클립보드 복사와 QR코드를 통한 백업만 지원합니다. QR코드의 경우 클립보드 복사 및 별도 파일 저장은 지원하지 않으며 QR 코드에는 Secret key가 평문으로 저장됩니다.

 

Neon

Neon 지갑은 네오를 지원하는 암호화폐 지갑으로 지갑 최초 생성시에만 암호문구, 지갑주소, 암호화 키, 개인키 등의 정보를 백업할 수 있게 해주며, 암호화키에 대한 파일백업을 지원합니다. 개인키는 지갑 최초 생성 시에만 확인할 수 있으며, 클립보드 복사를 통해서만 백업이 가능합니다. 개인키는 WIF 형식 Base58인코딩 방식을 사용하여 첫 문자가 'K' 혹은 'L'로 시작합니다. 개인키 백업의 경우 개인키와 암호문구를 결합해서 암호화 개인키를 생성하여 백업이 가능합니다. 따라서 암호화 개인키값과 암호문구를 함께 알고 있어야 복구가 가능합니다. 암호화 개인키는 총 58바이트로 구성되어 첫 3바이트의 값은 '6PY'로 시작합니다. 그리고 지갑 복구 파일은 'JSON'파일 형식으로 저장가능하며, 파일에는 지갑주소와 암호화 개인키값이 저장되어 있습니다.

 

본 연구에서 분석한 암호화폐 지갑에서 백업되는 데이터는 개별 개인키, 전체 개인키, 니모닉 시드, 지갑 파일, 백업 코드, 이메일 백업 링크, 암호화 개인키 등 총 7종류이며, 데이터를 백업하는 방식에는 클립보드 복사, 화면 표시, 파일 저장, QR코드 이미지 생성, 이메일 전송 등 5가지 방식을 제공하고 있습니다.

백업된 데이터에서 개별 개인키, 전체 개인키, 니모닉 시드값은 백업 시 별도의 암호화를 지원하지 않아 백업 데이터만으로도 지갑의 복원이 가능하지만 지갑 파일, 백업 코드, 이메일 백업 링크, 암호화 개인키의 백업 데이터는 사용자가 설정한 암호문구와의 조합을 통해서만 복원이 가능합니다. (표 생략)

 

암호화폐 지갑의 백업된 개인키 형식

Base58 WIF형식 개인키 (생략)

Hex 형식 개인키 (생략)

Base32 형식 개인키 (생략)

Electrum, Electron Cash, Exodus, Jaxx, Toast, Foxlet, Neon 암호화폐 지갑에서 사용되는 개인키는 암호화폐별로 인코딩 방식, 크기, 시작 첫 바이트 고정값이 일정 형식인 것을 확인할 수 있습니다. (표 생략)

 

백업된 개인키 및 니모닉 시드 확보 방법

개인키 및 니모닉 시드 값을 탐색하기 위해 암호화폐 지갑에서 백업된 데이터 중 암호화되지 않는 데이터를 탐색·추출하는 방법을 연구하고자 하며, 암호화되어 백업된 데이터에 대해서는 연구대상에서 제외하였습니다.

개인키 백업 파일을 생성할 때 파일이 저장되는 경로와 프로그램에서 설정한 파일명을 기준으로 $MFT 파일에서 찾는 것을 제안하고 있습니다. (자세한 내용 생략)

 

비 할당 영역 개인키 탐색

비 할당 영역에서 개인키를 탐색하기 위해서는 앞서 언급한 암호화폐별 개인키 형식을 이용하여 분석한 7종의 지갑에 대해 정규 표현식으로 탐색이 가능합니다. 비트코인, 비트코인 캐시, 네오 개인키의 경우 동일한 형식을 사용하여 개인키만으로는 구분할 수 없으며, 개인키 형식 특성으로만 정규 표현식을 통해 탐색할 경우 오탐 결과가 다수 검출될 수 있습니다.

Electrum, Electron Cash, Exodus 지갑에서의 개인키 백업파일 데이터 구조를 활용한다면 개인키 탐색의 오탐을 줄일 수 있습니다.

 

QR코드 이미지 탐색

드라이브내에 있는 모든 이미지 파일을 탐색하여 QR코드 이미지를 선별하고, QR코드 이미지내의 데이터를 추출하여 암호화폐별 개인키 정규 표현식과 비교하여 동일할 경우 개인키로 판단할 수 있습니다.

 

니모닉 시드 QR코드 이미지 탐색

해당 기능은 Jaxx 지갑에서만 지원하는 기능으로 Jaxx 지갑에서 저장하는 데이터 형식에 따라 정규 표현식을 작성하여 QR코드 이미지에서 니모닉 시드 값을 가지고 있는 이미지를 탐색할 수 있습니다.

 

본 연구에서는 앞선 개인키 및 니모닉 시드 값의 백업특성과 저장되는 개인키 형식을 활용해 암호화폐 지갑에서 암호화폐를 확보할 수 있는 방법으로 다음의 3가지 방법을 제시하였습니다.

  1. 파일명, 확장자 등을 통한 백업된 개인키 백업 파일 탐색
  2. 비 할당 영역에서 암호화폐별 개인키 정규 표현식을 통한 탐색
  3. 개인키 또는 니모닉 시드값이 저장되어 있는 QR코드 이미지 탐색

하지만 본 연구에서는 암호화폐 지갑을 라이트웨이트 지갑으로 한정하고, 사용자가 암호화폐 지갑을 백업했을 경우에만 개인키 및 니모닉 시드값 탐색이 가능한 점, 백업된 데이터에서 개인키 또는 니모닉 시드 탐색 시 오탐을 줄일 수 있는 방법 제시 부족의 한계점을 지니고 있어 추가적인 연구가 필요합니다.

 


 

암호화폐 지갑 프로그램을 사용해보고 분석해보면서 개인적으로 정리해보고 싶었던 내용들이 작성되어 있던 논문이었습니다. 실제 환경에서는 굉장히 많은 경우의 수가 존재하기 때문에 백업 기능을 사용하여 파일이 남아있는 경우는 반드시 있을것이라고 생각됩니다. 그런 면에서 활용하기 좋은 내용인 것 같습니다.