Hardware Wallet 사용하기 4

in #kr7 years ago (edited)

2.7 Ledger의 Settings에 대한 것

유용한 몇가지 Setting에 대해서 설명한다.
(1)Auto lock:
Ledger를 사용하지 않은채 몇분이 지나면, 화면에 Auto lock이 걸리면서,휴면상태에 들어가게 된다.
이때 화면에는"Vires in numeris"라는 문구가 흐르게 된다(참고로," Vires in numeris"는 "We believe in mathmatics"라는 뜻이다). 이때,두Button을 동시에 누르면,Ledger가 깨어 나면서 PIN code의 입력을 요구할 것이다. 이것이 귀찮을 수가 있는데, Auto lock의 시간을 더 길게 조정하거나 아예 Off로 할 수 있다.
Settings > Security > Auto-lock에서 조정할 수 있다.
(2)Change PIN:
PIN code를 바꾸고 싶다면, Settings > Security > Change PIN, 에서 변경하면 된다.
(3)Firmware version의 확인:
Settings > Device > Firmware 에 가면,Device에 설치된 Firmware의 Software version number를 볼 수 있다.
현재 최신Version은 1.3.1이다.
(4)Reset All:
Ledger를 공장초기화 하고자 할 때 Reset All을 하면 된다. 단, Settings를 제외한 모든 Device App들도 모두 지워지는 것에 유의 할 것. Settings > Device > Reset all 에서 수행 하면 된다.
참고사항: PIN code를 3회 잘못 입력하면 Device가 초기화 되면서,Random Seed가 (따라서 모든 Private key정보들도) 지워지는데, 이 경우에는 Device용 App들은 그대로 남아 있게 된다.

2.8 Ethereum의 Token 거래

Ethereum Blockchain은 Ether라는 가상화폐(기호: ETH)를 기본으로 갖고 있지만,smart contract에 의해서,token이라 부르는 digital asset을 발행하고 유통시키는 것도 가능하다. Token이 가상화폐와 다른 점은,mining되는 것이 아니라,어떤 개인이나 단체가,모종의 business project를 위해서,일정량을 발권하여 유통시킨다는 점이다. 즉,주식이나 채권 같은 유가증권에 가까운 개념이다. 특히 ERC20이라 부르는 규약에 의해 발권되는 것들을 ERC20 Token이라 한다.
Token이 뭔지 개념이 잘 잡히지 않는다면,Google에서 "Golem project"를 검색해 보라.
ERC20 Token은 Ethereum Address로 보내고 받고 할 수 있기 때문에 별도의 Wallet이 필요 없다.
자신의 Ethereum Address로 누군가가 Token을 보냈다면,ethplorer.io에서 검색을 하면 확인 할 수 있다. Ledger는 ERC20 Token의 거래를 처리할 수 있지만,앞서 설명한 바 있는 Chrome용 확장Program인 "Ledger Wallet Ethereum"을 써서는 않되고, "Web based wallet" service인 "MyEtherWallet"을 이용해야 한다.

2.8.1 Ledger가 지원하는 ERC20 Token 종류:

Ledger가 지원하는 모든 가상화폐와 ERC20 Token에 대한 것은 다음 링크를 참조 하라.
Supported Altcoins and Tokens

2.8.2 "MyEtherWallet"을 이용하기

MyEtherWallet은 web server가 wallet의 역할을 해주는 on-line방식의 wallet이다. 이러한 wallet을 web based wallet이라 한다. 이 service는 Ether뿐만 아니라 ERC20 Token의 거래도 취급한다. 다음 수순으로 이용하면 된다.

(1)Ledger Setting 변경:
이 web server기반의 on-line wallet을 사용하자면,먼저 Ledger device측에서 한가지 setting을 변경해야 한다.
Ethereum >Settings >Browser Support
에 들어간 후, "No"로 set되어있는 것을 "Yes"로 바꿔 준다.
(주의: 다시 Chrome용 app인 "Ledger Wallet Ethereum"을 사용하자면, 이 setting을 "No"로 해주어야 한다)

(2)Ledger의 Dashboard상태에서,"Ethereum"을 선택 confirm하여 "Ethereum" App을 가동시킨다.
Chrome Browser에서 다음 web site를 연다.
MyEtherWallet

(3)이 web page의 왼쪽에,
"How would you like to access your wallet?"
라는 제목하에 여러가지 option들이 나열되어 있을 것이다. 그 중에 "Ledger Wallet"이 있는 것이 보일 것이다. (불행히도 "Keepkey"는 아직 이 List속에는 없다!) "Ledger Wallet"을 Check해 주면, 우측에 안내설명과 함께, "Connect to Ledger Wallet"라는 푸른 Button이 나타날 것이다. 이 Button을 클릭한다.

