정부 공인인증서 VS 암호화폐 개인키 (과연, 승자는? 이 아니라 쉽게 이해하기 ㅎㅎ)

Words
1137
Reading
6 min
Listen
Play
9y

포네그리.png

안녕하세요 yellowboy1010@yellowboy1010 입니다.

여러분 암호화폐 개인키 보관 때문에 많이 혼란스러우시죠? (홈쇼핑 아닙니다.) 음... 그래서 우리가 개인키가 왜이렇게 복잡한 것인지 이해하는 시간을 가져보려고 합니다. 오늘은 정부 이야기를 하지만 절대 흥분을 하지 않겠습니다. 왜냐하면 제가 내일 해외 여행을 가기 때문입니다. 화가 치밀어 오를 때면 잠시 바깥으로 나가 바람좀 쐬고 들어와 글을 쓰려고합니다. ㅎㅎ

암호화폐 개인키는 공인인증서와 비교를 할 수가 있는데요. 공인인증서는 내보내기도 되고 잃어버리면 찾을 수 있는데 왜 암호화폐 개인키는 안 되느냐... 왜 암호화폐는 개인키 잃어버리면 내 자산을 다 잃어버리는 거냐... 이렇게 생각하실 수 있으십니다. (왠지 고객님 해야할 것 같은 이 말투 ㅎㅎ)

오늘 제가 최대한 쉽게 설명하기 위해 노력을 할테니 차근차근 따라와 주셨으면 좋겠고, 이 글을 읽으시고 개인키의 소중함을 깨달으시는 계기가 되었으면 좋겠습니다.

그럼 출발 !!!

(1)PKI 기술 이란?? (사실 몰라도 됨)

공인인증서든 블록체인에서의 개인키든 PKI 기술을 이용합니다. 이 기술은 매우 오래된 기술이므로 새로운 것은 없습니다. 단지 PKI에서 이용하는 여러 알고리즘 중 선택을 하는 것입니다. 그러니 PKI 기술이 고도화 됐다고 하는 플랫폼은 사기라고 보시면 됩니다.

자자, 어려운 용어는 쓰지 맙시다. 여러분 수학 좋아하시나요 ? ㅎㅎ(여기서 벌써 반 나가시고 ...ㅎㅎ )

y = x + 333
(여기서 x가 개인키 y가 공개키)

이 정도는 아시겠죠? 사실 개인키는 어려운 것이 아니라 특정 문자열로 이루어져있습니다. 103948127421357 이런 식으로 문자열로 되어 있는 것이 개인키인 것이죠. 그리고 공개키는 개인키로 부터 나오는데, 특정 함수에 의해 형성됩니다. RSA, ECC 알고리즘이라는 것이 개인키로부터 공개키가 생성되는 함수이죠.

저 위의 수식을 봐주세요. (함수는 꼴도 보기 싫다고요? 그럼 절봐서라도 한번만... 더 꼴도 보기싫다고요 ? ㅎㅎㅎ)

개인키 x는 랜덤하게 형성이 됩니다. 그래서 아무도 알 수 없는 것입니다. 자, 이제 개인키 x를 123이라고 해봅시다. 그럼 123 + 333 은 ??? 456이죠. 그럼 공개키는 456입니다.

개인키는 자기 자신만이 알수 있죠 ? 123이란 숫자를 가지고 항상 일정한 456이란 값이 나옵니다. 하지만 456이 나온다고 해서 123을 유추할 수는 없습니다. 저 위의 함수는 너무쉽지만 실제로는 아주 복잡합니다. 막 휘황찬란한 곡선이 나오고 막 무협지 같은데 여기선 다루지 않겠습니다. (사실 저는 알고 있음 ㅎㅎㅎ ) 이런 역산이 불가능하다는 특성을 이용한 것이 PKI 기술입니다.

개인키와 공개키는 재밌는 관계를 가집니다. 개인키로 암호화하는 것을 공개키로 풀 수 있고요. 공개키로 암호화하면 개인키로 풀 수가 있습니다. 만약 9라는 숫자를 개인키로 암호화 하면요. 123(9)가 되겠죠? 이걸 456으로 풀면 9라는 숫자가 나옵니다. 반대로 공개키로 암호화하면 456(9)가 되겠죠? 이걸 개인키 123으로 풀면 9가 나옵니다.

그래서 어떤 상황이냐에 따라 암호화 방식이 달라지는 거죠.

