Deanonymizing Monero Transactions in Tor Network
이 논문은 모네로(Monero)의 트랜잭션이 오직 두 개의 특정 프록시 노드를 통해서만 전달된다는 점에서의 근본적인 취약점을 악용하여, 모네로 트랜잭션의 소스 IP 주소를 성공적으로 디애노니마이즈(deanonymize)하는 3단계 프레임워크인 \textit{ProxyMark}를 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
개요: "깨지지 않는" 상자 vs. 내용이 비치는 봉투
**모네로(Monero)**는 디지털 화폐 중에서도 최고의 비밀을 유지하도록 설계된 기술입니다. 이 화폐는 고도의 "마법 상자"(암호학)를 사용하여 누가 돈을 보냈는지, 그리고 얼마나 보냈는지를 숨깁니다. 또한, 사용자의 물리적 위치(예: 집 인터넷 주소)를 추적하지 못하도록 하기 위해, 모네로 사용자들은 종종 데이터를 전 세계로 튕겨내며 경로를 꼬아주는 비밀 터널 시스템인 **토르(Tor)**를 통해 메시지를 보냅니다.
연구진들은 영리한 트릭을 발견했습니다. 그들은 마법 상자를 부수지도 않았고, 비밀 터널을 파괴하지도 않았습니다. 대신, 그들은 모네로가 터널 내부에서 우편물을 전달하는 특정 규칙이 있으며, 그 규칙이 아주 작고 예측 가능한 발자국을 남긴다는 사실을 알아냈습니다.
그들은 이 발자국을 이용하기 위해 **프록시마크(ProxyMark)**라는 도구를 만들었습니다. 이것은 마치 비밀 터널을 통해 편지를 보내는 사람이 누구인지 알아내기 위해, 편지 내용 자체를 읽으려 하는 대신 편지가 가장 먼저 어디에 멈추는지를 관찰하는 것과 같습니다.
3단계 탐정 게임
연구진의 방법론인 프록시마크는 세 단계로 작동합니다. 이것은 마치 가면무도회에서 스파이를 잡으려는 탐정의 모습과 같습니다.
1단계: 역할 드러내기 (당신은 누구인가?)
문제점: 모네로 네트워크에는 두 가지 유형의 "노드"(소프트웨어를 실행하는 컴퓨터)가 있습니다.
- 호스트(Host): 들어오는 연결을 받아들이는 컴퓨터 (손님을 기다리는 가게와 같습니다).
- 게스트(Guest): 다른 곳을 방문하기 위해서만 나가는 컴퓨터 (가게로 걸어 들어가는 손님과 같습니다).
단서: 이 컴퓨터들이 서로 대화할 때, 그들은 자신들이 알고 있는 "친구들"(다른 컴퓨터들)의 목록을 교환합니다.
- 호스트는 항상 자신의 ID를 목록의 맨 마지막에 넣습니다. 이는 마치 가게 주인이 매번 영수증 하단에 자신의 이름을 서명하는 것과 같습니다.
- 게스트는 이렇게 하지 않습니다. 그들의 목록은 매번 바뀝니다.
트릭: 공격자는 정체불명의 컴퓨터에 요청을 보냅니다. 만약 돌아온 목록이 항상 동일한 ID로 끝난다면, 공격자는 "아하! 당신은 호스트구나!"라고 알 수 있으며, 이제 당신의 비밀 ID를 알게 됩니다. 만약 목록이 바뀐다면, 당신은 게스트입니다.
2단계: 교통 체증 (스파이가 듣게 만들기)
문제점: 공격자가 "호스트"가 누구인지 알아냈더라도, 자신이 첫 번째로 메시지를 받는 사람이 아니라면 돈이 전송되는 것을 볼 수 없습니다. 모네로에는 다음과 같은 규칙이 있습니다: "새로운 거래를 생성하면, 다른 누구보다 먼저 정확히 두 명의 특정 친구('프록시 노드')에게 보내야 한다."
트릭: 공격자는 자신이 그 두 명의 특별한 친구 중 한 명이 되고 싶어 합니다.
- 명단 채우기: 공격자는 피해자의 "친구 목록"을 자신의 컴퓨터 이름들로 가득 채웁니다. 피해자가 새로운 친구를 골라야 할 때, 이제 목록은 공격자의 가짜 신분들로 가득 차 있기 때문에 피해자는 이 목록 중에서 선택할 수밖에 없습니다.
- 가짜 이력서: 모네로는 가장 최신의 정보(가장 높은 블록 높이)를 가진 컴퓨터를 기준으로 "프록시 노드"를 선정합니다. 공격자의 가짜 컴퓨터들은 (실제로는 그렇지 않음에도) "나는 최신 정보를 가지고 있다!"라고 거짓말을 합니다. 피해자가 이 거짓말을 믿게 되면, 공격자의 컴퓨터들이 특별한 "프록기 노드"로 선택됩니다.
결과: 이제 피해자가 비밀 거래를 보내면, 그 거래는 곧바로 공격자의 컴퓨터로 먼저 전달됩니다. 공격자는 성공적으로 거래를 "포착"한 것입니다.
3단계: 투명 잉크 (ID와 실제 인물을 연결하기)
문제점: 공격자는 이제 거래 내용과 피해자의 비밀 ID(온리언스 주소)를 가지고 있습니다. 하지만 여전히 피해자의 실제 IP 주소(물리적 인터넷 연결)는 모릅니다. 토르 터널이 여전히 이를 숨기고 있기 때문입니다.
트릭: 공격자는 워터마킹(Watermarking) 기법을 사용합니다.
- 공격자와 피해자가 무전기로 대화하고 있다고 상상해 보세요. 공격자는 특정한 리듬으로 메시지를 보냅니다.
- 신호: 공격자는 단순히 말하는 대신, 메시지를 그룹 단위로 보냅니다.
- 메시지 3개를 빠르게 보냄 = 숫자 1
- 메시지 1개를 빠르게 보냄 = 숫자 0
- 이러한 그룹들을 길게 나열함으로써, 공격자는 메시지의 타이밍을 이용해 비밀 코드(피해자의 ID)를 "철자대로 써 내려가는" 것입니다.
- 공격자는 또한 엔트리 가드(Entry Guard)(비밀 터널의 첫 번째 사람)를 제어합니다. 이 가드는 터널 내부의 비밀 메시지는 볼 수 없지만, 터널로 들어오는 사람의 실제 IP 주소는 볼 수 있습니다.
- 엔트리 가드가 특정 리듬(워터마크)이 특정 IP 주소로부터 오는 것을 포착하면, "저 IP 주소가 바로 저 비밀 ID를 보내는 사람이다"라고 말할 수 있게 됩니다.
결과: 공격자는 비밀 ID를 실제 물리적 위치와 연결합니다.
무엇을 증명했는가?
연구진은 실제 모네로 네트워크와 토르 네트워크에서 이를 테스트했습니다. 결과는 다음과 같습니다.
- 역할 식별: 그들은 컴퓨터가 "호스트"인지 "게스트"인지를 **100%**의 확률로 정확히 식별했습니다.
- 연결 탈취: 그들은 피해자의 연결 목록을 장악하여, 피해자의 외부 연결 중 7개에서 12개 중 11개를 공격자가 통제하도록 만들었습니다.
- 선택 받기: "블록 높이"에 대해 거짓말을 함으로써, 그들이 특별한 "프록시 노드"로 선택될 확률을 15%에서 35%로(가짜 컴퓨터가 더 많을 경우 그 이상으로) 높였습니다.
- 최종 연결: 그들은 호스트의 경우 93.8%, 게스트의 경우 **91.4%**의 확률로 비밀 ID를 실제 IP 주소와 성공적으로 연결했습니다.
결론
이 논문은 모네로와 토르가 각각 매우 강력하지만, 두 기술을 결합했을 때 새로운 약점이 발생한다고 결론짓습니다.
모네로는 "호스트" 컴퓨터와 "게스트" 컴퓨터를 처리할 때 다르게 취급합니다. 이 차이는 공격자가 악용할 수 있는 패턴을 만들어냅니다. 피해자가 대화하는 "친구"들을 제어하고 메시지의 리듬을 경청함으로써, 공격자는 익명성의 층을 벗겨내고 누가 돈을 보내는지 찾아낼 수 있습니다.
저자들은 이를 해결하기 위해 모네로가 모든 연결을 동일하게 처리하도록 규칙을 변경하여, 이러한 탐정 업무를 가능하게 하는 "발자국"을 제거해야 한다고 제안합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.