NFC物联网智能锁安全测试研究

news2025/1/18 3:17:53

针对短距离无线通信在物联网智能锁实际运用中的安全机制问题,通过理论分析和实际操作演示潜在的攻击流程,发现其存在的安全漏洞并提出可行的加固方法,并对加固后的通信系统进行CPN建模与安全性分析,对无线通信协议的安全性能提升、NFC物联网智能锁的进一步发展有很大意义。

1短距离无线通信技术

智能锁安全

现有短距离无线通信技术在物联网领域中较为成熟应用较广的主要是NFC技术(近场通信技术)Zigbee技术和BLE技术。

NFC技术是一种短距高频的无线电技术,是最近兴起的全新设备信息交互技术,工频率为13.56MHz,工作距离限制在20cm内。通过卡、读卡器和点对点三种业务模式进行数据读取与交换,由于传输速率和距离都较低,主要应用于设备直接接触的场景,如移动支付或者身份认证。NFC 通过面对面设备交互取代了人与人的复杂交互,非常适用于传递较短的配置信息。并且其带宽能耗比较高,因此受到了能源受限终端的青睐,在注重续航和体积的设备如智能手机以及物联网设备中普及率较高。

Zigbee技术主要工作在868-868.6MHz、902~928MHz和2.42.4835 GHz 3个频段,特点为采取自组网的方式进行通信,若某条链路出现问题则迅速寻找其他信道传输数据,从而保证数据的可靠交付,目前主要应用领域为智能家居和工业自动化测控等。蓝牙技术联盟在2010年发布了针对低功设备设计的BLE4技术,BLE技术在设计之初即针对性地考虑了物联网设备的应用场景,BLE技术凭借其低功耗、覆盖范围远、价格低廉等特性迅速成为数以亿计的物联网设备及其传感器之间的首选连接标准,因此,本文重点关注BLE技术在物联网领域应用的安全问题。

1.1BLE技术

BLE是蓝牙4.x核心规范的延展,多用于物联网技术。与传统蓝牙相比,其物理层几乎全新,仅有部分派生于传统蓝牙中的基本传输速率(Basic Rateradio,BR)。

BLE采取全新广播机制,便于设发现并建立连接。BLE延迟低、速度快,从开始建立连接到连接建立完成仅需3ms。新的通用属性配置文件则简化了硬件设备和应用程序,提升了用户体验。BLE仅需纽扣电池供能,其峰值电流低、功小、作短,非常适用于物联网应用场景。

1.2BLE协议栈

