[EOS 100% 활용하기#6] 계정보안과 보안사고시 조치방법

in #dclick5 years ago (edited)

암호자산 성공투자 꿈나무 이글아이(@eaglekeeneye) 입니다.

이번 글은 지난 글에 이어진 이야기입니다. 아래의 링크부터 차례로 먼저 읽고 오시길 권장 드립니다.
[EOS 100% 활용하기#1] EOS를 매수 해놓고 아무것도 안 하면 손해인 이유
[EOS 100% 활용하기#2] Buy community, not a token
[EOS 100% 활용하기#3] EOS 홀더를 위한 간단 블록체인 상식
[EOS 100% 활용하기#4] EOS 커뮤니티와 생태계 간단 소개
[EOS 100% 활용하기#5] 플랫폼 tool 소개, EOS 계정생성과 계정보안

0) 이야기 순서

우선 이글은, 투자는 하고 싶지만, 보안 때문에 거래소에 두고 계신 홀더 분들이 개인 지갑 사용에 친숙해지는 데에 목적이 있습니다. 사용을 위해 보안에 관한 전문적인 지식까지는 필요하지 않으며, 투자자로서 가장 기본적으로 지켜야 할 상식만 설명할 것입니다.

글의 순서는 공개키와 개인 키의 관리방법에 관한 "1)보안기본: Key의 관리" 에 대해 먼저 설명하겠습니다.

그다음은 암호키에 관한 개념 그리고 그 필요성에 관한 "2)Owner Key, Active Key 바꾸기: Key의 분리" 에 대해 설명하겠습니다.

마지막으로 혹시나 있을 보안사고(해킹, 키 분실) 발생 시 행동에 관한 "3)EOS 커뮤니티 이용: 비상조치" 에 대한 설명을 하겠습니다.

1) 보안기본: Key 의 관리

저번 포스팅[EOS 100% 활용하기#5]을 통해 계정을 생성하셨다면 아래의 이미지와 같이 공개키(Public Key)와 개인 키(Private Key) 를 받으셨을 겁니다.

이 공개키와 개인 키의 한 쌍을 키 쌍 (Key Pairs) 라고 합니다. 기존의 은행, 증권사 시스템에 익숙하신 분들은 공개키가 계좌번호 그리고 개인 키가 계좌 비밀번호라고 이해하시면 쉽습니다. 특정 계좌번호로 금액을 이체하고 싶으면 계좌 비밀번호를 입력해야 합니다. 만약 악의적인 해커가 비밀번호를 탈취한다면, 돈을 자신의 통장으로 입금하여 탈취해 갈 수 있습니다.

( a ) 기존 금융시스템과 블록체인상의 환경의 차이

기존의 금융체계에서 범죄자들의 신원조회가 가능하기 때문에 자금의 흐름을 어느 정도 추적하여 범죄자를 추적해낼 수 있습니다. 만약 피해자의 신원만 확인이 된다면 피해자의 의지로 송금하지 않은 거래를 무효화 할 수 있습니다.

그러나 블록체인상에서는 거래검증이 끝난 거래를 무효화시키는 것이 불가능합니다. 또한 계정과 신원이 일치하는지 여부를 파악하기 매우 어렵기 때문에 피해 상황의 사실 여부를 파악하기도 어렵습니다.

가장 큰 취약점으로는, key를 분실할 시에 절대로 되돌려 받을 수 없습니다. 기존의 금융시스템에는 고객의 계좌번호와 비밀번호를 저장하고 있고, 고객의 신원이 확인만 되면 잃어버린 비밀번호를 알려주거나 새로 발급받을 수 있습니다.
그래서 블록체인상에서 개인지갑을 쓰면 아래의 2가지 사항을 반드시 명심해야합니다.

  • 개인키를 함부로 노출시키지 말 것
  • 개인키를 절대 분실하지 말 것

( b ) 키쌍(key pairs) 저장, 관리방법

개인키를 까먹으면 복구를 할 수 없으므로 반드시 신뢰할 수 있는 저장매체에 저장해 놓아야 합니다.

저장 매체는 인터넷과 분리되어 사용해야 합니다. 예를 들어 키 쌍(공개키와 개인 키)을 복사해둔 것을 자기 자신에게 이메일을 한 번이라도 보내놓는 경우나, 인터넷 드라이브 (구글, 네이버 드라이브) 와 같은 곳에 저장해두면 개인키가 노출될 위험이 있으니 절대로 인터넷에 저장해서는 안 됩니다.

인터넷을 이용하지 않고 저장하는 가장 간단한 방법으로는 개인 컴퓨터 메모장에 저장해두는 것입니다. 귀찮아서 그런 경우도 있는데 이것 역시 위험한 관리방법입니다. 개인 컴퓨터에 저장하지 않고, 컴퓨터와 분리된 저장 매체인 USB 와 외장 하드를 추천드립니다.

만약 더욱 안전하게 관리하고 싶으시다면 Ledger Nano s 를 구매하여 사용하는 것을 권장드립니다. 이 글에서는 사용방법에 대해서 다루지 않겠습니다. Ledger Nano S의 EOS 지갑 등록방법은 Ledger Nano S의 EOS 지갑 등록하기(계정보유자) 에 설명이 잘되어 있으니 참고해보시면 좋을 것 같습니다. (@kairostoday 님 좋은 안내 감사드립니다)

마지막으로 키를 분실해서는 안 되니 외부 저장 매체를 2~3곳에 저장해두시길 권장드립니다. 저장 매체가 고장나거나 분실할 경우, 나머지 다른 저장매체에서 키 쌍을 저장했기 때문에 되찾을 수 있습니다. 그런데 이런 경우, 다른 누군가 저장매체를 습득할 위험이 있기 때문에 key를 바꾸어 사용해야 합니다.

2) Owner Key, Active Key 바꾸기: Key 의 분리

( a ) 키쌍(key pairs) 이란?

앞서 설명해 드렸다시피, 키 쌍은 공개키와 개인키의 쌍 이라고 했습니다. 그렇다면 공개키와 개인키는 정확한 의미는 무엇일까요? 아래의 이미지를 참고하시겠습니다.

  • 공개키(public key): 데이터를 암호화(encryption)하는 키. 거래를 직접 만들고 제어할 수 없지만 거래의 진위를 검증할 수는 있습니다.

  • 개인키(private key): 데이터를 복호화(decryption)하는 키. 자신이 직접 거래를 만들고 제어할 수 있습니다.

하지만 이 개념이 어렵고 투자와 계정관리가 주 관심사라면, "공개키=자물쇠" 그리고 "개인키=열쇠" 정도로만 이해하고 가셔도 무방합니다.

( b ) 키의 생성

우선 EOS 블록체인상의 키 쌍을 이해하려면 비트코인의 키의 생성과정에 대한 간단한 이해가 필요합니다.

위의 그림을 보시면 개인키를 '타원곡선 암호법(Elliptic Curve Multiplication)' 을 이용해 공개키를 만들고, 이 공개키를 '해시함수(Hash Function)' 통해 주소를 만듭니다.

이해하시기 어렵다고요? 아래의 2가지만 이해하면 됩니다.

  • 개인키 ↔ 공개키(혹은 공개키 ↔ 주소)는 1:1 매칭이다.
  • 개인키로 공개키(혹은 공개키로 주소)를 알 수 있지만, 반대는 안 된다.

EOS 블록체인도 암호화 과정은 다르지만, 위의 2가지 개념은 다르지 않습니다.

( c ) 왜 Owner Key, Active Key 를 따로 만들어야 할까?

저번 포스팅에서 12자리 이오스 계정에 Owner Key와 Active Key가 따로 존재한다는 것을 설명했습니다. 아래의 그림은 Owner Key와 Active Key를 나타낸 그림입니다.

EOS 플랫폼에서 EOS 송금도 하고, staking도 하고 계약을 승인하는 등 transaction을 진행하는 데에 필요한 권한을 Active, Owner key 둘 다 갖습니다. 그러나 Active Key는 키를 변경할 권한이 없으며, 오직 Owner Key 만이 변경할 권한을 갖고 있습니다.
초기의 계정을 생성했을 때, 키 쌍A (공개키A+개인키A)를 받았다고 가정합시다. 초기 EOS 계정의 Owner Key와 Active Key는 같은 것을 확인할 수 있습니다. www.bloks.io에서 본인의 EOS 12자리 계정을 검색하시고 'permission'을 확장하면 아래와 같이 Owner Key와 Active Key 둘 다 공개키A 를 사용하는 것을 확인할 수 있습니다.

Scatter Desktop을 통해서도 저장해놓은 개인키A 가 Active와 Owner key를 제어하고 있는 것을 확인할 수 있습니다.

그렇다면 Owner Key, Active Key를 따로 만드는 이유는 무엇일까요? 그것은 계정이 해킹되는 최악의 상황을 대비하기 위해서입니다. 만약 해커가 계정의 개인 키를 알아냈다면 EOS를 unstaking 하고 해커 자신의 거래소 계정으로 보내는 것과 같은 행동을 할 것입니다. EOS unstake 되어있는 경우 속수무책 당하겠지만, stake 되어있는 경우 refund 되기까지의 72시간의 대응시간이 있습니다.

만약 Owner Key와 Active Key가 다르다면, 이미 노출된 Active Key를 버리고 새로운 Active Key를 발급받아서 해커의 추가 행동을 차단할 수 있습니다. 그러기에 key를 따로 관리하는 것이 계정을 더욱 안전하게 관리하는 것이라고 할 수 있습니다.

( d ) Owner Key, Active Key 분리방법

i) 새로운 키쌍을 받자

Owner key를 이용하여 Active Key 변경 과정에 대해 설명하겠습니다. 현재는 Owner와 Active key 둘 다 기존의 키 쌍 A를 쓰고 있다고 가정합시다. 우선 바꾸고 싶은 Active Key 키 쌍을 구해야 합니다.

EOS Key Generator에서 "Generate EOS Key"를 클릭하시면 아래 그림과 같이 키 쌍 B가 생성이 됩니다.

바로 이 키 쌍 B를 Active Key 의 key 로 바꿀 것입니다.

ii) 새로받은 키쌍으로 Active Key 를 변경하자

그렇다면 bloks.io/wallet에서 Key 권한(permission)을 바꿔보겠습니다. Scatter로 Owner Key 로 로그인합니다. 그리고 권한을 바꿔야 하니까 change permission 을 들어갑니다.

아래의 그림에 표시된 New Active Key에 공개키B 를 입력하고 Change Permission을 클릭합니다. 그리고 Scatter의 계약내역을 반드시 확인 후 체크 표시를 합니다.

제대로 진행이 되었다면 아래와 같이 Owner Key와 Active Key가 다른 것을 확인 할 수 있습니다.

위와 같이 Active Key가 공개키B 를 사용하고 있는 것을 확인할 수 있습니다.

iii) Scatter 에 Owner Key 를 지우고 Active Key 만 쓰자

Scatter에 현재 저장된 키 쌍은 키 쌍 A입니다. 키 쌍 A는 Owner Key, 키 쌍 B는 Active Key로 바꾸었으므로 Scatter를 refresh 하면 아래와 같이 Owner만 제어하는 것이보일 것입니다.

Scatter에 Owner Key 대신에 Active Key만 저장해서 사용하고 싶으므로, 우선 Owner Key를 Scatter Vault에서 제거합니다. 그리고 앞서 Scatter에 새 EOS 계정을 등록하듯이 키 쌍 B 를 등록합니다. 정상적으로 등록이 되었다면 Scatter에는 Active Key만 가지고 있게 됩니다.

3) EOS 커뮤니티 이용: 비상조치