(4)Fig-7과 같은 Pop up창이 하나 뜰 것이다. Ledger가 현재 사용중인 Ethereum Address들의 List가 보일 것이다. 그 List중에서 거래에 사용할 Address를 하나 지정해야 한다. 원하는 Address를 체크한 후, 우하측에 있는"Unlock your wallet" Button을 클릭한다.
Unlock-you-wallet.png
(5)Fig-8과 같은 거래화면이 나올 것이다.
내 Address는 a에 나타나 있다. Address좌측의 묘한 무늬가 있는 원(b)은 내address의 QR code이다.
이 Address의 거래history를 보자면 c를 클릭하고, Token의 잔고 및 거래이력을 보자면 d 를 클릭한다.
(물론,잔고와 거래이력을 조사하는 것은,Address만 알면 Ledger와는 관계없이,이 Explorer에서 수행할 수있다)
Fig-8-Final.png

(6)Ether를 send할 때는,Address와 Amount를 입력후, 아랫쪽의 "Generate Transaction(거래서 작성)"을 클릭한 후 Ledger의
display쪽을 보아야 한다. 이 때,Ledger의 display는 "자신이 전달 받은 대로의" 거래내용(recipient address,amount,Tx fee)을 보여 주면서 승인을 할지 말지(즉 거래서에 Sign을 할지 말지)를 물어올 것이다. 송금액이 큰 경우라면,반드시 그 내용을 꼼꼼히 재확인할 필요가 있다! (PC에 잠복한 malware가 recipient address를 슬쩍 바꿀 수도 있지 않겠는가?)
Ledger의 우측 Button을 눌러 confirm해 주면, Ledger는 거래서 내용에 대응하는 signature를 생성하여,거래서에
덧붙인 다음,그것을 web server측에 되돌려 준다. 이 대목이 hardware wallet의 안전성이 돋보이는 과정이다. Signature란 약 70Byte정도의 data인데,Private key정보를 알고 있는 Ledger만이 Signature를 생성할 수 있다.
(심지어, Ledger의 주인인 사용자 조차 결코 Private key를 볼 수 있는 방법은 없다!)
그리고,일단 signature가 덧붙은 거래서는 위변조가 불가능하게 된다.
Sign을 획득한 web server는 Fig-8의 e와 같은 화면을 추가로 전시할 것이다.
"Send Transaction"이라는 Button을 클릭하면, 조그만
pop up창이 떠서,마지막으로 한번 더 최종 의사를 물을 것이다.

(7)Token을 send할 때는 먼저 해야 할 일이 있다. Fig-8의 f "Load Token Balances"라는 Button을 클릭하여,이 Address가 보유하고 있는 Token들에 대한 data들을 Blockchain에서 먼저 읽어 와야만 한다. 약간의 시간이 지나면,Token들의 Balance가 그위에 전시될 것이다.이제는 Token들을 send할 준비가 된 것이다. Send의 요령은 위의 (6)과 거의 같다. 다른 점은, Amount입력난의 우측Drop down menu(Fig-8의 g)를 클릭하여, 그 Token에 맞는 금액 단위를 선택해 주어야 한다는 점이다(예를 들면 Augur라는 Token은 REP이라는 단위를 쓴다).

2.9 "Fido U2F"App의 용도와 사용법

Ledger의Dashboard에는 "Fido U2F"라는 App이 설치되어 있을 것이다. (만약 없다면,Ledger manager에서 설치하면 된다)
이 App은 Ledger Nano S를 "보안키(Security key)"처럼 쓸 수 있게 해주는 App이다.
"보안키"란 2FA(2단계 인증방식)를 편하게 해주는,USB Memory 같이 생긴,hardware이다.
2FA,즉 2 Factor Authentification,가 무엇인지를 잘 모르는 사람들이 상당히 있기에,이런 사람들을 위해서, 차근 차근 자세히 설명하도록 하겠다.

2.9.1 "2FA"란 무엇인가?

가령,Google의 자기 계정에 들어가기 위해서, 과거에는 Id와 password만을 사용해 왔는데,여러 이유로 이 정보가 노출되거나 도난 당하여 큰 피해를 보는 경우가 종종 발생하고 있다. Spyware,malware,악성virus,전자적인 도청등 Hacker들은 온갖 수단/방법을 동원하여 빈틈을 노리고 있다.
그 대책으로써,가령 Login할 때 id와 password에 의한 1단계에 추가하여, 제2의 본인 인증 단계를 두는 것을, 2FA방식이라고 한다. 우리말로는 "2중 인증방식" 또는 "2단계 인증방식"이라고 말하고 있다.

