在德国通过在线身份验证和难民融资进行的德国身份证欺骗


德国身份证

SEC咨询漏洞实验室的安全专家Wolfgang Ettlinger 描述了一种在在线检查州德国ID时篡改数据(包括名称和地址) 的技术

德国身份证从2010年11月1日起颁发。 每张卡都包含一个RFID芯片,该芯片存储有关所有者的信息,包括姓名,出生日期和生物特征照片。 如果所有者愿意,他可以记录指纹扫描。

新卡是机器可读的,可以在大多数欧洲国家/地区用作旅行证件,还可以用于在线政府服务中的身份验证(税收,邮政)或检查年龄。 它们用于在某些在线服务中对用户进行身份验证,包括在纳税申报门户上

使用读卡器和eID客户端应用程序(例如AusweisApp 2 )执行RFID身份验证,该应用程序与RFID芯片和身份验证服务器(eID服务器或SAML处理器)交互以验证登录信息。



为了防止身份伪造,身份验证服务器将验证信息,然后对从客户端发送到Web仆人的响应进行签名,以便Web服务可以信任所接收数据的合法性。

Wolfgang Ettlinger找到了一种方法,可以通过向他发送修改后的数据来欺骗Web应用程序。 屏幕截图显示了他如何以德国著名作家约翰·沃尔夫冈·冯·歌德的名义在官方申请中成功通过身份验证。 表格显示了作家居住50年的地址,以及今天的歌德博物馆所在的地址。



该漏洞位于Governikus Autent SDK中,该软件组件用于将身份验证功能集成到Web应用程序中。 包括它可以实现eID客户端的身份验证验证功能。 最重要的是, 验证是在两个独立的阶段进行的 。 在第一阶段,验证身份验证服务器的身份验证签名,在第二阶段,验证数据本身,包括所有者的身份。 结果,可以向应用程序发送两个独立的SAML响应:第一个具有有效签名,第二个具有伪造数据且没有签名。

该漏洞利用了Governikus Autent SDK使用HttpRedirectUtils.checkQueryString方法验证签名的事实,该方法不会考虑多次使用同一参数。 因此,在检查了参数之后,将分析其他实例,就好像它们已经通过测试一样。

这是在实际应用中如何应用此方法的方法:

 // check the signature of the SAML response. There is no XML signature in this response but the // parameter are signed. if (!HttpRedirectUtils.checkQueryString(request.getQueryString(), SamlExampleHelper.SERVER_SIG_CERT)) { storeError(request, response, "Signaturprüfung der SAML-Response fehlgeschlagen!"); return; } 

该方法接收查询字符串,对其进行解析,创建查询字符串的规范版本并验证签名。

然后解析SAML响应:

 // get the parameter value String samlResponseBasee64 = request.getParameter(HttpRedirectUtils.RESPONSE_PARAMNAME); [...] // parse the SAML Response. ParsedResponse parsed = parser.parse(samlResponse); 

如前所述, HttpRedirectUtils.checkQueryString不会多次考虑使用参数,而总是使用参数的最后一个值。

为了成功利用此漏洞,攻击者需要由身份验证服务器签名的查询字符串。 签名时间或要求签名的人之类的细节并不重要。 即使查询字符串在短时间内有效,也会对ID卡上的数据执行有效性检查。 根据研究人员的说法,如果您知道要查找的位置,那么获得有效的请求将不会很困难,因为可以通过eID客户端日志上的Google搜索获得这些请求。

研究人员在视频中显示了他们的结果:


运行Governikus Autent SDK 3.8.1和更早版本的易受攻击的Web应用程序,它们处理重复的HTTP设置。 例如,可以使用此漏洞以假名在在线服务中注册。

为什么需要这样的假名? 您可以举一个抽象的例子。 最近,德国内政部发起了“自愿返回”计划,该计划旨在资助任何希望自愿回家的外国人。 向政府支付机票和住宿要比强行驱逐难民便宜( 700欧元对1500欧元 ),也就是说,融资很有意义。


柏林地铁上的广告活动:对于已通知德国当局自愿离开家园直到12月31日的难民,将补偿其本国房屋的年租金

从理论上讲,任何外国人都可以来德国,申请难民身份,得到拒绝,然后立即获得该计划的资助。 欺诈者的唯一问题是您只能执行一次此技巧。 显然,服务将检查尚未以他的名义发放的利益。 但是,如果您以其他名称在程序中注册,那么理论上可以多次收到款项。

当然,欺骗德国的eID并不能帮助持外国护照的欺诈者以新的名字到达德国。 但是此示例表明,每个安全系统都必须具有漏洞。 唯一的问题是找到它们的愿望和资源。





Source: https://habr.com/ru/post/zh-CN431060/


All Articles