SmartKeys for Cyber-Cars:Secure Smartphone-based NFC-enabled Car Immobicizer

手机NFC通信的安全车钥匙

1概述

如今,智能手机的高性能平台,提供广泛的功能,并已成为我们日常生活中不可分割的一部分。日益增加的计算能力和存储能力,庞大的数量和不同种类的应用程序在应用商店。新的通信接口,近场通信(NFC),集成在智能手机中,为电子tickting、支付和访问控制提供许多部署的可能性。在这种情况下,一个新兴的趋势是集成的智能手机置身于现代汽车的系统和应用程序之间,如接入控制解锁,配置和启动车辆,控制车辆内部环境等。NFC是非常适合于这样的应用场合的,由于其数厘米的通信范围(NFC接口)提供用户的基本保证物理接近。

1.1设计模型

上图实现了车钥匙的功能:

优点:

l  安全,每一个环节都通过加密认证来实现开锁功能,充分的保证钥匙安全。

l  方便,不用携带车钥匙,只要拿着拥有NFC的手机,靠近汽车即可。

l  便捷,对于租车公司、车队的管理,只需要授权给员工,防止不法人员私配钥匙。

l  对于汽车拥有者可以很轻松的管理自己的汽车。

l  如果手机丢了,车主也无需担心汽车会丢。

缺点:

²  每个车要安装NFC-enabled固件

²  手机要携带NFC-enableddevice,朋友的手机也要携带,通用性较差。

Smart Keys for cyber-Cars的安全问题一直备受人们的怀疑,到底它能不能保证car的绝对安全,所以提出了本文,系统模型如图1所示。

既然我们提出防攻击的SmartKeys for cyber-Cars模型,那么我们首先要知道我们的对手是谁,我们怎样一个一个的解决掉。

1.2攻击模型

我们的主要目的是:阻止任何没有认证的客户端进行汽车内。

1 通信通道截获员

M-C,M-O,O-U,O-C,U-C之间都可能被监听。模型如图2所示。

2 手机上的其它软件对数据的攻击

3 对汽车上携带的NFC固件设备进行渗透和攻击

1.3要实现的目标

设计Smart Keys for Cyber-Cars的目标:

O1: O和U成功解锁,并且非常快速,提高用户体验。

O2:M能远程授权O,也能废除O。

O3:O能远程分权U,也能废除U。

O4: 很高的安全性。

 

2系统设计

2.1系统设计构架

我们的安全性体系结构,Figure 3中所示。分为两个独立的世界:一个不受信任的主机H和可信执行环境S执行环境的移动平台。H运行在移动设备上,而TrEE S建立安全硬件上。这种安全硬件可以嵌入到智能手机或连接通过标准的通信接口,向所述移动设备,它不需要任何更改商品平台。

无论是TrEE S还是Host H都是要通过TrEE Mgr来与SecureStorage进行访问的。效果图如Figure4所示。

2.2Protocol的设计

这里protocol过程总共分为了七个部分:

(1)      初始化工作

(2)      O用户注册

(3)      Token的发行

(4)      O解锁Car C

(5)      O分配权限给U

(6)      U解锁Car C

(7)      M废除O,O废除U用户

2.2.1 初始化工作

1 Smartphone初始化TrEE

Smartphone安装SmartTokenSecureapp,使用SmartTokenSecure初始化SecureStorage,这里使用{(skp,pkp), certp证书},见图4。这里只有Smartphone知道与skp对应的公钥pkp

2 Immobilizer NFC of Car端的初始化

Car C端装入[KCAuth, KCEnc]都会在协议验证中使用,由M管理机构完成。这里的KCAuth用来验证,KCEnc用来加密。

2.2.2 O用户注册

O在买车之前,注册自己的手机平台。M管理机构检查P上的证书certp,生成[KO,MAuth , KO,MEnc],用于发行协定处理。然后,M使用SmartTokenSecureapp,利用公钥pkp对生成的[KCAuth , KCEnc]进行加密处理,把对应的密文由SmartTokenSecure存储到SecureStorage中。

2.2.3 Token的发行

M生成[KOAuth, KODel],KOAuth用来解锁Car,KODel用来分配权限给U。

σM:=MAC(KCAuth ; IDO , KOAuth, KODel)

T:=Enc (KCEnc  ; IDO , KOAuth, KODel, σM)

KOAuth, KODel ,TO 存入SecureStorage中,这里的[KOAuth, KODel]是通过[KCAuth, KCEnc]解析出来的。

2.2.4 O解锁Car C

2.2.5 O分配权限给U

O生成KUAuth,2.2.3中O有[KOAuth , KODel]两个密钥,KOAuth用来解锁Car,KODel用来分配权限给U。

σO:=MAC(KOAuth ; IDU , KUAuth)

T:=Enc (KODel  ; IDU , KUAuth,σO)

将生成的TU 通过安全通道传递给U的SmartTokenSecureapp。

2.2.6 U解锁Car C

将TU,TO 传递给C,C通过KCEncKCAuth 在TO中解码出KODel,然后再TU解码出KUAuth 。验证[σO M]。

σM:=MAC(KCAuth ; IDO , KOAuth, KODel)

T:=Enc (KCEnc  ; IDO , KOAuth, KODel, σM)

2.2.7 M废除O,O废除U用户

这里没有交代。

 

3安全硬件

SR1:安全存储。安全敏感的数据不应该访问不可信的软件组件,而存储在该平台上。