2.9.2 많이 사용되는 2FA 방식들

현재,보편적으로 가장 많이 사용되는 방식은, 다음 두가지다.
(1) "보안code"방식:
User가 등록한 Smartphone으로 "보안code(4~6자리의 숫자)"메시지를 전송하여 이를 user로 하여금 입력토록 하는 방식. 휴대폰을 이용하는 대표적인 방식이다. 대부분의 경우,겪어 본 경험이 있을 것이다.
(2)Google Authenticator방식:
Smartphone을 이용한다는 점은 위(1)과 같으나, Smartphone의 통신기능에 의존하지 않는다.
Phone에 설치한 App에 의해서 인증이 이루어 진다.
인증 과정에,Web site와 smartphone간의 통신이 불요하므로,보안 측면에서 훨씬 안전하고,통신이 않되는 지역에서도 쓸 수 있다는 추가적인 장점이 있다. Google의 "Play스토어"에서, "Google OTP"라는 앱을 설치하고 나서,해당 Web Site에 가서 간단한 설정 과정을 거친후 사용한다.
해당 site에서의 설정과정은 나중에 설명키로 하고,순서를 바꾸어,Google OTP에 의한 2FA인증의 진행과정을 먼저 설명하겠다. 가령 Google 계정에 Login한다면, ID와 Password를 입력하고 나면, 2차로 "Google OTP code"를 입력하라는 안내가 뜨는데,이 때 smartphone의 "Google OTP"앱을 열면,Fig-9의 a 같은 화면일 것이다.
Fig-8-last.png
Google계정의 code인 998053을 입력하면 되는 것이다. 만약, Korbit거래소 계정이었다면 036001을 입력한다. 이 6자리 숫자는 정확히 1분마다 random하게 변하는데,그 변화의 Pattern은 저쪽 Web site와 OTP앱 양자 밖에는 모른다. 양자간에 교신을 할 필요가 전혀 없어,훨씬 안전하다고 보는 것이다.
Google OTP를 설정하는 것은 아주 쉽다. 해당 Web site에 Login한 후, 2FA 인증방식의 여러Option중 Google Authenticator(Google OTP)를 선택하면, QR code하나를 보여줄 것이다. 이 때,Fig-9 a의 우하측에 보인 빨간 "+" Button을 터치하면(+는 새항목을 추가한다는 의미),b와 같이 아랫쪽에 2개의 Option이 나타 나는데, "바코드 스캔"을 선택하는게 편하다. 그러면,Smartphone이 그림 c에서 보듯이 Camera mode로 되는데,이 4각형 윤곽안에 QR code가 잡히도록 하면, "착!"하는 작은 소리와 함께,그림 a 화면으로 되돌아 오는데,그 속에 새로운 항목이 하나 생겨나 있을 것이다. Web site측에서는 통상적으로,QR code아래에,정상 동작을 Check하기 위하여 OTP code 입력난을 두는데,그곳에 OPT code를 입력하여 confirm을 해주면, Google OTP에 의한 2FA가 enabled 상태로 되었다는 Message나 통보가 있을 것이다.

Mobile Banking을 하는 사람들 중에는 은행에서 OTP를 발급받아 써본 사람들이 있을 것이다. 신용카드 처럼 생긴 것도 있고,자동차 smart key같은 모양을 한 것도 있다. 이것을 사용하는 고객들에게는 1회 이체 금액한도를 아주 크게 설정해 주는 혜택을 준다. 한 은행에서 발급받은 OTP를 다른 은행에서도 등록하여 사용할 수 있다. 그것의 작동 원리는 Google OTP와 완전히 같다. 역으로 말하면,Google OTP는 software적으로 구현한 OTP인 것이다. OTP는 원래 "One Time Password"에서 온 용어이다.

2.9.3 보안키(Security key)방식의 2FA

위에서 예로 든 두가지 2FA방식은 일일이 6자리 숫자를 입력해야 하는 번거로움이 있다. 그래서,

  • Touch식 Button을 한번 touch하는 것만으로 간단히인증이 되고
  • Private/Public key방식의 암호체계를 써서,보안을 더욱 강화한,

