소프트웨어 서명 장치
소프트웨어 서명 장치는 앱이나 프로그램으로 개인키를 관리하고 거래에 서명하는 도구입니다. 휴대폰이나 컴퓨터처럼 인터넷에 연결될 수 있는 기기에서 사용하면 키 관리와 서명, 전송을 한 앱에서 처리할 수 있어 준비가 빠르고 편리합니다.
하지만 편리한 만큼 개인키가 인터넷에 연결될 수 있는 기기에 놓인다는 조건을 함께 받아들여야 합니다. 소프트웨어 서명 장치는 자주 사용하는 금액을 관리하는 데 적합합니다. 쓰임새로 보면 일상에서 쓰는 주머니에 가깝습니다.
주머니처럼 사용하는 이유
바지 주머니에 넣고 다니는 지갑에는 며칠 쓸 현금만 넣습니다. 편의점에서 바로 꺼내 쓸 수 있지만, 잃어버릴 수도 있기 때문에 전 재산을 넣고 다니지는 않습니다.
소프트웨어 서명 장치도 비슷합니다. 자주 사용할 금액을 관리하면 편리하지만, 큰 금액이나 오래 보관할 금액은 별도의 보관 방식으로 나누는 편이 좋습니다. 주머니와 금고는 서로를 대신하는 것이 아니라 쓰임에 따라 함께 사용하는 도구입니다.
앱 안에서 키가 사용되는 방식
소프트웨어 서명 장치를 처음 설정하면 복구 문구가 생성되는 경우가 많습니다. 문구의 단어 수와 표시·확인 방식은 서명 장치의 표준과 제품, 설정에 따라 다릅니다. 비트코인 서명 장치에서 널리 쓰이는 BIP39는 복구 문구와 시드 생성 방식을 정한 표준입니다. 엔트로피와 체크섬을 단어로 인코딩하고, 그 문구와 선택적 패스프레이즈로 시드를 파생합니다. 복구 문구가 개인키 하나를 그대로 단어로 바꾼 것은 아닙니다(BIP39).
앱은 파생한 키를 기기 안에서 관리하고, 잠금 기능을 제공할 수 있습니다. 저장 방식과 암호화, 잠금 해제 수단, 복구 문구를 다시 표시할 수 있는지는 앱과 설정에 따라 다릅니다. 따라서 특정 방식이 모든 소프트웨어 서명 장치에 보장된다고 전제해서는 안 됩니다.
보내기를 누르면 앱이 거래를 만들고, 기기 안의 개인키로 그 거래에 서명합니다. 정상적인 서명 과정에서는 개인키 자체를 거래에 첨부하거나 네트워크로 보내지 않습니다. 밖으로 전송되는 것은 서명이 붙은 거래입니다. 다만 악성코드가 키를 훔치거나 사용자가 가짜 앱에 문구를 입력하면 개인키가 유출될 수 있습니다.
온라인 기기에 키를 둘 때의 위험
휴대폰이나 컴퓨터는 인터넷에 연결될 수 있습니다. 악성 앱이 설치되거나 화면을 훔쳐보는 환경이 만들어지면 키와 거래 정보가 위험해질 수 있습니다.
특히 복구 문구를 화면에 표시하거나 입력하는 순간을 조심해야 합니다. 가짜 앱이 진짜 앱의 이름과 아이콘을 흉내 내어 복구 문구를 입력하게 만들 수도 있습니다. 따라서 앱은 공식 배포처에서만 내려받고, 기기 잠금과 최신 업데이트를 유지해야 합니다.
복구 문구는 기기 밖의 종이나 금속에 적어 두는 것이 좋습니다. 문구를 사진으로 찍거나 온라인 저장 공간에 보관하면 온라인 노출 위험이 생깁니다. 큰 금액의 키를 온라인 기기에 오래 두지 않는 것도 중요한 원칙입니다.
기기를 잃어버리면 비트코인도 사라질까
기기를 잃거나 고장 내도 비트코인의 거래 기록은 네트워크의 전체장부에 남습니다. 복구 문구와 필요한 설정 정보를 보관하고 있다면 다른 호환 기기나 앱에서 키를 복원해 자금에 다시 접근할 수 있습니다.
앱 자체를 백업하는 것보다 지켜야 할 것은 복구 문구와 서명 장치별 복구 정보입니다. 앱 비밀번호는 앱의 잠금을 해제하는 정보이며, 복구 문구를 대신하지 않습니다. 반면 복구 문구는 호환되는 환경에서 키를 복구하는 데 사용됩니다.
따라서 기기는 키를 담아 둔 상자에 가깝고, 복구 문구가 실제로 지켜야 할 중요한 정보입니다. 복구 문구를 잃으면 기기를 잃었을 때 키를 복원할 길도 잃을 수 있습니다.
소프트웨어 서명 장치를 고를 때 확인할 점
소프트웨어 서명 장치를 고를 때는 다음과 같은 점을 확인할 수 있습니다.
- 개인키와 복구 문구를 사용자가 직접 보유하는 구조인지 확인합니다.
- 소스가 공개되어 있다면 공개 범위와 라이선스를 함께 살펴봅니다.
- 오랫동안 유지되어 온 앱인지 살펴봅니다.
- 복구 문구와 필요한 서명 장치 설정을 다른 호환 앱으로 옮길 수 있는지 확인합니다.
- 앱을 공식 배포처에서 내려받을 수 있는지 확인합니다.
사업자가 개인키를 관리하고 사용자의 요청에 따라 거래에 서명하는 수탁형 서비스는 사용자가 키를 직접 관리하는 서명 장치와 성격이 다릅니다. 무엇을 선택하든 문구와 개인키를 누가 보유하는지부터 이해해야 합니다.
일상용과 보관용을 나누기
늘 가지고 다니는 일상용 서명 장치로는 자주 사용할 며칠 치 금액만 관리할 수 있습니다. 오래 보관할 금액은 키를 인터넷과 분리해 관리하는 방식으로 나누는 식입니다.
처음에는 소액으로 보내고 받아 보면서 키 복원과 전송 과정을 익히는 편이 안전합니다. 금액이 커지면 일상용과 보관용을 나누고, 필요할 때만 보관용에서 옮기는 습관을 들일 수 있습니다.
소프트웨어 서명 장치는 편리한 도구입니다. 다만 편리함은 인터넷에 연결될 수 있는 기기에 개인키가 있다는 조건과 함께 옵니다. 자주 쓰는 금액은 주머니처럼 편리하게 관리하고, 오래 둘 큰 금액의 키는 인터넷과 분리해 관리하는 것이 기본입니다.
관련 개념은 콜드 스토리지와 하드웨어 서명 장치에서 이어서 볼 수 있습니다.