日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Tengine + BabaSSL ,让国密更易用

發(fā)布時間:2024/3/13 91 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tengine + BabaSSL ,让国密更易用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文|楊洋(花名:凱申 )

螞蟻集團高級技術(shù)專家

負責密碼學工程能力建設(shè)、BabaSSL 開源社區(qū)建設(shè)

本文 2366 字 閱讀 5 分鐘

近日,國內(nèi)著名 Web 服務(wù)器和反向代理開源軟件 TengineBabaSSL 完成了對 BabaSSL的適配工作。

Tengine 對 BabaSSL 提供的特殊 API 進行了適配,并增加對 NTLS 相關(guān)能力的支持。

「詳細 Pull Request 請見」:https://github.com/alibaba/tengine/pull/1595

至此,對我國密碼行業(yè)相關(guān)安全通信協(xié)議,有使用需求的用戶可以直接使用 Tengine + BabaSSL 的組合。而無需額外的 patch 或者代碼改動,從用戶使用的角度進一步提升了便利性。

PART. 1 NTLS

目前,我國密碼行業(yè)中有兩個主要的通信協(xié)議相關(guān)的技術(shù)標準。一個是由信安標委于 2020 年發(fā)布的 TLCP 協(xié)議,即傳輸層密碼協(xié)議;另外一個則是由密標委在 2012 年發(fā)布的 GM/T 0024《SSL VPN 技術(shù)規(guī)范》(以下簡稱 0024)。

TLCP 和 0024 的具體內(nèi)容差別不大,均是從 TLS 協(xié)議發(fā)展而來,他們的主要特點是將商用密碼算法 SM2、SM3 和 SM4 應(yīng)用到了 TLS 協(xié)議中,并使用 SM2 密鑰交換機制替換掉了 TLS 協(xié)議原有的密鑰交換流程。

TLCP 和 0024 另外一個顯著的特點將 TLS 協(xié)議中使用的數(shù)字證書拆分成了加密和簽名兩種用途的證書,加密證書和簽名證書以及對應(yīng)私鑰均需要進行配置使用,所以 TLCP 和 0024 也俗稱“國密雙證書”協(xié)議。

BabaSSL 對上述國密雙證書協(xié)議進行了支持,并統(tǒng)稱為 NTLS。

NTLS 的全名為 National TLS,即我國核準的傳輸層安全協(xié)議,所以也可以叫做國密 TLS。

由此可見,NTLS 并不是指某一種具體的符合商用密碼相關(guān)技術(shù)標準要求的網(wǎng)絡(luò)協(xié)議,而是多個協(xié)議的統(tǒng)稱。在 BabaSSL 中代指 TLCP 和 0024 國密雙證書協(xié)議,因為 NTLS 和標準 TLS 協(xié)議存在工作方式的不同,因此 BabaSSL 中增加了一些新的 API 來對其進行支持。而應(yīng)用程序若想使用 NTLS 功能,就需要調(diào)用這些新增 API,給現(xiàn)有基于 OpenSSL API 進行適配的應(yīng)用程序帶來了額外的開發(fā)工作量。

PART. 2 Tengine + BabaSSL

Tengine 是由淘寶網(wǎng)發(fā)起的 Web 服務(wù)器項目,它在 Nginx 的基礎(chǔ)上,針對大訪問量網(wǎng)站的需求,添加了很多高級功能和特性。

Tengine 的性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站(如淘寶網(wǎng),天貓商城等)得到了很好的檢驗。它的最終目標是打造一個高效、穩(wěn)定、安全、易用的 Web 平臺。

Tengine 作為國內(nèi)知名的開源 Web 服務(wù)器軟件,在各領(lǐng)域均得到了廣泛的使用且享有很高的知名度。

BabaSSL 是一款輕巧、靈活且靠譜的密碼學和 TLS 協(xié)議工具集。BabaSSL 是螞蟻集團和阿里集團的各主要業(yè)務(wù)中所使用的底層密碼庫,目前開源出來供業(yè)界使用。BabaSSL 廣泛的應(yīng)用在包括網(wǎng)絡(luò)、存儲、移動端 App 等場景中。

Tengine 來源于 Nginx,所以默認使用的是 OpenSSL。此次 Tengine 針對 BabaSSL 中的 NTLS 功能進行了適配,用戶如果選擇使用 BabaSSL 作為 Tengine 的底層密碼庫來實現(xiàn)通信加密的能力,則可以無需對 Tengine 進行任何代碼改動,原生開啟 NTLS 能力。

