我想知道是否可以重用PHAR文件的签名。因为它是described in the manual,每个文件都有一个清单,其中包含很多可以伪造的东西,以及4个字节的CRC32校验和,这是一个不好的选择(md5或sha1会很安全),但是比其他东西更难伪造。我怀疑通过创建签名进行验证所使用的校验和的有效性。我的意思是每次包含phar文件创建校验和都很慢,但是如果你想保持安全,那么添加包含校验和的清单缓存不是一个选项(因为修改这个缓存相对容易,如果它存储在phar文件中)。你知道phar包如何快速解决这个问题吗?
答案 0 :(得分:1)
文档很难理解,在某些地方过时,但验证似乎如下:
您的问题谈到了签名和验证过程的速度,这是您怀疑不安全算法可能起作用的关键部分。 Wikipedia summarises the performance of SHA-256/512在便宜的64位CPU上为200到300 MiB /秒。由于PHAR存档不太可能大到200MiB,并且由于签名验证是按需执行的,而不是每次执行(至少,我认为是这样),因此散列整个文件的一小部分不太可能是一个问题。 (签名的创建也可以推迟,直到添加所有文件,因此再次不要求更高的速度。)