NFC物联网一次性口令认证解决方案

物联网是由无线传感器网络、射频识别(RadioFrequency Identificalion,RFID)网络、互联网等构成的一种复合型网络,具有部分终端设备体积小、存储和计算处理能力弱的特点。顾名思义,物联网就是“物物相连的互联网”,也就是说,物联网是以互联网为基础的一种延伸和扩展,有着自己独有的一些特点。首先,物联网终端设备虽然都具有一定的感知计算和存储功能,但性能相差较大,整体呈现多样化,其缺点就是信息的统一处理难以进行。其次,物联网所处的物理环境十分复杂,环境的不确定性会引发设备丢失、连接时断时续等问题。

在NFC认证方面Yun-Seok 等人提出一种基于非对称密码体制的NFC 认证协议该协议可以抵御小数攻击以及重复攻击,但该协议没有实现双向认证,易遭受中间人攻击。徐伟等人提出了一种轻量级的 NFC 身份认证协议,该协议运用圆曲线密码体制,具有计算量小运算效率和安全性高的特点也可以抵御中间人攻击,但协议的安全性过于依赖加密算法,一旦算法出现漏洞则安全性大大降低。

1方案设计思想

一次性口令认证

本文对一次性口令认证方案进行优化改进,用户和系统之间利用NFC技术进行通信,通过双方消息对比完成双向认证,通过一次性口令中采用的 Hash函数的单向性和 NFC 技术本身的安全性和保密性保证通信过程的安全。

在一次性口令形式选择方面,通常把一次性口令认证分为时间同步动态口令、事件同步动态口令以及基于挑战/应答的动态口令这3种形式。时间同步机制在应用中要求保证双方时间严格同步,由于物联网环境的复杂性,现阶段的技术还难以保证双方时间严格同步事件同步机制同样需要硬件来保证认证双方的挑战序列完全同步,认证双方很容易失去同步,当双方的挑战序列产生偏差后就需要重新同步,该缺陷给事件同步机制带来了一定的限制。综上所述,本文选择实现简单且安全性较高的挑战/应答认证机制来设计认证方案。

2方案描述

为便于详细说明本文方案的具体应用,以“门禁控制”为例进行说明。门禁系统作为NFC设备发起方,负责提供支持整个通信的射频场,当门禁卡进入到射频场中时,门禁卡作为响应方响应门禁系统的通信并开始运用本文提出的认证方案进行身份认证,认证通过后系统将门打开,即实现刷卡开门的功能。其中本文提出的身份认证方案分为初始化过程和认证过程2个阶段。

2.1 初始化过程

初始化过程主要完成NFC 设备的发起冲突检测、参数确定、连接的建立以及通信双方的数据交换,这也是NFC 设备进行通信时通用的初始化流程。

在响应方进入到发起方射频场中后,双方进行匹配并开始冲突检测冲突检测是初始化的重要步骤,冲突检测即在进行匹配确定参数之前对外部环境进行检测,防止与其他工作在同一频段的NFC 设备相互干扰通过冲突检测,可以有效地防止中间人攻击。

冲突检测后进入参数确定阶段,该阶段首先产生射频场初始化ISO/EC18092NFCIP 通信,NFCIP1通信标准定义了NFC设备在1356Hz频率下的通信模式,规定了调制机制、编码、传输速率、顿结构射频接口。目前通过审核成为 NFC国际标准的标准编列有很多ISO/EC18092[NFCIP]ECMA-340ECMA-352、ECMA-356、ISO/EC21481(NFCIP-2等由于本文设计的协议具有轻量级的特点,计算量和传输量都很低,所以虽然NFCIP 标准只能够支持106kbps、212 kbps和424 khps 这3 种传输速率传输速率较低,但由于其技术成熟、兼容性强、稳定性高的特点,本文还是采用了能够同时兼容应用广泛的IS014443和1S015693等具有标准非接触式智能卡的基础架构的ISO/IEC18092也就是NFCIP标准。

2.2身份认证

认证阶段主要完成双方的双向认证。在认证过程中,双方通过验证不可逆的哈希函数的运算结果来实现认证,具体的认证过程如下:

发起方C输入ID和Pw,向响应方S 发送登录请求 Log以及SHA{ID}。

响应方S根据数据库中保存的用户名验证SHAID是否注册如果数据库中没有相关用户,则拒绝认证并断开与发起方C的对话若查询到相关用户则利用伪随机数发生算法产生挑战值R向发起方C发送RSccd、IMEI 运算后的信息。

发起方C收到消息后,通过字符串运算提取出并计算。

3方案分析

NFC物联网

3.1安全性分析

本文结合NFC技术和OTP认证技术,提出一种轻量级的身份认证方案,下面从攻击者的角度对该方案的抗攻击性进行分析:

1)抗重放攻击特性分析

