学号20189220 余超 2018-2019-2 《密码与安全新技术专题》第七周作业——论文学习及报告总结
课程:《密码与安全新技术专题》
班级: 1892
姓名: 余超
学号:20189220
上课教师:谢四江
上课日期:2019年5月21日
必修/选修: 选修
1.本次学习论文的总结
本周的学习主要是讲解我和队友所选的论文,我们选择的论文题目是“All Your GPS Are Belong To Us: Towards Stealthy Manipulation of Road Navigation Systems”发布在27th USENIX Security Symposium上。这篇论文主要探讨了对道路导航系统进行隐身操纵攻击的可行性目标是触发假转向导航,引导受害者到达错误的目的地而不被察觉。其主要想法是略微改变GPS位置,以便假冒的导航路线与实际道路的形状相匹配并触发实际可能的指示。为了证明可行性,该论文首先通过实施便携式GPS欺骗器并在真实汽车上进行测试来执行受控测量。然后,该论文设计一个搜索算法来实时计算GPS移位和受害者路线。该论文使用追踪驾驶模拟(曼哈顿和波士顿的600辆出租车道路)进行广泛的评估,然后通过真实驾驶测试(攻击我们自己的车)来验证完整的攻击。最后,该研究组在美国和中国使用驾驶模拟器进行欺骗性用户研究,结果显示95%的参与者遵循导航没有意识到这种攻击就到了错误的目的地。
2.本篇论文的研究背景
如今,全球数十亿用户正依赖移动导航服务。从地图应用程序(例如Google地图、Waze)到出租车共享平台(例如Uber、Lyft),这些服务 ES依赖于准确可靠的GPS输入。最近,全球定位系统在自动驾驶车辆导航方面也开始发挥重要作用,对驾驶安全产生了关键影响。与此同时,全球定位系统应用程序的安全性日益受到关注。gps很容易受到欺骗攻击,在这种攻击中,敌人可以注入伪造的gps信号来控制受害者。 蒂姆的GPS设备。这类袭击确实发生在现实世界中,尤其是针对无人机和船只的袭击。例如,Humphreys等人。演示了一个成功的gps欺骗攻击无人驾驶飞机在。2013年,一艘豪华游艇被故意从摩纳哥转移到希腊,欺骗了它接收GPS信号。到目前为止,攻击者是否可以通过欺骗的GPS信号的输入来操纵道路导航系统仍然是一个悬而未决的问题。考虑到导航系统在公路上被数十亿的司机积极使用,在自动车辆驾驶中发挥关键作用。同时,考虑到大多数道路导航系统都四通GPS信号来进行导航(或紧密地),这个问题对人类来说是有挑战性的。此外,GPS欺骗操作不太可能成功,主要是因为实际的道路限制。例如,随机的gps操作可以很容易地创建“ph”。 非常不可能的“导航指令”(例如,在高速公路中间左转)。由于攻击的可能性尚不清楚,大多数民用系统没有任何防御机制。
3.本篇论文的主要贡献
通过阅读全篇论文,我概括出本文共做出的三大贡献。
- 提出了一种秘密操纵道路导航系统的攻击方法。该算法利用了现实中出租车行驶轨迹,并对算法进行了广泛的评估。
- 我们实现了攻击算法和一个低成本的便携式GPS欺骗器.在道路上的实际测量和驾驶测试证实了攻击的可行性。
- 我们进行了一项用户调查研究,以证明在道路行驶过程中人为的因素可以影响攻击是否成功。这些结果表明,有些司机常见的驾驶习惯大概率会让他们遭受到GPS欺骗攻击,并对结果进行了分析和提出了相应的对策。
4.本篇论文的研究思路
1.首先本文介绍了两种攻击GPS信号的方法强制接管和平滑接管。强制接管,欺骗者只是以高功率发送错误信号,导致受害者失去对卫星的跟踪并锁定更强的欺骗信号。平滑接管,接管开始于发送与原始信号同步的信号,然后逐渐超过原始信号以引起迁移。平滑接管隐秘性,强制接管会在接收到的信号强度中产生异常跳跃,平滑接管需要特殊的硬件来实时跟踪并与受害者位置处的原始信号同步,价格更加昂贵。
2.接下来介绍了本文使用的便携式的欺骗设备HarkrfOne。由四个组件组成分别是HackRFOne-based前端,Raspberry Pi,便携式电源和天线。整体器件可以放在一个小盒子里我们将其连接到频率范围在700 MHz至2700 MHz之间的天线,覆盖民用GPS频段L1(1575.42兆赫),Raspberry Pi 可以用作中央服务器,它运行支持SSH的Raspbian Jessie操作系统和LAMP堆栈服务器。GPS卫星信号由一个名为的开源软件生成在Raspberry Pi上运行的无线攻击发射盒(WALB)。 Raspberry Pi具有蜂窝网络连接,并支持通过SSH进行远程访问(Se-并支持通过SSH(Se-cure Shell)。通过控制Raspberry Pi,我们可以手动或使用脚本来获取实时GPS位置信息。我们使用10000 mAh移动电源作为整个系统的电源。所有组件都是现成的。总费用大约是223美元(175美元+ 35美元+ 10美元+ 3美元)。
3.接着分析了GPS欺骗的可行性:如果攻击者随机改变导航设备的GPS信息,则驾驶员可以容易地注意到路线信息与物理路况之间的不一致。例如,欺骗的GPS位置可以触发导航系统指示“转弯”,但是在实际道路上没有办法向左转。为了让驾驶员相信他在原始路线上驾驶。如何使攻击更加隐蔽?关键是要找到一条模仿真实道路形状的虚拟路线。在这样,导航指令可以与物理世界保持一致。另一个影响因素是导航系统通常会显示第一人称视角。司机没有看到整个路线,而是关注当前路线和下一个转弯,这可能会增加攻击者成功的机会。
4.攻击的原理
- 受害者是纽约市的旅行者,他不熟悉该地区,因此依靠GPS应用程序进行导航。
- 图3a显示受害者正在从新泽西州的汉密尔顿公园(P)开车到曼哈顿的帝国大厦(D)。
- 假设攻击者接管受害者在Lincoln Tun nel(A)出口处的GPS接收器,如图3c所示。
- 攻击者创建错误的GPS信号以将GPS位置设置为附近的“主机”位置B.为了应对错误的位置漂移,导航系统将重新计算B和D之间的新路线。我们称之为新的路线鬼魂路线。
- 在物理道路上,受害者仍然在位置A并开始按照应用程序的逐向导航。同时,导航应用程序不断接收欺骗的GPS信号。最终,受害者将最终到达不同的地方C.注意B与D的路线形状类似于A与C的路线。
- 也即是受害者的原始导航路线为P→D; 在位置A,欺骗者将GPS设置为幻影位置B,其迫使导航系统生成新的路线B→D。在逐向导航之后,受害者实际上在物理世界中从A行进到C。
5.攻击的算法
- 基本攻击算法
如算法1所示,基本算法首先从距离绑定Ω的所有连接点中,从实际位置Loca中选择一个鬼位置Loca。然后, 计算从鬼位置到目的地的鬼导航路由Γg=(SG1,Sg2,.,sgm)。为了找到更多的受害者路线尽可能,我们通过m深度宽度优先搜索从实际位置遍历图.我们在每一步都保持符合以下条件的候选路线:
-
转向模式匹配:为了确保幽灵路由的导航指令可以应用于受害者路由,我们需要匹配两条路由的转弯模式:φ(svi,svi 1)和φ(Sgi), SGI 1)∈相同的机动指令类别。
-
分段长度匹配:给定一个速度刻度因子Ω速度,鬼魂的旅行距离应在(1±Ω)倍于受害者实际TRA的范围内 每个节段上的距离一样,这保证了在重影和受害者路由上的段长度是相似的。
-
迭代攻击算法
在基本攻击中,攻击者只将GPS位置从LOCA移动到LOCF。这里,我们提出了一种迭代攻击,使攻击者能够在不同位置创建多个漂移, 受害者正在开车。通过迭代地应用基本攻击算法,可以显著提高攻击性能,因为可以使用部分匹配的受害者-重影路由,在受害者移动时搜索新路线。如算法2所示,对于每次迭代,我们首先检查攻击目标是否已经实现。如果不是,我们在新幽灵r上创建另一个位置移位。 从前一次迭代中提取出分段,并应用基本的搜索算法。攻击者的目标可能是“到达预先定义的目标”或“输入错误的方式”,这有助于终止 早期搜索。
6.真实驾驶测试
-
为了实现完整的攻击算法,并通过实际驾驶测试验证了算法的可行性.两位作者用我们自己的车进行了同样的攻击。一名提交人担任司机(V) 严格遵守了在手机上运行的GoogleMaps(V9.72.2)的导航指令(小米Mix2与Android8.0和与Android6.0的华为P8)。另一个作者坐在上面 在后座上操作欺骗器,并在笔记本电脑上运行攻击算法。如前所述,欺骗者可以将假的gps信号与真实的gps信号区分开来,从而使攻击者知道真实的gps信号。 受害者的位置。实际驾驶测试的目的是在用户需要进行导航测试之前,检查欺骗者是否能够实时触发假导航指令。
-
与早期测量类似,我们获得了当地无线电监管机构的法律许可,并专门在中国进行了试验。此外,我们已采取积极步骤, 确保欺骗信号不会影响无辜的用户或汽车。更确切地说,我们在午夜后在郊区进行了测量,当时路上几乎没有其他汽车了。 。为了减小欺骗信号的影响,我们将欺骗器的发射功率降到最小(-40 dBm),然后使用衰减器(30 DB)来降低锁定后的信号强度。 汽车的金属结构也作为一个屏蔽,以包含欺骗信号(约15分贝的衰减)。
在两种不同的路由上进行了测试
A行→D表示原始路径
蓝线代表幽灵路线
黑线代表受害者
A是用户的实际位置
B是对应的鬼位置
C是用户的改道目的地
D是原来的目的地
在第一种情况(图6a),攻击者设置鬼的位置到原来路线上的另一个地点。测试表明,这确实可以避免触发“重新计算”语音提示。这条路线花了九分钟,司机很成功。 完全改道到预定地点,距原目的地2.1公里。
在第二种情况下(图6b),攻击者将鬼位置设置在原始路由之外,这将触发 一个“重新计算”语音提示。这一次,司机驾驶了五分钟,并被转向2.5公里以外。在这两种情况下,智能手机都被锁定在欺骗信号上,而没有掉一次。 假位置序列以10赫兹的更新频率平稳地输入手机。尽管在GoogleMaps中嵌入了标题和过滤器的潜在交叉,导航指示还是被及时的触发。
7.用户的调查研究
我们招募了40名参与者(20名在美国,20名在中国)。在40名参与者中,男性30名,女性10名。男的,17人是26-35岁,20人是18-25岁,3人是36-50岁。在驾驶经验方面,22人驾驶少于3年,16人驾驶3至10年,2人驾驶。十年到二十年。我们的参与者对TechSavvy用户略有偏见:20名用户(50%)具有计算机科学背景。
美国参与者对陌生地点的平均得分(7.85分)远高于熟悉的地方(4.55分)。结果来自中国的是一致的(10.0比3.93)。这意味着,我们的攻击可能不适用于熟悉的地区,因为人们不依赖GPS。用户更可能依赖语音提示和可视。 说明比文字信息。我们呈现一个GoogleMaps屏幕,并询问参与者通常依赖哪些信息来做出驾驶决策(一个多选择的问题)。在美国, 13名用户(68.4%)选择语音提示,11名用户(57.9%)依赖道路形状和箭头等视觉元素,只有6名用户(31.6%)选择文本信息(如街道名称)。结果fr 中国是一致的。这些结果有利于我们的攻击,这是为了操纵声音和视觉元素。我们的攻击取得了很高的成功率(95%)。在40人中,只有一名美国参与者和一名中国参与者认出了这次袭击。其余的38名参与者都完成了这四项任务。 NDS的驱动任务,并跟随导航到达错误的目的地。识破攻击的原因都是,驾驶者发现当时行驶的公路名称和谷歌地图上的不一样.
在驾驶任务中,我们观察到几乎所有的参与者都注意到GPS信号在接收阶段丢失(大约30秒),但仍然继续在路上行驶。一旦G PS信号回来后,他们继续遵循导航指令。我们随后的采访显示,大多数用户以前都经历过GPS故障,这还不足以提醒他们。在循环中。结果还指出了三种可能会提醒用户的不一致之处:(1)公路与当地道路的不一致;(2)不一致的街道名称;(3)不一致的T地标(例如加油站)。更先进的攻击可以通过过滤掉这些路线来进一步避免“公路-地方方式”的不一致。另外两个因素取决于司机是否有 习惯(而且有时间)反复检查周围的环境.此外,我们的访谈还显示,大多数人在现实生活中都经历过gps故障,这使他们更加宽容
5.论文今后的研究方向和需要改进的地方
1.基于修改的方法。首先,最有效的解决方案是升级民用GPS信号,使用P(Y)码加密。研究人员还提出了下一个基因的信号认证。 全球导航卫星系统[29,64]。然而,这种方法很难在短期内占上风,因为大量的民用gps设备已经运出了。
2.基于计算机视觉的位置验证。我们相信一个有希望的防御方向是使用计算机视觉技术自动交叉检查物理世界地标和街道标志。 用数字地图。回想一下,在我们的用户研究中,两位参与者以类似的方式识别了攻击。鉴于移动设备和车辆上的摄像机/lidar激增, ED位置验证只需要软件级别的升级。到目前为止,基于视觉的技术可以使用视觉测定仪和路线图精确地定位车辆(最多3米)[13,42]。模拟 OU定位和映射)还可以基于地理引用的街道视图数据库[69]对图像进行本地化。
3.在本工作中,我们对GPS欺骗攻击进行了优化,使其具有隐蔽性,这就必须在其他因素上做出妥协。首先,我们的攻击效果会在郊区或路结构稀疏的区域降低。然而,鉴于世界上54%的人口生活在城市地区,这次袭击可能会影响到许多人。第二,攻击并不适用于所有的人。 用户。我们的目标用户是在不熟悉的地区旅行,因为这些用户更可能依赖GPS进行导航。我们还认为,日益流行的自动驾驶系统会削弱人们的警惕程度。
我的实验成果
1.实验器材
2.实验环境:
硬件平台---HackRF One、GPS外部时钟、天线(700-2700MHz)
软件环境---Ubuntu运行HackRF环境
系统版本信息---Ubuntu-14.04 (64-bit),内核:3.13.0-32-generic
GPS终端---手机
3.实验步骤
①.首先进入已经搭建好软件环境系统Ubuntu-14.04
②.创建一个文件夹,打开命令窗口ctrl+alt+t
③.进入创建的文件夹,下载编译GPS仿真器代码(gps-sdr-sim)代码:git clone https://github.com/osqzss/gps-sdr-sim.gi
④.进入代码文件夹中:cd gps-sdr-sim
⑤.进入文件夹后,用gcc编译代码:gcc gpssim.c -lm -O3 -o gps-sdr-sim
⑥.在网站http://www.gpsspg.com/maps.htm上查询一个你感兴趣的地方的GPS经纬度信息,然后按照这个经纬度信息通过GPS仿真器生成GPS仿真数据:./gps-sdr-sim -e brdc3540.14n -l 31.603202,120.466576,100 -b 8
等待执行上述命令,执行结束后,文件夹中多出的gpssim.bin文件,就是我们模拟生成的GPS数据。
⑦.用HackRF来发射在上一步中模拟生成的伪造数据:hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0
打开手机中的高德地图或者百度地图等定位APP,你会看到你现在所在的真实位置,等待一段时间后,地图会定位到给定的经纬度附近。(命令参数解析:”gpssim.bin”为GPS数据文件,用-f来指定频率为1575420000 ,即民用GPS L1波段频率,用-s来指定采样速率2.6Msps,开启天线增益,指定TX VGA(IF)为0,发送指令末尾0表示天线增益(发射功率,最大可到40,增大发射功率可以增强伪造信号的强度,扩大其影响范围,在发送指令的后面加入 -R可使hackrf one一直工作。)
4.实验结果
4.1使用手机在手机4G, WIFI,飞行模式进行验证结果如下:
地图上显示从南京邮电大学变成了无锡碧桂园,欺骗成功。
4.2手机gps欺骗结果分析:
下面是经纬度的截图和当时的卫星信号的强度,因为信号是被伪造出来的而且离接收设备得很近,所以信号强度很高且差别不大。
4.3实验中发现小米、中兴、vivo手机无法被欺骗。目前收集的资料表明原因如下:
AGPS(Assisted GPS,网络辅助GPS)定位技术:结合了GPS定位和蜂窝基站定位的优势,借助蜂窝网络的数据传输功能,可以达到很高的定位精度和很快的定位速度,在移动设备尤其是手机中被越来越广泛的使用。AGPS分为两种:
MS-based:移动站将精密的星历和完好性信息传递给手机,手机根据星历自己判断搜索卫星,自己解算当前的位置。计算在手机上完成。
MS-assisted:设备将接收到的GPS信息通过蜂窝网络传输给AGPS位置服务器,AGPS服务器根据信息,并结合其他途径(蜂窝基站定位、参考GPS定位等)得到的辅助定位信息,计算出最终的位置坐标,返回给设备。
4.4实验的过程中手机收到了伪造的GPS信号,但在计算位置时通常有两种方案—在移动设备端进行计算的MS-Based方式和在网络端进行计算的MS-Assisted方式。目前大部分支持AGPS的手机采用一种纯软件的AGPS方案。由此猜测:
①绝大部分的手机都是采用MS-based方式计算位置,可以被欺骗;
②小米,中兴等部分手机无法欺骗可能是采用了MS-assisted,手机将接收到的信号发送给AGPS定位服务器,服务器完成计算并发送给手机,但在这个过程中计算的位置与基站蜂窝计算的位置相差太大,手机可能使用了基站的位置而没有采用gps信号定位;
③手机里面相关硬件以及系统处理不同;
④苹果手机是默认gps为最高优先级的信号,苹果手机可以被欺骗而且手机上的时间也能被修改。
4.5手机的定位种类1、GPS定位。2、基站定位。3、WiFi辅助定位。4、AGPS定位。5、Glonass定位。6、北斗定位
基站定位:手机同时搜索到至少三个基站的信号时,只需要以基站为圆心,距离为半径多次画圆即可,不过至少需要三个基站的信号才可以,由于基站定位时,精度大约在150米左右,基本无法开车导航。定位条件是必须在有基站信号的位置,手机处于sim卡注册状态(飞行模式下开wifi和拔出sim卡都不行),而且必须收到3个基站的信号。
实验如下:我们用vivo手机实验,在预先下载好上海的地图,然后拔掉sim卡,关闭wifi后,成功被欺骗。
4.6车载gps欺骗
左图为车载GPS接收到的GPS信号情况,右图为车载定位地图界面,实际地点与实际不符,车载定位被成功欺骗。
2.学习中遇到的问题及解决
- 问题1:怎么预防这种GPS欺骗攻击?
- 问题1解决方案:我认为可以从两个方面入手来解决这个问题;第一个方面就是驾驶员要养成良好的驾驶习惯,当我们要去一个陌生不熟悉的地方时,我们应该要做好准备,在地图软件上面事先了解一下目的地周围的环境,关注一下显著的地标等。第二个方面就是通过科技的研究来识破这种攻击,我觉得可以将地图的导航和测量GPS信号强弱这两种功能结合起来,并且当GPS信号突然消失的时候应该及时提醒用户,在一定程度上可以预防这种攻击。还有就是,采用新型的GPS设备、对GPS信号进行加密。
- 问题2:怎么改进这种GPS欺骗式攻击?
- 问题2解决方案:我们应该注意到,本文中有2名测试者识破了这种攻击。识破攻击的原因都是,驾驶者发现当时行驶的公路名称和谷歌地图上的不一样,从而发现问题。所以,更好的算法是,首先在地图上过滤掉一些显著的地标,比如桥梁、隧道、加油站等。然后再搜索相似的导航路径来实现攻击,这样的话,准确率应该会更高。
3.本次论文学习的感悟、思考等
我说选的论文是关于GPS欺骗的,这个方面的知识我在本科做过一些实验。通过对这篇论文的学习,我的感触很深!首先这篇论文的创新点在于,自己设计了一个全新的算法,并且将GPS的欺骗应用到汽车导航中,这个算法可以通过搜索一个鬼位置,让驾驶员误以为这就是自己当前的位置,然后通过搜索相似的路径来进行欺骗。以往的GPS信号欺骗就是一个简单的位置欺骗, 这些工作主要集中在简单的通过在目标设备[设置随机位置来进行欺骗,并没有真正的引导用户前往一个预先设定好的位置。其次,我跟老师同学们交流的时候,觉得这篇论文也可以换一种思路来理解,这种方法也可以应用于隐藏真实的地址,保护隐私。最后,我觉得在今后的学习过程中,我们要多多思考,多角度的去理解一篇顶会论文,从多个方面去寻找创新点,比如可以改进算法,或者如何预防某种攻击等!