연구 . 지갑 포렌식
아머리 암호화 및 ROMIX KDF
Armory는 보안을 중시하는 비트코인 사용자를 위해 개발되었으며, 의도적으로 느리고 메모리 집약적인 키 도출 방식 덕분에 Armory 비밀번호를 복구할 때는 무차별 대입 방식보다는 올바른 접근 방식이 필요합니다.
Armory는 콜드 스토리지 용도로 널리 선호되던, 초기 비트코인 지갑 중에서도 가장 신뢰받던 지갑 중 하나였습니다. 이러한 명성의 일부는 ROMIX를 기반으로 한, 의도적으로 비용이 많이 들고 메모리 집약적인 키 도출 함수에서 비롯되었습니다. 이 페이지에서는 Armory 지갑 비밀번호를 복구하려는 사용자에게 이것이 어떤 의미인지 설명합니다.
키 도출 함수의 역할
지갑을 비밀번호로 암호화할 때, 소프트웨어는 비밀번호를 직접 사용하지 않고 키 도출 함수 (KDF)를 통해 처리하여 실제 암호화 키를 생성합니다. 우수한 KDF는 의도적으로 처리 속도가 느리게 설계되어 있어, 각 추측값을 테스트하는 데 실제 시간과 비용이 소요되므로 무차별 대입 공격이 사실상 불가능해집니다. KDF가 초래하는 이 비용은 공격자나 복구 서비스가 각 후보 비밀번호를 시도할 때마다 넘어야 할 장벽이 됩니다.
Armory의 ROMIX / 메모리 하드 설계
Armory는 ROMIX(scrypt에서도 사용되는 핵심 구조)를 기반으로 한 메모리 집약적 KDF를 사용했습니다. 메모리 하드(memory-hard)란 각 추측 시도에 시간뿐만 아니라 대량의 RAM이 필요함을 의미하며, 이는 공격자들이 사용하는 대규모 병렬 처리 하드웨어의 효율을 의도적으로 저해합니다. 즉, 각 추측 시도에 상당한 메모리가 필요하면 수백만 건의 추측을 병렬로 저렴하게 실행할 수 없습니다. Armory는 심지어 KDF를 생성된 기기에 맞춰 보정하여, 추측당 비용이 해당 하드웨어 사양을 반영하도록 했습니다.
이것이 경기 회복에 어떤 의미를 갖는가
실질적인 결과는 Armory 복구가 즉각적으로 이루어지는 것이 아니라 추측 횟수에 제한을 받는다는 점입니다. 각 비밀번호 후보를 테스트하는 데는 많은 비용이 들기 때문에, 긴 비밀번호에 대해 무작위적이고 체계적이지 않은 무차별 대입 공격을 시도하는 것은 사실상 불가능합니다. 끝이 나지 않을 테니까요. 따라서 복구의 성패는 후보 목록의 질에 달려 있습니다. 검색 범위가 소유자가 실제로 기억하는 내용에 가까울수록, 비용이 많이 드는 추측 횟수는 줄어듭니다. 이 경우, 순수한 하드웨어 성능보다 유용한 힌트가 훨씬 더 중요합니다.
KDF 매개변수가 중요한 이유
추측을 정확하게 테스트하려면 Armory의 정확한 KDF 매개변수(즉, 설정된 메모리 및 반복 횟수)를 재현해야 합니다. 파생된 키는 이러한 매개변수에 따라 달라지기 때문입니다. 해당 매개변수는 지갑에 저장되어 있으므로, 포렌식 작업의 일부는 이를 읽어내어 동일한 파생 과정을 충실하게 재현하는 것입니다. 매개변수를 잘못 설정하면 비밀번호가 정확하더라도 모든 추측 시도가 실패하게 되는데, 이는 다른 특정 형식의 지갑 사용자들도 빠지기 쉬운 함정과 같습니다.
현실적인 회복 방안
실용적인 접근 방식은 이를 무차별 대입 방식이 아닌 정밀 검색으로 다루는 것입니다. 즉, KDF 매개변수를 추출하고, 메모리 집약적인 도출 과정을 재현한 뒤, 소유자가 기억하는 모든 정보(길이, 구조, 단편, 습관 등)를 바탕으로 작성된 후보 목록을 사용하여 KDF를 효율적으로 실행할 수 있는 충분한 메모리를 갖춘 하드웨어에서 이를 구동하는 것입니다. 추측 횟수당 처리 속도는 경량 지갑보다 느리지만, 잘 구성된 목록의 경우 여전히 충분히 실행 가능하며, Armory 지갑은 종종 이러한 노력을 정당화할 만큼 상당한 규모의 장기 보유 자산을 보호하고 있습니다.
Armory 지갑이 멈춰버렸을 때
Armory는 적극적인 유지보수가 중단되면서 운영 자체가 어려워졌기 때문에, 많은 사용자들이 비밀번호를 잊어버린 것뿐만 아니라 최신 시스템에서 더 이상 정상적으로 실행되지 않는 애플리케이션 때문에 계정에 접근하지 못하는 상황에 처해 있습니다. 복구를 위해서는 종종 지갑 파일을 직접 다루고, 원래 소프트웨어 외부에서 해당 파일의 암호화 과정을 재현해야 하는데, 이를 통해 더 이상 작동하지 않는 애플리케이션 문제를 우회하면서도 지갑이 암호화될 때 사용된 KDF는 그대로 유지할 수 있습니다.
구형 Armory 지갑을 보유하고 계신다면
자금이 들어 있는 Armory 지갑을 가지고 있는데 비밀번호를 정확히 기억하지 못한다면, 다행인 점은 복구를 느리게 만드는 메모리 집약적인 KDF(Key Derivation Function) 덕분에 지갑이 실제로 매우 안전하게 보호되어 있었다는 사실입니다. 또한 비밀번호를 어느 정도 기억하고 있다면 복구가 충분히 가능합니다. 일단 복구되면, 키를 최신 버전의 관리되는 지갑으로 내보내면 더 이상 방치된 소프트웨어를 사용해야 하는 문제를 피할 수 있습니다.
Armory와 다른 지갑들의 비교
이는 Armory를 복구 난이도 스펙트럼에서 어디에 위치하는지 파악하는 데 도움이 됩니다. 빠른 KDF를 사용하는 경량 지갑은 엄청난 속도로 검색할 수 있으므로, 비밀번호를 희미하게만 기억하고 있어도 종종 성공합니다. Armory는 그 반대편 끝에 위치합니다. 메모리 집약적인 도출 방식 때문에 각 추측에 드는 비용이 크기 때문에, 검색은 간결하고 정확한 정보를 바탕으로 이루어져야 합니다. 그렇다고 해서 명확히 기억하고 있는 비밀번호를 복구하기가 더 어려워지는 것은 아닙니다. 강력한 힌트가 있다면 어느 쪽이든 빠르게 해결될 수 있으니까요. 다만, 빠른 지갑에서는 통할 수도 있는 모호하고 광범위한 추측 방식이 Armory에서는 실현 불가능해질 수 있다는 뜻입니다. 요컨대, Armory는 정확성을 중시합니다. 소유자가 비밀번호를 더 정확하게 설명할 수 있을수록, KDF가 장애물이 되는 일은 더 확실하게 사라집니다.
당사의 문서
KeychainX는 지갑 포맷 포렌식 분석의 일환으로 Armory의 KDF를 이곳에 기록합니다. 메모리 기반 도출 과정을 충실하게 재현하고, 소유자의 기억에 맞춰 검색 범위를 조정하는 것이야말로 Armory 지갑 복구가 가능한 경우와 불가능한 경우를 가르는 핵심 요소이기 때문입니다. 이 내용은 본 절에 수록된 다른 포맷 연구 결과와 함께 다루어집니다. 만약 Armory 지갑에 접근할 수 없는 상황이라면, KDF는 막다른 길이 아니라 극복해야 할 장애물일 뿐입니다.
자주 묻는 질문
Armory 복구를 시작하려면 무엇이 필요한가요?
Armory 지갑 파일(KDF 매개변수가 저장된 파일)과 비밀번호에 대한 가장 정확한 기억 — 길이, 구조, 단편, 습관 등. 힌트가 정확할수록 기억에 의존하는 무차별 대입 공격의 성공 가능성이 높아집니다.
Armory의 비밀번호 복구 속도가 왜 느린가요?
Armory는 메모리 집약적인 ROMIX 키 도출 함수를 사용하며, 이 함수는 각 비밀번호 추측에 소요되는 시간과 RAM 사용량을 의도적으로 많이 소모하도록 설계되었습니다. 이로 인해 무차별 대입 공격은 무력화되므로, 비밀번호 복구는 잘 구성된 후보 목록에 의존하게 됩니다.
Armory 지갑은 여전히 복구할 수 있나요?
네, 비밀번호를 충분히 기억하고 계신다면 가능합니다. 저희는 Armory의 KDF 매개변수를 정확히 재현하고, KDF를 실행할 수 있을 만큼 충분한 RAM을 갖춘 하드웨어에서 사용자의 힌트를 바탕으로 메모리 기반 검색을 수행합니다.
이 기능을 사용하려면 Armory 소프트웨어가 필요한가요?
꼭 그렇지는 않습니다. 복구 과정은 대개 지갑 파일에서 직접 진행되며, 원래 애플리케이션 외부에서 해당 파일의 암호화 알고리즘을 재현합니다. 이를 통해 최신 시스템에서 Armory가 더 이상 원활하게 실행되지 않는 문제도 우회할 수 있습니다.
정확한 비밀번호를 입력했는데 왜 로그인이 안 되나요?
KDF 매개변수가 정확히 재현되지 않으면 도출된 키가 잘못되어, 올바른 비밀번호를 입력해도 로그인이 실패합니다. 저장된 매개변수를 읽어들이고 도출 과정을 충실히 재현하는 것도 작업의 일부입니다.
회복 비용은 얼마인가요?
성과 기반: 지갑을 열었을 경우에만 회수된 금액의 일정 비율을 수수료로 받으며, 선불 수수료는 없습니다.
Armory 지갑에 접속할 수 없으신가요?
메모리 부하가 큰 KDF는 막다른 길이 아니라 하나의 장벽일 뿐입니다. 적절한 비밀번호 저장 기능만 있다면 복구할 수 있습니다. 현재 어떤 상황을 겪고 계신지 알려주시면, 24시간 이내에 솔직한 평가 결과를 드리겠습니다.