SR2:隔离。操作上安全敏感数据的系统组件必须是可信的,并从隔离不受信任的组件。此外,它必须确保安全敏感操作,如验证和委派,被触发由用户而不是恶意软件。此外,先进的使用情况下,如代表团和基于策略的访问控制,依靠安全关键用户输入,如密码和用户定义的访问控制策略。因此,对于这些使用情况下,我们需要一个额外的安全要求:

SR3:安全用户界面。用户(车主O或汽车用户U)应该能够安全地进行通信信任的组件。

手机NFC通信的安全车钥匙的更多相关文章

  1. 手机NFC模拟门禁卡

    楼主所在的某电子科技类大学,从宿舍楼到实验楼到图书馆办公楼,全部都有门禁,前两天突然在某安软件市场看到一个可以模拟门禁卡的软件,然而可能是我的手机系统太6了,竟然模拟不了,无奈自己动手,从根本上解决问 ...

  2. 移动支付之智能IC卡与Android手机进行NFC通信

    本文来自http://blog.csdn.net/hellogv/ .引用必须注明出处.        眼下常见的智能IC卡执行着JavaCard虚拟机.智能IC卡上能够执行由精简后的Java语言编写 ...

  3. NFC通信的模式选择

    原帖请参照:http://www.nfcchina.org/forum.php?mod=viewthread&tid=68&extra=page%3D1 1.nfc 怎么选择操作模式的 ...

  4. Android系统移植与调试之------->如何修改Android手机NFC模块,使黑屏时候能够使用NFC

    我们都知道在不修改源代码的情况下,只能是解锁之后才能使用NFC功能.而在锁屏和黑屏2个状态下是没办法用NFC的,但是最近有个客户要求手机在黑屏状态下能够使用NFC,因此我们需要去修改Android源代 ...

  5. NFC手机

    NFC手机 NFC手机内置NFC芯片,比原先仅作为标签使用的RFID更增加了数据双向传送的功能,这个进步使得其更加适合用于电子货币支付:特别是RFID所不能实现的,相互认证和动态加密以及一次性钥匙(O ...

  6. NFC:Arduino、Android与PhoneGap近场通信

    NFC:Arduino.Android与PhoneGap近场通信(第一本全面讲解NFC应用开发的技术著作移动智能设备近距离通信编程实战入门) [美]Tom Igoe(汤姆.伊戈),Don Colema ...

  7. Android NFC近场通信1——NFC概述

    最近对NFC挺感兴趣,而且新换的手机也支持NFC功能(最近换了Find5,感觉还不错O(∩_∩)O),所以打算学学NFC编程.NFC就是我们经常说的近场通信.通常距离是4厘米或更短.NFC工作频率是1 ...

  8. NXP NFC移植及学习笔记(原创)

    NFC功能介绍 NFC 目前使用的三种功能: 1. P2P模式:基于LLCP协议的基础上,以NDEF数据交换格式来通信. 2. 读写模式:当作为读卡器,对NFC Tag的读写. 3. 卡模拟模式:模块 ...

  9. 简单谈谈NFC(转载自-tlex/pku_android)

    NFC是Near Field Communication缩写,又称近距离无线通信,是一种短距离的高频无线通信技术,允许电子设备之间进行非接触式点对点数据传输(在十厘米内)交换数据.这个技术由免接触式射 ...

随机推荐

  1. 你所不知道的 URL

    0.说明 第一幕 产品:大叔有用户反映账户不能绑定公众号.大叔:啊咧咧?怎么可能,我看看?大叔:恩?这也没问题啊,魏虾米.大叔:还是没问题啊,挖叉类.大叔:T T,话说产品姐姐是不是Java提供接口的 ...

  2. CF 577C Vasya and Petya's Game

    题意:一个游戏,A童鞋在1~n的范围里猜一个数,B童鞋询问一个集合,A童鞋要对集合里每个数做出回答,他猜的数能否给整除,B要通过这些答案得到A猜的数,最少需要猜哪些数? 解法:一个数可以由若干个质数的 ...

  3. C++中引用的本质是什么?

    一般的教材上讲到引用时,都是说“引用是对象的一个别名”.我认为这种定义是不清晰的,不利于初学者理解引用.至少我自己曾经被这个定义困扰了一段时间.到底什么是“别名”? 实际上,引用的实质是位于xxxxx ...

  4. 使用buildbot实现持续集成(转载)

    转载自:http://www.oschina.net/p/buildbot 使用 Buildot 实现持续集成 使用基于 Python 的工具实现持续集成的理论与实践 牛仔式编码的日子在大多数组织中早 ...

  5. IOS Swizzle(hook)

    /////////////////////////////////////////////////////////////////////////////////////////////////// ...

  6. Richedit使用大全

    原文地址:http://blog.csdn.net/pcseye/article/details/3903333 一.常见问题 a.可以编译,不能执行的 AfxInitRichEdit(); b.升级 ...

  7. C/C++:类模板

    类模板就是为类声明一种模板,使得类中的某些数据成员,或某些成员函数的参数,又或者是某些成员函数的返回值可以取任意的数据类型,包括基本数据类型和自定义数据类型. 类模板的声明形式如下: template ...

  8. Java中Runnable和Thread的区别(转)

    http://developer.51cto.com/art/201203/321042.htm 第一种方式:使用Runnable接口创建线程 第二种方式:直接继承Thread类创建对象 使用Runn ...

  9. MapReducer Counter计数器的使用,Combiner ,Partitioner,Sort,Grop的使用,

    一:Counter计数器的使用 hadoop计数器:可以让开发人员以全局的视角来审查程序的运行情况以及各项指标,及时做出错误诊断并进行相应处理. 内置计数器(MapReduce相关.文件系统相关和作业 ...

  10. openstack 网络

    物理节点hosts解析配置