Key management on DApp Service (3/3)
지난 시간 Ethereum Account가 무엇인지에 대해 알아보았습니다.
이번시간에는 실제로 여러분들이 많이 사용하고 계실 My Ether Wallet(이하 MEW)을 가지고 Account관리의 중요성과, 어떻게 관리하는것이 안전한 것인지 알아보도록 하겠습니다.
MEW는 여러분의 Account를 보관해주고 관리해 주는 서비스는 아닙니다.
MEW에서 제공해 주는 서비스는 새로운 Account를 생성해 주거나, 기존 Hardware Wallet이나, Software Wallet아니면 파일 형태의 지갑을 가지고 Ethereum전송 또는 Smart Contract실행 등을 할 수 있게 도와주는 서비스 입니다.
MEW에 접속해 보시면 다음과 같은 화면을 보실 수 있습니다.
여기서 지갑을 열때 몇가지 지갑은 추천하지 않는다고 경고하고 있습니다.
지갑의 접근 방법들에 대해 알아보고 경고하는 이유들은 무엇인지 설명하도록 하겠습니다.
<View w/ Address Only>
이 기능은 단순이 잔액조회와 같은 상태확인만 가능한 옵션입니다.
따로 개인키가 필요하지 않기에 보안상에 문제가 발생할 여지는 없습니다.
<Metamask, Mist>
PC에서 실행중인 프로그램을 통해 지갑을 여는 방법입니다. 사실 이 부분은 그냥 프로그램 지갑에서 제공하는 기능과 동일합니다.
위와 같이 트랜잭션을 만들어 전송하게 되면, Metamask의 전송화면이 나타나게 됩니다.
당연히 개인키가 공개되는 일은 없고 MEW에서 직접 개인키로 트랜잭션 Sign을 하는 것이 아니라, Metamask같은 Software Wallet에서 이미 Sign된 트랜잭션을 전송해 주는 역할만 하기에 안전하다고 할 수 있습니다.
<Ledger Wallet/ TREZOR/ Digital Bitbox>
Hardware Wallet을 통해 지갑서비스를 이용하는 옵션입니다.
Metamask/Mist처럼 Hardware Wallet에서 Sign한 정보만 받아 전송만 해주는 것이라 안전한 Access방법입니다.
<Keystore / JSON File >
지난 자료에서 설명드린 Ethereum의 Keystore File을 이용하는 방법입니다.
자세히 보시면 “이 방법은 지갑에 접근하는 방법으로 추천하지 않습니다" 라고 경고문구가 있습니다.
Keystore File은 개인키가 안전하게 암호화 되어 있다고 하였습니다. 그런데 왜 위험하다고 경고 하는것 일까요?
해당 옵션을 이용하려면 해당 Keystore File과 함께 암호를 MEW 측에 알려주어야 합니다. 그래야 거기서 복원한 개인키로 트랜잭션을 Sign하여 Ethereum Network에 전파할 수 있기 때문입니다.
이 과정에서 여러분이 사용하는 인터넷 환경에 따라 중간에서 해당 내용을 가로채갈 수 있습니다. 또 암호를 타이핑 하는 과정에서 Keyboard Hooking등과 같은 해킹 기법으로 충분히 암호를 빼갈 수 있게됩니다.
물론 MEW에서는 이러한 해킹위험에 대해 통신 암호화 등과 같은 보안요소에 신경을 쓰고있습니다.
다만 MEW와 비슷해 보이는 피싱 사이트 등을 통해 여러분의 소중한 개인키가 유출될 수 있기에 주의가 필요합니다.
<Private Key / Mnemonic Phrase>
Private Key는 말그대로 여러분의 개인키를 바로 입력하는 하여 지갑을 여는 방법입니다. 암호화 되지 않은 개인키를 바로 입력하는 방법은 제일 간단합니다. 왜냐하면 복사 붙여넣기만 하면 바로 지갑의 모든 기능을 쓸 수 있기 때문입니다.
기술적으로 복사(Ctrl-C, V) 부분은 클립보드라는 공공의 영역에 복사가 되는데, 이는 어떠한 프로그램도 접근이 가능합니다. 굳이 Keyboard Hooking이 아니더라도 어떤 Application에서 클립보드만 관찰하면 여러분의 지갑을 손쉽게 탈취할 수 있습니다.
니모닉은 개인키를 사람이 보기 읽거나 외우기 쉽게 단어 집합 형태로 만든것입니다.
사실 니모닉도 개인키의 다른 변형이라고 보시면 됩니다.
그리고 이 또한 외우기 어렵고 길이가 길기 때문에어딘가에 저장해 두었다 쓰는 경우를 많이 보았습니다.
개인키와 마찬가지로 위험하다고 볼 수 있습니다.
무엇보다도 개인키를 암호화 하지 않고 평문형태로 보관하는것은 내 지갑을 길거리에 던지는 것이라고 생각하시면 됩니다. 심지어 파일 검색만으로도 여러분의 개인키를 가져갈 수 있습니다.
그렇기에 MEW에서도 추천하지 않는 방법입니다.
결론
정리를 해보자면 지갑을 관리하면서 반드시 지켜야할 수칙들이 있습니다.
첫번째, 키파일은 항상 암호화 해두어야 합니다.
평문 형태의 개인키는 쉽게 탈취 당할 수 있기에 최소한의 안전장치인 암호화된 파일로 라도 보관해야 합니다.
두번째, 개인키나, 니모닉 같은 키는 평문인 상태에서 복사 붙여넣기 기능을 사용하지 말아야 합니다.
여러분에 혹시라도 있을지 모를 악성코드, 백도어 등에 의해 탈취될 위험성이 있습니다.
마지막으로, 내가 사용중인 웹사이트 또는 프로그램이 진짜인지 가짜인지, 피싱에 주의해야합니다.
피싱사이트는 사람들이 눈치채지 못할 정도로 비슷한 URL과 웹페이지를 가지고 여러분의 소중한 정보들을 빼가려고 합니다.
MEW에서도 항상 경고하는 내용중에 하나가 접속한 웹페이지의 인증서를 확인하라는 내용입니다.
우리가 최소한의 보안노력을 기울인다면, 소중한 암호화폐를 지켜낼 수 있습니다.