IoT/ICS领域涉及非对称加密的网络协议分析:
TLS/SSL协议
TLS/SSL协议。最常见的HTTP/Modbus/MQTT/FTPS/XMPP/AMQP/OPC UA/都可在TLS协议基础上实现安全传输,很多私有协议(如西门子S7comm-Plus)也是在TLS或者HTTPS上层再做了定制。
TLS协议涉及的私钥有两种。一种是用于证书的私钥,遵循X.509格式,用于解密客户端发来的对称秘钥,在设备中存储。申请下来的证书中包含公钥、受信任的设备标识和上级CA机构,通过证书链验证本证书的可信性。证书在建立连接时发给客户端,用于表示设备的可信性。一种是会话私钥,该私钥每次会话临时生成,且不在网络上传输,而是通过DH类秘钥交换协议和对方生成同一个共享加密秘钥,用于后续的对称加密。
证书的秘钥会在服务器端存储。1)有的厂商(比如群晖)会要求用户自行上传证书和秘钥。2)有的是初始化的时候需要联网重新申请证书和秘钥的。3)有的是出厂即预置了相同证书和秘钥。在已知私钥的情况下,破解流量是很容易的。有些情况下,客户端也需要证书验证,这时候客户端也会有对应的证书私钥。
DTLS协议
DTLS协议。和TLS协议类似,但基于UDP实现。CoAP协议是在DTLS协议基础上实现的加密传输。
SSH协议
SSH协议。SSH协议支持口令和非对称密码验证。非对称密码验证是将公钥存在服务器中,私钥存储在客户端中。IoT设备一般作为服务器端,很少作为客户端,因此也不存储私钥。
IPSec协议
IPSec协议。IP层的安全协议,一般用于VPN连接,配置过程较为复杂。同样基于X.509证书,认证过程要求双方均提供证书。相应的,双方均存储自己的私钥。
其他私有协议
其他私有协议。厂商在TCP/HTTP等协议基础上自行实现的全流量加密或部分加密的协议。
- 欢迎评论以及发邮件和作者交流心得。
- 版权声明:本文为 m2kar((https://m2kar.cn)) 的原创文章,遵循CC 4.0 BY-SA版权协议,转载请发邮件征求作者同意,并附上原文出处链接及本声明。
- 合规声明: 本文仅限于技术交流,请读者遵守当地法律,如造成侵权、违法、犯罪行为,与本文无关。如本文侵犯到您的权利,请发邮件告知,本站将会做出适当处理。
- 作者: m2kar
- 邮箱:
m2kar.cn<at>gmail.com
- 主页: m2kar.cn
- Github: github.com/m2kar
- CSDN: M2kar的专栏
欢迎在ISSUE参与本博客讨论: m2kar/m2kar.github.io#25