【发布时间】:2018-04-29 16:46:26
【问题描述】:
我知道我可以使用以下命令将 Debian 软件包源文件下载到当前目录:
$ apt-get source tree
...
$ ls -lahn
total 88K
drwx------ 3 10335 11111 4,0K Apr 29 15:24 .
drwxrwxrwt 16 0 0 20K Apr 29 16:39 ..
drwxr-xr-x 5 10335 11111 4,0K Apr 29 15:24 tree-1.7.0
-rw-r--r-- 1 10335 11111 5,9K Oct 25 2014 tree_1.7.0-3.debian.tar.xz
-rw-r--r-- 1 10335 11111 1,8K Oct 25 2014 tree_1.7.0-3.dsc
-rw-r--r-- 1 10335 11111 46K Apr 27 2014 tree_1.7.0.orig.tar.gz
我也知道*.dsc 文件(通常)带有我可以检查的签名:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 3.0 (quilt)
Source: tree
Binary: tree
Architecture: any
Version: 1.7.0-3
Maintainer: Florian Ernst <florian@debian.org>
Homepage: http://mama.indstate.edu/users/ice/tree/
Standards-Version: 3.9.5
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/tree.git
Vcs-Git: git://anonscm.debian.org/collab-maint/tree.git
Build-Depends: debhelper (>= 8), dpkg-dev (>= 1.16.1~)
Package-List:
tree deb utils optional arch=any
Checksums-Sha1:
35bd212606e6c5d60f4d5062f4a59bb7b7b25949 47082 tree_1.7.0.orig.tar.gz
d9c3f9d6882e6a26f2428db6528de2a1c9a620da 5944 tree_1.7.0-3.debian.tar.xz
Checksums-Sha256:
6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12 47082 tree_1.7.0.orig.tar.gz
1af303c6b9fc640c8346a6c21f45fa6275e7fa7df9f6656af16b504a1a261732 5944 tree_1.7.0-3.debian.tar.xz
Files:
abe3e03e469c542d8e157cdd93f4d8a6 47082 tree_1.7.0.orig.tar.gz
1bf74f9218c1b300de1246043b421173 5944 tree_1.7.0-3.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBCAAGBQJULE31AAoJEAY3Qbr13R7OYnYQALFkasPqrvRt4lPYiROjkx50
3YfZ9yfnvAbsjhMkECl5ItWfQmNgpgObwTidV9JdJ8N70joaayRPDw7ACaBiOM9z
gA6ERv27hw7uoww1U7pu7J5WTLI2rH592BhU+qhnnrFs6mzFXc6SzuiV1oqEzbjP
dfP73v4lgIw6xPKdOo/l9oKY+tJXgEnspaZu/bnTkUbeV/p9xWmwE8ilGllMx7RA
YGQSq/Jn90mk7C2bfEH96kV0//ThTylCXiqNKafNDNeVYcRKJ1xbTentREMTr6vn
YxLR8e0mAz1hviAc2o+Ga+3zAzwgf+MZzdyAWWWNcH0K4r/UT4IYm7ajwFkaiPW8
+p+iHAVkABWicSKb51wIb2azmow1/PlSYzx1D5JZs8rh07rHC1zE2ni+zSxdtNFq
7yQ8k2WUKVzlJudXQBlZDSNbwHsetNVrceVPXF6xLrwxDf1+rUg0W7KLstKbjtlP
oqDuqzKhD6Mzl1YKMwraFIltlUt9DMZRwtmymjPIAsx56+/sPGv4PYqiPJpih6Gk
rw7fvYMU/dflUAxz13tFAY6qTCQR0DJ1HDiPD86/+/imwCVb9DAq2fJZZtF6W84T
xDipKYuYsVqXwXaWH1xlt7pSgKyoPJzUJt+M+8XDBXncn36M7aVpP57LjrHvDgNu
DVKPiaUlkR25A0/gqoQ1
=5N30
-----END PGP SIGNATURE-----
我知道包维护者可以debsign*.dsc 和/或*.changes 在package build process 期间生成的文件。
那么,*.changes 文件在哪里?如何下载给定 Debian 软件包的 *.changes 文件?为什么apt-get source 下载的是*.dsc 文件而不是*.changes 文件?
参考资料:
【问题讨论】:
-
@GiacomoCatenazzi,这样我就可以验证一般包的附加签名,而不仅仅是那些被 debian 网站跟踪的包。
-
我签署了我的包并上传到 Debian。签名被检查,但包被重建,所以我的签名不再有效。只是新的构建包是公开的,带有 Debian 发行签名。 [这适用于二进制(特定于架构的)包]。所以签名验证应该在另一个层次上完成。检查 ftp-master 工具 [dak] 如何处理存储库并进行大量验证和上传。
-
@GiacomoCatenazzi,对于您的具体情况,您将如何验证您上传的源包的签名?如何验证对该来源的任何修改?
-
我不知道。我信任 Debian(而且无论如何我都无法 [再] 检查 glibc、内核和许多其他系统实用程序,所以......)。如果我使用了错误的密钥,我会收到一封拒绝邮件(因此 Debian 验证)。 Debian 也非常注重安全(它需要比内核早 10 多年的数字签名),并且它支持(Debian 开发人员创建它)“可重复构建”,这在这种情况下也有帮助。无论如何,我永远不会检查所有架构。