현재 블록체인의 특성상 해킹사고 시 뾰족한 해결책이 없는 것이 사실입니다. 특히 key 분실 시 key를 복구할 방법이 나오지 않았습니다. 하지만, EOS 커뮤니티에는 EOS 해킹사고 시에 피해자를 구제할지와 해커의 부당한 경제적 이익을 막기 위한 동결조치의 방법에 대한 다양한 논의가 이루어지고 있습니다.

EOS 커뮤니티에서 ECAF (EOS Core Arbitration Forum) 라는 용어를 들어보셨을 겁니다. EOS 와 관련된 분쟁 중재자 기구인데 현재 ECAF 가 어느 권한을 갖게 될지 정해지지 않았습니다. 심지어는 ECAF 의 존재, 이름조차도 확정되지 않은 상태입니다. 이 이슈는 EOS 헌법 개정과 연관이 많은데, 기회가 된다면 EOS referendum (EOS 국민투표) 가 가까워질 때쯤 헌법 관련 이슈를 정리해서 포스팅하도록 하겠습니다.

저는 개인적으로 ECAF 를 이용해보지 않아서 이 글에서는 자세한 설명해 드리지는 않겠습니다.하지만 EOS 한국 BP인 AcroEOS 에서 자세히 설명된 ECAF 관련 교육 자료가 있어서 공유해 드립니다.

