PHP成為首個在內(nèi)核中嵌入加密庫的編程語言
PHP團隊最近投票一致通過了“將Libsodium庫集成到PHP內(nèi)核中”的決議,使得PHP成為首個使用公認(rèn)現(xiàn)代加密庫的編程語言。
Libsodium是個便捷,可交叉編譯,現(xiàn)代化,易于使用的軟件庫;可用于加密,解密,簽名,密碼哈希等。和PHP源代碼一樣,Libsodium是用C編寫的。如今,很多公司,如Keybase,數(shù)字海洋,Riseup,Yandex,Wire和Zcash,已經(jīng)他們的服務(wù)中部署Libsodium。
提出加入Libsodium建議的的開發(fā)者是來自Paragon Initiative公司的首席開發(fā)官Scott Arciszewski,他曾在過去的開發(fā)會議中提倡在PHP CMS中加入更強大的加密技術(shù)。
Libsodium將在PHP 7.2中出現(xiàn)
PHP團隊決定在2017年年底推出的PHP 7.2中加入Libsodium。目前最新PHP版本為7.1.2。
Arciszewski解釋了他為什么期望在PHP內(nèi)核中嵌入Libsodium,主要原因就在于WordPress以及共享托管供應(yīng)商——絕大部分共享主機供應(yīng)商不允許用戶安裝自定義PHP擴展,因為許多未經(jīng)測試或未知的擴展可能對其設(shè)備造成危害。
Arciszewski的想法是如果將Libsodium集成到PHP內(nèi)核中,就可以擺脫對托管提供商的依賴,用戶也不用再為PHP擴展的安全性擔(dān)憂,因為以后的PHP版本將會默認(rèn)支持加密庫。“共享主機提供商還是主要原因,因為VPS供應(yīng)商(在我印象中,總是)一般是讓你在自己虛擬機上以root權(quán)限運行的。”
除此之外,Arciszewski表示Libsodium的加入,同樣也免去了說服WordPress團隊去加強他們的安全建設(shè)的過程,因為他們自然會用PHP默認(rèn)支持的強加密功能。
PHP需要Libsodium的其他原因
相關(guān)PHP加入Libsodium,Arciszewski還提出了更多原因,他認(rèn)為Libsodium嵌入到PHP核心對PHP全局的安全性有很多好處。比如說:
1. 顯然Libsodium會讓共享網(wǎng)絡(luò)托管提供商為用戶升級到PHP 7.2;
2. 本次升級會告訴操作系統(tǒng)開發(fā)人員,“Libsodium是必要的;它是默認(rèn)安裝的一部分”;
3. PHP手冊將會列出對libsodium擴展的說明,這意味著開發(fā)人員將有官方文檔可依;
4. PHP 7.2+內(nèi)部就能使用libsodium功能,例如PHP Archives(Phar擴展)很快就會有Ed25519簽名;
5. 在不對用戶產(chǎn)生影響的情況下,那些需要libsodium的開源項目就可方便安裝。
Arciszewski在郵件中提到:“我堅信安全應(yīng)該屬于每個人,而不應(yīng)該只屬于那些有能力為安全買單的1%的人。PHP在互聯(lián)網(wǎng)上的占有率至少有82%,而libsodium又是大多數(shù)加密技術(shù)人員推薦的應(yīng)用層加密庫。
“在PHP開發(fā)者眼中,PHP和libsodium的聯(lián)手應(yīng)該是獲得更好的安全性最為直接和合理的方式。許多開發(fā)者沒有時間或加密方面的經(jīng)驗來搭建屬于自己安全。”
為什么“第一個”是PHP,而不是Go或Erlang?
Arciszewski解釋了使用加密庫后的技術(shù)優(yōu)勢,以及為什么Libsodium是現(xiàn)在最現(xiàn)代化的加密庫之一,詳情點擊這里可查看。另外他還解釋了為什么PHP才是真正意義上“第一個”在其核心中支持“現(xiàn)代”加密庫的編程語言——盡管Erlang和Go包含類似的庫,但是它們的實施完整性與將來加入到PHP 7.2中的Libsodium不可同日而語。
在加入Libsodium到PHP之前,Arciszewski已經(jīng)在WordPress之上進行了實踐,他在WordPress 4.4中添加了一個強大的CSPRNG(加密安全偽隨機數(shù)生成器),并發(fā)現(xiàn)WordPress更新過程中的幾個缺陷,這將允許攻擊者劫持互聯(lián)網(wǎng)上的所有WordPress網(wǎng)站。