漫谈通过NFC手机读取身份证


最近读到一则消息

中国移动在基于自有品牌的N1手机上开发了一个专用APP,并且通过升级手机系统就可以使N1手机读取普通的居民身份证(就是我们俗称的二代证)。

我们暂且先不管APP具体的使用场景,这里只就通过NFC手机读取二代证做一个技术方面的可行性分析。

手机-身份证

二代证虽然使用的是非接type B技术,但其实又和标准协议有很大区别,我们可以称之为定制化的专有协议!

这主要是考虑到公民身份信息的敏感性和安全问题,目前主要的身份证芯片提供商都是国产厂商,包括

  • 华大
  • 同方
  • 华虹
  • 大唐等。

相应的读写机具也是完全有国内厂商提供。技术实现流程上主要是多了一个”安全加密模块”,这个模块使用的是国产安全算法,并预置密钥,在读写机具和卡片芯片里都有这个加密处理模块。

在每步通讯交互前,发送方都会将待发送的数据送到加密模块加密,再将数据通过读写芯片发出,接收方在接收到数据后会采取相同算法和相同密钥进行解密获取原始数据,然后对原始数据的处理就参照标准的ISO14443 Type B协议的定义。

从这里可以看出,实际上读写芯片可以是任何现有的标准非接读写芯片,包括也可以使用国外厂商的芯片,因为数据传输和数据加密是分离的,而非接读写芯片只是作为透明传输通道使用。

对于N1手机来说,应该会改动几部分才能真正实现读二代证的功能

  • 首先CLF的代码更改支持读取二代证。对CLF来说是由它来实现最终的非接通信,因为二代证的ATQB信息里会指明使用了非标准协议,所以通常的标准type B协议不改造可能就会拒读二代证(类似于目前的普通读写器,只有REQB和ATQB的交互,因为得知卡片后续采用专有协议,而读写器如果不支持,就会停止进一步交互或者重复发送REQB),所以CLF的代码必须要修改以支持读取二代证的。
  • 第二,需要安全加密模块。目前很多基于高通芯片的手机都已经支持TEE功能,所以不排除有可能会在TEE上加载能够支持二代证加解密的TA应用。
  • 另外,还应该有一个总控APP,这个APP可以是系统预置的,由他来管理和协调支持加解密的TA应用和操控CLF芯片发送接收专有数据。通过这几部分的改造应该就可以完成对二代证的读取解析。

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>