簡體   English   中英

AES-256-GCM 在 M1 Macbook 上的 PHP ext-sodium 中不可用

[英]AES-256-GCM unavailable in PHP ext-sodium on M1 Macbook

最近在工作中,我們有一個新員工來處理我們的一個項目,該項目通過 PHP 的鈉擴展利用 AES-256-GCM 加密和解密。 由於我們都使用 Macbook,新員工收到了 2020 款配備 M1 芯片的 Macbook Pro。

啟動和運行上述項目的第一次嘗試是使用 HomeBrew 設置,它運行以下組件:

  • Apache 2.4
  • PHP 7.4
  • MySQL 5.7

我們很快注意到代碼中的sodium_crypto_aead_aes256gcm_is_available()返回 false,表明 Macbook 的硬件不支持 AES-256-GCM。 運行openssl list-cipher-algorithms | grep "GCM" 另一方面, openssl list-cipher-algorithms | grep "GCM"給了我們這個列表:

id-aes128-GCM
id-aes192-GCM
id-aes256-GCM
id-aes128-GCM
id-aes192-GCM
id-aes256-GCM

運行openssl speed -elapsed -evp aes-256-gcm也返回了預期的 output,所以 openssl 似乎可以訪問/能夠使用它。

You have chosen to measure elapsed time instead of user CPU time.
Doing aes-256-gcm for 3s on 16 size blocks: 26616041 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 64 size blocks: 6757776 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 256 size blocks: 1647975 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 1024 size blocks: 411604 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 8192 size blocks: 51239 aes-256-gcm's in 3.00s
LibreSSL 2.8.3
built on: date not available
options:bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: information not available

使用該項目的 dockerized 版本的第二次嘗試產生了相同的結果,並且還聲稱帶有 AEAD 的 AES-256-GCM 不受硬件支持,這是意料之中的,因為它在相同的主機硬件上運行。 這是使用來自 Dockerhub 的官方 PHP 7.4 映像完成的。

關於 M1 芯片、使用 (lib)sodium 的 AES-256-GCM 和 PHP 的組合是否存在任何已知問題? 我們花了幾天時間在這里和支持板上搜索,但這種組合似乎非常小眾。 目前,我建議每個開發人員都使用基於 Intel 的 Macbook,因為在該平台上一切都可以開箱即用。

到目前為止,我們已經檢查了以下內容:

  • 在 PHP 中啟用了 ext-sodium? 是的
  • 它可以在使用 HomeBrew 的基於英特爾的 Macbook Pro 上運行嗎? 是的
  • 它是否適用於使用 Docker(撰寫)的基於英特爾的 Macbook Pro? 是的
  • OpenSSL 是否支持 AES-256-GCM? 是的

在 Apple 支持論壇上進一步詢問后,他們向我指出了 ARM 硬件加速支持未完全存在於 libsodium 中的方向。 題為“支持 ARM 處理器#363 上的 AES 和 GCM 指令”的 GitHub 問題進一步表明,似乎短期內沒有立即計划這樣做,因為該問題於 2016 年打開並於 2018 年突然關閉。

目前我建議使用 OpenSSL 用於AES-256-GCM ,如果您的項目將在任何地方開發或將在 ARM 架構上運行。 他們似乎已經為 ARM 環境實現了硬件加速。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM