阿里雲CDN不止於加速:基於https**演算法構建安全資料傳輸鏈路
網路資料安全得到前所未有的重視 HTTPS成為解決傳輸安全問題利器
大家都知道,HTTP 本身是明文傳輸的,沒有經過任何安全處理,網站HTTPS解決方案透過在HTTP協議之上引入證照服務,完美解決網站的安全問題。
下圖左側表示Chrome瀏覽器在HTTPS頁面時會顯示安全掛鎖圖示,這是在2016年Chrome55版本上的新增功能,用於引導網際網路向安全的HTTPS協議轉變。右側是截止2020年1月,Chrome平臺上HTTPS流量佔比已經超過90%,另外透過Chrome平臺的HTTPS瀏覽時間佔比也超過90%,這些資料都表明網路資料安全得到了前所未有的重視。
HTTPS的實現原理是什麼?
HTTPS協議透過TCP層之上引入TLS/SSL協議,來實現對HTTP資料的保護,實現資料加密、完整性校驗以及防篡改。整個HTTPS過程包括:TCP建聯、SSL握手、應用資料加密傳輸階段。其中SSL握手的目的是為了在服務端和客戶端協商出一個對稱金鑰,在應用資料傳輸階段使用這對稱金鑰進行資料的加密和解密。
在HTTPS互動過程中主要使用三種演算法,首先SSL握手階段用到非對稱加密的演算法,透過公鑰和私鑰對資料記性加密解密。在應用資料加密傳輸的階段,主要使用的是對稱加密的演算法和hash演算法。
目前,國際上通用的非對稱加密演算法包括rsa演算法和ecdsa演算法。對稱加密演算法主要是aes分組加密演算法族以及chacha20流式加密,其中aes加密根據金鑰位數和加密模式還能細分成多種不同的演算法,所以這裡寫成aes(x),雜湊演算法主要是sha-1、sha-2、sha-3演算法族。
行業資訊系統需要“安全可控” 國密演算法標準化加速實施
隨著金融安全高度不斷上升,近年來國家有關機關和監管機構提出了推動國密演算法應用實施、加強行業安全可控的要求。密碼演算法是保障資訊保安的核心技術,尤其是最關鍵的銀行業核心領域長期以來都是沿用3DES、SHA-1、RSA等國際通用的密碼演算法體系及相關標準。
國家高度重視商用密碼工作,自1999年***頒佈《商用密碼管理條例》以來,截止目前,已經有多項政策陸續 CT ,推進國密演算法的實施落地。
究竟什麼是國密演算法?
國密演算法是國家密碼局制定標準的一系列演算法,包括了對稱加密演算法,橢圓曲線非對稱加密演算法,雜湊演算法。其中,SM1和SM4為對稱加密,SM1加密強度與AES相當。呼叫該演算法時,需要硬體實現。SM4的金鑰長度和分組長度均為128位。SM2為非對稱加密,基於ECC。該演算法基於ECC,故其簽名速度與秘鑰生成速度都快於RSA。SM3 密碼雜湊演算法,摘要長度為256位。
國密演算法具備更安全、更快速以及自主可控的優勢,在安全層面,SM2作為一種ECC演算法的安全性要高於2048位的RSA。同時SM3的摘要長度為256bit,安全強度也是要高於MD5演算法及SHA1演算法;在通訊過程中,256位的SM2演算法相比於2048位的RSA演算法,可以傳輸更少的資料,也就意味著更少的傳輸時間,同時在簽名過程上,SM2演算法速度要優於RSA大約在10倍左右。
國密演算法與TLS協議的結合
根據中華人民共和國密碼行業標準的規定,目前和網際網路行業重度相關的國密相關標準,除了獨立的SM2,SM3,SM4等演算法外,就是雙證照TLS協議。這套TLS協議是基於RFC 4346 TLSv1.1修改而來,主要在SSL握手環節引入了加密證照和簽名證照的方式,並對TLSv1.1的握手流程進行了一些修改以適應雙證照的結構。GM/T 0024的標準名稱是《SSL VPN技術規範》,其宗旨是規範SSL VPN裝置的通訊協議以及增強互聯互通性。個人使用者使用VPN的情況較少,而網際網路行業大部分以to C為主,大量的個人使用者一般使用更加輕量級且通用的手段,例如為解決Web安全的HTTPS就是其中之一。
<p style="text-align:center">(國密演算法雙證照標準互動流程)</p>
<p style="text-align:center">(國密演算法雙證照標準支援加密套件)</p>
網際網路應用現行國密技術標準的難點
-
協議效能問題,當應用需要承載海量請求的時候,基於TLS1.1或者TLS1.2的雙證照方案,需要2-RTT握手,會使得效能下降,導致使用者體驗變差甚至交易失敗率上升等問題。
-
證照數量問題。以手機端的移動應用為例,雙證照方案需要交換的證照量是標準的TLS協議的2倍,在弱網環境下會導致RTT的增多及應用效能變差。
-
易用性問題,如果直接套用當前的SSL VPN標準到網際網路場景,例如手機到伺服器的場景,則手機端需要增加VPN客戶端進行撥號,然後才能開始正常的業務互動,這會破壞手機應用的易用性。
-
技術路線衝突問題。新型技術在網際網路行業中的演進十分快速,下一代網路通訊協議QUIC已經在被逐漸應用,QUIC標準目前唯一指定加密協議就是標準的TLS1.3。對TLS1.3協議層面的任何修改,都會導致和QUIC協議的不相容,從而導致相容性問題的發生。
-
技術標準推廣問題。當一種技術標準如果能得到主流開源社群的認可和支援,就會在網際網路行業得到快速推廣,反之則很難。開源社群對修改協議流程的接納程度很低,這就導致了國密雙證照TLS協議難以擴大推廣使用。但是獨立的密碼學演算法則沒有這個問題,因此SM系列演算法要比修改版的TLS協議更容易在開源社群中推廣。
國密演算法單證照標準的推進
基於以上的困難,螞蟻進入提出了單證照的方案,這個草案是基於TLS1.3的互動流程,新增國密演算法套件進行支援。
<p style="text-align:center">(國密演算法單證照標準化推進) </p>
相較於之前2個RTT的效能開銷來說,TLS1.3完整握手開銷只有1個RTT,效能有很大提升。並且TLS1.3只支援安全等級較高的加密演算法,整個協議安全性也得到了較大提升。
<p style="text-align:center">(國密演算法單證照標準互動過程) </p>
草案中描述的兩個加密套件是需要新增到TLS1.3中,分別是TLS-SM4-GCM-SM3及TLS-SM4-CCM-SM3。這兩個加密套件的基本含義是,非對稱加密使用的是SM2演算法,對稱加密使用的SM4演算法,雜湊演算法使用的SM3演算法,不同的部分是分別使用了不同的對稱加密模式,一種使用GCM,另一種使用CCM模式,這兩種模式都屬於AEAD,所以滿足TLS1.3對演算法的要求。由於這種方式具備更強的通用性,所以能夠得到更快的推廣。
<p style="text-align:center">(國密演算法單證照標準支援加密套件)</p>
標準化國密演算法在阿里雲CDN上的具體應用
阿里雲的CDN支援國密是透過Tengine加上babassl兩個軟體的結合實現的,其中Tengine是阿里雲CDN的接入開源框架,babassl是螞蟻金服為了支援國密演算法,基於openssl1.1.1的開源版本進行深度定製開發的程式碼庫。透過阿里雲CDN和螞蟻金服的深入合作為客戶打造國密合規的代理服務。該軟體部署到全網2000+節點,對外提供國內最大規模的國密接入能力。
第一階段阿里雲CDN會先支援接入層的國密演算法能力,透過控制檯上傳國密證照後,配置選擇單證照或者雙證照方案,客戶端即可透過CDN邊緣節點完成國密演算法的接入。這裡更推薦客戶使用的是單證照方案,該方案的通用性比較高,與國際標準接軌,同時該方案的客戶端開發複雜度低,能降低開發成本。
第二階段,阿里雲CDN會支援全鏈路的國密演算法能力,包括接入層、節點之間的加密傳輸鏈路以及回源的資料鏈路,透過這個能力極大保障客戶資料的安全。但是需要客戶端以及源站均支援國密的接入能力。
正如前文所述,隨著密碼法頒佈及各項密碼相關標準的釋出和實施,國密合規已經成為國家高度關注的重點,尤其是對金融和政企行業的資料安全提出了更高的要求。阿里雲CDN推出的國密能力,能夠幫助客戶構建更加安全的資料傳輸鏈路,從而滿足國密合規的要求。
這裡有個好訊息是:babassl在充分驗證可用性和安全性之後有計劃作為開源軟體推出,客戶端和源站的開發可以基於babassl程式碼庫實現。
為了更好的支援國密演算法的推廣,螞蟻金服相關團隊針對國密演算法的效能進行深度最佳化,以openssl1.1.1版本的實現為基線,目前sm4能夠實現2倍以上的效能最佳化,sm2能夠實現5倍以上的效能最佳化。演算法效能的提升讓阿里雲CDN能夠對外提供更加優質的國密服務,歡迎更多使用者一同參與到國密演算法的開發和使用,一起共建安全合規的網際網路環境。
活動福利: 2020年6月30日前,CDN加速10Mbps以內頻寬免費試用1個月,30Gbps DDoS防護、高階版WAF試用1周,並贈送一次漏洞掃描服務,總名額限100個,先到先得。
答疑釘釘群:34249460
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31550522/viewspace-2693314/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 構建基於 Ingress 的全鏈路灰度能力
- HTTPS 如何保證資料傳輸安全HTTP
- 阿里雲大資料認證——基於阿里雲數加構建企業級資料分析平臺-課堂筆記阿里大資料筆記
- Python 基於Twisted框架的資料夾網路傳輸原始碼Python框架原始碼
- netty系列之:基於流的資料傳輸Netty
- 基於EMR離線資料分析(阿里雲)阿里
- 基於Apache Hudi在Google雲構建資料湖平臺ApacheGo
- 加速和簡化構建Docker(基於Google jib)DockerGo
- HTTPS是怎麼保證資料安全傳輸的?HTTP
- 阿里雲 MSE 基於 Apache APISIX 的全鏈路灰度方案實踐阿里ApacheAPI
- 阿里雲CDN基於雲邊協同的轉型創新實踐阿里
- 網路協議之:基於UDP的高速資料傳輸協議UDT協議UDP
- 基於kubernetes構建混合雲的利弊
- https安全傳輸揭祕HTTP
- 阿里雲CDN+OSS完成圖片加速阿里
- 基於Apache Hudi + MinIO 構建流式資料湖Apache
- 基於 EventBridge 構建資料庫應用整合資料庫
- openGauss OCK加速資料傳輸
- 阿里雲的“終端雲化”實踐,基於ENS進行邊緣架構構建阿里架構
- Maven配置阿里雲代理加速構建專案Maven阿里
- 【Gator Cloud】架構篇 - 提供基於雲原生的資料安全保護Cloud架構
- 關於印度跨境資料傳輸,印度放寬了跨境資料傳輸
- 不止於觀測|阿里雲可觀測套件正式釋出阿里套件
- 基於多雲構建監控告警系統
- https構建(基礎)HTTP
- 基於 Apache ShardingSphere 構建高可用分散式資料庫Apache分散式資料庫
- websocketd | 基於 docker 構建WebDocker
- 最佳實踐:使用阿里雲CDN加速OSS訪問阿里
- 阿里雲物件儲存OSS及CDN加速配置阿里物件
- 阿里雲CDN加速節怎麼樣?如何更加優惠購買CDN/全站資源包?阿里
- 基於Java語言構建區塊鏈(四)—— 交易(UTXO)Java區塊鏈
- go基於grpc構建微服務框架-結構化日誌輸出GoRPC微服務框架
- 基於 RocketMQ Connect 構建資料流轉處理平臺MQ
- Uber基於Apache Hudi構建PB級資料湖實踐Apache
- HarmonyOS:基於Web元件構建網路應用(1)Web元件
- 星環科技TDH基於Overlay網路架構為資料安全保駕護航架構
- 讓資料傳輸更安全
- 基於 ubuntu base 構建 rootfsUbuntu