PART. 3 Tengine 啟用 NTLS

具體來說,此次在 Tengine 中增加了幾個新的指令,對 NTLS 進行支持。

1. 下載 BabaSSL 和 Tengine

  • 前往 👇 下載 BabaSSL 的源代碼包:

https://github.com/BabaSSL/BabaSSL/releases

  • 前往 👇 獲取 Tengine 的最新代碼:

「git clone」

https://github.com/alibaba/tengine.git

2. 編譯 BabaSSL 和 Tengine

使用如下配置:

./configure --add-module=modules/ngx_openssl_ntls \--with-openssl=../path/to/BabaSSL \--with-openssl-opt="--strict-warnings enable-ntls" \--with-http_ssl_module --with-stream \--with-stream_ssl_module --with-stream_sni

3. 配置 Tengine 開啟 NTLS

一個開啟了 NTLS 的 Tengine 配置文件的例子:

worker_processes 1; events {worker_connections 1024; } http {include mime.types;default_type application/octet-stream;server {listen 443 ssl;server_name localhost;enable_ntls on;ssl_sign_certificate server_sign.crt;ssl_sign_certificate_key server_sign.key;ssl_enc_certificate server_enc.crt;ssl_enc_certificate_key server_enc.key;location / {return 200 "body $ssl_protocol:$ssl_cipher";}} } stream {server {listen 8443 ssl;enable_ntls on;ssl_sign_certificate server_sign.crt;ssl_sign_certificate_key server_sign.key;ssl_enc_certificate server_enc.crt;ssl_enc_certificate_key server_enc.key;return "body $ssl_protocol:$ssl_cipher";} }

4. 測試 NTLS

可以使用 BabaSSL 的 s_client 工具對開啟了 NTLS 的 Tengine 進行測試。

「具體可以參考」:

https://babassl.readthedocs.io/zh/latest/Tutorial/SM/ntls/

PART. 4 總 結(jié)

隨著互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展,在新時期下,數(shù)據(jù)成為了影響人們正常生活的核心要素。

因此數(shù)據(jù)安全和個人信息保護等問題變得更加需要重視,國家近期也針對數(shù)據(jù)安全領(lǐng)域進行了相關(guān)立法。

密碼學技術(shù)作為整個信息安全領(lǐng)域的基礎(chǔ)技術(shù)能力,對數(shù)據(jù)安全也存在著很大的影響。同時密碼行業(yè)是屬于受到國家強監(jiān)管的行業(yè),其相關(guān)技術(shù)的應(yīng)用和實施均有一定的特殊性。

BabaSSL 作為一個開源的密碼庫,其核心目標之一就是為用戶提供合規(guī)的技術(shù)能力,使得用戶在符合要求的情況下可以更加便捷的將國家核定的技術(shù)標準應(yīng)用起來。從而在滿足技術(shù)合規(guī)的要求,也同時實現(xiàn)了對數(shù)據(jù)安全需求的達成。

Tengine 作為國內(nèi)著名的 Web 服務(wù)器和反向代理開源軟件,在國內(nèi)各行業(yè)的應(yīng)用十分廣泛,同時也是網(wǎng)絡(luò)通信領(lǐng)域中實現(xiàn)對數(shù)據(jù)進行加密的關(guān)鍵開源軟件。此次 Tengine 官方對 BabaSSL 進行適配和支持,讓用戶可以更加便捷的使用 BabaSSL 所提供的商用密碼能力,也必將進一步的擴大各行業(yè)對商用密碼算法的應(yīng)用落地。

BabaSSL 在未來會持續(xù)在技術(shù)合規(guī)和前沿密碼學等方向上持續(xù)演進,給廣大用戶帶來高效、易用、安全、穩(wěn)定的密碼學基礎(chǔ)庫。

BabaSSL 的代碼目前托管在 Github 上:https://github.com/BabaSSL/BabaSSL

歡迎廣大開發(fā)者積極參與到 BabaSSL 的建設(shè)中,為我國密碼行業(yè)的發(fā)展壯大貢獻力量!

本周推薦閱讀

TLS 握手帶寬直降 80%,BabaSSL 是怎么做到的

RFC8998+BabaSSL—讓國密駛向更遠的星辰大海

還在為多集群管理煩惱嗎?OCM來啦!

一行降低 100000kg 碳排放量的代碼!

總結(jié)

以上是生活随笔為你收集整理的Tengine + BabaSSL ,让国密更易用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。