안전한 암호화폐 지갑 Henesis
[1/2] 2일만에 안전한 비트코인, 이더리움 지갑을 만들 수 있는 Henesis Wallet 솔루션
안녕하세요, Henesis 팀입니다. 저희는 비즈니스에 디지털 자산을 연동하고자 하는 고객에게 안전한 지갑을 제공하고 있습니다.
고객들을 만나면서 자주 듣는 질문이 있습니다.
“그래서 Henesis는 왜 안전한가요?”
오늘은 Henesis가 안전한 2가지 이유에 대해서 소개해 드리려고 합니다. 다른 2가지 이유는 다음 글에서 참고해주세요.
1. 다중 서명(Multi-sig) 월렛을 통한 리스크 분산 🛡
Henesis는 2-of-3 다중 서명(Multi-sig) 기술을 활용한 비 수탁형 지갑입니다.
Henesis는 다중 서명 방식을 도입하여 3개의 키(key) 중 2개로 서명해야만 디지털 자산을 이체할 수 있습니다. 1개는 Henesis가, 나머지 2개는 고객사가 보관함으로써 자산의 소유권이 Henesis에 이전되지 않습니다. 만약 한 개의 키가 유실되거나 해킹당하더라도, 다른 두 가지 키가 해킹되거나 유실되지만 않는다면 디지털 자산을 안전하게 보관할 수 있습니다.
2-of-2가 아닌 2-of-3 다중 서명을 선택한 이유는?
2-of-2 구조에서 고객사와 Henesis가 각각 키를 나눠 가졌을 때에, Henesis가 서명하지 않으면 출금이 구조적으로 불가능하지만, 2-of-3의 구조에서는 고객사에서 가지고 있는 키를 조합해 출금할 수 있습니다. 따라서, 키를 여러 개로 분산하고 고객사가 과반수의 키를 소유하면서 자신의 자산을 스스로 보관하기에는 2-of-3 구조가 적합하다고 판단했습니다.
Henesis Wallet의 세 가지 키
Henesis Wallet에서는 키가 Account Key, Backup Key, Henesis Key 이렇게 세 가지로 분리되어 있습니다. 고객사에서는 Account Key(Hot Key)와 Backup Key(Cold Key)를 관리하는 구조입니다.
(1) Account Key
Account Key는 고객사에서 출금을 요청하기 위해서 활용하는 키입니다.
(2) Backup Key
Backup Key는 Account Key가 유출되었거나 또는 Henesis 팀이 천재지변으로 인해 문제가 발생했을 때를 대비한 용도로, 네트워크가 단절된 환경에서 보관되는 키입니다. Henesis에서 지갑을 생성하고 복구 키트를 받는 과정은 아래 영상을 통해 확인하실 수 있습니다.
복구 키트는 Account Key, Backup Key, Henesis 공개키, 그리고 비밀번호를 분실했을 때 비밀번호를 변경할 수 있는 Encrypted Wallet Passphrase가 저장되어 있습니다.
(3) Henesis Key
Henesis가 관리하는 키는 Henesis 인프라 내에서 KMS(Key Management System)과 HSM(Hardware Security Module) 을 활용해서 안전하게 보관되고 있습니다.
2. 안전한 API 호출 ⚙️
Henesis를 사용하는 고객사가 자신의 Account Key를 활용해 서명한 Payload를 전달하면 Henesis 인프라에 안전하게 보관된 다른 하나의 키로 서명해서 트랜잭션을 발생시킵니다. Henesis는 안전한 API 호출을 위해서 세 가지 보안장치를 지원하고 있습니다.
(1) Access Token
API를 호출한 사용자가 실제 고객인지 여부를 확인하기 위해서 유효기간이 존재하는 토큰을 발행합니다. 고객사는 Access Token을 대시보드를 통해 발급받을 수 있으며, Access Token은 API를 연동한 고객사가 맞는지 여부를 일차적으로 확인합니다.
(2) IP 주소 화이트 리스팅
IP 주소 화이트 리스팅은 지정된 IP외에 다른 IP에서 출금 요청이 왔을 때 이를 차단하는 기능입니다. Henesis를 사용하는 고객이 관리하는 키를 유실하거나 해킹을 당해서, 해커가 다른 IP 주소에서 출금 요청을 하더라도 IP 주소 화이트 리스팅을 해놓았다면 이를 예방할 수 있습니다.
(3) 네트워크 통신 암호화
HTTP 통신을 할 때에 메시지 내용을 암호화하지 않으면 누구나 해당 내용을 볼 수 있습니다. 그래서 SSL(Secure Socket Layer)을 도입하여 메시지를 암호화한 것이 HTTPS 통신 방식입니다. 그런데 HTTPS 통신을 할 때에도 중간자 공격(MitM)이 가능합니다. 해커가 유효한 인증서를 발급한 상태로 서버<>클라이언트 사이에 끼어들어 메시지를 변조하거나 중간에 메시지를 탈취한 뒤 같은 메시지를 서버에 계속 보내는 Replay Attack을 할 수 있습니다.
Henesis 팀은 이를 막기 위해서 HMAC 암호화 방식을 도입했습니다. 고객사와 Henesis 팀만이 알고 있는 API Secret을 만들어서, 고객사에서는 ‘API method’, ‘body’ ‘path’ 및 ‘timestamp’를 넣어서 서명하고, 해당 서명 값, timestamp를 API Header에 넣어서 보냅니다. Henesis는 고객의 Payload를 받아서 서명 값이 올바른지 확인하고 timestamp가 지금 시점으로 60초 이내인지 확인합니다.
다음 글에서는 자산 출금 권한 통제와 안전한 운영도구에 대해서 소개드리겠습니다.
Henesis Wallet에 대해 자세히 알아보고 싶으신 블록체인 서비스 기업 담당자분은, 언제든 편하게 연락주시기 바랍니다.
감사합니다.
Henesis 팀 드림