前言:在基于对Pixel2 Pixel2XL Pixel3手机EMV信号的测试基础上,对手机的NFC场强信号做的改进和提高,最终使得测试效果改善不少。
-------------2019.12.16 Eric.Y--------------
研究的背景
手机对于NFC普遍的支持,一般作为标准配置发布。目前的手机厂商对于NFC支付的支持仅仅是作为模拟银行卡。所以在EMV组织中可以查询到NFC芯片对于卡的标准测试证书。
手机的NFC芯片也是可以读取银行卡片的,在Android Google的API应用层,是可以进行APDU的交换命令,由此对其进行EMV Level2的功能实现。
对于EMV Level One的支持, 目前手机的NFC信号,是间隔300ms到500ms发生检测信号,如果检测到场强的变化,手机发出POLL波形。这是符合ISO_IEC_18092协议的,在应用层,表现是NCI的标准,上层对NDEF做了封装实现。
对于使手机符合EMV Level One的标准,需要对手机nfc芯片进行研究。作者之前在Nexus上的研究基础之上,对Android7,8,9的nfc部分做了驱动修改,继而延申到了Pixel2 Pixel 2XL and Pixel3.
Pixel2 Pixel 2XL and Pixel3都采用了NXP的PN81T,本文讨论在这几个手机上的研究结果。
由于手机的NFC天线太小的限制,做了对NXP芯片的优化处理,使其尽可能多的符合EMV Level One的要求。
Android手机的NFC芯片统计
各个手机厂商使用的NFC芯片,从Andoid OS 7开始到Android OS 9这个时代, 大部分厂商使用的是PN81A/PN80T,包括华为,小米等。 华为Mate20为ST54J。Pixel 4用的是ST的ST54J。
Phone | Product Name | NFC Chip | NFC model | device |
---|---|---|---|---|
Nexus5X | bullhead | Nxp | Pn548 | /dev/pn548 |
Pixel2 | walleye | Nxp | PN81A | /dev/pn81a |
Pixel2XL | taimen | Nxp | PN81A | /dev/pn81a |
Pixel3 | buleline | Nxp | PN81A | /dev/pn81a |
华为P20 | HWEML | Nxp | PN81A | /dev/pn544 |
Samsung s8 | dreamqltechn | Nxp | PN80T | /dev/pn547 |
Samsung s8+ | dream2qltesq | Nxp | PN80T | /dev/pn547 |
Samsung s9+ | star2qltesq | Nxp | PN80T | /dev/pn547 |
Pixel4 | flame | ST | st54j | /dev/st21nfc |
系统代号可能因为厂商针对不同市场的build,会有所不同。
1. 测试的手机
Pixel 2 Pixel2XL Pixel3
系统是使用AOSP编译flash到目标手机
改进NFC模拟信号必须修改驱动并控制其时序,使其符合EMV L1数字和模拟测试的要求。
每个手机的AOSP信息:
手机 | 系统代号 | AOSP 分支 | 具体信息 |
---|---|---|---|
Nexus5X | bullhead | 8.1.0_r52 | OPM7.181205.001 |
Pixel2 | walleye | 8.1.0_r39 | OPM4.171019.021.Q1 |
Pixel2XL | taimen | 8.1.0_r40 | OPM4.171019.021.R1 |
Pixel3 | buleline | 9.0.0_r37 | PQ3A.190505.002 |
2. 信号的改进
改进方法略,如果想交流可以联系我:ylgi@hotmail.com
手机 | 测项 | Poll波形最高V | Poll波形平均值V |
---|---|---|---|
Pixel2 | 原始 | 8.19v | 6.00v |
Pixel2 | 改进Min | 7.50v | 5.54v |
Pixel2 | 改进Max | 8.19v | 6.05v |
手机 | 测项 | Poll波形最高V | Poll波形平均值V |
---|---|---|---|
Pixel2XL | 原始 | 6.88v | 5.15v |
Pixel2XL | 改进Min | 10.5v | 7.5v |
Pixel2XL | 改进Max | 8.19v | 6.10v |
手机 | 测项 | Poll波形最高V | Poll波形平均值V |
---|---|---|---|
Pixel3 | 原始 | 7.31v | 5.5v |
Pixel3 | 改进Min | 8.56v | 6.27v |
Pixel3 | 改进Max | 11.00v | 7.997v |
Pixel2改进空间不大, Pixel3 和Pixel2XL改进后,测试结果比较理想。
3. EMV Level One Analog模拟信号测试结果
Pixel 2结果:
Result | Number of tests | Percentage |
---|---|---|
Passed | 101 | 36.2 % |
Passed with Warning | 1 | 0.36 % |
Failed | 161 | 57.71 % |
Not Applicable | 0 | 0 % |
Inconclusive | 16 | 5.73 % |
Unexecuted | 0 | 0 % |
TOTAL | 279 | 100 % |
Pixel 2 XL结果:
Result | Number of tests | Percentage |
---|---|---|
Passed | 92 | 32.97 % |
Passed with Warning | 0 | 0 % |
Failed | 172 | 61.65 % |
Not Applicable | 0 | 0 % |
Inconclusive | 15 | 5.38 % |
Unexecuted | 0 | 0 % |
TOTAL | 279 | 100 % |
Pixel 3结果:
Result | Number of tests | Percentage |
---|---|---|
Passed | 92 | 32.97 % |
Passed with Warning | 0 | 0 % |
Failed | 163 | 58.42 % |
Not Applicable | 0 | 0 % |
Inconclusive | 24 | 8.6 % |
Unexecuted | 0 | 0 % |
TOTAL | 279 | 100 % |
4. EMV Level One Digital数字信号测试结果
所有手机都能通过数字测试。
Pixel 2结果:
Result | Number of tests | Percentage | |
---|---|---|---|
Passed | 635 | 94.63 % | |
Passed with Warning | 0 | 0 % | |
Failed | 0 | 0 % | |
Not Applicable | 36 | 5.37 % | |
Inconclusive | 0 | 0 % | |
Unexecuted | 0 | 0 % | |
TOTAL | 671 | 100 % |
Pixel 2 XL结果:
Result | Number of tests | Percentage |
---|---|---|
Passed | 635 | 94.63 % |
Passed with Warning | 0 | 0 % |
Failed | 0 | 0 % |
Not Applicable | 36 | 5.37 % |
Inconclusive | 0 | 0 % |
Unexecuted | 0 | 0 % |
TOTAL | 671 | 100 % |
Pixel 3结果:
Result | Number of tests | Percentage |
---|---|---|
Passed | 635 | 94.63 % |
Passed with Warning | 0 | 0 % |
Failed | 0 | 0 % |
Not Applicable | 36 | 5.37 % |
Inconclusive | 0 | 0 % |
Unexecuted | 0 | 0 % |
TOTAL | 671 | 100 % |
5. 研究的意义
从实验结果看,数字部分符合EMV的标准,模拟部分0cm和1cm比较理想,2cm,4cm通过的case的确很多不合符EMV规范。 但是对于手机的要求, EMV组织后续会做出标准的更新。 目前EMV Visa正在与我们合作指定手机上的NFC POS标准(mPOS),由于EMV组织对于市场上的手机NFC信号能满足哪些要求是不清楚的,所以就没有一个标准出来。这个标准修改内容包括EMV Level one和two。 EMV Level two也有一个限制, 就是card collision detection, 这个需要Google或者android厂商定制系统。
后续看市场发展吧, 华为声称有在支持银联POS,银联POS对手机的标准肯定不一样。华为成功了,后续还会有小米,OPPO,VIVO国内一线品牌。。。。。
接下来,会探讨EMV Level two上层的安全机制和实现。