Lobsters

I want my mesh networks to be signed, not encrypted

메시 네트워크는 암호화보다 서명을 원합니다

Meshtastic과 Meshcore는 기본적으로 암호화돼 있어 아마추어 무선 주파수에서 쓰기 어렵습니다. 글쓴이는 메시지를 평문으로 보내되 서명으로 발신자를 확인하는 메시 네트워크를 제안합니다. 댓글에서는 서명 크기에 따른 대역폭 부담, 키 배포와 폐기, 암호화의 실효성을 논의합니다.

AI 요약

Meshtastic과 Meshcore는 저전력 무선으로 소규모부터 도시·지역 규모까지 메시 네트워크를 손쉽게 구성하게 해줍니다. 글쓴이는 혼잡한 주파수 대역에서 0.5W로도 네트워크를 꾸릴 수 있다는 점을 높이 평가합니다. 다만 이런 무선 실험은 아마추어 무선의 영역에 어울리며, 아마추어 무선 대역을 쓰려면 송신을 암호화하지 않아야 한다고 설명합니다. 두 시스템은 기본 설정에서 암호화하며, 이를 끄기도 어렵습니다. 기본 비밀번호를 쓰는 방법도 있지만 만족스러운 해법은 아니라고 합니다.

평문 전송과 서명

제안은 메시지를 평문으로 보내면서 서명을 붙이는 방식입니다. 서명을 반드시 요구할 필요는 없지만, 발신자를 확인할 수 있도록 서명 기능을 지원하면 좋겠다는 의견입니다. 글쓴이는 메시 네트워크가 누구나 읽을 수 있는 개방형 통신망이 되길 바랍니다. 본문에는 서명의 구체적인 장점이나 구현 방법은 제시하지 않습니다.

암호화의 효용과 대역폭

댓글에서는 평문 프로토콜도 수신·송신 단에서 직접 암호화하고 복호화하면 암호문을 실어 나를 수 있다는 반론이 나옵니다. 암호화 허용 여부를 둘러싼 법적 문제도 프로토콜이 암호화를 강제하는지와 별개라는 지적입니다. 통신에 약간의 자연적 무작위성이 있어도 스테가노그래피로 암호문을 전달할 수 있다는 주장도 덧붙입니다.

다른 댓글은 저전력·저대역폭 장치에서 구현하는 암호화가 강력한 보안 장벽이 되기 어렵다고 봅니다. 암호를 풀지 않아도 Meshtastic·Meshcore 네트워크를 듣기만 하면 많은 메타데이터가 수집되며, 수신 지점이 여럿이면 대략적인 위치도 추정할 수 있다고 말합니다. 반면 Ed25519 서명은 메시지마다 64바이트를 차지한다는 지적이 나옵니다. AES로 여러 메시지를 암호화한 뒤 복호화 키에 서명하는 방안도 제안됐습니다. 글쓴이는 이 방식이라면 모든 메시지를 받은 뒤에야 서명을 검증할 수 있으며, 메시지 번호를 붙이고 마지막 메시지에 서명을 넣는 편이 낫다고 답합니다.

키 배포와 신뢰 관리

서명만으로 발신자 신원을 확인하려면 공개키를 어떻게 배포할지 정해야 합니다. 호출부호와 키를 연결할지, 아마추어 무선 단체가 인증서를 발급할지, Meshtastic처럼 최초 접속 때 신뢰하는 TOFU(Trust On First Use)를 쓸지 질문이 나옵니다. 글쓴이는 지역 클럽이 CA(Certificate Authority) 역할을 하고 신뢰하는 다른 클럽과 연합하는 방안을 제시합니다. Logbook of the World처럼 등록 주소로 코드를 우편 발송하는 방법도 언급하지만, 엽서 한 장에 4달러가 들고 느리다는 단점이 있습니다.

클럽마다 CA를 운영하면 결국 대규모 인증기관 신뢰 저장소와 최신 상태 유지 문제가 생길 수 있다는 반론도 나옵니다. 개인키 분실·유출에 따른 인증서 폐기 방법도 필요합니다. 짧은 유효기간의 인증서를 쓰거나, 공개키에 각자 별칭을 붙여 신뢰 여부를 결정하는 TOFU 방식이 더 간단할 수 있다는 제안입니다. 글쓴이는 TOFU만 쓴다면 서명으로 확인할 수 있는 정보가 ‘이 발신자가 전에 무언가를 보냈다’는 사실뿐이라고 답합니다.

