하드웨어 지갑을 왜 사용해야 하나요?

이전 편의 지갑 유형을 설명할 때 하드웨어 지갑(콜드 월렛) 대해 간략히 설명하였습니다. 하드웨어 지갑은 인터넷과 연결되지 않은 별도의 기기에 개인키를 보관하기 때문에 해킹으로부터 안전하다고 말씀드렸는데요. 좀 더 나아가서 하드웨어 지갑이 어떻게 안전한지 설명드리겠습니다.

자산이 보관되는 곳에는 언제나 위협을 고려해야 합니다. 블록체인 상에서 자산은 개인키의 탈취여부와 연관됩니다. 여기서는 직접적인 키 탈취에 초점을 둡니다. (피싱과 같은 방법, 주소 바꿔치기와 같은 공격은 키 탈취와는 다르게 공격자의 의도와 사용자의 실수가 합쳐진 자산 분실이므로 케이스가 다릅니다.)

하드웨어 지갑의 동작 과정

하드웨어 지갑은 아래 그림 처럼 별도의 인터넷 연결 기기와 함께 연동되어 작동합니다. 인터넷에 연결되는 기기는 PC나 노트북, 모바일 기기가 될 수 있습니다. 거래의 최종 목적은 블록체인 네트워크에 거래내역을 보내서 자산을 이동하는 것입니다. 이를 위해선 전자 서명된 거래내역이 필요합니다.

일반적으로 거래내역을 작성하기 위해서는 아래 그림과 같이 블록체인 네트워크에서 정보를 가져와서 거래내역을 작성합니다. 그리고 하드웨어 지갑으로 작성된 거래내역을 보내고, 하드웨어 지갑은 안전한 장소 내에서 개인키를 이용하여 전자 서명을 작성합니다. 전자 서명 작성이 완료되면, 서명된 거래내역을 반환하여 인터넷 연결 기기에서 블록체인 네트워크로 거래내역을 전송합니다.

안전한 키 보관

만약 여러분이 스마트 폰에 모든 개인키를 저장하고 있다고 가정해봅시다. 스마트 폰이 공격자의 손에 넘어가게 된다면 불안할 수 있습니다. 공격자가 여러분의 잠금 패턴을 알고 있을 경우, 스마트 폰의 소유자는 곧 개인키의 소유자가 됩니다. 개인키가 스마트폰 내에 저장되어 있기 때문에, 모든 자산의 보안은 잠금 패턴에 의존하게 됩니다.

만약 콜드 월렛, 별도의 하드웨어에 키를 가지고 있다면, 스마트 폰의 분실 및 도난으로부터 자산을 잃어버릴 염려를 하지 않아도 됩니다. 하드웨어 지갑은 물리적으로 분리된 장비이기 때문에 스마트 폰에 개인키와 관련된 정보가 남지 않습니다. 개인키는 하드웨어 내에서만 작동하며, 장치 밖으로 유출되지 않습니다.

공격자는 여러분의 스마트 폰과 하드웨어 지갑을 동시에 탈취할 수도 있습니다. 그리고 몇가지 시도를 통해 자산을 이체하고자 시도할 것입니다. 계속된 공격을 방지하기 위해, 하드웨어 지갑에는 비밀 번호가 계속해서 틀릴 경우(예를 들어 10번 이상 틀릴 경우) 기기를 초기화하는 메커니즘이 포함되어 있습니다. 이를 통해 공격자는 장비를 모두 탈취했음에도 자산을 이체할 수 없습니다.

중간자 공격에 대한 방어

공격자는 여러분의 하드웨어를 탈취하지 않더라도 여러가지 방법으로 자산을 가져올 수 있습니다. 대표적인 방법 중 하나인 주소를 바꿔치기 하는 유형의 공격은 하드웨어 지갑과 인터넷 연결 기기간에 발생하는 중간자 공격입니다.

예를 들어 여러분은 하드웨어 지갑에서 거래소로 자산을 이체하고자 한다고 가정해봅시다. 여러분의 거래소 자산의 주소가 정확하게 일치하는지를 확인해야하지만, 주소의 숫자는 생각보다 사람에게 익숙하지 않은 정보입니다. 인터넷으로 유입된 악성코드는 받는 사람의 주소를 공격자의 주소로 바꿔치기 할 수 있습니다. 만약 거래내역을 정확하게 확인하지 않는다면, 공격자의 주소로 자산을 보낼 수 있으며 이것은 자산을 잃어버리는 결과를 가져옵니다.

따라서 하드웨어 장비에서 전체 거래내역을 확인할 수 있는지의 여부는 매우 중요합니다. 하드웨어 내에서 수신자 주소와 같은 정보를 정확하게 확인한 후에 서명을 승인해야만, 안전하게 자산을 지킬 수 있습니다.

지금까지는 공격자로부터 어떻게 안전한 자산을 지킬 수 있는가에 대한 간단한 설명이었습니다. 하지만 사용자가 부주의로 인해 하드웨어 장비를 잃어버릴 수도 있습니다. 이럴 경우 사용자는 어떻게 자산의 소유권을 복구할 수 있을까요? 이는 하드웨어 지갑 생성 초기에 출력되는 니모닉 문구를 통해 복구가 가능합니다. 니모닉 문구에 대해서는 다음 편에서 알아보도록 하겠습니다.

Last updated