做进一步说明。
【具体实施方式】
[0042]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0043]本发明提供一种身份认证装置。
[0044]参照图1,图1为本发明身份认证装置第一实施例的功能模块示意图。
[0045]在本实施例中,所述身份认证装置应用于家电设备,所述身份认证装置包括:
[0046]加密模块10,用于获取待加密数据,通过云端公钥对所述待加密数据进行加密,得到第一密文,并将所述第一密文发送给云端,以供所述云端通过云端私钥对所述第一密文进行解密,基于解密后的第一密文,通过家电设备公钥得到第二密文,并将所述第二密文发送给所述家电设备;
[0047]家电设备中存在一对SM2的公钥和私钥,即为家电设备公钥和家电设备私钥。所述SM2的公钥和私钥存在license中,由license服务器通过PCI (Payment Card Industry,支付卡行业)加密卡生成。云端中也存在一对SM2的公钥和私钥,即云端公钥和云端私钥。所述家电设备将所述家电设备公钥发送给所述云端,当所述云端接收到所述家电设备公钥时,将所述家电设备公钥固化在SDK(software development kit,软件开发工具包)中。所述云端将所述云端公钥发送给所述家电设备,当所述家电设备接收到所述云端公钥时,将所述云端公钥固化在所述SDK中。需要说明的是,所述家电设备包括但不限于空调、洗衣机、电饭锅、电热毯和电视机。所述SM2是国家密码管理局发布的椭圆曲线公钥密码算法,加密强度为256位。所述SM2算法可以完成签名、密钥交换以及加密应用。
[0048]所述家电设备获取待加密数据,通过云端公钥对所述待加密数据进行加密,并将加密后的所述待加密数据作为第一密文,并将所述第一密文发送给所述云端。所述云端通过与所述云端公钥对应的云端私钥对所述第一密文进行解密,得到解密后的第一密文,所述云端基于解密后的第一密文,并通过其SDK中的所述家电设备公钥对所述解密后的第一密文再次加密,得到第二密文,并将所述第二密文发送给所述家电设备。所述待加密数据包括第一随机数和MAC(Media Access Control,媒体访问控制)地址。所述第一随机数为16字节,所述MAC地址也为16字节,所述第一随机数是一组没有规律的随机数。即当所述家电设备获取到所述第一随机数和所述MAC地址时,所述家电设备将16字节的第一随机数和16字节的MAC地址进行拼接,采用所述云端公钥对拼接后的所述第一随机数和所述MAC地址进行加密,并将加密后的第一随机数和所述MAC地址作为第一密文,将所述第一密文发送给所述云端。当所述云端接收到所述第一密文时,所述云端通过与所述云端公钥对应的云端私钥对加密后的第一随机数和MAC地址进行解密,从所述加密后的第一随机数和MAC地址中提取第二随机数。当所述云端提取到第二随机数时,所述云端对所述第二随机数以及其存储的第三随机数进行拼接,并通过所述云端SDK中的家电设备公钥对拼接后的第二随机数和第三随机数进行加密,将加密后的数据作为第二密文,将所述第二密文发送给家电设备。
[0049]若所述云端通过所述云端私钥未能成功解密所述第一密文时,表明所述家电设备为非法的家电设备,所述云端断开与所述非法的家电设备之间的连接,防止所述非法的家电设备攻击所述云端,或者从所述云端非法获取数据等。
[0050]解密模块20,用于当接收到所述第二密文时,通过家电设备私钥对所述第二密文进行解密,得到解密后的第二密文;
[0051]当所述家电设备接收到所述云端发送的第二密文时,所述家电设备通过与所述家电设备公钥对应的家电设备私钥对所述第二密文进行解密,得到解密后的第二密文。
[0052]发送模块30,用于若解密后的第二密文满足预设条件,则发送解密成功的提示消息给所述云端,以供所述云端根据所述提示消息确认所述家电设备为合法的家电设备。
[0053]所述发送模块30包括:
[0054]对比单元,用于从所述解密后的第二密文中提取第二随机数,并将所述第二随机数与第一随机数进行对比;
[0055]第二发送单元,若所述第二随机数与所述第一随机数相同,则发送解密成功的提示消息给所述云端,以供所述云端根据所述提示消息确认所述家电设备为合法的家电设备。
[0056]当所述家电设备得到所述解密后的第二密文时,若所述解密后的第二密文满足预设条件,所述家电设备则确认所述云端为合法的云端。所述家电设备则发送解密成功的提示消息给所述云端。当所述云端接收到所述家电设备发送的提示消息后,所述云端根据所述提示消息确认所述家电设备为合法的家电设备。所述家电设备从所述解密后的第二密文中提取第二随机数,并将所述第二随机数与所述第一随机数进行比较。当所述第二随机数与所述第二随机数相同时,所述家电设备确认所述云端为合法的云端。需要说明的是,所述预设条件即为所述第一随机数与所述第二随机数相同,所述第二随机数和第三随机数是没有规律的随机数。
[0057]进一步地,所述发送模块30还包括:
[0058]加密单元,用于若解密后的第二密文满足预设条件,则输出解密成功的提示消息,并通过SM4加密算法加密所述提示消息,得到加密后的提示消息;
[0059]第一发送单元,用于将所述加密后的提示消息发送给所述云端,以供所述云端接收所述加密后的提示消息,通过SM4算法解密所述加密后的提示消息,其中,当所述云端成功解密所述加密后的提示消息时,所述云端确认所述家电设备为合法的家电设备。
[0060]进一步地,当加密后的第二密文满足预设条件,即所述第一随机数与所述第二随机数相同时,所述家电设备输出解密成功的提示消息,并通过SM4加密算法加密所述提示消息,得到加密后的提示消息,并将所述加密后的提示消息发送给所述云端。当所述云端接收到所述家电设备发送的加密后提示消息后,通过所述SM4算法对所述加密后的提示消息进行解密。若所述云端能正常解密所述加密后的提示消息,则表明所述家电已经从所述第二密文中成功提取所述第三随机数,所述云端确认所述家电设备为合法的家电设备。需要说明的是,所述家电设备通过所述SM4加密算法加密所述提示消息时所用密钥为第一随机数与第三随机数相异或后所得的数据。所述SM4加密算法是用于无线局域网和可信计算系统的专用分组密码算法,所述SM4加密算法的分组长度为128比特,密钥长度也为128比特。如所述家电设备通过SM4加密算法,使用第一随机数与第三随机数相异或后所得的数据对所述提示消息“0K”进行加密。当所述云端成功解密得到所述提示消息“0K”时,所述云端确认所述家电设备为合法的家电设备。
[0061 ]在本实施例中,提供一种身份认证装置,该装置包括:加密模块,用于获取待加密数据,通过云端公钥对所述待加密数据进行加密,得到第一密文,并将所述第一密文发送给云端,以供所述云端通过云端私钥对所述第一密文进行解密,基于解密后的第一密文,通过家电设备公钥得到第二密文,并将所述第二密文发送给所述家电设备;解密模块,用于当接收到所述第二密文时,通过家电设备私钥对所述第二密文进行解密,得到解密后的第二密文;发送模块,用于若解密后的第二密文满足预设条件,则发送解密成功的提示消息给所述云端,以供所述云端根据所述提示消息确认所述家电设备为合法的家电设备。通过在云端和家电设备两端进行相互的身份认证,且家电设备私钥和云端私钥不在网络上传输,提高了家电设备与云端之间数据交互的安全性。
[0062]参照图2,图2为本发明身份认证装置第二实施例的功能模块示意图,基于本发明身份认证装置的第一实施例提出本发明身份认证装置的第二实施例。
[0063]在本实施例中,所述身份认证装置还包括:
[0064]判断模块40,用于判断所述解密后的第二密文是否满足预设条件;
[0065]确认模块50,用于若所述解密后的第二密文不满足预设条件,则将确认所述云端为非法的云端,断开与所述非法的云端的连接。
[0066]当所述家电设备得到所述解密后的第二密文后,所述家电设备判断所述第二密文是否满足预设条件,即所述家电设备判断所述第二密文中的第二随机数与所述第一随机数是否相同。当所述解密后的第二密文不满足所述