티스토리 뷰

거래소나 업체에서 제공하는 지갑을 사용하지 않고 개인이 직접 파이썬을 이용해 비트코인 지갑을 만들거나 출금을 해보는 것은 날 것 그대로의 비트코인을 그대로 느껴보는 특별한 경험이 된다. 이것이야 말로 비트코인의 철학 그대로 내 자산의 소유권을 내가 완전히 통제하는 것일 수 있다.

하지만 개인이 직접 자신의 자산을 핸들링하는 만큼 해킹이나 분실사고에 특별한 주의가 필요할 것이다. 분실사고는 일반적인 상식선에서 개인이 대비할 수 있지만, SW전문가가 아닌 일반인들에게 해킹 위험은 어떻게 대비해야 하는 지가 많이 궁금할 것 같다.

필자가 보안전문가는 아니지만, SW개발자로서 보안/해킹 사고에 대비해 본 경험이 있기 때문에 개인적인 경험에 비추어 개인이 파이썬으로 비트코인을 핸들링함에 있어 보안적으로 취약할 수 있는 부분을 정리하고 공유하는 것은 의미가 있을 것 같다.

일반적으로 비트코인 주소를 생성하는 작업은 순전히 오프라인에서 수행할 수 있기 때문에 상당부분 안전하다고 할 수 있다. 그럼에도 불구하고 문제가 될 수 있는 여지가 있을까.

아마도 두가지 문제되는 상황이 있을 수 있을 것 같다. 하나는 주소생성 작업을 하는 중인데 뒤에서 누군가 모니터를 훔쳐 보는 경우가 있을 것이다. 이런 경우는 사실 누구나 예상할 수 있는 부분이기에 따로 더 자세히 다루지는 않겠다. 다른 한가지 경우는 거의 일어날 수 없는 일이긴 하지만, 사용하는 파이썬 비트코인 라이브러리 자체가 해킹당했을 위험이 있을 수 있겠다. 비트코인 라이브러리도 누군가가 만들어서 제공을 하는 것이기 때문에, 라이브러리 개발자가(혹은 개발자 계정이 해킹을 당해서) 해당 라이브러리에 이상한 코드들을 몰래 숨겨놓고 배포를 한다면 해당 라이브러리를 이용할 때 비밀키를 해킹당할 수 있다.

예를 들자면 아래와 같은 시나리오가 가능하다.
무작위로 선택한 비밀키를 이용해 공개키를 생성하는 함수 privtopub 함수가 해킹을 당했다고 치자. 그렇다면 오프라인 상황에서라도 아래와 같은 공격 시나리오가 있을 수 있다.

1. privtopub 수행시 내부적으로 비밀키를 로컬 파일시스템 특정경로에 저장한다.
2. 이후 사용자가 PC를 온라인에 연결한다.
3. 사용자가 어떤 이유로 privtopub 함수를 호출한다.
4. 해당 함수가 수행될 때 얼마 전 저장했던 비밀키를 해당 파일경로에서 로드하여 해커에게 전송한다.

하지만 비트코인 라이브러리도 비트코인처럼 소스코드가 공개되어있기 때문에 위와 같은 일이 발생하기란 매우 어렵다. 하지만 불가능한 것은 아니라 할 수 있다. 하지만 비트코인 주소 생성 후에 해당 PC를 인터넷에 다시 연결하지 않으면 위와 같은 위험요소는 원천적으로 차단된다.

인터넷에 연결되어 있는 상황이라면 어떨까? 이 경우에는 오프라인 상황보다 훨씬 더 많은 해킹의 위험이 있을 수 있다.

첫번째로 나의 PC가 해커에게 장악되어 있는 상태에서 내가 로컬에서 하는 작업은 모두 해커에게 전달될 수 있다. 하지만 어떤 해커가 임의로 나의 PC를 타겟으로 이런 식의 공격을 하는 경우란 흔치 않을 것이다.

또 다른 경우로는 비대면 화상회의를 하는 경우 나의 화면을 상대와 공유하는 것이 가능한데, 나의 화면이 누군가와 공유되고 있음을 인지하지 못한채 비트코인 주소 생성작을 하는 경우라면 이 또한 비밀키가 유출되는 사고가 있을 수 있겠다.

물론 앞서 얘기했던 해킹된 비트코인 라이브러리를 이용하는 경우는 온라인 상황에서도 여전히 유효하다. 특별히 온라인 상황이라면 해킹이 더욱 간편하다. privtopub 함수 호출시 바로 priv 를 해커에게 전송할 수 있다.

https://bitaddress.org 는 안전할까?
아직까지 보안사고가 있었다는 보고는 없었지만, 웹사이트는 언제든 해커의 공격대상이 될 수 있고 해당 사이트가 해킹될 경우 해킹된 사이트에서 주소를 생성했다면 비밀키가 유출될 수 있다. 인터넷연결을 끊고 주소를 생성했다고 하더라도 오프라인 상황에서는 로컬 파일시스템(localStorage)에 비밀키를 잠시 저장해 두었다가 인터넷에 연결되고 해당 사이트에 접속할 때, 로컬PC에 저장되었던 비밀키를 해커에게 전송하는 것도 가능한 시나리오가 된다.

하지만 사실상 개인이 파이썬으로 비트코인을 다루는 것은 매우 안전한 방법이라고 할 수 있다. 유명한 비트코인 라이브러리는 사용하는 사람들 또한 많으며 공개된 코드이기 때문에 많은 사람들이 관심을 가지고 그 변화를 추적하고 있을 것이다.(내가 그렇게 하는 것은 아니지만) 그렇기 때문에 라이브러리 자체가 해킹되는 일은 거의 발생할 수 없을 것 같다.

그리고 개인의 로컬PC 는 일반적으로 해커들의 타겟 대상이 될 수 없다. 이는 오늘밤 우리집에 갑자기 도둑이 들어올 확률과 비슷하다고 할 수 있겠다.

따라서 결론적으로는 로컬 PC에서 파이썬으로 주소를 생성하고 또 개인지갑에서 출금하는 작업은 업체에서 제공하는 서비스를 이용하는 것보다 훨씬 안전하다!

    •  

 

728x90
반응형
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함