由于一次性口令是由挑战值加入自身保存的种子采用哈希算法生成的,每次生成的挑战值不同,计算得出的口令也不同,可以有效地防止重放攻击。

2)抗小数攻击特性分析

本文方案中前一次认证的口令信息不会被保存后一次认证时的口令和前一次的口令也没有任何联系,从根本上防止了小数攻击。

3)假攻击特性分析

区别于传统的单向认证,本文方案中通信双方都会对收到的一次性口令和自身计算得出的口令进行比较,如发现有误,立即停止通信,实现了双向认证可以有效防止假冒攻击。

4)抗消息篡改特性分析

采用哈希函数计算得出一次性口令,哈希函数本身具有的安全特性可以使通信双方对消息的完整性进行判断,可以有效防止消息篡改。

5)抗中间人攻击特性分析

本文方案初始化时进行的NFC设备冲突检测保证了双方只有在周围没有同一频段的磁场时才会开始通信,是可以防止中间人攻击的有效手段。

3.2性能分析

根据计算复杂性理论,用户双向认证的方案性能取决于会话次数、通信量、计算量以及存储量网。

对文中提到的协议性能比较,L表示Hash函数输出使用伪随机函数生成的随机数以及挑战值的长度,P表示伪随机数运算,H表示哈希运算K表示非对称加解密运算,Se 表示对称加解密运算。

出处 计算机与现代化

原标题   物联网环境下基于NFC的一次性口令认证方案

作者 赵东昊 卢昱 王增光 张腊

参考资料

https://www.hooketech.com/one-time-password.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/272693.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark与Hadoop的关系和区别

在大数据领域,Spark和Hadoop是两个备受欢迎的分布式数据处理框架,它们在处理大规模数据时都具有重要作用。本文将深入探讨Spark与Hadoop之间的关系和区别,以帮助大家的功能和用途。 Spark和Hadoop简介 1 Hadoop Hadoop是一个由Apache基金会…

工具系列:TimeGPT_(1)获取token方式和初步使用

文章目录 介绍获取Token用法数据的重要要求使用DateTime索引推断频率。 介绍 Nixtla的TimeGPT是一种用于时间序列数据的生成式预训练预测模型。TimeGPT可以在没有训练的情况下,仅使用历史值作为输入,为新的时间序列生成准确的预测。TimeGPT可以用于各种…

亚马逊云科技 re:Invent 大会 - ElastiCache Serverless 模式来袭

大会介绍 亚马逊云科技的 re:Invent 大会是一年一度的,面向全球技术开发者科技盛会。几乎每次都会发布云科技、云计算等相关领域的产品重磅更新,不但将时下主流热门的技术不断整合,也未将来的发展标明了方向。 亚马逊云科技开发者社区为开发…

安卓系统和鸿蒙系统,哪个更适合老人使用

安卓系统和鸿蒙系统各有优势,但总体来说,鸿蒙系统可能更适合老人使用。以下是几个原因: 1.易用性: 鸿蒙系统针对老年人的使用习惯和需求进行了优化设计。它采用了更加直观、简洁的界面设计,降低复杂度并提升操作效率。…

Vue在页面上添加水印

