libsodium 加密链路:为什么说它是"军事级"
官方说法
LANDrop 官网首页的"Ultra-Fast & Secure"特性段落写着:*"Uses advanced protocols to deliver line-rate transfer speeds along with military-grade encryption and authentication for top-notch security"*。军事级这个说法营销成分多,但底层确实不马虎——它用的是 libsodium 这套加密库。
libsodium 是什么
libsodium 是一个基于 NaCl(Networking and Cryptography library)设计的现代加密原语集合,由 Frank Denis(jedisct1)维护。它的设计目标很明确:易用、默认安全、尽量不提供"危险选项"——你几乎不会在 libsodium 里误用不安全的算法。
LANDrop 选择 libsodium 而不是直接套 TLS 的原因:
- TLS 是传输层协议套件,对 LANDrop 这种点对点直连场景来说太重了,协商过程增加延迟;
- libsodium 提供的是原子级加密原语(X25519 密钥交换、Ed25519 签名、XChaCha20-Poly1305 AEAD 认证加密),LANDrop 可以用它构建自己的协议层,速度更快;
- v2.0 引入的公钥 ID 设备识别就是基于 Ed25519 做的——每台设备启动时生成一对公私钥,私钥永远留在本机,公钥通过 mDNS 组播广播出去,其他设备据此识别"你是谁",完全不需要依赖 IP 地址或设备名。
完整握手过程
两台设备第一次建立连接时,LANDrop 内部发生了这些事:
- X25519 密钥交换:双方各用自己的私钥 + 对方的公钥,派生出同一个共享密钥;
- Ed25519 签名验证:确认对方的公钥没被中间人替换;
- XChaCha20-Poly1305 握手:用派生出来的密钥完成一次 AEAD 加密握手;
- 6 位验证码确认:给用户看的"最后一跳"——只有双方都看到相同的 6 位数字并确认,连接才真正建立。
整套过程里没有任何明文传输,包括公钥 ID 本身也是加密后广播的。
它不会收集你的数据
LANDrop 官方隐私政策(landrop.app/#privacy)明确写了:
*"We do not collect, share, or store any of your personal data. All personal data required for the normal operation of the app are stored entirely and exclusively on your device."*
Analytics(使用统计)是可选的匿名上报,不会关联身份、也不包含文件内容。