APP下载

防伪邮件密钥

2015-10-15

CHIP新电脑 2015年10期
关键词:私钥公钥爱丽丝

关键问题

通过PGP加密保护电子邮件安全是行之有效的,然而,发布公共密钥和存储于密钥服务器上的PGP公共密钥的真伪无法分辨,而OPENPGPKEY提供了解决这些关键问题的方法。

密钥服务器的查询结果表明,任何人都可以上传自己的PGP密钥,并声称自己是任何人。

无需验证PGP密钥

要让鲍勃可以发送加密的邮件到爱丽丝那里,爱丽丝必须创建两个密钥:一个是自己保留用于解密的私钥1 ,另一个是上传到一个密钥服务器上的公钥2 ,鲍勃可以通过密钥服务器取得爱丽丝的公钥加密他给爱丽丝的邮件3 ,爱丽丝用自己的私钥解密鲍勃发给她的邮件4 。

认证的PGP密钥

爱丽丝创建私钥1/公钥对,她将公钥发送给自己的邮件服务提供商,公钥2 被加入DNS服务器提供商IP地址的条目,可以通过DNSSEC验证。鲍勃可以获取经过认证的密钥并加密给爱丽丝的邮件3 ,爱丽丝用自己的私钥解密鲍勃发给她的邮件4 。

德国的Mail.de是第一家支持OPENPGPKEY的供应商,用户可以将自己的公钥送到mail.de,mail.de将把公钥上传到DNS服务器。

通过mail.de提供的网站openpgpkey.info,输入用户的电子邮件即可获得公共密钥(其真实性通过OPENPGPKEY得到保障)。

爱德华·斯诺登认为在这个被各种情报机构严密监控的互联网上,我们要保护自己的隐私,一个强大的加密系统是唯一的选择。对于网站或者即时通讯服务,可供我们选择的加密方案很多,但是电子邮件的加密则有些棘手。加密与电子邮件服务供应商的连接,确保邮件以密文的方式传输这方面没有什么问题,大部分供应商都提供安全的加密连接方式,但是电子邮件仍将以明文方式存储于电子邮件服务商的服务器上,对斯诺登所使用的电子邮件供应商拉维毕特的袭击证明,情报机构完全有可能通过电子邮件服务供应商来监视用户的电子邮件。只有一种解决方案是真正安全的,那就是邮件从发件人传输到收件人之间的整个过程都必须采用加密方式。

使用PGP(Pretty Good Privacy)我们可以实现这一安全的加密方案。首先我们需要通过软件(如Gpg4win)生成一个密钥对,密钥对由私钥和公钥组成,只有私钥才能解密由公钥加密的邮件。我们只需要将公钥发送给联系人,联系人即可用它加密发送给我们的电子邮件。任何人都可以使用公钥加密发送的电子邮件,确保只有拥有相对应私钥的收件人才可以阅读邮件。PGP效果很好,起码在朋友和熟人的圈子里使用时很好,因为大家彼此比较熟悉,可以很方便地交换和保存彼此的公钥。但是,如果我们希望陌生人也能够加密发送给我们的电子邮件,那么目前可以选择的方案是将公钥上传到公开的密钥服务器,此类服务器通常由一些大学提供,其目的是为了让大家可以在线存储公共密钥。不过,密钥服务器并不清楚密钥对应什么电子邮件地址,无法判断相关信息的真伪,以我们使用美国麻省理工学院的密钥服务器(pgp.mit.edu)为例,如果我们搜索默克尔,那么将可以找到许多公共密钥,其中的一个密钥或许正是我们需要的,但是我们无法从中区分出哪一个才是目标联系人的密钥,因为任何人都可以上传PGP密钥并根据自己的喜好设定姓名等相关信息。

PGP安全有赖于互联网安全扩展

作为一个全球可用的电子邮件技术架构,要解决上述问题人们需要对PGP进行一定程度的扩展,例如添加一个认证或者监督机构。专家们对此有很多不同的意见,弗劳恩霍夫研究所希望使用“安全的多用途互联网邮件扩展”(Secure Multipurpose Internet Mail Extensions,简称S/MIME)技术,与普通PGP不同的是S/MIME的公共密钥是一个通过认证机构认证的证书。这确实可以很好地解决上面所提到的公共密钥分发以及身体验证的问题,但是认证机构认证的证书很多时候不是免费的,而且证书可以伪造,有可能被盗用或滥用。

相比之下,更被看好的是通过域名系统(Domain Name System,简称DNS)验证的3层保障(IP地址、加密和PGP密钥)技术OPENPGPKEY。DNS就像是互联网的电话簿,它是一个域名和IP地址相互映射的一个分布式数据库,世界上有成千上万的DNS服务器,负责处理诸如将域名(例如chip.de)映射到网站服务器IP地址的工作。为了避免DNS劫持、DNS缓存污染等黑客攻击,目前DNS系统需要通过“域名系统安全扩展”(Domain Name System Security Extensions,简称DNSSEC)以确保DNS记录的真实性:通过每个IP地址的签名,DNSSEC可以对DNS提供给DNS客户端(解析器)的DNS数据来源进行认证,验证数据的真伪。因而,DNSSEC可以防止攻击者通过DNS缓存污染等攻击方式引诱受害人到一个虚假的IP地址。以往,通过类似的攻击,攻击者可以在用户访问银行网站时,通过虚假的DNS数据将用户带到伪造的站点上。

基于DNS的域名实体认证

OPENPGPKEY的第二层保障是“基于DNS的域名实体认证”(DNS-based Authentication of Named Entities,DANE)。目前,部分安全意识较高的电子邮件服务提供商已经在使用,例如posteo.de和mailbox.org。DANE在DNSSEC的基础上,增加了指定应用(例如传输电子邮件)使用SSL证书加密连接的功能。而且通过DANE可以验证邮件的传输路径,例如本文中鲍勃发送邮件给爱丽丝的图示,爱丽丝的邮件服务提供商可以通过服务器的DNS密钥来确定邮件确实来自鲍勃和他的邮件提供商。

具备上述条件,接下来将可以达到互联网工程任务组(The Internet Engineering Task Force,简称IETF)建议的PGP密钥第三层保障标准OPENPGPKEY,设想一个场景,用户可以使用电子邮件服务提供商在DNSSEC保护下的DNS服务器公布自己的PGP公共密钥,而不是上传到不安全的密钥服务器,每个用户不仅可以通过电子邮件服务提供商发布自己的PGP公共密钥,而且这些PGP公共密钥可以通过DNSSEC验证真伪,彻底解决PGP公共密钥公布和验证真伪的问题。对于具体的应用细节,IETF计划在2015年年底前建立一个正式的标准。

猜你喜欢

私钥公钥爱丽丝
清扫机器人避障系统区块链私钥分片存储方法
爱丽丝的疯狂茶话会
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
一种基于混沌的公钥加密方案
一种基于虚拟私钥的OpenSSL与CSP交互方案
变大变大
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
基于格的公钥加密与证书基加密