如何让PGP短密钥ID免于碰撞攻击?

简介:

针对开发人员的碰撞攻击让我们发现Pretty Good Privacy(PGP)短ID的漏洞,该漏洞允许攻击者创建假ID密钥,这会给收件人解密或验证邮件制造问题。那么,这个漏洞的工作原理是什么,以及为什么短密钥ID会成为问题?

Michael Cobb:当为电子邮件、文档或文件创建哈希值或者消息摘要时,需要通过使用密码散列函数来生成内容的短数字指纹,这种数学算法会将任意大小的数据映射到短的固定长度值作为其唯一标识。哈希值被广泛用于安全的很多方面,例如数字签名和数据完整性检查,人们通常会精心选择散列函数以确保它们有较强的抗碰撞性--即两个不同的输入无法创建相同的散列值,因为攻击者的碰撞攻击会试图寻找具有相同散列值的两组不同数据片段。

而PGP是对消息或文件进行加密和数字签名的加密工具,PGP的用户会有公钥和私钥,公钥通常在密钥服务器发布。由于这些密钥都非常长(通常为1024至8096位),所以我们通常使用公钥的指纹或哈希值来标记密钥,让某些密钥管理工作更容易和更快速,例如验证属于其他用户的密钥或者验证证书颁发机构。然而,当转换为十六进制数字时指纹为40位,这对于人类来说仍然太长而难以使用,因此人们和很多应用仅使用指纹的最后八位数。这被称为短密钥ID--长ID是指指纹的最后16位数字。下面是例子:

指纹: 0D29 F56F 12BD BA07 7B37 15AB 851F 799A B4FF 1057

长ID: 851F 799A B4FF 1057

短ID: B4FF 1057

虽然现代密钥散列函数几乎不存在具有相同哈希值的两个输入,但两个哈希值最后八位数相同的几率还是很高。事实上,我们已经发现很多具有相同短密钥ID的欺骗性PGP密钥。

多年来,大家已经知道这种碰撞攻击成功的可能性。在2011年,软件工程师Asheesh Laroia有效证明了这种攻击的可行性,这个问题在“RFC 4880:OpenPGP Message Format”3.3章节中也有提及--“不应该假定密钥ID为唯一标识”。尽管如此,使用短密钥ID仍然是常见做法,并构成真正威胁,特别是当涉及文件下载的完整性时,例如Linux内核。

尽管PGP本身没有缺陷或漏洞,但使用短密钥ID基本上是不安全的糟糕做法。用户不应该信任比公共PGP密钥完整指纹更短的ID用于验证;密钥ID的目的是帮助搜索密钥,而不是验证它。用户和软件都需要开始显示和检查完整指纹,或者至少使用长ID。长密钥ID也可能存在碰撞,但可能性较小。软件开发人员应该明确编写或重新编写代码以包含整个指纹,毕竟云计算使得攻击者可为长密钥ID生成碰撞攻击。现在那些将PGP密钥短ID印在名片背面的PGP支持者们可能会想要增加指纹的前两位来帮助他人验证其密钥。


作者:佚名

来源:51CTO

相关文章
|
存储 安全 API
阿里云APP下载入口和方式
阿里云APP是一款为用户提供安全、稳定、高效的云计算服务的手机应用程序。它具备多种功能,包括文件存储、文件共享、远程控制、备份等等。下面从背景介绍、概览、价值、竞品对比分析、可靠性、创新性、用户反馈和影响力等方面展开扩写。
阿里云APP下载入口和方式
|
域名解析 编解码 网络协议
【实操手册】一篇文章教你快速开始使用视频点播
阿里云视频点播(VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速、视频播放于一体的一站式音视频点播解决方案。 用户可以通过阿里云管理控制台进行基本和高级 VoD 配置、操作,还可以通过视频点播开发工具包(SDK)或直接在应用程序中进行 RESTful API 调用执行基本和高级 VOD任务。
4427 0
|
安全 Cloud Native 专有云
《阿里专有云等保合规白皮书》发布,阿里云实现首个一体化云原生安全架构
3月21日,2019阿里云峰会·北京,阿里云联合公安部信息安全等级保护评估中心发布了《阿里专有云等保合规白皮书》(以下简称《白皮书》),基于云等保合规技术框架,给出了阿里专有云多种交付场景下等保2.0合规的最佳实践,旨在为政府、企业、组织机构等相关单位满足等保合规要求提供行动指南,这也是全球首个专有云等保合规白皮书。
|
Shell Perl Python
如何优雅的使用GMT绘图(2): 主题风格和数据路径
GMT无疑是一个非常方便且高效的通用绘图软件,尤其是最近更新了**modern**模式,使得科研绘图更简单更高效!GMT默认的绘图风格(通常会用在ppt里)整体上是白底黑字,这更大多数的软件都是一样的。
3174 0
|
存储 关系型数据库 MySQL
|
SQL 存储 缓存
蚂蚁金服自研分布式关系数据库OceanBase上线阿里云
OceanBase于2020年3月在阿里云上完成了商业化,在公有云上正式对外开放。同步上线的还有相关的生态产品,包括集群管控(OCP:OceanBase Cloud Platform),诊断(OTA:OceanBase Tunning Advisor),迁移服务(OMS:OceanBase Migration Service)及开发者中心(ODC:OceanBase Developer Center)。
2938 0
|
存储 弹性计算 容灾
重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%
12月13日,全球前三的云计算公司阿里云公布了最新的弹性计算服务等级协议SLA,单实例的可用性从99.95%提升至99.975%,多可用区多实例可用性从99.99%提升至99.995%,均为全球最高水准。
|
数据可视化 机器学习/深度学习 微服务
如何提高深度学习模型的可解释性?极致的数据透出与多维可视化实战详解
深度网络对机器学习研究和应用领域产生了巨大的影响,与此同时却无法很清晰地解释神经网络的来龙去脉。迄今为止,深度学习不够透明,神经网络整体看来仍然是一个黑箱。
1858 0
|
Web App开发 数据采集 缓存
Python爬虫入门教程 41-100 Fiddler+夜神模拟器+雷电模拟器配置手机APP爬虫部分
爬前叨叨 从40篇博客开始,我将逐步讲解一下手机APP的爬虫,关于这部分,我们尽量简化博客内容,在这部分中可能涉及到一些逆向,破解的内容,这部分尽量跳过,毕竟它涉及的东西有点复杂,并且偏离了爬虫体系太远,有兴趣的博友,可以一起研究下。
3663 0