Skip to content

blank-vax/Gait_Key

Repository files navigation

Gait-Key

0x00 项目相关

项目名称

基于生物特征的物联网隐私保护方法

项目背景

随着物联网技术和网络通信的高速发展,通信双方需要保证信息传输的可靠性与安全性。然而,IoT设备之间通信的无线特性导致了安全问题,恶意的外部设备可以监听合法的体内设备之间的无线通信,从而窃取用户的私人信息。上述问题具体表现为合法设备之间共享密钥生成与协商过程的不安全性与困难性。经过调查发现,移动系统或IoT设备的传感器数据是系统十分重要的信息来源和安全协议的熵源,可为移动设备提供设备认证以及用来生成共享密钥,于是决定使用可通过传感器获取的步态特征作为共享信息,为通信设备生成密钥。

项目简介

brief_png.PNG-39.2kB

该项目拟提出并实现一种基于动作辅助的密钥生成与交换技术,由于用户的步态特征(即行走模式)具有特异性,故可以利用该特征作为共享信息,为同一主体的所有设备生成密钥并实现安全密钥协商。同时由于步行是一种常见的日程活动,因此在日常生活中可以自动检测和记录用户的步态,而不需要用户显式地进行密钥生成。综上,该项目利用用户独特的步态信息实现密钥的生成与协商,从而在同一主体设备之间隐蔽地建立安全通信。

项目创新特色

  • 使用HMAC-SHA1这一单向散列函数代替MD5构造消息认证码
  • 利用人体步态特征的唯一性
  • 通信密钥动态生成而非静态保存在设备中
  • 引入时间戳机制防止重放攻击
  • 采用盲源分离技术

项目流程

密钥生成流程.png-62.2kB

如上图所示,该产品的关键在于如何通过步态特征生成会话密钥并实现不同设备之间的密钥协商。此处将步态特征这一概念量化为三个方向上传感器接收到的加速度数据。密钥生成过程分为信号处理和密钥生成两大模块。整个流程大致如下:

信号处理

该部分包括信源分离和信号校准两个步骤。

  • 信源分离

    从提取的所有加速度信号中获得用于生成密钥的步态信息,该部分使用盲源分离技术,重点采用如下两个方法。

    • 快速独立成分分析(Fast Independent Component Analysis)及其逆算法
    • Iir时域滤波,依赖dsp-collection
  • 信号校准

    通过时间对齐和空间对齐实现两设备之间的信号校准,从而减少各自生成密钥之间的差距。大致流程如下:

signal_process.jpg-1804.4kB

  • 时间对齐

    两设备同时连续取样,通过设置锚点并协商的方法获取相同时间段内提取的加速度数据,从而实现时间对齐。

  • 空间对齐

    运用汉密尔顿单位四元数代替旋转矩阵进行操作,实现设备坐标系->世界坐标系->体坐标系的转换。

密钥生成

密钥生成过程在两个设备上分别同步进行。对每个设备来说,传感器数据经过信号处理后进入多级量化阶段,随后进入密钥处理阶段。密钥处理阶段结束后,两设备实现密钥的安全共享。

key generation.png-212.5kB

  • 多级量化

    该部分按照确定比特上限->确定量化间隔->生成初始密钥这三个步骤运作。最终成功生成初始密钥。

    • 确定比特上限
    • 确定量化间隔
    • 生成初始密钥
  • 密钥处理

    该部分包括和解和隐私放大,引入时间戳机制和HMAC-SHA256函数预防中间人攻击。最终两设备完成密钥生成与协商,随后二者可以利用该密钥进行通信。

参考论文

Xu W , Javali C , Revadigar G , et al. Gait-Key: A Gait-Based Shared Secret Key Generation Protocol for Wearable Devices[J]. ACM Transactions on Sensor Networks, 2016, 13(1).

0x01 具体实现

该部分结合上述项目流程与对应代码,阐述该项目中各模块功能的具体实现。

信号处理模块

Acct

该模块定义了本项目中Android设备传感器数据相关API,用于获取IoT设备中运动传感器的加速度数据,随后进行适当的坐标系转换与时间对齐,最终返回加速度矩阵的一部分。

FFT

Fourier Series.jpg-75kB

快速傅里叶变换及其逆变换,用于实现时域与频域上加速度数据的快速转化。

Filter

该模块实现时域上的Iir滤波函数并实现封装,返回滤波之后的矩阵。

ica

该模块实现快速独立成分分析函数封装,用于从传感器中获取的加速度数据内分离得到由行走步态产生的加速度数据。处理后返回二维数组。

Spatial_align

coordinate_system.PNG-59.2kB

该模块首先对原始数据进行滤波,然后运用汉密尔顿四元数的方法实现空间坐标系到体坐标系的转换,最终返回G、F、S三个方向上的加速度数据。

unit_quaternion

unit_quaternion.jpg-228.3kB

该模块定义汉密尔顿四元数的部分运算过程,具体实现坐标系转换,转换过程见上图。

Initial

该部分为SingnalProcessing模块的完整流程,对获取的传感器加速度数据实现盲源分离、时域滤波与时间对齐这三个操作(空间对齐待补充)

密钥生成模块

Base58

该模块实现base58编码与解码函数,用于在和解过程中对密钥数据进行编码。

MultilevelQuantization

该模块实现初始密钥的多级量化,完成获取取样函数、确定比特上限、决定量化间隔、实现多级量化这四个相关步骤的函数封装。

post_processing

该模块为预处理及隐私放大模块。分别定义时间戳获取函数(最终转换为128比特字符串)、比特流异或函数以及隐私放大函数

RSCode

该模块完成RScode纠错算法相关函数的封装,用于在和解过程中验证Alice、Bob产生的密钥之间差距是否处于可接受的区间,如果是则两设备之间可使用该密钥进行通信,否则重新生成。

Reconciliation

该部分完成和解过程中需要的相关函数封装,实现计算密钥补偿度以及根据相关信息还原另一设备密钥这两个功能函数。

sha256

HMAC-SHA2系列哈希函数封装。

KeyGeneration

该部分为KeyGeneraion提供完整的流程,输入为经过信号处理的加速度矩阵,对其进行多级量化以获得初始密钥。然后实现和解与隐私放大,最终形成可供两设备进行通信的安全密钥。至此整个项目流程结束。

0x02 相关原理

该部分代码涉及到的技术包含以下内容:

  • 快速成分分析
  • 时域Iir滤波
  • 快速傅里叶变换
  • 汉密尔顿四元数运算
  • RS纠错码与Base58编码

详细算法及说明在论文内部均有提及。

About

Gait-Key: A Gait-Based Shared Secret Key Generation Protocol for Wearable Devices

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages