首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHAR签名如何防止文件被篡改?

问PHAR签名如何防止文件被篡改?
EN

Stack Overflow用户
提问于 2014-05-11 12:49:10
回答 1查看 1.7K关注 0票数 2

我想知道是否可以重用PHAR文件的签名。与手册中所述一样,每个文件都有一个清单,其中包含许多可以伪造的内容,以及4字节的CRC32校验和,这是一个糟糕的选择(md5或sha1将非常安全),但可能比其他东西更难伪造。我对创建用于验证的签名所使用的校验和的有效性表示怀疑。我的意思是,通过每次包含phar文件来创建校验和是很慢的,但是如果您希望保持安全(因为修改这个缓存相对容易,如果它存储在phar文件中,那么添加包含校验和的清单缓存不是一个选项)。你知道phar包是如何快速解决这个问题的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-11 13:50:37

这些文件很难理解,有些地方已经过时,但核查似乎如下:

  • 所有文件,即使是Tar或Zip格式的文件,都包含具有CRC检查以进行基本自我验证的舱单;这不是防篡改的,但会检测到不完整的下载。
  • PHAR格式的文件还可以包含几种格式之一的签名( 由造物主选择 )。
  • 在Phar2.0(PHP2.0版本不明确)中,签名也可以使用OpenSSL公钥-私钥对
  • 此签名是独立于清单的根据档案的全部内容计算签名,因此如果该签名或公钥是通过可信通道分发的,则可以信任该签名以检测篡改。

您的问题涉及签名和验证过程的速度,这是您怀疑不安全的算法可能起作用的关键部分。维基百科总结了SHA-256/512的性能。作为200到300 MiB/秒在一个廉价的64位CPU上.由于PHAR存档不太可能像200MiB那样大,而且由于签名验证是按需执行的,而不是每次执行(至少,我认为是这样),那么对整个文件进行散列的秒数不太可能是一个问题。(签名的创建也可以推迟到添加了所有文件,因此同样不需要更高的速度。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23592827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档