当PHP 7.2在今年年底发布时,PHP将成为第一个在标准库中采用现代密码学模块的编程语言。
作者Scott Arciszewski写了一篇文章,详细介绍了PHP7.2成为首个在标准库中引入现代密码学模块的编程语言的方方面面。
如果在OpenSSL和Golang中实现公钥加密和数字签名,则必须在RSA和NIST ECC之间进行选择。这两者都不是一个好选择。
现代密码学需要使用安全原语。对于公钥加密,这意味着在RFC 7748RFC 8032所描述的原语。对于对称加密,这意味着使用经过认证的加密算法。
如果你使用PHP进行开发,并且当7.2发布时可以升级到新版本,你会享受现代加密作为语言本身的一部分带来的好处。现在可以设计使用Ed25519数字签名(例如用于自动安全更新)的软件,而不需要用户安装可选的PHP扩展。
已经出现了一堆响应我在推特上宣布RFC通过的信息。可是,大多数并非提议在这个问题上超越PHP语言。
Go 1.8将在TLS堆栈中使用X25519和ChaCha20-Poly1305,但它在标准库中并不提供现代应用层加密。这意味着你也可以在 Go 中使用现代的TLS算法,但是如果你想要进行额外的数据加密操作,你需要在标准库之外引入其他第三方库。
大多数其他编程语言(Ruby、Erlang、Node.js)仍然只提供OpenSSL,它会开发者继续RSA,在ECB模式下使用AES加密,并且永远不会验证它们的密文。此外,许多这些语言仍然使用OpenSSL的用户空间PRNG,并且不公开一个合理的API访问操作系统的CSPRNG。(PHP 7.0正在解决这个问题。)
PHP 7.2.0 版本中引入的现代密码学模块使其成为第一个在标准库中提供了现代密码学支持的编程语言。
如果你是一个热情的语言者,现在最好的事情是努力争取二次市场。看到大家放弃了RSA和foot-bullety ECDSA,我很高兴。
本站(LinuxIDC)所刊载文章不代表同意其说法或描述,仅为提供更多信息,也不构成任何。