PHP成為首個在核心中嵌入加密庫的程式語言

雲棲大講堂發表於2017-08-01

PHP.png

PHP團隊最近投票一致通過了“將Libsodium庫整合到PHP核心中”的決議,使得PHP成為首個使用公認現代加密庫的程式語言。

Libsodium是個便捷,可交叉編譯,現代化,易於使用的軟體庫;可用於加密,解密,簽名,密碼雜湊等。和PHP原始碼一樣,Libsodium是用C編寫的。如今,很多公司,如Keybase,數字海洋,Riseup,Yandex,Wire和Zcash,已經他們的服務中部署Libsodium。

提出加入Libsodium建議的的開發者是來自Paragon Initiative公司的首席開發官Scott Arciszewski,他曾在過去的開發會議中提倡在PHP CMS中加入更強大的加密技術。

Libsodium將在PHP 7.2中出現

PHP團隊決定在2017年年底推出的PHP 7.2中加入Libsodium。目前最新PHP版本為7.1.2。

Arciszewski解釋了他為什麼期望在PHP核心中嵌入Libsodium,主要原因就在於WordPress以及共享託管供應商——絕大部分共享主機供應商不允許使用者安裝自定義PHP擴充套件,因為許多未經測試或未知的擴充套件可能對其裝置造成危害。

Arciszewski的想法是如果將Libsodium整合到PHP核心中,就可以擺脫對託管提供商的依賴,使用者也不用再為PHP擴充套件的安全性擔憂,因為以後的PHP版本將會預設支援加密庫。“共享主機提供商還是主要原因,因為VPS供應商(在我印象中,總是)一般是讓你在自己虛擬機器上以root許可權執行的。”

除此之外,Arciszewski表示Libsodium的加入,同樣也免去了說服WordPress團隊去加強他們的安全建設的過程,因為他們自然會用PHP預設支援的強加密功能。

bbva-open4u-herramientas-basicas-desarrolladores-php_1.jpg

PHP需要Libsodium的其他原因

相關PHP加入Libsodium,Arciszewski還提出了更多原因,他認為Libsodium嵌入到PHP核心對PHP全域性的安全性有很多好處。比如說:

1.顯然Libsodium會讓共享網路託管提供商為使用者升級到PHP 7.2;

2.本次升級會告訴作業系統開發人員,“Libsodium是必要的;它是預設安裝的一部分”;

3.PHP手冊將會列出對libsodium擴充套件的說明,這意味著開發人員將有官方文件可依;

4.PHP 7.2+內部就能使用libsodium功能,例如PHP Archives(Phar擴充套件)很快就會有Ed25519簽名;

5.在不對使用者產生影響的情況下,那些需要libsodium的開源專案就可方便安裝。

Arciszewski在郵件中提到:“我堅信安全應該屬於每個人,而不應該只屬於那些有能力為安全買單的1%的人。PHP在網際網路上的佔有率至少有82%,而libsodium又是大多數加密技術人員推薦的應用層加密庫。

“在PHP開發者眼中,PHP和libsodium的聯手應該是獲得更好的安全性最為直接和合理的方式。許多開發者沒有時間或加密方面的經驗來搭建屬於自己安全。”

為什麼“第一個”是PHP,而不是Go或Erlang?

Arciszewski解釋了使用加密庫後的技術優勢,以及為什麼Libsodium是現在最現代化的加密庫之一,詳情點選這裡可檢視。另外他還解釋了為什麼PHP才是真正意義上“第一個”在其核心中支援“現代”加密庫的程式語言——儘管Erlang和Go包含類似的庫,但是它們的實施完整性與將來加入到PHP 7.2中的Libsodium不可同日而語。

在加入Libsodium到PHP之前,Arciszewski已經在WordPress之上進行了實踐,他在WordPress 4.4中新增了一個強大的CSPRNG(加密安全偽隨機數生成器),並發現WordPress更新過程中的幾個缺陷,這將允許攻擊者劫持網際網路上的所有WordPress網站。

相關文章