12편 중 5번째 글읽는 데 4분

전송 수단은 절대 신뢰하지 않아요

무선 통신의 보안 이력은 좋지 않아요. 어느 쪽이 충분히 안전한지 따지는 대신, AirNox는 어느 것도 안전하지 않다고 가정하고 한 층 위에 보안을 쌓아요.

노트북과 휴대폰 사이, 잡음 많은 세 개의 전송 경로를 따라 이동하는 자물쇠 달린 밀봉 캡슐
전송 수단은 시끄러워요. 캡슐은 그렇지 않아요.
목차

전송 수단은 인증 수단이 아니에요

블루투스 페어링이 증명하는 건 두 기기가 페어링 절차를 거쳤다는 사실이에요. NFC 근접은 무언가가 리더기 몇 센티미터 안에 있었다는 걸 증명해요. QR 코드는 카메라가 어떤 패턴을 봤다는 걸 증명해요. 어느 것도 반대편에 누가 있는지는 증명하지 못하고, 이 전송 수단들은 모두 공개적으로 공격당한 적이 있어요. 도청, 키 강도 다운그레이드, 평범한 휴대폰 두 대로 탭을 도시 반대편까지 중계하는 공격까지요.

그래서 저희는 셋 모두를 적대적이라고 간주해요. 누구나 엿듣고, 끼워 넣고, 중계할 수 있다고 봐요. 전송 수단이 무엇을 주장하든 어떤 증거로도 받아들이지 않아요.

세 개의 층: 맨 아래 적대적인 전송 수단, 가운데 AirNox 세션, 맨 위 사용자의 결정
아래에는 전송 수단. 그 위에 세션. 맨 위에는 사용자.

페어링은 한 번

신뢰는 데스크톱과 휴대폰을 페어링할 때 한 번 만들어져요. 데스크톱이 QR 코드를 띄우면 휴대폰이 스캔해요. 그러면 양쪽 화면에 짧은 코드가 뜨고, 그걸 비교해요. 일치하면 두 기기는 어떤 전송 수단도 본 적 없는 키에 합의한 것이고, 그때부터 서로의 신원을 알게 돼요. 일치하지 않으면 중간에 뭔가 끼어 있었다는 뜻이니 거기서 멈추세요.

그 비교가 사람이 채널을 확인하는 유일한 순간이고, 중요한 건 바로 그 순간이에요. 그 뒤의 모든 것은 직접 눈으로 확인해 만든 신뢰를 물려받아요.

세 단계: QR 코드 스캔, 양쪽 화면의 짧은 코드 비교, 페어링 완료. 그 아래 변조, 재전송, 순서가 뒤바뀐 메시지는 버려짐
한 번 비교하면, 그다음은 세션이 맡아요.

세션

페어링이 끝나면 데스크톱과 휴대폰 사이의 모든 메시지는 지갑이 직접 관리하는 세션 안에서 오가요. 종단 간 암호화(end-to-end)돼 있어서, 누가 전송 수단을 엿듣더라도 새어 나가는 건 잡음뿐이에요. 상호 인증(mutual authentication)돼 있어서, 양쪽 모두 메시지가 페어링한 바로 그 기기에서 왔지 그 기기인 척하는 무언가에서 온 게 아니라는 걸 알아요. 지금 쓰는 전송 수단에 묶여 있어서, 한 경로에서 가로챈 메시지를 다른 경로에서 재전송할 수 없어요.

세션은 충분히 연구된 최신 핸드셰이크 설계를 바탕으로 만들어졌어요. 널리 쓰이는 보안 터널이 사용하는 것과 같은 종류예요. 저희는 암호 기술을 즉흥적으로 만들지 않아요.

버려지는 메시지

전송 중에 변조된 메시지는 인증에 실패해서 버려져요. 재전송된 메시지는 순번이 맞지 않아 버려져요. 순서가 뒤바뀌어 도착한 메시지도 버려져요. 페어링한 기기가 아닌 곳에서 온 메시지는 핸드셰이크를 통과하지 못해요. 어느 경우든 휴대폰에는 서명할 것이 나타나지 않아요. 유효한 것이 하나도 도착하지 않았으니까요.

그래서 Bluetooth LE와 NFC의 편리함은 보안을 조금도 깎아 먹지 않아요. 전송 수단은 얼마든지 약해도 괜찮아요. 그 아래 무선 채널이 안전한지는 저희가 답할 필요조차 없는 질문이에요.

어떤 전송 수단이든 같은 세션

세션은 자신이 빛을 타는지, 전파를 타는지, 탭을 타는지 몰라요. QR로 페어링한 다음, 일상 업무에는 Bluetooth LE를, 단말기에서는 NFC를 쓸 수 있고, 그 과정에서 다시 페어링할 필요가 없어요. 전송 수단을 바꿔도 신뢰하는 대상은 달라지지 않아요. 애초에 전송 수단은 신뢰한 적이 없으니까요.

그래도 에어갭(air gap)일까요?

원칙주의자들은 에어갭이라면 빛만 써야 한다고 말해요. 단어를 두고 다투지는 않을게요. 엄격한 방식을 원한다면 QR 코드만 쓰세요. 언제든 쓸 수 있어요. 저희가 중요하게 여기는 건 그 단어 밑에 있는 속성이에요. 키를 가진 기기에는 인터넷으로 가는 경로가 없고, 오가는 건 휴대폰이 스스로 디코딩하는 요청과 휴대폰이 직접 만들기로 한 서명뿐이라는 거예요. Bluetooth LE 위의 세션도 그 속성을 그대로 지켜요. 여기에 더해지는 건, 사람들이 계속 쓰게 된다는 점이에요.

시리즈 목차

  1. 컴퓨터는 이미 감염됐다고 가정하세요
  2. Mass Adoption Security: 서명 기기는 이미 가진 휴대폰이에요
  3. 에어갭을 건너는 세 가지 방법: QR 코드, Bluetooth LE, NFC
  4. 전파에 드러나지 않기: 아무도 스캔으로 찾을 수 없는 서명 기기
  5. 전송 수단은 절대 신뢰하지 않아요
  6. 휴대폰이 보여 주는 것: 서명 기기에서 하는 트랜잭션 분석
  7. 휴대폰은 자기만의 기록을 남겨요
  8. 데스크톱의 금고: Argon2id와 추측에 강한 프로필
  9. 브라우저 지갑 없이 dApp 쓰기
  10. 규칙이 있는 MCP 서버: 한도 안에서 움직이는 AI 에이전트
  11. 모든 걸 담은, 보호받는 지갑 하나
  12. 작고 네이티브하게: C++, JavaScript 런타임 없이, 워크스테이션부터 Raspberry Pi까지

사전 등록

이메일을 남기면 출시 소식을 보내 드려요. 그 밖의 메일은 보내지 않아요.