BLE核心协议由物理层、链路层(Link LayerLL)逻辑链路控制层、适配协议层、通用属性层、应用层等组成。最底两层归为一子系统控制器(Controller )除应用层外的其他层则统称为主机(Host通过主机控制器接口( Host to Controller Interface,HCI)实现在控制器和主机之间实现通信。

其中主要的关键层级作用分别为:链路层用于规定设备所处的状态,即处于广播、扫描和建立/保持连接几种状态中的一种;安全管理层( Security Manager,SM)实现BLE设备通信过程中配对和密钥分发功能,并保证其他层的安全连接属性协议层(Attribute Protocol,ATT)许Client和Server通过属性的形式共享信息,用于数据传输;通用访问配置文件层(Generic Access Profile,GAP)与应用层直接连接,负责处理设备的接入方式和过程,控制设备连接与广播,确定设备间的扫描、连接、配对等过程的安全;通用属性协议(Generic Attribute ProfileGATT)建立在套的协议( Profle)特征( Characteristic服务(Service)之上,负责设备之间数据交互。每个Service和Characteristic拥有独特的UUID标识。

1.3 BLE 安全机制

BLE在LL层和GAP层均有安全机制来保证通信的可靠性间。

在LL层安全机制中,BLE设备处于连接状态时,LL层可对其负载进行加密,确保传输数据无法被攻击者破解。经过加密的报文会包含消息完整性检查,可验证发件人身份的有效性,以防重放攻击。BLE链路层使用ABS-128分组密码和密码块链接消息认证码加密。GAP层安全机制:通过GAP层定义安全链路建立和实施的模式和过程,均基于SM层中定义的规则和算法实现。

根据BLE设备双方输人输出能力的不同,BLE的鉴权方式包含4种情况:JUST Wrks,数据包基于纯文本交换,该方法用于一端设备完全没有输人输出能力的场景,如物联网设备;Passkey Entry,设备中一端显示一个6位随机数,并要求另一端输入该数字,在没有显示的情况下可能会要求两端都输入这个密码作为passkey,根据加密运算的中间值来判断输入的密码是否与显示的密码相同;Out of Band(OOB),通过BLE以外的方式传输额外的数据,如NFC,传输数据通道的安全性决定了配对过程的安全性,这种方法也可防止中间人攻击;Numeric Comparison,在两端设备分别显示一串数字,用户比较数字是否相同并确认实现认证,该模式仅需两个按键设备即可完成配对,易于小型化推广。

2智能锁通信协议研究

NFC物联网

从通信协议的角度分析智能锁安全需求。为了抵抗截取、重放、篡改、加密和解密等攻击方法物联网智能锁使用的通信数据协议应具有以下4个特点。

1)认证性

抵抗伪造报文,确认通信双方身份。认证性的实现方式包括使用共享密钥、数字签名等,只有密钥或签名一致,通信才可继续。

2)秘密性

确保消息不被窃听,或者报文被攻击者窃听到其真实意义也无法被提炼。实现秘密性的方法主要是对明文进行加密处理。

3)完整性

保证消息或报文不被算改。常用的实现方法如封装和签名。

4)不可否认性

可为通信一方提供另一方参与到协议交换过程中的证据,保证双方合法利益不受侵害,可通过数字签名实现。

2.1 解锁过程

配备BLE模块的智能锁与用户智能手机连接过程可分以下几个步骤。

1)智能锁发送广播报文

智能锁的BLE模块通过特定时间间隔和发送功率向外广播ADV IND数据包,数据包中含有BLE版本智能锁BLE的MAC地址、制造商识别编号、设备名称等智能锁基本信息,对处于监听模式下设备可见。

2)手机扫码广告报文

用户手机通过云服务器鉴权后获得该智能锁开锁密钥,扫描广播报文,并匹配智能锁BLE设备对应MAC地址,发送SCAN REQ扫描请求数据包,智能锁收到此数据包后返回SCAN RSP数据作为广播包的补充,SCAN RSP中包括了UUID等更多信息。手机收到SCAN REQ后,发出CONNECT REQ连接请求,交换包括设备支持BLE版本与链路层控制信息LLControl PDU、最大传输单元MTU等数据。

3)手机读取智能锁相关数据

手机BLE模块与智能锁的BLE模块通过GATT协议交换包括特征、服务和协议的数据,通过对写入句柄handle值进行遍历查询,获取所有可用句柄对应的属性值Attribute Valuc,将数据进行存储和归类,并设置客户端特征项配置描述符,使该特征值能够发送通知和指示。

4)手机传输开锁密钥

手机BLE模块使用GATT协议中读、写、通知等动作与智能锁中的BLE模块传输开锁指令实现开锁。每个characteristic都有关联属性来定义其可能进行的操作,这些操作可单独或同时使用,如读取和写入、写人和通知、读取写入和通知。每个动作均可能需要身份验证,即为连接的加密,此情况下读写请求可能会收到来自设备的无授权回应,授权成功则可以进行下一步的操作。手机通过向智能锁BLE模块传输开锁指令获得授权,验证通过后可写人开锁指令等操作,否则,几秒钟后智能锁将断开连接。

出处 信息网络安全

原标题 基于短距离无线通信的物联网智能锁安全机制研究

作者 金志刚 吴桐 李根

参考资料

