自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go1.24 新特性:邁向合規(guī),crypto 加密庫將支持 FIPS140!

開發(fā) 前端
今天我們介紹了 Go1.24 在標準庫 crypto 將會支持 FIPS140 標準,正式邁向更進一步的安全合規(guī)。后續(xù)每年至少會進行一次維護,至少不至于爛尾。

最近在 Go1.24 中出現(xiàn)了一個較為少見的名詞:FIPS140。而且還是加密庫里的一個新適配。很 “官方” 的樣子,讓我好奇了起來。

今天本文結合基本知識和庫內(nèi)容給大家分享,一起學習和進步。

什么是 FIPS140

聯(lián)邦信息處理標準 (FIPS,全稱:Federal Information Processing Standards) 140 系列是美國政府計算機安全標準,規(guī)定了對加密模塊的要求。

FIPS 有多個版本,例如:FIPS 140-1、FIPS 140-2、FIPS 140-3(最新版本)。更具體的里面就不用太了解了。

對大部分同學不需要太深入。如果有興趣可以查看維基百科 FIPS140[1]。

Go1 FIPS140 現(xiàn)狀

在 2015 年時 @Sandy Cash 提出了《crypto: FIPS Mode and Validation of Crypto Provider?[2]》的提案,針對 Go crypto 支持 FIPS140 的情況了解。

Go's crypto is not FIPS 140 validated and I'm afraid that there is no possibility of that happening in the future either. I think Ian's suggestion of using cgo to call out to an existing, certified library is probably your best bet. However, we would not be interested in patches to add hook points all over the Go library, so you would need to carry that work yourself.

當時的結論重點是:Go 的加密技術(crypto)沒有通過 FIPS 140 驗證,恐怕未來也不可能通過。認為 Ian 提出的使用 cgo 調(diào)用現(xiàn)有認證庫的建議可能是最好的選擇。

在 2015-2017 年期間,Go 核心團隊給出的答復也都是沒有相關計劃?;玖銠C會。一直到現(xiàn)在 2024 年依舊如此。

提案背景:事出有因

為什么突然要加這個庫?我覺得肯定是事出有因的。

該提案由 @Russ Cox 提出,其核心目的是為了適配 Go crypto FIPS140 標準(相關代碼是 crypto/internal/fips/)。

圖片圖片

另外就是為了能夠刪除 BoringCrypto[3] 這個擴展支持。

關聯(lián)截圖:

圖片圖片

https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4407

圖片圖片

背后的原因,我認為是微軟另外 fork 了一個 Go 源碼庫[4]。給 Go 核心團隊造成了一定的心理沖擊。

如下 GitHub 倉庫:

圖片圖片

可能有同學在想,為什么微軟還要專門 fork 一個出來?

因為...微軟官方表示:“該版本庫生成了一個可用于構建符合 FIPS 140-2 標準的應用程序的 Go 修改版。我們的目標是與 Go 社區(qū)中其他有相同需求的人分享這一實現(xiàn),并盡快將這一功能并入 Go 上游?!?/p>

還是為了 FIPS140!

當然,我猜測根本上還是某國的安全合規(guī)要求變高了,以至于各基礎設施/組件需要加大支持力度。

Go1.24:加密庫支持 FIPS140 合規(guī)標準

本次 Go1.24 標準庫 crypto 將會支持 FIPS140 標準,意味著 Go 在安全合規(guī)上走到了一個新的階段。

功能特性上:將會新增新的 GOFIPS140 環(huán)境變量,用于控制 crypto/internal/fips 軟件包的源代碼和 FIPS140 GODEBUG 的默認值。

本次新版本可能采用以下值:

GOFIPS140

crypto/internal/fips source

Default fips140 GODEBUG

off(關閉)

$GOROOT/src/crypto/internal/fips

off

latest(最新)

$GOROOT/src/crypto/internal/fips

on

vX.Y(特定版本)

$GOROOT/lib/fips140/vX.Y.zip

on

inprocess(正在進行 FIPS 認證)

Use vX.Y listed in $GOROOT/lib/fips140/inprocess.txt

on

certified(經(jīng)認證 NIST 認證的 FIPS 認證)

Use vX.Y listed in $GOROOT/lib/fips140/certified.txt

on

我們可能最常用的還是 GOFIPS140 vX.Y 或 latest。inprocess 和 certified 的定義特定于所使用的 Go 工具鏈,以保持構建可重現(xiàn)。和有特定需求的同學。

如果你想查看自己使用的是什么版本。你可以運行 go version -m 或獲取 debug.BuildInfo 時,會出現(xiàn)一個新的 BuildSetting,其關鍵字為 GOFIPS140,值為 off 或 devel,否則就是一個版本。

也就是說你將看到 inprocess 所解析的特定版本,而不是 inprocess。至于 latest,如果是發(fā)布版本,則會看到 Go 版本;如果是待發(fā)布版本,則會看到 devel。

目前 Go 核心團隊計劃,每年至少會啟動一次 FIPS140 認證。確保 crypto/internal/fips 的日常維護和健康度!

總結

今天我們介紹了 Go1.24 在標準庫 crypto 將會支持 FIPS140 標準,正式邁向更進一步的安全合規(guī)。后續(xù)每年至少會進行一次維護,至少不至于爛尾。

希望我們的國密,后面也能陸續(xù)有更多的支持。針對本次的 FIPS140 標準適配,有需要的同學可以及時更新版本使用即可!

參考資料

[1]FIPS140: https://en.wikipedia.org/wiki/FIPS_140

[2]crypto: FIPS Mode and Validation of Crypto Provider?: https://github.com/golang/go/issues/11658

[3]BoringCrypto: https://github.com/golang/go/tree/dev.boringcrypto

[4]Go 源碼庫: https://github.com/microsoft/go

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2025-01-06 09:18:04

2024-12-30 11:05:28

泛型Go類型別名

2025-02-07 09:18:05

機制Go函數(shù)

2025-01-20 08:51:32

2024-09-03 08:49:01

2025-05-07 08:55:14

GoMap存儲

2025-02-12 08:50:22

2022-05-05 11:20:08

KubernetesDocker云計算

2025-03-07 09:12:28

2022-12-09 08:52:51

Go匿名接口

2025-02-08 11:00:33

2018-06-12 11:12:09

2025-05-06 08:00:35

2022-04-26 16:20:43

dockershimDockerKubernetes

2022-02-11 21:01:18

GoNetip網(wǎng)絡庫

2011-02-22 14:43:32

atsec信息安全IBM's z

2020-10-19 18:29:37

加密貨幣MiCA歐盟

2012-05-23 09:32:53

身份管理IAM系統(tǒng)

2021-09-05 18:25:30

Go命令倉庫
點贊
收藏

51CTO技術棧公眾號