NFC的安全性
NFC近距离无线技术具有快捷、易用、安全等特性,其中安全是支付行业最关心的特性。
众所周知传统磁条银行卡的账号信息,是记录在磁条中,当进行刷卡交易时,POS机将交易金额,银行卡中的账号信息以及用户输入的账号密码,一起提交到银行服务器进行验证,当验证通过后即在银行后台完所扣款,然后返回交易结果。
由于磁条的易读取及静态特性,很容易被直接复制,制造出账号信息完全相同的两张卡,这样用户在银行卡未离开身边的情况下被盗刷。
使用NFC技术时,NFC芯片可与POS机进行动态的双向认证。每次交易的数据都是动态生成的,而且账号信息等是通过加密存放,无法直接读取。这样解决了几个问题:
1,NFC中的信息并非静态存放,破解者无法通过直接读取的方式来复制。
2,获取账号信息需要与POS机双向认证,非法设备不具有这些认证密钥,无法获取账号信息。
3,每次交易都由NFC芯片内的随机数发生器产生临时密钥,通信数据当次有效,所以即使捕捉NFC交互数据也无法复制交易。也无法简单篡改金额来伪造交易。
所以,NFC的安全性并不在于看不见交易数据,而是由于NFC为智能卡带来了能量,使得整个交易过程得以动态产生,无法通过简单的读取来复制银行卡,最终达到安全的目的。
下面以Mifare的认证过程加以说明:
1,Mifare卡B发出一个随机数Rb;
2,读卡器A产生一个随机数Ra,并将Rb一起加密后返回TokenAB给卡片;
3,卡片收到TokenAB后,译码并验证ToakeAB中的随机数Rb是否与步骤1中的相同。如不相同则认证失败;
4,卡片B将刚才的Ra加密后发给读卡器一个值TokenBA;
5, 读卡器A收到后,译码并验证TokenBA中的随机数是否和步骤2中的Ra中的相同。如相同则双向认证成功。
当卡片和读卡器有相同密钥的情况下,可以通过上述五个步骤的认证。而密钥在认证过程中并未被明文传输,所以安全性大为提高。
上述只是从卡复制的角度上阐述了NFC卡片的安全性,在支付过程中,还需要有用户密码这个方式来确保交易的安全。
NFC的安全性的更多相关文章
- 简单谈谈NFC(转载自-tlex/pku_android)
NFC是Near Field Communication缩写,又称近距离无线通信,是一种短距离的高频无线通信技术,允许电子设备之间进行非接触式点对点数据传输(在十厘米内)交换数据.这个技术由免接触式射 ...
- [Android L]SEAndroid增强Androd安全性背景概要及带来的影响
1 SEAndroid背景 Android对于操作系统安全性方面的增强一直沿用Linux内核所提供的MAC强制访问控制套件SELinux,对权限进行了更为深度的管理,有效地控制着进程对资源的访问 ...
- Android NFC开发概述
NFC手机相比普通手机来说,有以下3个附加功能: 1.可以当成POS机来用,也就是“读取”模式 2.可以当成一张卡来刷,也就是NFC技术最核心的移动支付功能 3.可以像蓝牙.Wi-Fi一样做点 ...
- 解惑:NFC手机如何轻松读取银行卡信息?
自支付宝钱包8.0推出了NFC新功能,只要将支持NFC功能的手机靠近公交卡.银行卡等带有芯片的IC卡上,可迅速读取卡内余额.卡的信息,还可以给卡进行充值,非常贴心实用. 但是很多网友表示担忧,要是别人 ...
- 手机NFC通信的安全车钥匙
SmartKeys for Cyber-Cars:Secure Smartphone-based NFC-enabled Car Immobicizer 手机NFC通信的安全车钥匙 1概述 如今,智能 ...
- Android NFC标签 开发深度解析 触碰的艺术
有几天没有更新博客了,不过本篇却准备了许久,希望能带给每一位开发者最简单高效的学习方式.废话到此为止,下面开始正文. NFC(Near Field Communication,近场通信)是一种数据传输 ...
- NFC手机
NFC手机 NFC手机内置NFC芯片,比原先仅作为标签使用的RFID更增加了数据双向传送的功能,这个进步使得其更加适合用于电子货币支付:特别是RFID所不能实现的,相互认证和动态加密以及一次性钥匙(O ...
- NFC简介
NFC简介 NFC是Near Field Communication缩写,即近距离无线通讯技术.由飞利浦和索尼公司共同开发的NFC是一种非接触式识别和互联技术,可以在移动设备.消费类电子产品.PC 和 ...
- 龙杰ACR122S NFC读卡器
龙杰智能卡有限公司(ACS,龙杰智能卡控股有限公司之全资附属公司,香港联交所上市编号:8210)创立于1995年,是亚太地区第一大.全球三大智能卡读写器供应商之一.ACS被<福布斯亚洲>杂 ...
随机推荐
- Java程序员需要学习的知识点
Java是全世界最受欢迎的3大编程语言之一,它可以开发出许多实用的WEB应用程序和桌面应用程序,更重要的一点,Java是跨平台的语言——编写一次,可以再任何地方运行.另外,Java也很容易入门,如果你 ...
- js加载优化三
Javascript性能优化之异步加载和执行 Author:小欧2013-09-17 随着科技的发展,如今的网站和五六年前相比,现在的人们对web的要求越来越高了,用户体验,交互效果,视觉效果等等都有 ...
- #1042 - Can't get hostname for your address
my.ini 或 my.cnf 末尾添加 skip-name-resolve 并重启MySQL服务器 ok!
- SQL Server - 聚集索引 <第六篇>
聚集索引的叶子页存储的就是表的数据.因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引. 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为 ...
- [置顶] 玩转Eclipse — 自动注释插件JAutodoc
代码注释是一种良好的编程习惯.不管对于他人还是自己,注释都有助于代码的阅读和理解.手动添加注释,是一个非常费时和繁琐的工作,严重影响软件开发效率,这也是绝大多数程序员不愿添加注释的主要原因.JAuto ...
- 【转】高通平台android 环境配置编译及开发经验总结
原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...
- VS2008生成的程序无法在其它电脑上运行,提示系统无法执行指定的程序
经过一番查找,最给力的参考是 http://www.cnblogs.com/visoeclipse/archive/2010/02/27/1674866.html ------------------ ...
- ZOJ(3455)
Shizuka's Letter Time Limit: 2 Seconds Memory Limit: 65536 KB Nobita receives a letter from Shi ...
- Raphaël—JavaScript Library
Raphaël-JavaScript Library What is it? Raphaël is a small JavaScript library that should simplify yo ...
- Linux 多线程开发
在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死.在被其他线程回收之前,它的存储器资源(例如栈)是不释放的.相反, ...