跳转到主要内容
Apache事件 Apache软件基金会
Apache 20周年纪念徽标

验证Apache Software Foundation版本

本页描述了如何验证您从Apache产品发布页面或Apache存档中下载的文件,通过校验和签名.

Apache软件基金会发布的所有官方代码版本由发布经理为发布签名。PGP签名和SHA/MD5校验和随发行版一起提供。

签名和校验和只能从Apache Software Foundation官方网站获得。

正在检查哈希

文件散列用于检查文件是否已正确下载。他们不保证文件的真实性。

这个校验和文件是一个固定长度的字符串,(实际上)唯一标识内容文件的。如果校验和相等,则两个文件(仅)相等。比较两个文件的校验和与比较这两个文件一样好他们自己。

有很多校验和算法。我们使用SHA-256和SHA-512。MD5和SHA-1可能已用于旧版本已弃用.
下载页面显示了哪些校验和文件可用于起初的文件。

要检查散列,您必须计算文件的正确校验和您刚刚下载了;然后比较它带有已发布的校验和起初的.

计算文件的校验和。。。 与…相比
窗户 Linux操作系统 雨衣
SHA-1(已弃用)certUtil-哈希文件文件SHA1公司 沙伊苏姆文件 沙苏姆-a 1文件 文件.沙1
SHA-256型certUtil-哈希文件文件SHA256型 sha256总和文件 沙苏姆-a 256文件 文件.sha256个
SHA-512型certUtil-哈希文件文件SHA512型 沙阿512苏姆文件 沙苏姆-a 512文件 文件.sha512型
MD5(已弃用)certUtil-哈希文件文件MD5公司 md5总和文件 md5型文件 文件.md5型

只有检查哈希值,才能确保您的下载没有被修改,或者不完整或有错误。

检查签名

下面的示例详细介绍了签名交互的工作原理。这个例子用于Apache HTTP Server项目,但同样适用于其他ASF项目。

在本例中,假设您已经下载了httpd-2.0.44.tar.gz网址(发布)和httpd-2.0.44.tar.gz.asc网址(该分离签名)。

此示例使用GNU隐私卫士.任何开放式PGP-合规程序应该有效成功。

首先,我们将检查分离的签名(httpd-2.0.44.tar.gz.asc网址)反对我们的释放(httpd-2.0.44.tar.gz网址).

注意:必须同时指定分离的签名和发布文件。
如果省略发布文件,如果签名是分离的签名,GPG将仅根据发布文件检查签名。如果.asc文件是一个独立的签名文件,GPG将只检查该文件,而不会验证版本。(如果签名文件是从ASF服务器下载的,则不会发生这种情况,但始终指定发布文件名更安全)

%gpg—验证httpd-2.0.44.tar.gz.asc httpd-2.0.4.tar.gzgpg:签名于2003年1月18日星期六07:21:28 PST使用DSA密钥ID DE885DD3gpg:无法检查签名:找不到公钥

这意味着我们没有发行经理的公钥(DE885DD3型)在我们的本地系统中。现在需要从密钥中检索公钥服务器。一个流行的服务器是pgpkeys.mit.edu文件(具有网状物接口)。公钥服务器已链接所以您应该能够连接到任何密钥服务器。

%gpg--密钥服务器pgpkeys.mit.edu--recv-key DE885DD3gpg:从HKP keyserver pgpkeys.mit.edu请求密钥DE885DD3gpg:trustdb已创建gpg:密钥DE885DD3:公钥“Sander Striker<striker@apache.org>“已导入gpg:处理的总数:1gpg:导入:1

在本例中,您现在已经收到了一个名为砂光机撞针<striker@apache.org>。然而,你没有办法验证此密钥是由Sander Striker创建的。但是,让我们再次尝试验证发布签名。

%gpg—验证httpd-2.0.44.tar.gz.asc httpd-2.0.4.tar.gzgpg:签名于2003年1月18日星期六07:21:28 PST使用DSA密钥ID DE885DD3gpg:来自“Sander Striker”的优秀签名<striker@apache.org>"gpg:aka“桑德前锋<striker@striker.nl>"gpg:检查trustdbgpg:找不到最终受信任的密钥gpg:警告:此密钥未经可信签名认证!gpg:没有迹象表明签名属于所有者。指纹:4C1E ADAD B4EF 5007 579C 919C 6635 B6C0 DE88 5DD3

