研究人员破解了德国芯片身份证的线上验证程序

网络安全企业SEC Consult本周指出,他们发现德国RFID芯片身份证的线上认证程序含有漏洞,允许黑客假冒他人身份访问网络服务。

德国从2010年开始就颁发镶有射频识别(RFID)芯片的数字身份证,并于芯片上存放德国人们的身份数据,包括姓名、生日、照片,或是指纹等,人们只要配备读卡机及芯片身份证的客户端软件(eID client)就能使用线上认证功能,访问各式网络服务。

网络服务要进行认证时,会先发送一个请求至eID client,以启动之后的认证程序,它会要求用户输入PIN码以与认证服务器及网络应用程序交流,再由RFID芯片发送已由认证服务器签署的用户数据至网络应用程序。

SEC Consult研究人员Wolfgang Ettlinger却找到了当中的一个漏洞,可绕过认证服务器的保护,发送修改过后的身份数据给网络应用程序。

该漏洞藏匿在Governikus Autent SDK,这是个允许企业将身份证认证功能集成到网络服务的软件组件,也负责检查eID client所传递数据的合法性,先是检查这些数据是否具备认证服务器的数字签章,再验证数据本身的内容,然而,该漏洞却允许黑客在这两个验证程序中提供不同的数据,因为当Governikus Autent SDK确认数据通过第一个步骤的审核之后,就会理所当然地把第二步骤的内容视为合法。

在Ettlinger的示范攻击中,他成功地变更了身份证上的名字及地址。

尽管相关攻击仍有少许限制,例如它只影响采用Governikus Autent SDK 3.8.1或之前版本的网络应用程序,只波及使用HttpServletRequest.getParameter的网络服务,但Ettlinger估计仍有大量网络应用程序正陷身于风险中。

Governikus已在今年8月发布Autent SDK 3.8.1.2以修补该漏洞,Ettlinger则说,若在网络应用程序的防火墙配置中拒绝同一名字的多重参数也能有效防范攻击。