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

德国政府在2010年时推出芯片身份证。资料照片,与新闻事件无关。
德国联邦印制厂。
资安业者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则说,若在网络应用程序的防火墙配置中拒绝同一名字的多重参数亦能有效防范攻击。