此时,签名是好的,但我们不信任此密钥。A很好签名意味着文件未被篡改。然而,由于公钥密码术的性质,您需要额外验证钥匙DE885DD3型由创建真实的Sander Striker公司。

任何攻击者都可以创建公钥并将其上传到公钥服务器。然后,他们可以创建由该假密钥签名的恶意发布。然后,如果您试图验证此损坏版本的签名将成功,因为密钥不是“真正的”密钥。因此,您需要验证此密钥的真实性。

验证密钥的真实性

您可以从我们的网站或从公共PGP密钥服务器检索它们(参见上文)。但是,导入这些密钥不足以验证签名。如果一个发布验证为良好,则需要验证密钥由Apache HTTP Server的官方代表创建项目。

验证的关键步骤是确认公钥。

%gpg——指纹DE885DD3pub 1024D/DE885DD3 2002-04-10砂光机<striker@apache.org>钥匙指纹=4C1E ADAD B4EF 5007 579C 919C 6635 B6C0 DE88 5DD3液体砂光机撞针<striker@striker.nl>子2048g/532D14CA 2002-04-10

验证密钥的良好开端是与多份政府签发的照片身份确认书。然而,每个人都可以自由制定自己的标准来确定密钥的真实性。一些人通过阅读钥匙感到满意电话签名(语音验证)。有关的详细信息请阅读GNU,确定哪种信任级别最适合您隐私手册部分正在验证公共密钥上的其他密钥钥匙圈.

大多数Apache HTTP Server开发人员都试图对每个其他人的密钥(通常通过面对面的验证)。因此,为了进入信任网,您只需验证我们的信任之网。(提示:我们所有开发人员的密钥都在keys文件中。)

例如,以下人员为Sander签署了公钥前锋。如果您验证此列表中的任何密钥,您将有一个信任路径这个DE885DD3型键。如果您验证验证其中一个签名者的密钥对于DE885DD3型,那么您将有一个信任路径。(以此类推)

pub 1024D/DE885DD3 2002-04-10砂光机<striker@apache.org>信号E2226795 2002-05-01 Justin R.Erenkrantz信号3 DE885DD3 2002-04-10砂光机撞锤信号CD4DF205 2002-05-28 Wolfram Schlich信号E005C9CB 2002-11-17 Greg Stein信号CC8B0F7E 2002-11-18 Aaron Banner信号DFEAC4B9 2002-11-19 David N.Welton信号2 82AB7BD1 2002-11-17 Cliff Woolley信号2 13046155 2002-11-28 Thom May信号3 19311B00 2002-11-17 Chuck Murckosig 3 F894BE12 2002-11-17布莱恩·威廉·菲茨帕特里克签名3 5C1C3AD7 2002-11-18 David Reid信号3 E04F9A89 2002-11-18 Roy T.Fielding信号3 CC78C893 2002-11-19 Rich Bowen信号3 08C975E5 2002-11-21 Jim Jagielski信号3 F88341D9 2002-11-18 Lars Eilebrechtsig 3 187BD68D 2002-11-21本海德标志3 49A563D9 2002-11-23 Mark Cox…更多签名被编辑。。。

由于开发人员通常很忙,您可能不会立即发现在愿意面对面的人身上取得成功(他们甚至可能不会回复你的邮件,因为他们太忙了!)。如果您没有附近的开发商或找不到合适的人,请发送发送电子邮件至您试图验证的密钥的地址。他们可能是能够找到愿意验证他们的密钥或安排的人替代验证机制。

一旦你进入信任网,你应该会看到以下内容验证发布的签名。

%gpg—验证httpd-2.0.44.tar.gz.asc httpd-2.0.4.tar.gzgpg:签名于2003年1月18日星期六07:21:28 PST使用DSA密钥ID DE885DD3gpg:来自“Sander Striker”的良好签名<striker@apache.org>"gpg:aka“桑德前锋<striker@striker.nl>"