HTTPS 要比 HTTP 多用多少伺服器資源?

時間 2021-05-06 16:26:16

1樓:婁超

既然https僅僅是在建連線時安全握手等耗資源,如果https的連線都使用keepalive的長連線,效能損耗是不是就能大大減輕呢?

2樓:

只要肯優化,差別會很小;比http只多AES加密,HMAC簽名;http協議本身也可以優化,上v2;tcp協議棧也能優化。只是現實上,小公司沒技術能力做優化,大公司悶聲發大財不說出去。

3樓:朱小編

關於HTTPS,圖靈教育剛剛出版了一本新書《HTTPS權威指南:在伺服器和Web應用上部署SSL/TLS和PKI》,講解很細緻:圖靈社群 :

圖書 : HTTPS權威指南:在伺服器和Web應用上部署SSL/TLS和PKI

4樓:webiis2008

第一次開啟網頁的時候,HTTPS協議會比HTTP協議慢一點,這是因為讀取和驗證SSL證書的時間. 詳細對比參考文章:HTTPS的誤解(一)-易維信(EVTrust)數字證書

5樓:

SSL需要耗費大量的cpu資源,不過現在也有了相應解決方案,國內邁思源資訊科技的Next SSL加速卡,可以完全解除安裝SSL壓力。1024-bit RSA可以做到300K/s, 2048-bit RSA 可以做到52K/s.

6樓:陳碩

開啟 SSL 會增加記憶體、CPU、網路頻寬的開銷,後二者跟你使用的 cipher suite 密切相關,其中引數很多,很難一概而論。開啟 SSL 的前提是你的 cert 和 key 必須放在 TCP endpoint,你是否信得過那台裝置?

SSL 開銷來自於兩部分,handshake 和 bulk encryption。對於效能,前者我們關注 handshakes/s,後者關注 MiB/s。

先說比較簡單的 bulk encryption,首先由於 padding 和 MAC,訊息會變長,增加一些網路頻寬。其次,bulk encryption 和 MAC 會增加 CPU 使用,具體跟所使用的加密演算法和 MAC 演算法有關,如果用 AES,也跟 CPU 是否支援 AESNI 指令有關。如果用常見的 AES-256-CBC + SHA1 組合,單個 CPU core 就能輕鬆打滿千兆網頻寬。

(AES128 vs. AES256 和 SHA1 vs. SHA256 還有細微差別,但透過千兆網就不一定能看出來了,不過 3DES 要慢得多。

)另外,如果用 GCM 代替 CBC,會節約一些頻寬(省了 MAC),但會增加 CPU 開銷。測試 bulk encryption 的效能是比較容易的。

再說 handshake,這裡邊水比較深。開銷主要取決於 key exchange 演算法。這裡暫且只考慮流行的 2048 bit RSA key,不考慮新潮的 ECDSA。

首先,你要決定是否採用 forward secrecy,即如果有人錄下你今天的 traffic,將來再搞到了你的 private key,他是否能追溯解密以往的訊息。這決定了是 RSA key exchange 還是 ECDHE RSA key exchange。(這裡就不考慮慢得多的 DHE key exchange 了。

)單從效能方面考慮,RSA key exchange 比 ECDHE RSA key exchange 快。大體上一秒鐘能做幾百上千次 handshake,比 TCP 三路握手慢很多。如果你用 ECDHE,注意選 secp256r1/secp224r1 等曲線,而不是更慢的 secp521r1。

還有,對於 ECDHE,「每次 handshake 用新的 key (SSL_OP_SINGLE_ECDH_USE)」與「程序啟動時產生乙個 key 反覆使用」也會有細微的效能差別。如果你要貼 benchmark 的對比結果,一定要把各個引數細節指明,否則沒有參考意義。

ECDHE RSA key exchange 比 RSA key exchange 的總運算量大,但分配在服務端和客戶端的比例不及後者懸殊。RSA key exchange 中,拋開 cert 驗證,客戶端耗CPU的操作是 RSA public key encrypt,而服務端需要做 RSA private key decrypt,後者要慢幾倍。ECDHE RSA key exchange 中,客戶端和服務端都要做 EC key generation 和 scalar multiplication,運算量相當,區別在於服務端還要做 RSA sign with private key,客戶端只要 RSA verify with public key,總體來看,服務端的運算量略大。

也就是說兩種 key exchange 策略 handshake 產生的 CPU 負載在服務端和客戶端的分配比例差別較大。

總之,你需要找一位安全顧問,不然乙個輕微的配置失誤也許就葬送了增強安全的全部努力。我不是專家,以上文字算是我的筆記吧。《Everything you need to know about cryptography in 1 hour》 https:

//www.

bsdcan.org/2010/schedul

e/attachments/135_crypto1hr.pdf

7樓:hzlzh

多的我就不說了,要看實際效果。

SSL 我的部落格 https://

zlz.im/

非SSL 木木的部落格 http://

都是用我的 http://

mthost.org

主機,loading速度可以嘗試下。

總的來說開SSL會影響速度,要慎重。

8樓:

https訪問,對伺服器資源消耗最厲害的是SSL連線握手階段的非對稱解密(目前主要是RSA)對CPU的消耗。並且現在新申請的證書只頒發RSA2048 bit證書,在同等硬體條件下,2048bit https比http併發效能要弱5-10倍,甚至更多。

9樓:

https依賴ssl實現,由於ssl在握手過程使用非對稱加密演算法,效率低下,在高併發情況下很耗cpu,所以應用場景一般在敏感資料傳輸這塊。針對系統負荷高的情況可以採用ssl解除安裝卡來解決。

10樓:KyleFeng

加解密比較耗cpu,大站一般都會有專門的伺服器完成加解密工作,https請求經過ssl解除安裝到應用伺服器就只是http請求了。有錢的爺買現成的硬體裝置比如Netscaler,沒錢屌絲自己開發軟體的ssl解除安裝,比如改造nginx在linux上跑,專門負責ssl解除安裝和負載均衡。

實現乙個http伺服器需要怎樣進行?需要哪些知識呢?

我也是服了知乎上了。別人就想架設乙個http伺服器,https都沒有說。還推薦網路程式設計出來了。你懂http伺服器嗎?你懂web嗎?上來就扯Linux。說實話你們這群推薦Linux的自己架設乙個伺服器都會出現各種問題。還推薦給新人。我來告訴你題主。用windows server,然後用IIS架設w...

豆瓣網目前一共用了多少臺伺服器?

我實在搞不明白,這個問題是緣何而起的,我可以肯定的說,他們多少臺伺服器對誰都沒有任何參考的意義。優化程度不一樣,需要伺服器的數量也不一太一樣。雲化和非雲化的機器,伺服器的資料也不太一樣。這類的問題無任何意義。 糊塗先生 從目前公開的資料中,截止2009年4月,豆瓣配置如下 2.8M註冊使用者,約1 ...

便宜的伺服器租用多少錢一台

邱邱 雲伺服器限時0.9折搶購 1H1G 1M 90 年 2H4G 1M 230 年 雲伺服器新使用者專享 1H4G 1M 181 年 2H8G 1M 325 年 CDN加速 1P 59400 年限時五日搶購 12.9 12.13是不是很實惠呢? zzzhongwei 要選擇專業的IDC,證件全的,...