2FA전용 hardware를 보안키라 한다.
USB memory보다 작은 크기에, 한개의 touch button이 달려있는데,USB port에 꽂아서 사용한다. 해당Site에 등록하는 것도 touch button을 한번 누르는 것으로 끝난다.
그 형상이 궁금하면 다음 링크를 참조할 것.
Yubico

Ledger Nano S의 Dashboard에서 "Fido U2F" App을 선택/confirm을 해주면, display에 "Ready to authenticate"라는 문구가 표시될 것이다. 이제, Ledger는 보안키와 동일하게 작동하게 된다. 단 보안키의 touch button대신 Ledger에서는 우측button이 사용된다.
작동 원리는. . .
보안키는 2FA목적을 위한 Private/Public key pair를 생성하여,
해당Web site에 기기를 등록 할 때,public key를 저쪽에 넘겨준다.
인증 과정은,Web site측에서 random한 byte열을 "문제"로써 보안키에 제시한다.
보안키는 그 random한 byte열에 대응하는 signature를 private key를 써서 구해낸 다음,이를 "답"으로써 제출하는데,
Site측은 public key를 써서 이 signature가 대응하는 private key에 의해 생성된 것임을 확인할 수 있게 되는 것이다.

유념할 사항은 다음이다.

  • 대상 Web site가 Fido U2F 보안키를 2FA에서 지원을 해야 한다. 현재 광범위하게 지원되고 있지는 않다. Fido U2F를 지원하는 Web service는 다음 링크를 참조하라.
    지원되는 Web site

  • 반드시 Chrome Web Browser에서 login해야 작동한다.

Chrome Web Browser로 원하는 site에 들어가서, 설정(settings)tap또는 page로 들어가 잘 찾아 보면 2FA를 설정하는 곳이 있을 것이다. 통상 여러가지 가능한 option중에서 선택하도록 되어 있는데, Fido U2F를 지원하는 site라면 "보안키(security key)"가 option중에 있을 것이다. 보안키를 "새로추가" 하는 Button을 클릭하면, 안내 설명이 뜰 것이다. 이미 Ledger가 Fido U2F 가동상태라면, Ledger의 display에는 "ready to register"가 표시될 것이다. 이때 우측Button을 누르면 Register(기기등록)가 된다.
이후,Login시에는 ID와 password를 입력하여 1단계를 Pass하고 나면, "보안키를 꽂고 Button을 눌러 달라"는 Pop up안내가 뜬다.
(Ledger의 경우, 미리 Ledger를 Fido U2F 로 가동시켜 놓고 있는 것이 편할 것이다)
이 때 Ledger display는 "Login xxx site . . ." 같은 내용을 표시하는데, 우측 Button을 눌러 confirm해주면 2단계인증이 끝난다.
다음 링크는 보안키의 사용법을 설명하는 YouTube지만,Ledger를 사용해도 똑 같은 수순이므로 참고가 될 것이다.
YouTube-사용설명

2.10 Smartphone에 연결해 사용하기

Smartphone용 Bitcoin wallet인 "Mycelium"이라는 앱은 3종의 harware wallet들(Trezor,Keepkey,Ledger)을 지원한다. 우선,Smartphone과 hardware wallet을 서로 연결하기 위해서는 OTG cable 또는 OTG adapter가 필요하다. 이 Adapter는 휴대폰을 USB memory와 연결하고 싶을 때도 사용할 수 있는데, 시중에서 쉽게 구할 수 있다.
이 Mycelium을 Ledger Nano S와 연결해서 사용하는 예를 설명하겠다(Keepkey나 Trezor의 사용법도 거의 같다).

Fig10-02.png

Mycelium의 기본화면의 최상단을 보면 열쇄 모양의 icon이(Fig-10의 a) 보인다. 이 icon은 새Account를 생성하기 위한 button이다. 이것을 touch하면 b와 같은 화면이 되는데, 새Account를 생성하기 위한 여러가지 Option들이 나오는데,맨 아래의 "Advanced"를 누른다. 이어서 나오는 화면c에서,
"Import a Ledger HD Account"밑의 "Ledger"라는 button을 누른다.
(여기에는, Trezor및 Keepkey용의 button도 있음을 볼 수 있을 것이다)
그러면,화면 d가 나오는데, Ledger를 휴대폰에 연결해 달라는 안내인 것이다. OTG adapter를 써서 Ledger Nano S를 휴대폰 충전port에 연결한다.
Ledger에서, PIN code를 입력한 후 나오는 Dashboard화면에서 "Bitcoin"을 선택및 confirm해준다(Mycelium은 원래 bitcoin wallet이므로).
Ledger와 Mycelium간의 교신이 시작될 것이다. 좀 있으면,화면 e와 같이 Ledger가 사용중인 bitcoin용 account들의 List가 전시될 것이다.
이중에서, 한개의 account만이 Import될 수 있다. Import하기를 원하는 account를 touch해 주면, 해당 account내의 address들의 정보가 Mycelium에 전달될 것이다. 이어서, Import할 account에 부여할 명칭을 지정하는 절차가 있은 후에, Mycelium의 기본화면에는 f 와 같이 새로운 Account가 생성되어 있을 것이다. 이 account명의 좌측에는 Ledger의 logo가 표시 된다.
(참고: 그 바로 위에는 Keepkey에서 Import한 account도 볼 수 있다)
원한다면 이제 Ledger를 휴대폰과 분리해도 상관없다.

