비트코인, '숨겨진 키 유출' 탐지 강화하는 새 제안 등장

비트코인 생태계에 새로운 개선 제안(BIP)이 등장하여 암호화폐 지갑 보안 강화에 대한 기대를 모으고 있습니다. 리암 길리건(Liam Gilligan)이 제안한 BIP461은 기존의 ECDSA(타원곡선 디지털 서명 알고리즘) 서명 방식 하에서 '재현 가능한 서명'을 가능하게 하여, 의도적으로 악의적인 서명을 통해 비밀 키 유출을 시도하는 행위를 보다 쉽게 탐지할 수 있도록 설계되었습니다. 이 제안은 이미 지난 9월 16일 BIPs 저장소에 병합되었으나, 현재 '초안(Draft)' 단계에 머물러 있습니다.
BIP461의 핵심은 동일한 입력값에 대해 독립적이고 규정을 준수하는 서명자들은 반드시 동일한 서명을 생성해야 한다는 원칙에 기반합니다. 이는 마치 동일한 재료와 레시피로 요리를 했을 때 항상 같은 결과가 나와야 하는 것처럼, 암호화폐 서명에서도 예측 가능하고 표준화된 결과값을 기대할 수 있어야 한다는 의미입니다. 만약 동일한 비밀 키와 메시지 해시값에 대해 서로 다른 서명이 생성된다면, 이는 최소한 한 명의 서명자가 BIP461에서 제시하는 표준 절차를 준수하지 않았음을 의미합니다. 이러한 불일치는 비밀 키 유출 시도의 잠재적인 흔적이 될 수 있습니다.
ECDSA 서명 방식은 본질적으로 서명 생성 과정에서 서명자에게 몇 가지 선택권을 부여합니다. 그중 하나가 바로 '논스(nonce)' 값의 선택입니다. 논스는 서명 생성 시 임시적으로 사용되는 값으로, 서명 자체의 유효성에는 영향을 미치지 않으면서도 서명 생성 과정의 비결정성을 일부 야기합니다. 악의적인 펌웨어나 소프트웨어는 이러한 논스 선택의 자유를 악용하여, 겉으로는 유효한 서명처럼 보이게 하면서도 실제로는 비밀 키의 일부 정보를 은밀하게 노출시키는 방식으로 작동할 수 있습니다. BIP461은 이러한 잠재적인 보안 취약점을 해결하기 위해, 논스 선택을 포함한 서명 생성 과정을 미리 정해진 결정론적 절차에 따라 수행하도록 제안합니다. 이를 통해 모든 규정을 준수하는 서명자는 동일한 입력에 대해 동일한 서명을 생성하게 됩니다.
그러나 BIP461이 제안하는 서명 비교 메커니즘에도 몇 가지 고려해야 할 점이 있습니다. 첫째, 단순히 서명의 불일치가 발견되었다고 해서 악의적인 행위가 즉시 입증되는 것은 아닙니다. 정직하게 구현된 다른 ECDSA 절차를 따르는 경우에도 결과 서명이 다를 수 있습니다. 따라서 서명 불일치는 추가적인 조사를 통해 규정 준수 여부를 확인해야 하는 '경고 신호' 역할을 할 뿐, 그 원인이 반드시 악의적인 키 유출 때문이라고 단정할 수는 없습니다.
둘째, 서명의 일치 여부를 확인하기 위해서는 반드시 동일한 입력값과 동일한 표준 절차가 적용되어야 하며, 또한 비밀 키에 대한 접근 권한을 가진 또 다른 독립적인 서명자가 필요합니다. 이는 서명 비교를 위한 실질적인 비용이자, 또 다른 비밀 키 노출의 위험을 수반할 수 있음을 의미합니다. 즉, BIP461의 방어 메커니즘을 완벽하게 구현하고 작동시키기 위해서는 다소 복잡한 절차가 필요할 수 있습니다.
BIP461 제안에서 또 주목할 만한 부분은 생성되는 서명의 크기 제한입니다. 표준 DER 인코딩 방식에서, 비트코인의 1바이트 sighash 플래그를 제외한 서명의 최대 길이는 70바이트로 제한됩니다. 이는 서명 데이터의 효율성을 높이는 데에도 기여할 수 있습니다.
이 제안은 최근 보안 커뮤니티에서 논의되었던 '다크 스키피(Dark Skippy)' 관련 문제점과도 연관이 있습니다. 다크 스키피 논란은 손상된 펌웨어가 트랜잭션 서명에 비밀 키의 일부 정보를 심어놓을 수 있다는 가능성을 제기했습니다. 당시 연구자들은 이러한 공격 기법이 실제 야생에서 발견되지는 않았다고 밝혔지만, 잠재적인 위협으로 인식되었습니다.
다크 스키피의 초기 시연은 Schnorr 서명 방식을 사용했지만, BIP461은 ECDSA 방식에 초점을 맞추고 있습니다. 비트코인의 최근 업그레이드인 탭루트(Taproot)는 별도의 BIP340 Schnorr 서명 체계를 사용하므로, BIP461이 다크 스키피 공격에 대한 직접적인 해결책을 제공하지는 않습니다. 하지만 핵심적인 아이디어, 즉 서명 생성 과정의 투명성과 검증 가능성을 높이려는 노력은 동일한 맥락을 공유합니다.
연구자들은 악의적인 서명자가 특정 거래에 대해서만 의도적으로 정보를 유출하고, 테스트 단계에서는 정상적인 서명을 생성하는 방식으로 방어 시스템을 우회할 수 있다고 경고하기도 했습니다. 따라서 BIP461이 완전히 자리 잡기 위해서는 단순히 제안서를 넘어, 실제 테스트 벡터(test vectors)와 참조 구현(reference implementation)이 필수적으로 요구됩니다. 이를 통해 제안된 알고리즘의 정확성과 효율성을 검증하고, 잠재적인 문제점을 미리 발견하여 개선할 수 있기 때문입니다.
결론적으로 BIP461은 비트코인 사용자들의 자산을 더욱 안전하게 보호하기 위한 중요한 기술적 진전을 의미합니다. 비록 아직 초안 단계에 있지만, 비밀 키 유출과 같은 고질적인 보안 위협에 맞서 싸울 수 있는 새로운 도구를 제공할 잠재력을 가지고 있습니다. 향후 BIP461이 비트코인 프로토콜의 일부로 채택된다면, 사용자들은 더욱 안심하고 비트코인을 사용할 수 있게 될 것입니다. 이는 비트코인 네트워크의 신뢰성을 한층 높이는 데 기여할 것으로 기대됩니다.