第一步:在自己的项目里创建一个js文件;如图所示我在在watermark文件中创建了一个名为waterMark.js文件。 waterMark.js /** 水印添加方法 */ let setWatermark (str1, str2) > {let id 1.23452384164.123412415if (document.getElementById(id) …

为什么深度学习神经网络可以学习任何东西

下图你所看到的,是著名的曼德尔布罗特集,我们可以见证这个集合呈现出的复杂形态: 要理解神经网络如何学习曼德尔布罗特集,我们首先需要从最基础的数学概念讲起:什么是函数?函数本质上是一个将输入转化为输出…

AR智慧校园三维主电子沙盘系统研究及应用

一 、概述 易图讯科技(www.3dgis.top)自主研发的智慧校园三维主电子沙盘系统,采用B/S架构模式,采用自主可控高性能WebGIS可视化引擎,支持多用户客户端通过网络请求访问服务器地图和专题数据,提供地理信息数据、专题数据的并发访问…

问题解决 | Ubuntu重启无法进入系统

Ubuntu18.04重启无法进入系统,重开后如图 一直在加载系统内核4.15.0-213-generic,无法加载 错误原因 原本的系统是Ubuntu16.04,使用命令升级到Ubuntu18.04版本,升级重启后,远程无法连接! 错误解决 第一步:进入GRUB…

java爬虫(jsoup)如何设置HTTP代理ip爬数据

目录 前言 什么是HTTP代理IP 使用Jsoup设置HTTP代理IP的步骤 1. 导入Jsoup依赖 2. 创建HttpProxy类 3. 设置代理服务器 4. 使用Jsoup进行爬取 结论 前言 在Java中使用Jsoup进行网络爬虫操作时,有时需要使用HTTP代理IP来爬取数据。本文将介绍如何使用Jsoup设…

2023年9月25日,开启华为鸿蒙应用开发新纪元!!!

鸿蒙!鸿蒙!鸿蒙! 要说2023年IT圈最火爆的名词,一定是鸿蒙! 2023年9月25日,华为发布会正式宣布2024年第一季度将推出HarmonyOS NEXT版本,这意味着鸿蒙原生应用开发将彻底摆脱Android手机系统&a…

实现阿里云oos云存储,简单几步

一、前言 虽然平常学习用的不多&#xff0c;但是用的时候再去找官方文档&#xff0c;也很繁琐&#xff0c;不如直接整理以下&#xff0c;方便粘贴复制&#xff0c;本文介绍两种图片上传方式①普通上传②服务端签名直传 1.普通上传 加载maven依赖 <dependency><grou…

【PHP】发送HTTP请求时参数快速组装

1.POST、GET参数组装 利用compact、http_build_query函数 // post的数组体$a 1;$b 2;$c $a $b;$array compact(a,b,c); // 组合请求参数print_r($array);// get的url组装$paramsStr http_build_query($array);print_r($paramsStr); 打印结果 2.一个请求示例 使用guzzle …

设计模式-依赖注入模式

设计模式专栏 模式介绍模式特点应用场景依赖注入和控制反转的区别代码示例Java实现依赖注入模式Python实现依赖注入模式 依赖注入模式在spring中的应用 模式介绍 依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&#xff09;是一种面向对象编程中的设计模式&…

【宇宙猜想】AR文创入驻今日美术馆、北京天文馆等众多展馆,在AR互动中感受科技魅力!

近日&#xff0c;由「宇宙猜想」推出的AR系列文创产品先后入驻今日美术馆、北京天文馆、国家自然博物馆、上海天文馆、国家海洋馆、中华手工展馆等各大馆场并与其展开相关合作。 「宇宙猜想」致力于创造虚拟空间价值&#xff0c;用AR技术与文创产品碰撞出新的火花&#xff0c;为…

【星海随笔】网络运维

[rootlocalhost ~]# source admin-openrcRabbitMQ 工作机理 1.客户端连接到消息队列服务器&#xff0c;打开一个channel。 2.客户端声明一个exchange&#xff0c;并设置相关属性。 3.客户端声明一个queue&#xff0c;并设置相关属性。 4.客户端使用routing key&#xff0c;在ex…

初识k8s

k8s: kubernetes:八个字母省略&#xff0c;就是k8s 自动部署&#xff0c;自动扩展和管理容器化部署的应用程序的一个开源系统 k8s是负责自动化运维管理多个容器化程序的集群&#xff0c;是一个功能强大得容器编排工具 分布式和集群化的方式进行容器管理 市面上常用的版本&…

HTTP小记2

目录 HTTP/1.1优化 QUIC协议 路由器 RTT&#xff08;Round-Trip Time&#xff09; 计算机网络体系结构 体系结构各层在整个过程中的作用 HTTP/1.1优化 1.通过缓存技术来避免/减少发送HTTP请求 2.减少HTTP请求的次数 将原本由客户端处理的重定向请求&#xff0c;交给代理…

alertmanage调用企业微信告警(k8s内部署)

一、前言 alertmanage调用企业微信应用告警会比直接使用钉钉告警更麻烦一点&#xff0c;调用企业微信应用告警需要在应用内配置企业可信ip&#xff0c;不然调用企业微信接口就会报错&#xff0c;提示ip地址有风险 二、部署 先自行创建企业微信&#xff0c;再使用管理后台创建应…

机器视觉实战应用:手势、人脸、动作以及手势鼠标构建(一)

CV实战应用手势、人脸、动作以及手势鼠标构建&#xff08;一&#xff09;总起 核心思想 手势识别是一种常见的计算机视觉应用&#xff0c;它可以通过摄像头或者预先录制的视频图像来追踪和识别人类手势。手势识别的应用非常广泛&#xff0c;例如在游戏、虚拟现实、人机交互等…

RuoYi-Cloud集成DataRoom大屏设计器

基于RuoYi-Cloud 3.6.3 版本集成 先贴一下开源地址: https://gitee.com/wxjstudy/jove-fast DataRoom开源地址: https://gitee.com/gcpaas/DataRoom 后端 新建modules 启动类 增加注解扫描,以及配置分页插件 import com.baomidou.mybatisplus.extension.plugins.MybatisPlu…