https://www.hooketech.com/intelligent-security-lock.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构学习 Leetcode474 一和零

关键词:动态规划 01背包 一个套路: 01背包:空间优化之后dp【target1】,遍历的时候要逆序遍历完全背包:空间优化之后dp【target1】,遍历的时候要正序遍历 目录 题目: 思路: 复杂…

算法时间空间复杂度计算—空间复杂度

算法时间空间复杂度计算—空间复杂度 空间复杂度定义影响空间复杂度的因素算法在运行过程中临时占用的存储空间讲解 计算方法例子1、空间算法的常数阶2、空间算法的线性阶(递归算法)3、二分查找分析方法一(迭代法)方法二&#xff…

lenovo联想拯救者8.8英寸掌上游戏机Legion Go 8APU1(83E1)原装出厂Windows11预装系统

链接:https://pan.baidu.com/s/1d586XWXcAWVxlLyV2Oku7Q?pwdd74t 提取码:d74t 系统自带所有驱动、出厂主题壁纸、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:ISO 文件大小:…

iframe展示pdf、png、jpg

iframe展示pdf、png、jpg&#xff1a; 1、前端定义div&#xff1a; <div id"pdf-container"></div>/*dpf的div*/ <iframe id"imageFrame"></iframe>/*图片的div*/2、后端查询base64的流&#xff0c;前端页面初始化js方法&#x…

100V降压芯片H6603 外围简洁无过冲 12V 24V 36V 48V 60V 转5V 3.3V

H6603是一款优秀的降压恒压电源芯片&#xff0c;具有外围元器件少、电路简单、效率高、发热量低等特点。 H6603 是一款内置功率 MOSFET降压开关转换器。在宽输入范围内&#xff0c;其峰值输出电流可达到 0.8A&#xff0c;具有极好的负载和线性调整率。 电流控制模式提供了快速瞬…

uniapp 输入手机号并且正则校验

