[发明专利]一种利用安卓系统随机生成蓝牙地址的方法在审
| 申请号: | 201510939056.8 | 申请日: | 2015-12-15 |
| 公开(公告)号: | CN105528216A | 公开(公告)日: | 2016-04-27 |
| 发明(设计)人: | 吴国伟;张翼 | 申请(专利权)人: | 大连理工大学 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 大连理工大学专利中心 21200 | 代理人: | 梅洪玉 |
| 地址: | 116024 辽*** | 国省代码: | 辽宁;21 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 利用 系统 随机 生成 蓝牙 地址 方法 | ||
技术领域
本发明属于网络安全计算机技术领域,涉及一种利用安卓系统随机生成蓝牙 地址的方法。
背景技术
由于目前移动设备的普及,对蓝牙的使用也日渐增多,同时也伴随着蓝牙 信息安全问题的突出,即出现针对蓝牙的攻击,其中危害较大的就是针对蓝牙 的中间人攻击,中间人攻击可以监听、收集甚至篡改通信双方的通信内容,使 得正常的通信中断,而通信双方往往很难发现,并且认为自己仍然是在正常通 信。对于中间人攻击,目前的防范措施非常有限,起到的作用也是微乎其微, 针对蓝牙中间人攻击的有效防范措施就更加稀少。
发明内容
本发明要解决的技术问题是提供一种利用安卓系统随机生成蓝牙地址的方 法,该方法通过在蓝牙正常启动时,系统从配置文件中读取蓝牙地址,存储在 内存中,在中间人攻击防范程序中,运用蓝牙地址随机器,在系统读取蓝牙地 址后,并不直接存储,而是替换成用蓝牙地址随机器生成的地址,此时地址与 之前的地址不再相同,而中间人可能仍然持有先前的地址,此时中间人的攻击 就会失败。
蓝牙地址共有六个字节分为三部分:即24位地址低端部分LAP、8位地址 高端部分UAP和16位无意义地址部分NAP;其中,NAP和UAP是生产厂商的 唯一标识码,由蓝牙权威部门分配给不同的厂商,LAP由厂商内部自由分配; 对于某一种型号的手机或设备,所有个体的NAP、UAP固定不变,LAP可变。
本发明的技术方案为:
一种利用安卓系统随机生成蓝牙地址的方法,该方法根据已有蓝牙地址的 格式,采用随机函数rand(),对蓝牙地址变量进行赋值;运用代码srand((unsigned int)(time(0)))和((rand()>>8)&0xFF)将产生的随机数赋值给蓝牙地址变量;最后 使用已赋值的蓝牙地址变量,用于中间人攻击防范或者其他,该方法具体包括 以下步骤:
第一步,启动蓝牙程序,通过安卓应用层jni调用btif_core.c获取蓝牙地址变 量;具体函数调用如下:
1.1调用BluetoothAdapter(frameworks层)中的getAddress()函数,getAddress() 函数用来获取蓝牙地址;内部转至进一步调用IBluetoothManager(frameworks层) 的getAddress()函数,再转至调用BluetoothManagerService(frameworks层)的 getAddress()函数,再转至调用应用层IBluetooth的getAddress(),最后转至调用 AdapterService(frameworks层)的getAddress()函数,再调用 getAdapterProperty_Native()函数(通过jni调用本地方法);
1.2调用bt_interface_t(内核层)中的get_adapter_property(),获取蓝牙属性;
调用bluetooth.c(内核层)文件中的btif_getadapter_property(),获取蓝牙属性的 进一步调用,此时已经进入内核层的调用;
调用btif_core.c(内核层)文件中的btif_getadapter_property();
调用btif_core.c(内核层)中的btif_transter_context(),btif_send();
调用GKI_buffer.c(内核层)文件中的GKI_send_msg(),向指定进程发送消息;
调用btif_core.c(内核层)中的execute_storage_request(),执行存储请求;
调用btif_storage_get_adapter_property(),获取存储的一些属性;
最后调用btif_storage.c(内核层)文件中的变量btif_local_bd_addr,其中, btif_local_bd_addr中存储蓝牙地址。
第二步,采用随机函数rand(),得到随机数,运用代码srand((unsignedint) (time(0)))和((rand()>>8)&0xFF)将得到的随机数赋值给addr蓝牙地址变量;具 体代码为:
srand((unsignedint)(time(0)));//1
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510939056.8/2.html,转载请声明来源钻瓜专利网。