[AcroEOS] ECAF와 클레임 접수 방법 알아보기에서 ECAF 접수 방법에 대한 세세한 안내가 되어있으니, 해킹 사고 시 읽어보시면서 사건을 접수하시면 됩니다. 유의할 점은 해커의 계정동결을 위해서 ECAF 가 즉시 계정동결을 하는 것이 아니라 ECAF 의 사건 보고를 확인받고, 15/21곳 이상의 main BP의 승인이 완료되어야 계정동결이 된다는 것입니다.

4) 결론

이번 포스팅에는 크게 키 관리법, 키의 분리 그리고 보안사고(해킹, 키분실)가 일어났을 때 조치방법에 대해 다루어 봤습니다. 많은 EOS 홀더들이 이 포스팅을 참고하고 개인계정을 친숙하게 다룰 수 있게 되었으면 좋겠습니다.

다음 포스팅은 EOS의 3대 자원: CPU, NET, RAM 을 다루겠습니다.

긴 글 읽어주셔서 감사합니다.
여러분의 팔로우+업보팅+리스팀은 저에게 힘이 됩니다.


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

jjm.jpeg
짱짱맨 호출에 응답하여 보팅하였습니다.

짱짱맨은 저자응원 프로그램입니다. 더 많은 저자 분들에게 더 큰 혜택을 드리고자 스파임대 스폰서를 받고 있습니다. 스폰서 참여방법과 짱짱맨 프로그램에 관해서는 이 글을 읽어 주세요. 기업형 예비증인 북이오(@bukio)가 짱짱맨 프로그램을 운영하고 있습니다. 여러분의 증인 보팅은 큰 힘이 됩니다. Vote for @bukio

디클릭 + 보팅 투척하고 갑니다~
좋은 하루 되세요

감사합니다~ 맛점하세요

이오스와 스팀이 합병하면 소원이 없겠네요~ ㅋㅋㅋ

스팀이 EOS 댑으로 올려지면 파급력이 굉장히 클것 같은데 ㅎㅎ 스팀 2.0 상황이 어떻게 되고 있는지 눈여겨 봐야겠어요..

보팅+디클 응원왔습니다. ~~
즐거운 주말 하세용~~

감사합니다. 좋은하루 보내세요~

디클릭 클릭 함께 응원합니당~!
행복한 화욜 보내셔용~^^

Posted using Partiko Android

감사합니다. 오늘 하루 잘보내세요~

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 63897.91
ETH 3131.06
USDT 1.00
SBD 3.87