1.<input input“onInput” :value“phoneNum” type“number” maxlength“11”/> 3. method里面写 onInput(e){ this.phoneNum e.detail.value }, 4.调用接口时候校验正则 if (!/^1[3456789]\d{9}$/.test(this.phoneNum)) {uni.showToast({title: 请输入正确的手机号…

硅像素传感器文献调研(二)

写在前面&#xff1a;从上篇文章的参考文献中看到一篇文献&#xff0c;现在也精读一下&#xff0c;今天还有一个任务是把上篇文献整体脉络用流程图的形式完整梳理一下。 哈哈哈哈哈哈&#xff1a;代表没太搞明白的部分 如何写论文&#xff1a; 引言部分&#xff1a;基础理论…

收藏!光伏发电量计算最全公式整理

随着可再生能源的日益普及&#xff0c;光伏发电已经成为一种重要的清洁能源。了解光伏发电量的计算方法对于投资者、工程师和研究者来说都是非常重要的。本文将为您整理光伏发电量计算的最全公式&#xff0c;帮助您更好地理解和评估光伏系统的性能。 1、光伏电池板转换效率 光…

UI自动化Selenium 元素定位之Xpath

一、元素定位方式 selenium中定位元素&#xff0c;通常有几种方式&#xff1a; 1、通过id定位&#xff1a;By.ID 2、通过Name定位&#xff1a;By.Name 3、通过元素其他属性定位&#xff0c;如class、type、text文本。。。。。。等等&#xff0c;如果要用属性定位那就需要使…

tecplot导入多个.dat文件,并激活solution time

在对流场数据进行提取的时候&#xff0c;需要提取不同时刻的某一点流场值&#xff0c;这时候导入多个.dat文件时&#xff0c;就需要激活solution time! 该怎么做讷&#xff1f; 具体请参考我提供的python文件&#xff0c;需要的可以找我要&#xff0c;我就不放在CSDN上让大家…

【K8S 二进制部署】部署单Master Kurbernetes集群

目录 一、基本架构和系统初始化 1、集群架构&#xff1a; 2、操作系统初始化配置&#xff1a; 2.1、关闭防火墙和安全机制&#xff1a; 2.2、关闭swap 2.3、根据规划设置主机名 2.4、三台主机全部互相映射 2.5、调整内核参数 3、时间同步&#xff08;所有节点时间必须同…

231227-9步在RHEL8.8配置本地yum源仓库

Seciton 1&#xff1a;参考视频 RHEL8配置本地yum源仓库-安徽迪浮_哔哩哔哩_bilibili Seciton 2&#xff1a;具体操作 &#x1f3af; 第1步&#xff1a;查看光驱文件/dev/sr0是否已经挂载&#xff1f;此处已挂在 [lgklocalhost ~]$ df -h &#x1f3af; 第1步&#xff1a;查看…

2022年全国职业院校技能大赛高职组云计算正式赛卷第三场-公有云

2022 年全国职业院校技能大赛高职组云计算赛项试卷 【赛程名称】云计算赛项第三场-公有云 目录 2022 年全国职业院校技能大赛高职组云计算赛项试卷 【赛程名称】云计算赛项第三场-公有云 【任务 1】公有云服务搭建[10 分] 【任务 2】公有云服务运维[10 分] 【任务 3】公有云运维…

使用克魔助手查看IOS游戏FPS的方法详解

查看IOS游戏FPS 摘要 本篇技术博客将介绍如何使用克魔助手工具来查看iOS游戏的帧率&#xff08;FPS&#xff09;。通过克魔助手&#xff0c;开发者可以轻松监测游戏性能&#xff0c;以提升用户体验和游戏质量。 引言 在iOS游戏开发过程中&#xff0c;了解游戏的帧率对于优化…

C++ DAY2作业

1.课堂struct练习&#xff0c;用class&#xff1b; #include <iostream>using namespace std;class Stu { private:int age;char sex;int high; public:double score;void set_values(int a,char b,int c,double d);int get_age();char get_sex();int get_high(); }; vo…

windTerm 连接一段时间之后自动断开

默认是关闭会话空闲保活功能的&#xff0c;如所连接的SSH服务没做连接保活&#xff0c; 就很可能超时自动断开 开启会话保活 在 会话 -> 首选项 -> Default Session Settings -> SSH -> 连接 -> 发送空包以保持会话活动 设置15&#xff0c;即15秒自动发空包保…

华天动力OA TemplateService 任意文件读取漏洞复现

0x01 产品简介 华天动力OA是一款将先进的管理思想、 管理模式和软件技术、网络技术相结合&#xff0c;为用户提供了低成本、 高效能的协同办公和管理平台。 0x02 漏洞概述 华天动力OA TemplateService接口处存在任意文件读取漏洞&#xff0c;未经身份认证的攻击者可利用此漏洞…

JavaFX:控件Group。

group组件是一个容器组件&#xff0c;它不对其子组件应用特殊布局。所有子组件&#xff08;节点&#xff09;都位于0,0处。JavaFX组组件通常用于将一些效果或转换应用于一组控件&#xff08;作为一个组&#xff09;。如果需要对组内的子级进行一些布局&#xff0c;请将它们嵌套…

docker学习(十八、network介绍)

文章目录 熟悉的ifconfigDocker 网络的使用方式Docker 网络的作用Docker 网络模式注意事项 首先&#xff0c;我们要知道什么是 Docker 网络。简单来说&#xff0c;它就是 Docker 中用于实现容器间通信的一个东西。 network相关内容&#xff1a; docker学习&#xff08;十八、ne…

linux cat命令增加-f显示文件名功能

在使用cat命令配合grep批量搜索文件内容时&#xff0c;我仅仅能知道是否搜索到&#xff0c;不知道是在哪个文件里找到的。比如cat ./src/*.c | grep full_write,在src目录下的所有.c文件里找full_write,能匹配到所有的full_write&#xff0c;但是不知道它们分别在哪些文件里。于…