一种无计算能力终端安全认证方法、 系统和装置 技术领域 本发明涉及信息安全技术领域, 更具体地说, 涉及一种无计算能力终端安全认证 方法、 系统和装置。
背景技术 物联网 (Internet of Things) 指的是将无处不在的末端设备和设施, 包括具备 “内在智能” 的传感器、 移动终端、 工业系统、 楼控系统、 家庭智能设施、 视频监控系统等, 和 “外在使能” 的, 如贴上射频识别 (RFID, Radio Frequency IDentification) 的各种资产、 携 带无线终端的个人与车辆等 “智能化物件或动物” 或 “智能尘埃” , 通过各种无线和 / 或有线 的长距离和 / 或短距离通讯网络实现互联互通、 应用大集成以及基于云计算的软件营运等 模式, 在内网、 专网、 和 / 或互联网环境下, 采用适当的信息安全保障机制, 提供安全可控乃 至个性化的实时在线检测、 定位追溯、 报警联动、 调度指挥、 预案管理、 远程维保、 在线升级、 统计报表、 决策支持、 领导桌面等管理和服务功能, 实现对 “万物” 的高效、 节能、 安全、 环保 的管、 控、 营一体化。
但在目前的物联网技术中, 由于很多物品识别标签或传感器仅有存储和简单访问 控制能力, 没有计算能力, 即便有些识别标签或传感器具有计算能力, 但由于在这种情况下 会缩短读写距离或增加交互时间, 因此很多 RFID 芯片或传感器依然采用唯一标识符 (UID, unique identifier) 方式进行认证, 但一旦合法终端内的数据被截取、 复制, 生成未被授权 的非法终端, 读写器将无法对该非法终端进行识别, 从而造成相应的安全隐患。
发明内容
有鉴于此, 本发明实施例提供一种无计算能力终端安全认证方法、 系统和装置, 以 提高现有无计算能力终端认证系统的安全性。
本发明实施例是这样实现的 :
本发明提供了一种无计算能力终端安全认证方法, 在对所述终端和读写装置进行 初始化之后, 包括 :
所述读写装置向所述终端写入认证数据 ;
所述读写装置通过读取所述认证数据中的数据信息对所述终端进行认证 ;
当所述终端为授权终端时, 所述读写装置更新所述终端中的认证数据。
优选地, 对所述终端和读写装置进行初始化, 包括 :
为所述终端设置对应密钥 K, 并将所述 K 存储至所述读写装置。
优选地, 对所述终端和读写装置进行初始化, 包括 :
在所述读写装置中存储根密钥 K’ , 通过所述跟密钥 K’ 与所述终端所对应的唯一 标识符获取所述终端对应的密钥 K。
优选地, 所述读写装置向所述终端写入认证数据, 包括 : 所述读写装置向所述终端 写入 Ri||Enc(K, Ri), 其中, 所述 Ri 为随机数, 所述 Enc 为一种算法。优选地, 所述读写装置通过读取所述认证数据中的数据信息对所述终端进行认 证, 包括 :
所述终端将所存储的 Ri||Enc(K, Ri) 发送至所述读写装置, 所述读写装置根据 K、 所接收到的 Ri 值和 Enc 计算 Enc(K, Ri) 值, 如果计算结果与所接收到的 Enc(K, Ri) 相同, 则 所述终端为授权终端 ; 否则所述终端为未授权终端。
优选地, 所述 Ri = R(i-1)+1。
优选地, 还包括 : 所述读写装置将所接收到的 Ri 与上次认证过程中的所述终端发 送的 Ri-1 进行比较, 如果 Ri 小于 Ri-1, 则所述终端已被假冒。
优选地, 所述读写装置更新所述终端中的认证数据, 包括 : 所述读写装置向所述终 端写入 Ri+1||Enc(K, Ri+1)。
优选地, 所述读写装置向所述终端写入认证数据, 包括 :
所述读写装置向所述终端写入 Ri||Enc1(K, Ri)||Enc2(K, Enc1(K, Ri)), 其中, 所述 Ri 为随机数, 所述 Enc1 和 Enc2 分别为一种算法。
优选地, 所述读写装置通过读取所述认证数据中的数据信息对所述终端进行认 证, 包括 :
所述终端将所存储的 Ri 发送至所述读写装置, 所述读写装置根据 K、 所接收到的 Ri 值和 Enc1 计算 Enc1(K, Ri) 值, 并将计算结果返回至所述终端, 所述终端将接收到的计算 结果与本身存储的 Enc1(K, Ri) 值进行比对, 如果相同, 则表明所述读写装置为授权读写装 置, 并向所述读写装置发送 Enc2(K, Enc1(K, R1)), 所述读写装置根据 K、 所接收到的 Ri 值和 Enc1、 Enc2 计算 Enc2(K, Enc1(K, R1)) 值, 当计算结果与所接收到的 Enc2(K, Enc1(K, R1)) 值相 同, 则所述终端为授权终端, 否则所述终端为未授权终端。
优选地, 所述 Ri = R(i-1)+1。
优选地, 还包括 : 所述读写装置将所接收到的 Ri 与上次认证过程中的所述终端发 送的 Ri-1 进行比较, 如果 Ri 小于 Ri-1, 则所述终端已被假冒。
优选地, 所述读写装置更新所述终端中的认证数据, 包括 : 所述读写装置向所述终 端中写入 R(i+1)||Enc1(K, R(i+1))||Enc2(K, Enc1(K, R(i+1)))。
本发明提供了一种无计算能力终端安全认证系统, 包括 : 读写装置和终端, 其中,
所述读写装置, 用于向所述终端存入认证数据, 通过读取所述认证数据中的数据 信息对所述终端进行认证, 当所述终端为授权终端时, 更新所述终端中的认证数据 ;
所述终端, 用于存入所述读写装置发送的认证数据, 向所述读写装置发送所述认 证数据, 以使所述读写装置对其进行认证, 当为授权终端时, 存入更新后的认证数据。
本发明提供了一种读写装置, 包括 : 输出单元、 认证单元、 更新单元, 其中,
所述输出单元, 用于向终端中存入认证数据 ;
所述认证单元, 用于根据所述终端所发送的认证数据对所述终端进行认证 ;
所述更新单元, 当所述终端为授权终端时, 用于更新所述终端的认证数据。
本发明提供了一种, 包括 : 存储单元和发送单元, 其中,
所述存储单元, 用于将存储读卡器所发送的认证数据 ;
所述发送单元, 用于将所述存储单元所存储的认证数据发送至所述读卡器中, 以 进行认证。对现有技术相比, 本发明实施例提供的技术方案具有以下优点和特点 : 本发明实 施例所提供的技术方案, 通过预先在被认证终端中存储一定的认证数据, 并在该终端通过 认证之后, 及时更新其内部的认证数据, 这样即便终端在认证过程中数据遭到窃听、 伪造, 也可被认证系统及时识别, 从而有效提高了终端认证系统的安全性。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可 以根据这些附图获得其他的附图。
图 1 为本发明实施例所提供的一种无计算能力终端安全认证方法流程图 ;
图 2 为本发明实施例所提供的一种无计算能力终端安全认证系统结构示意图 ;
图 3 为本发明实施例所提供的一种读写装置结构示意图 ;
图 4 为本发明实施例所提供的一种无计算能力终端结构示意图 ;
图 5 为本发明实施例所提供的一种结合具体场景的无计算能力终端安全认证方 法流程图 ;
图 6 为本发明实施例所提供的另一种结合具体场景的无计算能力终端安全认证 方法流程图。具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。
本发明实施例提供了一种无计算能力终端安全认证方法, 在进行终端认证之前, 首先需要进行系统的初始化, 在本实施例中可采用一下方式进行初始化 :
为终端设置对应的密钥 K, 并将该密钥 K 存储至读写装置中 ; 或者在读写装置中存 储根密钥 K’ , 该 K’ 与终端所对应的唯一标识符进行运算获取该终端的密钥 K。
完成系统的初始化之后, 可以执行如图 1 所示步骤 :
步骤 101 : 读写装置向终端写入认证数据 ;
在本步骤中, 如果只需要进行读写装置对终端进行认证, 则读写装置可以向终端 中写入 Ri||Enc(K, Ri), 其中, 所述 Ri 为随机数, 所述 Enc 为一种算法, 该算法可以是加密算 法, 也可以是杂凑算法。
而如果在读写装置认证终端的过程中, 终端还需要对读写装置进行认证, 则读写 装置可向终端中写入 Ri||Enc1(K, Ri)||Enc2(K, Enc1(K, Ri)), 其中, 所述所述 Ri 为随机数, 所 述 Enc1 和 Enc2 分别为一种加密算法, 例如加密算法、 杂凑算法等。
另外, 还可对 Ri 的值进行限定, 如 Ri = R(i-1)+1, 也就是说, 每次所写入的认证数据 呈现一定规律性。
步骤 102 : 所述读写装置通过读取所述认证数据中的数据信息对所述终端进行认证; 在本步骤中, 由于可只进行读写装置对终端的认证, 还可以在终端认证的过程中 同时对读写装置进行认证, 因此具体认证可有如下两种方式 :
读写装置只对终端进行认证, 所述终端将所存储的 Ri||Enc(K, Ri) 发送至所述读 写装置, 所述读写装置根据所接收到的 Ri 值、 K 和 Enc 计算 Enc(K, Ri) 值, 如果计算结果与 所接收到的 Enc(K, Ri) 相同, 则所述终端为授权终端, 并执行步骤 103 ; 否则所述终端为未 授权终端。
读写装置和终端进行双向认证, 所述终端将所存储的 Ri 发送至所述读写装置, 所 述读写装置根据所接收到的 Ri 值、 K 和 Enc1 计算 Enc1(K, Ri) 值, 并将计算结果返回至所述 终端, 所述终端将接收到的计算结果与本身存储的 Enc1(K, Ri) 值进行对比, 如果相同, 则表 明所述读写装置为授权读写装置, 并向所述读写装置发送 Enc2(K, Enc1(K, R1)), 所述读写装 置根据所接收到的 Ri 值、 K 和 Enc1、 Enc2 计算 Enc2(K, Enc1(K, R1)) 值, 当计算结果与所接收 到的 Enc2(K, Enc1(K, R1)) 值相同, 则所述终端为授权终端, 并执行步骤 103, 否则所述终端 为未授权终端。
需要说明的是, 当 Ri = R(i-1)+1 时, 还可验证终端是否已被假冒。读写装置在接收 到终端发送的 Ri 时, 将其与上次认证过程中的随机数 Ri-1 进行比较, 如果 Ri 小于 Ri-1, 则表
示该终端已被假冒。
步骤 103 : 当所述终端为授权终端时, 所述读写装置更新所述终端中的认证数据。
同理, 在认证数据更新过程中, 仍然需要结合具体的认证方式进行, 例如当终端认 证为仅认证终端时, 所述读写装置可以向所述终端中写入 Ri+1||Enc(K, Ri+1) ; 而当认证为 双向认证时, 所述读写装置可以向所述终端中写入 R(i+1)||Enc1(K, R(i+1))||Enc2(K, Enc1(K, R(i+1)))。
本发明实施例所提供的一种无计算能力终端安全认证方法, 通过预先在终端中存 储一定的认证数据, 并在该终端通过认证之后, 及时更新其内部的认证数据, 这样即便终端 在认证过程中数据遭到窃听、 伪造, 也可被认证系统及时识别, 从而有效提高了终端认证系 统的安全性。
相应地, 本发明实施例还提供了一种无计算能力终端安全认证系统, 该系统具体 结果如图 2 所示, 包括 : 读写装置 201 和终端 202, 其中,
所述读写装置 201, 用于向所述终端 202 写入认证数据, 通过读取所述认证数据中 的数据信息对所述终端进行认证, 当所述终端 202 为授权终端时, 更新所述终端 202 中的认 证数据 ;
所述终端 202, 用于存入所述读写装置 201 发送的认证数据, 向所述读写装置 201 发送所述认证数据, 以使所述读写装置 201 对其进行认证, 当为授权终端时, 存入更新后的 认证数据。
除此之外, 本发明实施例还相应提供了一种读写装置, 该读写装置结构如图 3 所 示, 包括 : 输出单元 301、 认证单元 302、 更新单元 303, 其中,
所述输出单元 301, 用于向终端中写入认证数据 ;
所述认证单元 302, 用于根据所述终端所发送的认证数据对所述终端进行认证 ;
所述更新单元 303, 当所述终端为授权终端时, 用于更新所述终端的认证数据。更具体的, 当输出单元写入终端的认证数据为 Ri||Enc(K, Ri), 其中, Ri 为随机数, K 为该终端所对应的密钥, Enc 为一种算法。如果只进行终端认证, 则所述认证单元 302 可 以包括第一接收子单元、 第一计算子单元和第一比较子单元, 其中 :
所述第一接收子单元, 用于接收终端所发送的 Ri||Enc(K, Ri) ;
所述第一计算子单元, 用于根据 K、 所接收到的 Ri 值和 Enc 计算 Enc(K, Ri) 值 ;
所述第一比较子单元, 用于将计算子单元计算所得的 Enc(K, Ri) 与接收子单元所 接收到的 Enc(K, Ri) 进行比较, 如果相同, 则认为终端为授权终端 ; 否则为未授权终端。
另外, 当需要进行双向认证, 且写入终端的认证数据为 Ri||Enc1(K, Ri)||Enc2(K, Enc1(K, Ri)), 其中, Ri 为随机数, K 为该终端所对应的密钥, Enc1 和 Enc2 分别为一种算法。 则认证单元 302 可包括第二接收子单元、 第二计算子单元和第二比较子单元, 其中 :
所述第二接收子单元, 用于接收终端所发送的随机数 Ri, 还用于接收终端所发送 的 Enc2(K, Enc1(K, R1)) ;
所述第二计算子单元, 用于根据 K、 所接收到的 Ri 值和 Enc1 计算 Enc1(K, Ri) 值, 还 用于根据 K、 所接收到的 Ri 值和 Enc1、 Enc2 计算 Enc2(K, Enc1(K, R1)) 值 ;
所述第二比较子单元, 用于将计算子单元计算所得的 Enc2(K, Enc1(K, R1)) 与第二 接收子单元所接收到的 Enc2(K, Enc1(K, R1)) 进行比较, 如果相同, 则认为终端为授权终端 ; 否则为未授权终端。
最后, 本发明实施例还提供了一种无计算能力终端, 该终端结构如图 4 所示, 包 括: 存储单元 401 和发送单元 402, 其中,
所述存储单元 401, 用于将存储读写装置所发送的认证数据 ;
所述发送单元 402, 用于将所述存储单元 401 所存储的认证数据发送至所述读写 装置中, 以进行认证。
结合上述方法、 装置和具体应用场景, 本实施例对本发明的技术方案做进一步介 绍。
超市常用到的商品识别标签即为一种无计算能力的终端, 为防止标签中的内容遭 到窃听和假冒, 可采用本发明所提供的技术方案, 具体步骤如图 5 所示 :
步骤 501 : 初始化标签认证系统 ;
在本步骤中, 可采用如下方法进行标签认证系统的初始化 :
通常情况下, 每个认证系统存在多个标签, 假设在本实施例中存在 n 个授权标签, 在初始化过程中, 首先为认证系统中的读写装置载入各个授权标签的密钥 K1 ~ Kn, 其中, 为 便于识别各个标签以及其所对应的商品, 密钥 K1 至 Kn 可以是两两不同的。另外, 需要说明 的是, 在载入各个标签所对应的密钥的过程中, 可以直接为各个标签分配对应的密钥, 并将 该密钥载入读写装置中 ; 除此之外, 还可通过一定运算获取各个标签所对应的密钥, 比如通 过各个标签的 UID 与认证系统的主密钥进行运算后获取, 其中该运算可以是对称算法, 如 高级加密标准 (AES, Advanced Encryption Standard), 还可以是杂凑算法等, 如 SHA-1/256 等, 并将运算获取的密钥载入至读写装置中。
进行完上述过程之后, 为进行后续认证, 读写装置可为每个标签写入特定认证数 据。现以其中一个授权标签为例, 读写装置可以首先为该标签写入以下数据 R1||Enc1(K, R1), 其中, R1 为随机数, 该随机数长度可以根据实际应用以及标签的存储空间灵活规定 ;Enc1 为对称密码运算或杂凑密码运算, 例如 ASE 或 SHA-1/256 等, 在此并不限定 ; K 为该卡 片所对应的密钥 ; || 表示连接符。
步骤 502 : 认证系统的读写装置对标签进行认证 ;
由于在通常情况下, 认证系统中只需通过读写装置对标签进行认证, 因此在标签 认证过程中, 标签首先向读写装置发送其所存储的数据 R1||Enc(K, R1), 读写装置在接收到 标签所发送的数据之后, 根据该数据中的 R1 值计算 Enc(K, R1), 如计算结果与标签所发送数 据中的 Enc(K, R1) 值一致, 则可认为该标签为授权标签, 并执行步骤 503 ; 如计算结果与标 签所发送数据中的 Enc(K, R1) 值不一致, 则认为该标签为一未授权标签。
步骤 503 : 读写装置更新标签中的认证数据。
在标签通过认证之后, 其写权限被打开, 读写装置可以重新为该标签写入一组数 据 R2||Enc(K, R2), 其中, 为防止在认证过程中数据遭到空中窃听, 在本实施例中, R2 可以等 于 R1+1, 也就是说, 可以通过 Ri = R(i-1)+1 来对后续随机数进行定义。这样, 在初始化过程 中, 一旦系统产生第一个随机数, 后续随机数可通过公式 Ri = R(i-1)+1 获取 ; 而在认证过程 中, 系统可将该标签每次认证的 Ri 值进行记录, 以判断该标签中的相关数据是否已遭到窃 听, 具体为 : 当之前的记录结果显示该标签已经过 5 次认证, 那么其内部存储的随机数应该 为 R6, 但当发现该标签在进行第 6 次认证时向读写装置发送的随机数小于或等于 R5, 则可认 为该标签在之前的认证过程中已遭到窃听, 可以认为该标签为未授权标签。
上述实施例中的认证系统只需对标签进行认证, 而在很多情况下, 需要进行标签 和读写装置之间的双向认证, 例如超市或物流系统中, 每件货物上的标签中可能记载了该 货物的一些重要信息, 为防止未授权读写装置读取该货物的信息, 标签也可对读写装置进 行认证, 具体步骤可参见图 6 所示 :
步骤 601 : 初始化标签认证系统 ;
本步骤的具体操作方法可参照上一实施例来进行。需要说明的是, 由于本实施例 所要进行的是双向认证, 因此, 读写装置至少需要向标签中写入 R1||Enc1(K, R1)||Enc2(K, Enc1(K, R1)), 其中, R1 为随机数, 该随机数长度可以根据实际应用以及卡片的存储空间灵活 规定 ; Enc1 和 Enc2 分别为对称密码运算或杂凑密码运算, 例如 ASE 或 SHA-1/256 等, 并且 Enc1 和 Enc2 也可以是同一种算法, 在此并不限定 ; K 为该卡片所对应的密钥 ; || 表示连接 符。
步骤 602 : 标签对读写装置进行认证 :
在本步骤中, 标签首先向读写装置发送 R1, 读写装置在接收到标签发送的 R1 后, 计 算 Enc1(K, R1) 值, 并将计算结果发送给标签, 标签将接收到的结果与初始化过程中存储的 Enc1(K, R1) 值进行比较, 如果一致, 则可认为该读写装置为授权读写装置, 并执行步骤 603, 否则可认为该读写装置为未授权读写装置。
步骤 603 : 读写装置对标签进行认证 ;
在认证读写装置为授权读写装置后, 标签向读写装置发送 Enc2(K, Enc1(K, R1)), 读写装置根据之前接收到的 R1 和内部存储的算法进行计算, 并将计算结果与接收到的 Enc2(K, Enc1(K, R1)) 进行对比, 如果对比结果一致, 则可认为该标签为授权标签, 并执行步 骤 604, 否则, 可认为该标签为未授权标签。
步骤 604 : 读写装置更新标签中的认证数据。本步骤具体执行方法可参见上一实施例中的步骤 503, 但由于需要进行向认证, 因 此更新后的认证数据可以是 R2||Enc1(K, R2)||Enc2(K, Enc1(K, R2))。
如果在实际应用中仅需对读卡器进行认证, 则只需要执行上一实施例中步骤 601、 步骤 602 和步骤 604 即可, 具体方法在此不做赘述。
本领域普通技术人员可以理解 : 实现上述方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读取存储介质中, 该程 序在执行时, 执行包括上述方法实施例的步骤 ; 而前述的存储介质包括 : ROM(Read-Only Memory, 只读存储记忆体 )、 RAM(Random Access Memory, 随机存储记忆体 )、 磁碟或者光盘 等各种可以存储程序代码的介质。
对所公开的实施例的上述说明, 使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的, 本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。 因此, 本发明 将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。