身份认证技术物联网身份认证技术物联网 身份认证




身份认证技术物联网身份认证技术物联网 身份认证

2022-07-21 1:04:18 网络知识 官方管理员

设备身份认证技术

物联网系统安全离不开设备的身份认证和访问授权,我们现在已经在使用不同协议层上的身份认证技术,比如链路层的802.1x,传输层的TLS,应用层的OAuth2.0等。

身份认证技术(物联网身份认证技术)(1)

802.1x协议是起源于802.11的访问控制和认证协议,基于C/S机构,可以限制未经授权的设备通过接入端口访问LAN/WLAN。在认证通过之前,802.1x只允许EAPOL(基于局域网的扩展认证协议)数据通过设备连接的交换机端口;认证通过以后,业务数据方可通过以太网端口。

OAuth协议其实不是一个认证协议,而是一个授权协议。OAuth开放授权标准允许用户授权第三方应用访问他们存储在另外的服务提供者上的部分信息,而不需要将用户名和密码提供给第三方应用。目前OAuth1.0协议已经不再使用,主要使用的是OAuth2.0协议。现在很多移动应用或网站上都是用微信授权登录,这里就是使用了OAuth2.0协议。

大部分物联网协议,如MQTT、HTTP等都是基于TCP的,从安全考虑,物联网系统通常都需要使用加密协议来进行数据传输,如MQTTS、HTTPS等。这些协议都是基于传输层安全协议TLS(TransportLayerSecurity)来实现的,因此TLS也是物联网系统最主要的安全认证手段,其他认证手段可以作为补充。本文将重点介绍TLS协议。

传输层安全TLS

TLS协议前身是安全套接层(SSL:SecureSocketsLayer),SSL/TLS就是在TCP层上加了一层加密,这样就保证上层信息传输的安全。HTTP协议是明文传输,加上SSL层之后,就变成了HTTPS。

身份认证技术(物联网身份认证技术)(2)

SSL/TLS与HTTP/TCP的关系

SSL最初是由网景公司(Netscape)研发,后被IETF(互联网工程任务组)标准化后写入RFC(RequestforComment)中,改为TLS。我们现在用的都是TLS协议,但由于大家习惯了SSL这个称呼,所以一般还称为SSL。

TLS认证过程

TLS的认证过程依赖于握手完成。

身份认证技术(物联网身份认证技术)(3)

TLS握手

1.ClientHello

握手第一步是客户端服务端发送ClientHello消息。这个消息里包含了一个客户端生成的随机数Random1、客户端支持的加密套件(SupportCiphers)和SSLVersion等信息。

2.ServerHello

第二步是服务端向客户端发送ServerHello消息,这个消息会从ClientHello传过来的SupportCiphers里确定一份加密套件,这个套件决定了后续加密和生成摘要时具体使用哪些算法,另外还会生成一份随机数Random2。至此客户端和服务端都拥有了两个随机数(Random1Random2)。

3.Certificate

这一步是服务端将自己的证书下发给客户端,让客户端验证自己的身份,客户端验证通过后取出证书中的公钥。

4.ServerHelloDone

ServerHelloDone通知客户端ServerHello过程结束。

5.ClientKeyExchange

客户端根据服务器传来的公钥生成了PreMasterKey,这一步就是将这个key传给服务端,服务端再用自己的私钥解出这个PreMasterKey得到客户端生成的Random3。至此,客户端和服务端都拥有Random1Random2Random3,两边再根据同样的算法就可以生成一份秘钥,握手结束后的应用层数据都是使用这个秘钥进行对称加密。

之所以要使用三个随机数,是因为整个握手过程的数据都是明文传输的,用多个随机数种子来生成秘钥不容易被暴力破解。

6.ChangeCipherSpec(Client)

这一步是客户端通知服务端后面再发送的消息都会使用前面协商出来的秘钥加密了,是一条事件消息。

7.ClientFinish

客户端将前面的握手消息生成摘要再用协商好的秘钥加密,这是客户端发出的第一条加密消息。服务端接收后会用秘钥解密,能解出来说明前面协商出来的秘钥是一致的。

8.ChangeCipherSpec(Server)

这一步是服务端通知客户端后面再发送的消息都会使用加密。

9.ServerFinish

这一步服务端也会将握手过程的消息生成摘要再用秘钥加密,这是服务端发出的第一条加密消息。客户端接收后会用秘钥解密,能解出来说明协商的秘钥是一致的。

到这里,双方已安全地协商出了同一份秘钥,所有的应用层数据都会用这个秘钥加密后再通过TCP进行可靠传输。

身份认证技术(物联网身份认证技术)(4)

TLS双向认证

客户端依赖于服务器的证书来完成对服务器的身份认证,基于安全性考虑,物联网场景中可能还会要求客户端向服务端上报证书,实现双向认证(如上图所示)。

发表评论:

最近发表
网站分类
标签列表