여기서의 "Import"의 뜻은 address의 정보를 import하는 것이지,private key정보도 import되는 것은 아니다(어떤 경우든,private key정보는 Ledger를 떠나는 일이 없다!). 이렇게 import를 해 두면,Ledger와의 연결과는 관계없이, 그 account의 balance상태와 거래내용을 항시 휴대폰에서 check할 수 있어 편리하다.

그러나,이 Account에서 자금을 타주소로"Send"할 때는,Ledger와의 연결이 필요하다. Ledger가 거래서에 Sign을 해주어야 하므로.
"Send"과정의 마지막 단계에서, Ledger의 display에 거래내용이 전시되고 승인 여부를 물어올 것이므로,우측button을 눌러 confirm을 하면 비로써 send거래가 집행된다. 이러한 방식이므로,휴대폰에 spyware나 malware가 있더라도 안심하고 아용할 수 있는 것이다.

다음은 관련된 유튜브 동영상 링크이다.
YouTube-Mycelium과 Ledger

2.11 Ledger Nano S 와 Keepkey의 비교

Ledger Nano S는 크기가 아주 작아,열쇄고리에 끼워 편하게 휴대하고 다닐수 있어,타인들의 주목을 받을 일도 없다는 점이 좋다. 또, 취급하는 가상화폐의 종류가 Keepkey보다 다양하고,새로운 가상화폐의 추가도 시장의 수요에 따라 신속하게 대응하고 있는 것 같다. 최근에,발빠르게 Monero/Decred도 새로 포함하게 된다는 소식을 들었다. 또, Fido U2F등 다른 용도로도 쓸수 있는점도 매력이다.
단점은 화면이 작아, Keepkey보다는 사용법이 다소 불편하다는 것과,여러 가상화폐의 account들을 한개의 wallet화면에서 한번에 다 볼 수가 없는점이다.
Keepkey의 장점은 한개의 wallet program내에서,여러 가상화폐들의 account들을 한 화면상에서 보고 처리할수 있는 것과 사용이 편하다는 점이다.

이상.
본 Post로,hardware wallet의 사용이 그다지 어렵지 않다는 것을 알게 되어,널리 사용 되는 계기가 되었으면 한다. 좀 큰 자금을 투자하고 있으면, 가상화폐 거래소의 보안 선전을 100% 믿지 말고,대부분의 자금은 자신의 hardware wallet으로 옮겨서 자신이 관리하기를 권한다.
열쇄고리에 Ledger를 끼워서,전세계 어디라도,아무리 거금이라도,부담없이 다닐 수 있지 않은가? 고장/분실/도난도 걱정할 필요가 없다. 사실은 24words를 머리에 기억해 두고 있다면,hardware wallet을 지참할 필요도 없다. 필요시, 현지에서 Ledger를 사던지 빌리든지 또는 기타 다른 방법이 강구될 수 있다. 당신과 당신의 Bitcoin을 연결하는 것은 "정보",즉 24words,이기 때문에 어느 누구도 손댈 수가 없다. Bitcoin은 개인을 Empowering하고,자유케하는 놀라운 혁신인 것이다!

끝.

Sort:  

자세한 설명 감사합니다^^

좋은 글 감사합니다.

Congratulations @cryptoboy516! You have received a personal award!

1 Year on Steemit
Click on the badge to view your Board of Honor.

Do not miss the last post from @steemitboard!


Participate in the SteemitBoard World Cup Contest!
Collect World Cup badges and win free SBD
Support the Gold Sponsors of the contest: @good-karma and @lukestokes


Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @cryptoboy516! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

The Steem community has lost an epic member! Farewell @woflhart!
SteemitBoard - Witness Update
Do not miss the coming Rocky Mountain Steem Meetup and get a new community badge!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!