发明名称 一种远程安全访问智能家居的可信系统
摘要 一种远程安全访问智能家居的可信系统设计分为两部分:一、带登陆验证的地址映射部分;二、通信密钥管理部分。带登陆验证的地址映射,在用户登录接入服务器系统后,为用户建立起公网地址与局域网地址的映射关系。通信密钥管理协商访问设备与家庭服务器通信的通信密钥,并对此后的通信数据用该密钥进行加密与解密。保证了除家庭服务器与访问设备双方外的其他人无法获知通信的内容,同时也确保作为中间人的接入服务器对通信数据做了恶意篡改后,通信双方可以及时发现,并结束通信。本发明对用户对接入服务器所在的物业公司具有较高的可信任度。适合应用于智能家居现实场景中,有利于智能家居的社会推广。
申请公布号 CN102594823B 申请公布日期 2014.10.22
申请号 CN201210038863.9 申请日期 2012.02.20
申请人 南京邮电大学 发明人 黄海平;谭志刚;王汝传;徐佳;严骐;董富贵;冒梅琴;韦余杰
分类号 H04L29/06(2006.01)I;H04L29/12(2006.01)I;H04L9/32(2006.01)I;H04L9/08(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 一种远程安全访问智能家居的可信系统,其特征在于,该系统包括带登陆验证的地址映射子系统和通信密钥管理子系统,将在家庭中安装了智能家居管理系统的设备称为家庭服务器;将位于公网与内网之间具有公网IP地址和内网IP地址的服务器称为接入服务器;将用来访问系统的设备称为访问设备;a.)带登陆验证的地址映射子系统:带登陆验证的地址映射子系统对用户的注册账号与家庭服务器IP地址的映射关系进行管理,与传统的网络地址转换协议NAT不同,地址映射关系的建立由用户登陆验证成功而触发,而网络地址转换协议则是由内网设备发起公网通信请求而建立地址映射关系,此子系统分成两个模块:请求接入模块和数据传输模块;登录与请求接入模块的执行步骤如下:步骤1:用户登陆接入服务器中的访问接入系统,提交用户名和密码;步骤2:接入服务器根据用户提交的用户名与密码,从用户数据库中查找出该用户的注册信息,对用户的身份的合法性进行验证,如果身份验证通过,转向步骤3;否则,反馈给用户验证失败信息,并拒绝其接入系统,结束;步骤3:接入服务器从数据库中查找用户的注册信息,取出该用户注册的家庭服务器的IP地址Home_IP和服务端口Home_Port,随机选择一个可用的接入服务器端口Port,将端口Port与家庭服务器地址Home_IP的映射关系添加到端口地址映射表中,并将该服务端口Port告知访问设备;端口地址映射表的存储格式为:《服务器端口,访问设备IP,访问设备端口,家庭服务器IP,家庭服务器端口》;步骤4:用户发出退出访问请求,接入服务器根据其数据报文中的端口号,从端口地址映射表中删除接入服务器端口号为Port的记录;数据传输模块的执行步骤如下:步骤1:接入服务器收到公网发送的数据包,分析数据报文的目的地址与端口,从端口地址映射表中查找出该端口所映射的家庭服务器IP,若查找成功,则接入服务器将数据报文的目的地址与端口替换成家庭服务器的IP和端口,然后将报文转发至内网;否则不予回应;步骤2:接入服务器收到内网发送的数据包,分析其数据报文的目的地址与端口,从端口地址映射表中查找出该端口所映射的访问设备IP与端口,若查找成功,则接入服务器将数据报文中的目的地址与端口替换成访问设备IP地址与端口,然后将该数据报文转发至公网;否则不予回应;b).通信密钥管理子系统该子系统在访问设备对家庭服务器远程访问和控制之前,起到协商数据通信密钥的作用,然后用协商出的通信密钥对访问和控制数据流进行加密,保证通信数据的保密传输,具体执行步骤如下:步骤1:定义若干种公钥加密算法组成一个公钥加密算法列表,定义若干种哈希函数组成一个哈希函数列表,并将它们初始化到家庭服务器和访问设备中,为每一个访问设备分配一个预设密钥S,为访问设备和家庭服务器各分配一个变量msgs,用于保存每次通信过程中产生的通信数据;步骤2:由家庭服务器生成若干份电子证书,其中一份安装在家庭服务器中,作为家庭服务器的电子证书,其余证书安装于可能参与通信的访问设备中,作为访问设备的电子证书;步骤3:访问设备向家庭服务器发起通信请求,将自身安装的公钥加密算法列表、哈希函数列表、电子证书和一个随机的大整数R<sub>A</sub>组成一个数据报文发送给家庭服务器,将该报文的数据同时保存到访问设备的变量msgs中;步骤4:家庭服务器接收到访问设备发送的数据报文,将报文的数据保存至家庭服务器的变量msgs中,家庭服务器取出报文中访问设备的电子证书,验证该证书的合法性且是否为自己颁发的,如果验证通过,转向步骤5;否则,拒绝通信请求,结束;步骤5:家庭服务器将从访问设备发送的数据报文取出公钥加密算法列表,从算法列表中选择一个公钥加密算法,作为此次通信使用的公钥加密算法;从哈希函数列表中选择一个哈希函数hash,作为此次通信使用的哈希函数,然后告知访问设备接入服务器所选择的公钥加密算法和哈希函数,从数据报文中取出大整数R<sub>A</sub>,并保存至内存中,生成一个随机的大整数R<sub>B</sub>,将R<sub>B</sub>与自己的电子证书组成一个数据报文发给访问设备,将该报文的数据同时追加到家庭服务器的变量msgs中;步骤6:访问设备收到家庭服务器发送的数据报文,将该报文中的数据追加到访问设备的变量msgs中,从报文中取出R<sub>B</sub>和电子证书,验证电子证书的合法性和身份真实性,如果验证通过,则转向步骤7;否则,拒绝继续通信,结束;步骤7:访问设备计算并产生K=hash(S,R<sub>A</sub>,R<sub>B</sub>),K为此次通信的加密密钥,用家庭服务器的电子证书中的公钥对S进行加密产生S的密文M<sub>S</sub>,用哈希函数hash计算出msgs的散列码H<sub>A</sub>,将得到的散列码H<sub>A</sub>用密钥K加密成密文M<sub>H</sub>,访问设备将M<sub>S</sub>和M<sub>H</sub>组成一个数据报文发送给家庭服务器,将该报文的数据追加至访问设备的变量msgs中;步骤8:家庭服务器通过哈希函数hash计算出之前保存的msgs的散列码H<sub>B</sub>,接收访问设备发送的数据报文,取出报文中的M<sub>S</sub>和M<sub>H</sub>,将收到的报文数据追加至家庭服务器的变量msgs中,通过家庭服务器的私钥对密文M<sub>S</sub>进行解密,得到预设密钥S,计算产生K=hash(S,R<sub>A</sub>,R<sub>B</sub>),得到通信密钥K,用密钥K解密M<sub>H</sub>得到散列码H<sub>A</sub>,比较H<sub>A</sub>和H<sub>B</sub>是否相等,如果相等则说明数据成功接收,未出现篡改,转向步骤9;否则,说明接收到的数据存在潜在危险,结束;步骤9:家庭服务器利用哈希函数hash对保存的msgs计算出新的散列码H<sub>B</sub>,将散列码H<sub>B</sub>利用通信密钥K加密成密文M<sub>H</sub>,组成一个报文发送给访问设备;步骤10:访问设备接收到家庭服务器发送的数据报文,将M<sub>H</sub>取出,用通信密钥K进行解密,得到散列码H<sub>B</sub>,访问设备用哈希函数hash对保存的msgs计算出新的散列码H<sub>A</sub>,比较H<sub>A</sub>和H<sub>B</sub>是否相等,如果相等则说明数据成功接收,未出现篡改,通信密钥K协商成功,之后的通信数据由K进行加密;否则,结束。
地址 210003 江苏省南京市新模范马路66号