2023年10月,有一篇blog文章公布了针对France Identité——也就是法国在推行的新数字身份ID的安全分析和漏洞发现的细节,根据法国于2023年7月1日起施行的新反间谍法,这种“针对国家机关、涉密单位或者关键信息基础设施等实施网络攻击等行为”应明确为间谍行为。那么让我们赶紧来学习一下这位“法国间谍”的大作。
上述的介绍当然是开玩笑,这位博主是受邀参加了针对France Identité系统的内部bug bounty测试,不过ta显然是对这个测试比较失望,因为这是个纯黑盒的测试,每个受邀的测试人收到了一张fake的身份卡片(如下图),而且没有给测试者提供PIN码,因此很多功能都无法使用。
作者经过黑盒分析,发现卡片的工作模式如下图所示。如果你不太理解这个工作模式和它对应的安全问题,那么赶紧去回顾一下我们在2020年发表的论文Understanding the security of app-in-the-middle IoT(可在 https://www.lijuanru.com/publications/cs20.pdf 下载PDF),了解所谓的APP-in-the-middle攻击与安全风险。
作者基于对我们的论文的理解丰富的安全审计经验,在没有源代码的情况下,只凭借对France Identité相关APP的API的分析,就理解了整个流程。特别地,作者发现在France Identité的智能卡和服务器通信过程中,为了防止APP-in-the-middle攻击(下图),还依赖了TEE来辅助建立从手机端到服务器端的安全信道(也就是说,第三方APP没法主动伪装并和服务器建立TLS连接):
不过,作者还是敏锐地抓住了这个过程中的第一个漏洞——AES GCM IV重用漏洞。简单地说,在建立APP和服务器之间的安全信道过程中,由于协议实现上的问题,攻击者可以控制IV令其重用,而且还能够预测到特定的明文会被加密,因此就可以利用一组已知明文对应的密文作为unmask的工具,通过简单的XOR操作来解开其他的密文。作者特别推荐了AES-GCM-SIV
模式来替代原有的AES-GCM-IV
模式,好处是AES-GCM-SIV
模式保证了在IV重用的情况下,加密仍然是安全的。
整个协议的第二个漏洞是服务器端在建立安全信道的握手阶段,没有对ApplicationID
进行验证,也就是说即使是有TEE的介入,服务器端却并没有去严格验证handshake信息中的关键字段,作者实际伪造了一个修改过的handshake包(如下图所示,改掉了appid
字段),服务器依然接受了……
作者发现的第三个漏洞是在密钥交换过程中,实际上可以发送一些比常规要求更短(例如少掉一个字节)的challenge信息,然后协商出一个奇怪的共享密钥。这个问题充分说明了APP和服务器端的开发人员对密码学不能说是一窍不通,起码也是一知半解……
最后一个漏洞是对密码学实践里面非常经典的要求——不要对消息内容签名,要对消息整体签名——的违规使用。在服务器端收到的消息中,有两个metadata字段(ID和SSC,先不管它们具体什么功能)本来应该是对应关系,但是在实践中,如下图所示,攻击者可以把两条消息里面的这些字段的信息互换,服务器那边也一样接受……
总之,这篇blog文章给大家展示了一个非常经典的安全系统的逻辑层面的审计实例。最后,我们建议法国当局明确有关方面积极开展反间谍宣传教育的职责,专门机关指导宣传教育活动,切实提高全民反间谍安全防范意识和国家安全素养。明确重点单位的安全防范责任和涉及国家安全事项的建设项目许可制度。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...