만약 A라는 사람이 자기 자신임을 증명해야 한다면 개인키를 활용한 암호화 (전자서명)을 하면 되고요, 특정 문서를 A라는 사람에게만 보이고자 할 때에는 A의 공개키를 활용하여 암호화하면 A의 개인키로밖에 풀 수가 없습니다.

(2)공인인증서와 암호화폐 개인키의 공통점

공인인증서와 암호화폐 개인키의 용도는 자기 자신을 증명하는 것입니다. 공인인증서는 국가 금융 서비스나 다른 증명서 발급을 위해 자기 자신을 증명해야할 때 사용합니다. 암호화폐는 특정 자산의 소유주가 맞는 지 여부를 확인할 때 쓰입니다. 역시나 자기 자신을 증명하는 데 사용하게 되죠.

복잡한 거 생략하고 쉽게 얘기하면요. 제가 1000원이 있다는 것을 증명한다고 할 때

1000원- 자산 정보 , 123(1000원) - 자산정보를 개인키로 암호화, 456- 공개키

이 세 데이터를 증명하기 위해 선생님에게 보낸다고 합시다. 선생님은 1000원을 봅니다. 그리고 456이란 공개키를 활용하여 암호화된 데이터를 열어봅니다. 똑같이 1000원이 나오면, 제가 가진 1000원이라는 것을 알게 됩니다.

반대의 상황으로 보죠.

선생님이 제자를 사랑하게 됐습니다. (아, 일본 영화를 너무 많이 봄) 그래서 교실 안에 I love you 라는 메시지를 금고 안에 넣어두고 고백을 하려합니다. (미친거죠 ㅎㅎ 이럴 일 없음) 이 때 저만 보게 하려면 어떻게 한다고요 ? 위에 보낸 456이란 공개키로 I love you를 잠그면(456(I love you)) 제가 가진 123 열쇠로만 열 수 있습니다.

(3)제일 중요한 것은 개인키

이렇듯 사이버 세상에서는 개인키가 곧 자기 자신을 증명하는 수단입니다. (근데 갑자기 생각난 건데 사이버 가수 아담은 지금 뭐하고 있으려나 ??? ㅎㅎ) 이 개인키를 보관하는 것이 핵심인 것이죠. 개인키는 위에서 보듯 문자열이기 때문에 탈취가 어렵지 않습니다. 그래서 전자서명을 할 때에도 개인키가 노출이 되면 안됩니다. 노출이 되는 순간 사이버 세상에 있는 소매치기들이 그 문자열을 갖고 자기처럼 행세할 수 있는 겁니다.

(4)공인인증서와 암호화폐 개인키 생성의 차이

지금부터는 공인인증서 체계에 대해 알아봅시다.

공인인증서.jpg

짜잔!!! 이 복잡하고 재수없는 그림은 역시나 국가 공인인증 체계에 대한 그림입니다. 다른 것 다 보지마십쇼. 주체만 봅시다.

  1. 나 2. 은행 3. 정부

이렇게 되는 것입니다. 그럼 '나'라는 사람이 은행가서 제 얼굴보여주고 인증을 하잖아요? 그럼 은행은 제 정보를 보관하고요, 정부에 인증서 생성을 요청합니다. 그럼 정부의 전자서명이 담긴 인증서를 보내줍니다.

공인인증서 검증.jpg

짜잔. 검증을 할 때도 정부에게 꼬박꼬박 물어봐야 합니다. 이래서 공인인증서가 비용이 많이 든다는 것입니다.

공인인증서 같은 경우는 정부가 발행을 해주는 것이기 때문에, 잃어버릴 경우 정지 시킬 수 있고, 재발급받을 수 있습니다. 왜냐하면 제 정보를 갖고 있으니까요. 이미 대면으로 확인한 정보를 갖고 있기 때문에, 인증서 자체를 폐기 시킬 수가 있습니다. 내보내기도 쉽죠. A은행에서 발급받은 공인인증서 B은행에 쓴다고 했을 때, B 은행이 정부에 물어보면 됩니다.

자, 이제 암호화폐 개인키 생성에 대해 알아봅시다.

블록체인은 중앙 기관이 없습니다. 어디에도 제 정보가 없죠. 지갑 생성요청을 할 때 pc나 모바일에서 직접 개인키를 생성합니다. 이 개인키는 특정 서버를 거치지 않기 때문에, 어디서든 유추할 수 있는 값이 없습니다. 위에 언급했듯이 개인키는 랜덤 숫자이기 때문입니다. 대신, 어떤 서비스에 이메일 같은 걸 등록해놓는다! 그럼 이걸 기반으로 찾게 되는 것입니다.

