溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

網(wǎng)站使用SSL和TLS部署實(shí)踐指南教程詳細(xì)

發(fā)布時(shí)間:2020-08-05 06:52:58 來源:ITPUB博客 閱讀:327 作者:126云 欄目:云計(jì)算
  • 在TLS中,所有安全性都以服務(wù)器的加密身份開始,這就需要一個(gè)強(qiáng)大的私鑰來防止攻擊者進(jìn)行模擬攻擊。同樣重要的是擁有一個(gè)有效和強(qiáng)大的證書,它會(huì)授予私鑰來代表一個(gè)特定的主機(jī)名。

    對(duì)于大多數(shù)網(wǎng)站都來說,由2048位RSA密鑰提供的安全性就已經(jīng)足夠了。 由于RSA公鑰算法應(yīng)用廣泛,從而使得它成為安全的默認(rèn)選擇。對(duì)于2048位的RSA密鑰來說,能夠提供大約112位密鑰。如果你想要更高的安全性, RSA密鑰則不能很好地進(jìn)行擴(kuò)展。比如,要獲得128位的密鑰,就需要3072位的RSA密鑰,這顯然運(yùn)行較慢。橢圓曲線數(shù)字簽名算法ECDSA顯示為你提供了更好的安全性和更好的性能。以ECDSA256為例,,ECDSA密鑰提供了128位的密鑰。

    網(wǎng)站使用SSL和TLS部署實(shí)踐指南教程詳細(xì)

    如何保護(hù)私鑰

    (1)要在具有足夠熵的可信計(jì)算機(jī)上生成私鑰。

    (2)從一開始就要為密鑰設(shè)置密碼保護(hù),以防止在存儲(chǔ)到備份系統(tǒng)中時(shí)受到攻擊。私鑰密碼在實(shí)際運(yùn)行中不會(huì)有太大的安全保障,因?yàn)楣粽咄耆梢噪S時(shí)從進(jìn)程內(nèi)存中檢索密鑰。利用硬件設(shè)備(硬件安全模塊或HSM),即使在服務(wù)器受損的情況下也可以保護(hù)私鑰,但是這些設(shè)備是昂貴的,因此僅適用于對(duì)安全有嚴(yán)格安全性要求的機(jī)構(gòu)。

    (3)被攻擊后,撤銷舊證書并生成新密鑰。

    (4)每年更新證書,最好你的設(shè)備可以自動(dòng)執(zhí)行此過程,因此具有較短使用周期的證書在實(shí)踐中更為安全。

    (5)除非特殊情況,否則每當(dāng)獲得新證書時(shí),就應(yīng)該生成相應(yīng)的新私鑰。

    確保證書覆蓋所使用的網(wǎng)站

    確保你的證書覆蓋你所使用的網(wǎng)站,避免無效的證書警告。

    即使你只有一個(gè)域名,你也應(yīng)確保證書與www前綴有關(guān),例如,xxxx.com和www.xxxx.com。安全的Web服務(wù)器的每個(gè)DNS名稱都應(yīng)該配置一個(gè)有效的證書。還有就是,訪問私鑰的人越少越好。

    可靠的CA獲取證書

    選擇CA時(shí),請(qǐng)注意以下5方面:

    (1)所有CA的安全狀態(tài)都要經(jīng)過定期審核;

    (2)選擇以CA為主業(yè)務(wù)且提供各種功能支持的機(jī)構(gòu);

    (3)你選擇的CA應(yīng)提供證書吊銷列表(CRL)和在線證書狀態(tài)協(xié)議(OCSP)撤銷的支持;

    使用強(qiáng)大的證書簽名算法

    證書安全性取決于用于簽署證書的私鑰的強(qiáng)度及簽名中使用的哈希函數(shù)的強(qiáng)度。原來大多數(shù)證書都依賴于SHA1散列函數(shù),不過現(xiàn)在已經(jīng)證實(shí)這是不安全的。因此,目前的趨勢(shì)是正在向SHA256轉(zhuǎn)型。截止2016年底,SHA1證書將不再被網(wǎng)站支持。

    TLS服務(wù)器的配置

    使用完整的證書鏈

    無效的證書鏈會(huì)讓服務(wù)器證書無效并導(dǎo)致瀏覽器發(fā)出安全警告,在大多數(shù)SSL和TLS部署中,只有服務(wù)器證書需要兩個(gè)或多個(gè)證書來建立完整的信任鏈。

    使用安全協(xié)議

    SSL/TLS系列中有五種協(xié)議:SSL  2,SSL  3,TLS 1.0,TLS 1.1和TLS 1.2。

    SSL2和SSL3已經(jīng)非常過時(shí)了,建議不要使用。從理論上來講,TLS  1.0也不應(yīng)該被使用,但在實(shí)踐中經(jīng)常被使用。截至目前,TLS  1.1和 1.2都還沒有什么安全問題,但只有 1.2提供了現(xiàn)代的加密算法。

    所以TLS 1.2應(yīng)該是被使用的主要協(xié)議,因?yàn)樗俏ㄒ惶峁┈F(xiàn)代認(rèn)證加密(也稱為AEAD)的版本。

    選擇最佳加密套件

    加密套件是用于在SSL/TLS握手期間協(xié)商安全設(shè)置的算法的組合。在ClientHello和ServerHello消息交換之后,客戶端發(fā)送優(yōu)先級(jí)列表的密碼支持套件。然后,服務(wù)器使用從列表中選擇的密碼套件進(jìn)行響應(yīng)。加密套件為以下組合:

    密鑰交換算法(RSA,DH,ECDH,PSK);

    認(rèn)證算法(RSA,DSA);

    批量加密算法(AES,Camellia,ARIA);

    消息認(rèn)證碼算法(SHA-256);

    不過有幾個(gè)過時(shí)的加密原語必須禁止使用:

    (1)匿名Diffie-Hellman(ADH)套件不提供身份驗(yàn)證。

    (2)NULL加密套件不提供加密。

    (3)導(dǎo)出加密套件在連接協(xié)商時(shí)不安全,但也可以針對(duì)更強(qiáng)大的套件(FREAK攻擊)的服務(wù)器使用。

    (4)弱密碼(通常為40和56位)的套件使用可以輕松被攻擊。

    (5)RC4是不安全的。

    (6)3DES運(yùn)行緩慢且易被攻擊。

    在SSL  3及更高版本的協(xié)議版本中,客戶端會(huì)先提交一系列支持的加密套件,服務(wù)器從列表中選擇一個(gè)用于連接的套件。然而,并不是所有的服務(wù)器都能執(zhí)行此操作,有些會(huì)固定的從客戶端列表中選擇第一個(gè)支持的套件,所以服務(wù)器主動(dòng)選擇最佳可用加密套件對(duì)于實(shí)現(xiàn)最佳安全性至關(guān)重要。

    使用前向保密

    前向安全或前向保密(英語:Forward Secrecy,縮寫:FS),有時(shí)也被稱為完美前向安全 [1]  (英語:Perfect Forward Secrecy,縮寫:PFS),是密碼學(xué)中通訊協(xié)議的安全屬性,指的是長(zhǎng)期使用的主密鑰泄漏不會(huì)導(dǎo)致過去的會(huì)話密鑰泄漏。 [2]  前向安全能夠保護(hù)過去進(jìn)行的通訊不受密碼或密鑰在未來暴露的威脅。如果系統(tǒng)具有前向安全性,就可以保證在主密鑰泄露時(shí)歷史通訊的安全,即使系統(tǒng)遭到主動(dòng)攻擊也是如此。

    使用強(qiáng)大的密鑰交換算法

    確保數(shù)據(jù)的傳輸、存儲(chǔ)安全,通常都會(huì)對(duì)傳輸?shù)臄?shù)據(jù)加密后存儲(chǔ)或傳輸,接收方收到數(shù)據(jù)后解密密文,還原明文。通常采用的加密算法主要有對(duì)稱密鑰加密算法以及非對(duì)稱密鑰加密算法。在安全的數(shù)據(jù)通信中,通信的雙方必須分別具有加密的密鑰以及解密的密鑰。一旦通信的密鑰被泄漏或破解,由其加密的信息就會(huì)被泄漏。因此,如何安全地交換或協(xié)商通信密鑰就成為至關(guān)重要的問題,從而如何保證密鑰的安全,特別是安全的密碼交換就成為電子商務(wù)中安全信息交換的核心問題。

    2015年,研究人員發(fā)現(xiàn)一個(gè)SSL加密安全漏洞LogJam,LogJam漏洞將影響任何支持DHE_EXPORT密碼的服務(wù)器及所有瀏覽器,包括最新版的IE、Chrome、Firefox、Safari等。隨后他們?cè)u(píng)估稱學(xué)術(shù)派黑客可以破解768位的密鑰,而國(guó)家支持的黑客更可以突破1024位的密鑰。所以為了安全起見,如果部署DHE,至少要配置2048位的密鑰。

    正確部署前的驗(yàn)證

    也許在按著本文的方法在進(jìn)行部署時(shí),許多軟件和硬件配置都有了新的版本,建議大家先對(duì)自己的SSL / TLS做個(gè)全面評(píng)估,以確保運(yùn)行的安全,推薦大家使用此鏈接進(jìn)行測(cè)試。

    實(shí)踐部署過程中的注意事項(xiàng)

    避免一味的追求過高的安全性

    使用太短的密碼肯定是不安全的,但使用太長(zhǎng)的密碼也不一定安全,比如會(huì)導(dǎo)致操作的復(fù)雜。對(duì)于大多數(shù)網(wǎng)站來說,使用強(qiáng)于2048位的RSA密鑰以及使用強(qiáng)于256位的ECDSA密鑰會(huì)浪費(fèi)CPU功耗,并可能會(huì)損害用戶體驗(yàn)。類似地,增加臨時(shí)密鑰交換的強(qiáng)度對(duì)于DHE為2048位以及ECDHE為256位幾乎沒有什么好處,使用高于128位的加密也沒有明顯的好處。

    使用會(huì)話重用機(jī)制

    由于SSL握手的非對(duì)稱運(yùn)算無論是RSA還是ECDHE,都會(huì)消耗性能,故為了提高性能,對(duì)于之前已經(jīng)進(jìn)行過握手的SSL連接,盡可能減少握手round time trip以及運(yùn)算。

    SSL提供2中不同的會(huì)話復(fù)用機(jī)制。

    (1)session id會(huì)話復(fù)用;

    (2)session ticket會(huì)話復(fù)用,Session id會(huì)話復(fù)用有2個(gè)缺點(diǎn),其一就是服務(wù)器會(huì)大量堆積會(huì)話,特別是在實(shí)際使用時(shí),會(huì)話老化時(shí)間配置為數(shù)小時(shí),這種情況對(duì)服務(wù)器內(nèi)存占用非常高。

    使用廣域網(wǎng)優(yōu)化

    廣域網(wǎng)優(yōu)化(WAN optimization),通常也被稱為廣域網(wǎng)加速(WAN acceleration),即通過一些優(yōu)化技術(shù)來提供高性能的遠(yuǎn)程數(shù)據(jù)訪問,從而提高應(yīng)用程序在廣域網(wǎng)上的性能。

    緩存公共內(nèi)容

    通過TLS進(jìn)行通信時(shí),瀏覽器可能會(huì)把所有流量都視為敏感數(shù)據(jù)。這樣,它們通常會(huì)使用內(nèi)存來緩存某些資源,但一旦關(guān)閉瀏覽器,所有內(nèi)容都可能會(huì)丟失。為了獲得性能提升并實(shí)現(xiàn)對(duì)某些資源的長(zhǎng)期緩存,可以將公共資源(例如圖像)標(biāo)記為公開。

    啟用OCSP Stapling

    OCSP (Online Certificate Status Protocol) 通常由 CA 提供,用于在線實(shí)時(shí)驗(yàn)證證書是否合法有效,這樣客戶端就可以根據(jù)證書中的 OCSP 信息,發(fā)送查詢請(qǐng)求到 CA 的驗(yàn)證地址,來檢查此證書是否有效。

    而 OCSP Stapling ,顧名思義,是將查詢 OCSP 接口的工作交給服務(wù)器來做,服務(wù)器除了可以直接查詢 OCSP 信息,還可以僅進(jìn)行少數(shù)次查詢并將響應(yīng)緩存起來。當(dāng)有客戶端向服務(wù)器發(fā)起 TLS 握手請(qǐng)求時(shí),服務(wù)器將證書的 OCSP 信息隨證書鏈一同發(fā)送給客戶端,從而避免了客戶端驗(yàn)證會(huì)產(chǎn)生的阻塞問題。由于 OCSP 響應(yīng)是無法偽造的,因此這一過程也不會(huì)產(chǎn)生額外的安全問題。

    使用快速加密原語

    盡可能使用支持硬件加速AES的CPU,如果你真的想要進(jìn)一步提高性能,請(qǐng)考慮使用ECDSA密鑰。

    HTTP的加密

    加密整個(gè)網(wǎng)站,加密的問題可能是當(dāng)今最大的安全問題之一,比如:

    (1)沒有TLS的網(wǎng)站

    (2)具有TLS但不執(zhí)行TLS的站點(diǎn)

    (3)混合了TLS和非TLS內(nèi)容的網(wǎng)站,有時(shí)甚至在同一網(wǎng)頁(yè)內(nèi)

    (4)編程錯(cuò)誤的網(wǎng)站會(huì)破壞TLS

    刪除混合內(nèi)容

    即使你加密了整個(gè)網(wǎng)站,仍然可能會(huì)從第三方網(wǎng)站中檢索出未加密的一些資源?;旌蟽?nèi)容頁(yè)面是通過TLS傳輸?shù)前煌ㄟ^TLS傳輸?shù)馁Y源(例如,JavaScript文件,圖像,CSS文件)的頁(yè)面。這樣的頁(yè)面非常不安全,這些不受保護(hù)的JavaScript資源會(huì)被中間人攻擊所利用,例如劫持整個(gè)用戶會(huì)話。

    了解第三方服務(wù)

    多數(shù)網(wǎng)站都是通過從另一臺(tái)服務(wù)器下載的JavaScript代碼來激活的第三方服務(wù)比如Google Analytics。包含第三方代碼的網(wǎng)站會(huì)創(chuàng)建一個(gè)隱含的信任連接,有效地使對(duì)方完全控制你的網(wǎng)站。雖然第三方連接可能不是惡意的,但是這些服務(wù)背后的廠商可能被攻擊,比如,如果一個(gè)服務(wù)器被攻擊,那攻擊者將自動(dòng)訪問所有依賴該服務(wù)器的站點(diǎn)。

    安全設(shè)置Cookie

    為了在保持性能的前提下,實(shí)現(xiàn)安全,網(wǎng)站需要TLS,而且所有的Cookie在創(chuàng)建時(shí)都被明確標(biāo)記為安全的。否則就有可能被MITM攻擊者利用,建議大家為你的Cookie添加加密完整性驗(yàn)證。

    安全的HTTP壓縮

    CRIME攻擊通過利用壓縮過程中的漏洞,可解密部分安全連接。而禁用TLS壓縮可防止這種攻擊。另外要注意,HTTP壓縮可能被TIME和BREACH攻擊利用。與TLS壓縮不同,HTTP壓縮是必需的,不能關(guān)閉。因此,為了解決這些攻擊,需要對(duì)應(yīng)用程序代碼進(jìn)行更改。

    配置使用HTTP嚴(yán)格傳輸安全(HSTS)

    要激活HSTS保護(hù),你可以向你的網(wǎng)站添加一個(gè)新的響應(yīng)頭。之后,支持HSTS的瀏覽器就會(huì)執(zhí)行它。通過自動(dòng)將所有明文鏈接轉(zhuǎn)換為安全的鏈接,來實(shí)現(xiàn)了這一目標(biāo)。

    建議大家添加對(duì)HSTS的支持,這是為TLS安全性做出的最重要的保障。為了獲得最佳安全效果,請(qǐng)考慮使用HSTS預(yù)加載,將HSTS配置嵌入到瀏覽器中。只要是在有效期內(nèi),瀏覽器都將直接強(qiáng)制性的發(fā)起HTTPS請(qǐng)求。

    部署內(nèi)容安全策略(CSP)

    敏感內(nèi)容作出處理

    由于使用基于云的應(yīng)用平臺(tái)正在增加,所以為了讓所有敏感內(nèi)容只讓接收方收到,你必須小心對(duì)敏感內(nèi)容作出處理。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI