- 博客(37)
- 资源 (59)
- 收藏
- 关注
翻译 蓝牙配对第 3 部分 – 低能耗传统配对密钥输入
在我之前关于密钥生成方法的博客中,我谈到了密钥生成方法 - 如果发起和响应设备满足某些 IO 能力条件,它们会选择 LE 传统蓝牙配对密钥输入方法。当TK值准备好时,发起设备和响应设备生成一个128位随机数:发起设备为Mrand,响应设备为Srand。响应设备通过重复发起设备使用接收到的 Mrand 值执行的计算来验证 Mconfirm 值。发起设备通过重复响应设备使用接收到的Srand值执行的计算来验证接收到的Sconfirm值。当您使用 LE 传统配对时,配对由生成临时密钥 (TK) 的每个设备执行。
2024-04-25 19:22:42 70
翻译 蓝牙配对第 2 部分密钥生成方法
在第 3 部分中,我将介绍如何使用 Passkey 方法在蓝牙 ® LE 传统配对中生成相应的密钥。在蓝牙配对第1部分:配对功能交换中,我们讨论了低功耗蓝牙 ® 中的配对功能交换。配对特征交换用于使发起方和响应方这两个设备了解彼此的配对特征。以下是蓝牙 LE 传统配对和蓝牙 LE 安全连接的密钥生成方法列表。通过此表,发起方和响应方这两个设备将根据其配对功能找到适当的连接方法。*有关这些功能的介绍,请参阅蓝牙配对第 1 部分:配对功能交换。步骤2:当是LE安全连接时,下面是发起者和响应者将遵循的矩阵。
2024-04-25 19:20:32 61
翻译 蓝牙配对第 1 部分 – 配对功能交换
利用这些信息,发起者和响应者可以确定彼此的 I/O 能力,应使用哪种配对机制(传统配对或安全连接),并选择配对方法 - Just Work、密码输入、数字比较或退出频段——在阶段 2 中使用。在主机层,有一个称为安全管理器(SM)的模块,它定义了配对和密钥分发的方法和协议,相应的安全工具箱,以及安全管理器协议(SMP),它定义了配对命令帧格式、帧结构和超时限制。可能产生的配对机制是,如果两个设备都支持 LE 安全连接,则使用 LE 安全连接,否则使用 LE 传统配对。配对是允许发生结合的机制。
2024-04-25 19:16:44 199
原创 蓝牙低能耗安全连接 – 数值比较
除了 LE Legacy 配对之外,LE Secure Connections 是另一种配对选项。LE 安全连接是蓝牙 v4.2 中引入的增强安全功能。它使用符合联邦信息处理标准 (FIPS) 的算法(称为椭圆曲线 Diffie Hellman (ECDH))来生成密钥。数字比较仅适用于 LE 安全连接,不适用于传统配对。所以这是一个较新的关联模型,今天我们将深入了解它。1. 第 1 阶段 – 配对特征交换我在第 1 部分中谈到了配对功能交换,但我想在这里回顾一下。表 1 是配对请求/响应数据包定义。
2024-04-25 19:08:17 734
翻译 了解低功耗蓝牙中的安全密钥
设备隐私模式:启用后,设备将仅接受来自其解析列表上的设备的广告数据包,这些设备使用其静态身份地址或可使用对等设备存储的 IRK 进行解析的 RPA。网络隐私模式:启用后,设备仅接受来自其解析列表上的设备的广播数据包,并且数据包包含可使用对等设备存储的 IRK 进行解析的 RPA。如果计算的哈希值与接收到的 RPA 中的哈希值匹配,则设备知道 RPA 是使用其存储的相同 IRK 生成的。这就像用独特的蜡封密封一封信一样,当设备接收到数据时,它会检查封条,如果匹配,它就知道数据是真实的并且没有被弄乱。
2024-04-25 13:32:52 368
翻译 保护 BLE 连接的安全——安全协议概述
因此,即使攻击者成功捕获了 RPA,在没有 IRK 的情况下,他们也无法确定设备的实际身份地址。请勿使用小于 16 的加密密钥:这是最大密钥大小,使用小于 16 的加密密钥可能会损害设备的安全性。如果您的应用程序需要提高安全性,请将您的设备设置为禁止配对,并立即终止与尝试使用小于 16 个八位位组的加密密钥的设备的任何连接。他们必须从 SMP 工具箱中选择正确的安全工具,并记住,忽视安全功能可能会使他们的产品很容易受到偷偷摸摸的攻击。相反,它们通过用定期更改的随机生成的地址替换实际地址来隐藏设备的身份。
2024-04-25 13:09:33 251
翻译 蓝牙低功耗数据传输模式:比较
在本文中,我们将熟悉 BLE 的各种数据传输方法,并加深对其性能水平的理解。该请求包括连接参数,例如连接间隔(数据传输事件之间的时间)、从机延迟(外设可以跳过的连接事件数)和监控超时(如果没有通信,则连接被断开的时间)。面向连接的模式是可靠的,并且扩展的广播提供了出色的电池寿命和对更长有效负载的适应性,但是,如上所述,在某些情况下,传统广播仍然优于较新的替代方案。无连接数据传输,也称为广播,是指针对广大受众而不是特定接收者或一组接收者的数据传输,这就像附近任何人都可以听到的公共广播,而不是私人对话。
2024-04-25 12:31:29 167
翻译 ATT 和 GATT — 低功耗蓝牙设备如何存储数据
在我们的智能手表示例中,智能手表充当服务器,保存心率数据,而智能手机充当客户端,请求数据并将其显示在应用程序上。然而,在固件更新期间,智能手机可能充当 GATT 服务器,向 GAP 外围设备(例如智能手表)提供更新数据,在这种情况下,智能手表充当 GATT 客户端。客户端发起的操作涉及客户端与服务器的通信,而服务器发起的操作发生在服务器根据需要发起与客户端的通信时。服务发现:最初,对等设备不知道彼此的服务,因此客户端必须首先在服务器的属性数据库上发现可用的服务。主要服务是 GATT 服务器提供的主要服务。
2024-04-24 09:47:00 138
转载 elf文件格式实例解析
试验环境:archlinux 速龙3000+(即x86兼容32位处理器)必须软件:gcc binutils参考资料:System V application binary interfaceELF Format(mirrortxt format)Hello,world in less than 20 bytesTutorial on creating teensy ELF
2012-11-24 23:59:53 3456 1
转载 Linux内核中的klist分析
分析的内核版本照样是2.6.38.5。Linux内核中的klist是在神级的双向链表上扩展而形成的。先给出一个图。很清晰也很简单。先说表头:K_lock:是一把锁,用来锁表的。这个就不多啰嗦了。k_list:双向链表,用来联系各节点及链表头。get、put:两个函数指针,是用来操作链表中的节点接口。再说节点:n_klist是一个空指针,随便用来指啥,但在我们
2012-11-17 13:27:57 598
原创 选出参加工程编译的所有文件
1、找出所有参加编译的c文件、汇编文件在内核源代码的目录下创建compiler目录,找到的c文件保存在cfile.txt,汇编文件分别为big_s-file.txt和little_s-file.txt尖括号#!/bin/bash## find total .c files. .S files. .s files which will be compiled into image
2012-11-03 17:18:52 475
原创 查找所有的编译过的文件
https://secure.kitserve.org.uk/content/how-usb-tether-android-phone-mac-os-x-computer 找出.S对应的.o文件#!/bin/bashfind -name *.S | sed 's/\//\n/g' | grep \\.S$ | sed 's/S/o/g' > tmp.txtfiles=`cat
2012-11-01 11:06:06 529
转载 Linux下ARM汇编语法
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点 (www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构: [:]
2012-11-01 00:24:38 389
原创 内核源码分析相关博客
http://edsionte.com/techblog/archives/category/linux%e5%86%85%e6%a0%b8
2012-10-28 12:51:11 410
转载 Linux为什么要引入平台驱动
Linux简单字符驱动很简单,只需要在初始化时对物理地址进行映射,再注册一个fileopenration操作集,然后就和写裸机程序一样实现操作集就可以了。 问题一:为什么要进行物理地址到虚拟地址的映射? 因为引入了MMU内存管理,只允许用户操作虚拟地址。 问题二:为什么要引入MMU,而不让用户直接操作物理地址? 因为内存管理非常复杂,主要是为了安全考虑。假如:驱动甲用到
2012-10-27 13:27:44 648
转载 U-Boot编译过程完全分析
2.1 U-Boot Makefile分析2.1.1 U-Boot编译命令对于mini2440开发板,编译U-Boot需要执行如下的命令:$ make mini2440_config$ make all使用上面的命令编译U-Boot,编译生成的所有文件都保存在源代码目录中。为了保持源代码目录的干净,可以使用如下命令将编译生成的文件输出到一个外部目录,而不是在源代码目录中,下面的
2012-10-24 00:15:35 719
转载 U-Boot启动过程完全分析
1.1 U-Boot工作过程U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:(1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口(2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø 检测系统内存映射Ø 将内核从Flash读取到RAM中Ø 为内核设置启动参数Ø 调用
2012-10-24 00:13:52 763
转载 嵌入式系统 Boot Loader 技术内幕
简介: 本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。发布日期: 2003 年 12 月 01 日 级别: 初级 访问情况 : 40477 次浏览 评论: 5 (查看 | 添加评论 - 登录) 平均分 (228个评分)为本文评分
2012-10-24 00:02:39 655
转载 Linux内核源码之红黑树注释
红黑树的原理理解起来并不困难,无非是左右旋转,涂色。然而要编码出一个高效简洁的实现代码却挺复杂。近日学习Linux源码,对其红黑树实现作了注释,与大家分享一下。我贴的代码是我边理解边“抄写”出来的,和源始代码可能会有少许出入,但不影响理解。本文着重注释插入删除操作,其它部分不作重点。若要了解红黑树的基础知识或是Linux红黑树的使用,请另行参考其它资料。先看一下节点定义:typedef
2012-10-20 00:51:03 2930
转载 Linux内核中的红黑树
红黑树是平衡二叉树的一种,它有很好的性质,树中的结点都是有序的,而且因为它本身就是平衡的,所以查找也不会出现非常恶劣的情况,基于二叉树的操作的时间复杂度是O(log(N))。Linux内核在管理vm_area_struct时就是采用了红黑树来维护内存块的。先到include/linux/rbtree.h中看一下红黑树的一些定义,如下:struct rb_node
2012-10-20 00:49:15 1125
转载 Linux内核中的klist分析
分析的内核版本照样是2.6.38.5。Linux内核中的klist是在神级的双向链表上扩展而形成的。先给出一个图。很清晰也很简单。先说表头:K_lock:是一把锁,用来锁表的。这个就不多啰嗦了。k_list:双向链表,用来联系各节点及链表头。get、put:两个函数指针,是用来操作链表中的节点接口。再说节点:n_klist是一个空指针,随便用来指啥,但在我们的k
2012-10-19 22:17:15 741
转载 嵌入式系统 Boot Loader 技术内幕
1. 引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。3. 文件系统。包括根文件系统和建
2012-10-15 00:17:20 488
转载 i2c驱动之i2c-s3c2410.c
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* i2
2012-10-12 21:35:36 1463
转载 嵌入式Linux之我行--内核I2C子系统详解
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn 1.1 I2C总线知识1.1.1 I2C总线物理拓扑结构 I2C总线在物理连接上非常简单,分别由SDA(串行数
2012-10-12 21:26:01 2441
转载 使用 /sys 文件系统访问 Linux 内核
sysfs 与 /syssysfs 文件系统总是被挂载在 /sys 挂载点上。虽然在较早期的2.6内核系统上并没有规定 sysfs 的标准挂载位置,可以把 sysfs 挂载在任何位置,但较近的2.6内核修正了这一规则,要求 sysfs 总是挂载在 /sys 目录上;针对以前的 sysfs 挂载位置不固定或没有标准被挂载,有些程序从 /proc/mounts 中解析出 sysfs 是否被挂载
2012-10-12 00:07:38 987
转载 嵌入式Linux之我行--内核I2C子系统详解
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn 1.1 I2C总线知识1.1.1 I2C总线物理拓扑结构 I2C总线在物理连接上非常简单,分别由SDA(串行数
2012-10-11 23:37:03 552
原创 tcp连接close过程
active passiveTCP_FIN_WAIT1 -------FIN------->TCP_FIN_WAIT2 TCP_TIME_WAIT --------ACK------->TCP_CLOSE||2MSL \|/ TCP_CLOSE其中:主动发起fin的一端的TCP_TIME_WAIT状态中,可以发给passive的ACK丢失
2012-07-19 22:33:19 1055
原创 make执行过程解析
makefile的执行过程:a、读取makefile中的变量和规则,遇到include包含的所有文件则包含到当前位置b、开始分析目标依赖c、要是某个目标依赖需要 -f指定执行某个特定文件作为Makefile,则重复a和b1)Makefile里面的‘printf’调试函数为warning 用法:@(warning ...)2)make --debug=v
2012-05-19 21:26:33 693
转载 iptables 简介
CU首页 CU论坛首页 CU博客首页 ┊ 登录 注册 ┊ 随便看看 博文 博主 相册 投票 活动 发博文公告:Windows Phone应用开发征文活动chaseeychaseey.blog.chinaunix.netDQ 首页 | 博文目录 | 相册 | 博客圈 | 关于我 | 留言
2012-04-23 23:22:00 1058
原创 内核中的container_of的实现
1、 功能Container_of是从一个已知的结构体和其中一个成员及其该成员的指针,返回该结构体的首地址。字面意思:装某某成员的容器的地址。2、 原型(在linux/kernel.h中定义)#definecontainer_of(ptr, type, member) ({ \ const typeo
2011-11-09 00:32:51 771
原创 Linux下的错误处理机制
errno.hbits/errno.hlinux/errno.hasm/errno.hasm-generic/errno.hasm-generic/errno-base.h1、 文件包含关系 (/usr/include/)errno.h--->bits/errno.h--->linux/errno.h--->asm/errno.h--->asm-generic
2011-11-03 21:20:31 831
原创 Getopt:命令行解析函数
涉及到名词:命令+选项+选项参数+操作数# cat -n 10 /etc /passwdcat是命令名,-n是选项,10是选项参数,/etc/passwd是操作数。函数原型: int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg
2011-10-28 00:29:00 801
原创 gethostbyname函数讲解
Gethostbyname:根据主机名或域名获取 官方域名、ip等信息。原型: struct hostent *gethostbyname(const char *name); struct hostent结构struct hostent { char *h_name; /* official name of host */ char
2011-10-27 01:21:40 1155
转载 DNS协议介绍
TCP/IP基础 DNS协议2007-01-24 14:55 巧巧读书 我要评论(0) 字号:T | T本文是对DNS协议的全面而系统的介绍。AD: DNS 的来由如果您为您的机器设定过 internet 连线﹐那么您一定接触过 DNS 了﹐但 DNS 又是什么东东呢﹖说穿了﹐DNS 是用来帮助记忆网路位址的﹐完全是为了迁就人类的记忆思维而设的。
2011-10-25 00:36:42 3374
转载 WinXP的desktop.ini文件说明
错误认识 由于有部分病毒会在文件夹下创建desktop.ini文件,目前很多朋友对该文件产生了错误的认识,认为是病毒文件。其实这是错误的,desktop.ini与病毒并没有多深的渊源, 下面介绍desktop.ini的用处:(desktop.ini 还有一个特殊的CLSID,修改后能让文件夹和快捷方式一样的功能,当然只能指向文件夹。不知道这个世界上还有几个人知道。)一、文件夹图标
2011-10-25 00:28:53 1658
原创 问题技术
1、ATM、 PTM、 XTMATM:VPI/VCIDSL latencyDSL link typeVLANEncapsulation mode:LLC/VCMUXService type:CBR,UBR without PCR,(non)realtime VBRPTM:DSL latencyPTM priorityVLAN ID802.1p
2011-10-24 18:41:12 565
原创 strtok和strtok_r
Strtok和strtok_r:把一个字符串按照给出的分隔符划分成一组子字串。实际上,是按照分隔符字符串遍历待分割字符串,遇到分隔符字串中的一个字符,就把其置换成’\0’。每次调用返回当下分隔出来的字串。接下来要从分割后的下一个开始分割,则需要把待分割的那个参数设为NULL。直到遇到’\0’结束。 注意:1、 它改变原来的字符串。所以不能直接对静态存储区的字符
2011-10-23 12:04:29 1487
Sublime Text
2012-07-11
资源管理器插件
2012-07-08
office插件 多标签,快捷键
2012-07-07
total commander 文件管理工具
2012-06-14
SysinternalsSuite windows工具集合
2012-06-14
Linux_Debugging_and_Performance_Tuning_Tips_and_Techniques
2012-05-23
虚拟桌面软件
2012-05-18
SecureCRT 远程登录工具
2012-05-09
去除Excel中VBA密码工具
2012-05-01
ld中文手册完全版(带目录).pdf
2012-04-26
source insight 定制的GNU Makefile语言
2012-04-24
minicom移植.7z
2020-05-08
clover 资源管理器多标签扩展插件
2013-04-01
Essential Linux Device Drivers
2012-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人