전파에 드러나지 않기: 아무도 스캔으로 찾을 수 없는 서명 기기
"여기 지갑 있어요"라고 알리는 무선 신호는 오프라인 서명 기기(signer)를 쓰는 이유의 절반을 무너뜨려요. 그래서 AirNox Vault를 실행하는 휴대폰은 자신을 알리지 않아요.

목차
무선 통신의 문제
블루투스 덕분에 책상 위 작업이 편해져요. 동시에 휴대폰이 말을 하는 물건이 돼요. "Wallet" 같은 이름을 고정 주소와 함께 알리는 기기는 찾아낼 수 있고, 알아볼 수 있고, 날마다 따라다닐 수 있고, 공격할 가치가 있는 대상으로 점찍힐 수 있어요. 블루투스 기기를 스캔하는 데는 휴대폰 한 대와 무료 앱 하나면 돼요. 데스크톱의 악성코드(malware)도 할 수 있어요.
저희는 편의성은 원했지만 비콘이 되는 건 원하지 않았어요. 설계는 세 부분으로 나뉘어요. 휴대폰이 애초에 언제 전파를 내보내는지, 내보낼 때 무엇을 말하는지, 그리고 누가 그걸 해석할 수 있는지예요.
앱을 열지 않으면 전파에 아무것도 없어요
휴대폰은 AirNox Vault가 열려 있고, 잠금이 풀려 있고, 화면 맨 앞에 있을 때만 신호를 보내요. 휴대폰을 잠그면 조용해져요. 다른 앱으로 전환해도 조용해져요. 서랍에 엎어 두면 아무것도 송신하지 않아요. 채널을 계속 열어 두는 백그라운드 서비스도 없어요.

신호를 보낼 때도 낮은 송신 출력으로 보내요. 도달 거리는 책상 정도예요. 누가 들을 수 있는지를 일부러 정한 선택이지, 암호화를 대신하는 건 아니에요.
신호에 담기는 것
세 가지 덕분에 낯선 사람에게는 이 신호가 쓸모없어요.
기기 이름이 없어요. 전파 어디에도 AirNox나 지갑, 그 밖의 어떤 이름도 나오지 않아요.
시스템이 매번 새로 만드는 랜덤 블루투스 주소를 써요. 적어 뒀다가 내일 다시 찾아볼 고정 주소가 없어요.
그리고 알리는 서비스 식별자는 고정값이 아니라 계산된 값이에요. 휴대폰과 데스크톱이 공유하는 페어링(pairing) 정보와 현재 시간 구간에서 파생되기 때문에 몇 분마다 바뀌고, 그 페어링을 가진 데스크톱만 지금 값이 무엇인지 알아낼 수 있어요. 다른 모든 사람에게는 무작위처럼 보이는 숫자이고, 얼마 지나지 않아 또 다른 무작위 숫자로 바뀌어요.

스캐너에 보이는 것
옆방의 스캐너에는 이름 없는 랜덤 주소와 무작위처럼 보이는 식별자가 보여요. 몇 분 뒤에는 다른 주소와 다른 식별자가 보여요. 둘을 이어 줄 단서는 없어요. 블루투스를 쓰는 다른 이름 없는 수많은 기기와 달리 이게 지갑이라고 알려 주는 표시도 없어요. 다음을 위해 기억해 둘 것도 없어요.
데스크톱의 악성코드에 보이는 것
감염됐다고 가정하는 데스크톱이라고 더 잘 보이지는 않아요. 그 안의 악성코드에게는 검색할 이름도, 기억할 고정 주소도 없고, 앱을 화면 앞으로 띄우기 전까지는 찾을 것도 없어요. 지갑 소프트웨어가 휴대폰을 알아볼 수 있는 건 페어링 때 그 자리에 있었기 때문이에요. 그 소프트웨어의 설정을 훔친 악성코드라도 도달 거리 안에서 앱이 열리기를 기다려야 하고, 그다음엔 세션과 맞닥뜨려요. 세션은 다음 글에서 다뤄요.
어차피 휴대폰을 찾아도 얻는 게 없는 이유
사용하는 도중에 공격자가 휴대폰을 찾아냈다고 해 볼게요. 찾아낸 것만으로는 얻는 게 없어요. 모든 요청은 여전히 서명할 바이트에서 디코딩되어 휴대폰 화면에 나타나고, 그걸 읽고 Accept(수락)를 누를지 말지는 직접 정해요. 무선 신호에 실리는 건 페어링 때 인증된 세션 안의 암호화된 트래픽이에요. 들을 수 있을 만큼 가까이 있다고 해서 끼어들 수 있는 건 아니에요.
보이지 않는 것은 첫 번째 방어층이에요. 대부분의 시간에는 공격할 대상이 아예 없게 하고, 있을 때도 특별할 것 없어 보이게 하는 게 그 역할이에요.
시리즈 목차
- 컴퓨터는 이미 감염됐다고 가정하세요
- Mass Adoption Security: 서명 기기는 이미 가진 휴대폰이에요
- 에어갭을 건너는 세 가지 방법: QR 코드, Bluetooth LE, NFC
- 전파에 드러나지 않기: 아무도 스캔으로 찾을 수 없는 서명 기기
- 전송 수단은 절대 신뢰하지 않아요
- 휴대폰이 보여 주는 것: 서명 기기에서 하는 트랜잭션 분석
- 휴대폰은 자기만의 기록을 남겨요
- 데스크톱의 금고: Argon2id와 추측에 강한 프로필
- 브라우저 지갑 없이 dApp 쓰기
- 규칙이 있는 MCP 서버: 한도 안에서 움직이는 AI 에이전트
- 모든 걸 담은, 보호받는 지갑 하나
- 작고 네이티브하게: C++, JavaScript 런타임 없이, 워크스테이션부터 Raspberry Pi까지