接收电子邮件时,我有时会看到以下内容:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
I found an integer overflow in PHP, in the conversation of dates to "Julian Day Count" function.
The commit, with a PoC can be found here: https://github.com/MegaManSec/php-src/commit/a538d2f5605798422f2746636 ecdc300f8ebcaa1
Use CVE-2015-1353.
CVE assignment team, MITRE CVE Numbering Authority M/S M300 202 Burlington
Road, Bedford, MA 01730 USA [ PGP key available through
http://cve.mitre.org/cve/request_id.html ]
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (SunOS)
iQEcBAEBAgAGBQJUw/LpAAoJEKllVAevmvmsiYoH/Ag+n/8x+blfJyccUhjt39bp
nRxsuZw2MIx7COJcoufIxeycu2YGnm1O9RxZBA9lKmVYjb0wjMi9yHogcWkT8UOo
i93ARMw7V6UFp1nV+2Kv5BgVh2EcwEBXyDkKkcaN2l68Dm3nRoApMB4i4m7G67BC
K2T1L4eq1orQCNaR7n4hup2155pHZbLqZQRMAYn5EGQPr/+zPjgq+PQKes631US5
SXrnthRKOAfZk9QVIlxf5t1JfVvC3Cta0HgETTaXJ8TbqEAA5AXw8hl+RmhWgFnI
Cto73LM+iiA1tyxDXdXnfdRqV/uxmqK+FCgO6asyCuT7EYOpBZ74Wmq1z+RVJRc=
=VLR4
-----END PGP SIGNATURE-----
据我了解,数字签名的工作方式如下:
- 消息的内容被散列以提供整个内容的固定长度输出。
- 然后使用发件人私钥对生成的哈希进行加密(PS:我认为公钥用于加密事物,不同的上下文?)
- 上述过程创建了一个数字签名,该签名与原始消息一起传输
- 接收方使用公钥解密密文以返回哈希值,然后自行对消息进行哈希处理以查看是否相同
我无法理解的问题是公钥部分,在上面来自 Mitre 的示例中,没有发送公钥让我解密签名。那么我该如何去验证这个签名呢?我可以看到他们提供了一个链接“PGP key available throught”,但这个链接包含密钥 ID。这个密钥 ID 是什么,我需要它来查找公钥吗?