우리가 개인키를 잘 잃어버리기 때문에 지갑에서 제공하는 서비스가 'SEED' 입니다.

이 SEED는 랜덤하게 형성되는 개인키를 유추할 수 있도록 해줍니다.

WOO JI HAN DOG GOTTEN NOM

이 아름다운 문자열 6개가 있다고 가정해봅시다. 저 특정 문자열을 넣으면 아까 생성된 개인키 123이 나옵니다. 이 것도 특정 알고리즘을 쓰는 것입니다. 개인키는 노출이 안 되면서 저 문자열만 오프라인에 잘 보관해 놓으면 됩니다.

그럼 저 문자열이 노출되면 어쩌냐?

그럼 개인키 노출되는 거죠. ㅎㅎ 그래서 핀코드 설정을 해놔라 이러면서 점점 산으로 가게 되는 것입니다. 보안의 보안의 보안 ...

(5)개인키 보관 어쩌냐 ?

모든 것이 이 개인키에 달렸기 때문에, 이걸 보호하는 것이 중요합니다. 모바일에는 SE(Security Element) 영역이 있긴 한데요. 여기는 개인키가 들어가면 나오지 않습니다. 만약 자산 증명을 해야 한다면 안에서 전자서명이 이루어지고 결과값만 나오게 됩니다. (하지만 이마저도 해킹의 위험이 있습니다. )

PC는 이 SE 영역이 없습니다. 그래서 집에 NPKI 폴더 있죠? 그거 집에 놀러온 친구가 컴터에 있는 야동 훔치면서 NPKI 가져가버리면 그냥 인증서 가져가는 겁니다. ㅎㅎ 물론 비밀번호가 복잡해서 쓰긴 어렵겠지만요.

우리가 공인인증서 쓰기 위해서는 각종 보안 3종세트 (키보드 보안, 웹 보안 뭐 어쩌고 ) 깔잖아요? 다 개인키 노출 안되게 보호해주는 역할을 하는 것입니다. (그래도 쓰기 싫음)

블록체인이라고 해서 이 개인키 보관 이슈가 해결된 것이 아닙니다. 그래서 USB에 담아라 하드웨어 지갑을 사라 이렇게 강조하는 것이고, 개인키 잃어버리면 찾기가 힘들다는 것이 다 위에 언급된 이유들 때문입니다. 이게 그냥 잔소리 하는 것이 아닙니다. 중앙 기관이 없다는 것이 엄청 무서운 것이죠. 그래서 지갑 함부로 생성하고 거기에 1억 2억 담아두면 안 되는 겁니다.

온라인에 연결되어 있으면 무조건 해킹에 노출되어 있다고보시면 됩니다. 가장 안전한 것은 온라인 연결을 하지 않는 것입니다. 콜드월렛에 보관하는 것이죠. 편리하자고 쓰는 건데 오프라인에서도 귀찮게 구냐고 하실 지 모르겠습니다. 그런데 어쩌겠습니까 세상엔 저같이 착한 사람만 있는 것이 아니라 도둑놈들 천지인 것을... 그리고 이걸 아직 해결 못했다는 것을... 절이 싫으면 중이 떠나야 하지 않겠습니까 ㅜㅜ

오늘도 정말 꿀팁 드리지 않았나요 ?ㅎㅎ

제가 또 인증 관련된 비즈니스를 하면서 공인인증서를 파고 또 파고 계속 파서 거의 해저 동굴마냥 팠기 때문에, 드릴 수 있는 말씀! 사실 더 거대한 것들이 있긴 한데, 여기서 다 쓰다보면 논문이 되니까 오늘은 여기까지만 ㅎㅎ

제가 내일 부터 금욜까지 해외 여행을 갑니다! (미친듯이 일하고 놀 땐 미친듯이 놀아야죠.)
포스팅을 못 할 수도 있는데, 저 보고 싶다고 울진 마시고,

정말 보고 싶으시면 블록킹을 꼭 들어주세요!! ㅎㅎ

그럼 좋은 하루 되세요 ^^

정부 공인인증서 VS 암호화폐 개인키 (과연, 승자는? 이 아니라 쉽게 이해하기 ㅎㅎ) | Ecency