Lobsters 반응

  • @ghoti — 평문 전송과 암호문 전송은 양립할 수 있습니다. 평문을 보낼 수 있는 프로토콜이라면 양쪽에서 직접 암호화하고 복호화하면 암호문도 보낼 수 있습니다. 특정 주파수에서 암호문 송신이 합법인지 따지는 법적 문제는 있지만, 프로토콜이 암호화를 요구하는지와 관계없이 남습니다. 자연적인 무작위성이 조금이라도 있는 통신 채널이라면 스테가노그래피로 암호문을 보낼 수도 있습니다. 이 방식은 암호문을 보냈다는 사실을 그럴듯하게 부인할 수 있습니다.
  • @mtset — 전적으로 동의합니다. 암호화하려는 이유는 이해하지만, 이런 메시 네트워크의 작은 장치와 낮은 대역폭에서 현실적으로 구현할 수 있는 암호화는 보안 장벽으로 그다지 견고하지 않습니다. Meshtastic·Meshcore 네트워크는 복호화를 시도하지 않고 듣기만 해도 상당한 메타데이터가 모이며, 수신 지점이 몇 군데만 있어도 대략적인 위치를 추정하기 쉽습니다. 암호화하지 않고 서명하는 아마추어 무선용 LoRa 메시 네트워크가 널리 쓰이면 좋겠습니다.
  • @ThinkChaos — 암호화를 원하지 않는 이유를 잘 모르겠습니다. 제가 보기에는 설명이 충분하지 않습니다.
    • @JulianSildenLanglo — 지적이 맞습니다. 이유를 좀 더 분명히 써야겠습니다. 첫째, 암호화하면 아마추어 무선 대역에서 합법적으로 운용하기가 훨씬 어려워집니다. 둘째, 통신 채널에 초대받은 사람만 들어오게 되므로 통신이 제한됩니다.
    • @landon — 글에 바로 나옵니다. 이런 무선 실험은 아마추어 무선의 영역에 어울립니다. 아마추어 무선 대역에서는 송신을 암호화하지 않아야 합니다.
    • @JulianSildenLanglo — 좋은 지적입니다. 블로그 글을 수정해 아마추어 무선 대역을 쓰려면 송신을 암호화하지 않아야 한다는 설명을 추가했습니다.
  • @Miaourt — 충분히 큰 평문 메시 네트워크가 지배적인 통신망이 되면, 숨겨야 하는 정당한 암호 통신도 감출 수 있습니다. 스테가노그래피는 오래전부터 쓸 수 있습니다.
  • @JulianSildenLanglo — 새로 등장하는 메시 네트워크의 암호화 상태에 느낀 약간의 답답함을 글로 정리했습니다. 혼잡한 공용 대역에 의존한다는 점은 단점이며, 이런 네트워크에서 암호화는 실제로 그다지 가치가 크지 않다고 생각합니다.
  • @jak2k — 서명마다 대역폭을 씁니다. Ed25519는 메시지당 64바이트가 필요합니다. AES로 메시지 몇 개를 암호화하고, 모두 복호화할 키에 서명해 보내면 어떨까요? 메시지를 온라인에 공개해도 그 방식이라면 그럴듯한 부인이 가능합니다.
    • @JulianSildenLanglo — 가능하겠지만, 서명을 검증하려면 메시지를 전부 받을 때까지 기다려야 합니다. 그럴 바에는 메시지에 번호를 붙이고 마지막 메시지에 서명을 넣으면 됩니다.
  • @isomer — 암호학은 여러 문제를 키 배포 문제로 바꿉니다. 키는 어떻게 배포할 계획인가요? 호출부호와 키를 연결해야 하나요? 그렇다면 국가 아마추어 무선 단체 같은 중앙 기관이 이 사람이 해당 호출부호를 쓰는 사람이라고 인증서를 발급하나요? Logbook of the World를 활용할 수도 있나요? 아니면 Meshtastic 암호화 키처럼 TOFU를 쓰나요? 글쓴이 말이 맞다고 생각하지만, 해결책을 찾지 못한 문제가 많습니다.
    • @JulianSildenLanglo — 소규모 지역 네트워크라면 지역 아마추어 무선 클럽이 CA 역할을 하고, 신뢰하는 다른 클럽과 연합할 수 있습니다. Logbook of the World처럼 코드를 요청한 아마추어 무선 사용자에게 등록 주소로 엽서를 보내는 방식도 있습니다. 다만 느리고 비용이 많이 듭니다. 엽서 한 장에 4달러입니다.
    • @isomer — 클럽별 CA를 만들고 서로 연합하는 방식은 웹 오브 트러스트와 비슷합니다. 결국 모두가 최신 상태로 유지해야 하는 대규모 CA 신뢰 저장소, 즉 Web PKI 같은 형태가 될 것 같습니다. 개인키를 잃거나 실수로 또는 악의적으로 유출했을 때 인증서를 폐기할 방법도 필요합니다. 단기 인증서를 쓰는 방법이 가장 간단할 수 있습니다. 아니면 TOFU를 택하고 공개키에 각자 별칭을 붙여 어떤 키를 신뢰하거나 거부할지 정하는 편이 더 쉬울 수도 있습니다. 호출부호와 연결하려고 하지 않는 방식입니다.
    • @JulianSildenLanglo — TOFU를 쓰면 서명은 더는 별 의미가 없습니다. 알 수 있는 건 ‘이 발신자가 전에 무언가를 보냈다’는 사실뿐입니다.

원문: Andanti / 번역·요약: Trawling