2009-04-25 30 views
17

請幫我理解過程如何進行。我知道Web瀏覽器包含證書頒發機構(CA)的根證書,例如verisign,Entrust,Comodo等,但是當用戶訪問安全頁面時究竟發生了什麼? Web瀏覽器是否向CA的服務器發送請求以驗證CERiteate,還是僅使用CA的根證書(在瀏覽器中)來驗證證書?數字證書在用於保護網站(使用SSL)時如何工作?

我使用了一些HTTP嗅探器並登錄到gmail(登錄頁面是安全的),但沒有看到去除除谷歌以外的任何網站的請求,這是否意味着它只使用CA的根證書?

+1

CA提供的證書安裝在Web服務器(例如IIS)中並映射到相關Web應用程序。我不明白爲什麼瀏覽器會連接到CA. – Cerebrus 2009-04-25 12:33:28

回答

5

這取決於您的瀏覽器/操作系統配置。基本上,瀏覽器或操作系統都有一個受信任的根權限列表(Mozilla有它自己的列表,IE使用Windows列表)。

當SSL握手發生時,會檢查站點證書以查看它是否由其中一個受信任的機構簽名,並且服務器名稱是否與證書中的證書相匹配。

接下來會發生什麼取決於瀏覽器或操作系統配置。 CA有一個撤銷列表功能(它可以是一個大列表或一個單獨的服務(OCSP),您可以詢問證書是否仍然有效)。如果你的瀏覽器/操作系統被配置爲檢查這個,那麼這個額外的步驟會發生。

如果可用,Firefox和Windows默認檢查OCSP服務,默認情況下既不檢查CRL列表。

2

CA簽署Web服務器證書。由於瀏覽器已經擁有CA公鑰(在根證書中),因此它可以在不訪問CA的情況下驗證其公鑰的真實性。唯一需要CA訪問的是檢查證書是否被吊銷。

20

證書頒發機構頒發使用私鑰密鑰簽名的證書。您的瀏覽器存儲相應的公開密鑰爲一堆可信任的CA。當您收到安全交易的請求時,瀏覽器會使用公鑰來檢查證書的根(由您連接的主機提供)的根目錄,以確保它是真正由匹配的私鑰簽名的。

主機存儲由受信任的第三方(CA)簽名的證書,並且您的瀏覽器存儲該同一第三方的公鑰。事務開始時,主機只需要提供該證書供瀏覽器驗證。受信任的第三方不需要交易時間干預。

這與PGP等系統不同,您必須聯繫第三方纔能獲得與您通信的任何人的公鑰。系統可以以不同的方式工作,因爲您使用PGP來加密/解密數據。憑藉證書,您所做的只是驗證身份。

+1

好的答案,我會跟進與CA的典型verisign.com,godaddy.com等......雖然他們似乎在這些天到處涌現。在瀏覽器「信任」它們之前,CA的證書需要預先安裝在瀏覽器中,因此理論上你不能只設置自己的CA並開始欺騙。雖然對於企業安全性,您可以讓您的用戶安裝您的CA證書以與SSL一起使用,而不會出現瀏覽器安全警告。 – 2009-04-25 12:47:01

+0

謝謝 - 這是我在5-10分鐘或搜索後在網上找到的最佳答案。非常感激。 – 2013-01-30 08:07:06

10

Web瀏覽器列出了它信任的根證書。這些是CA的公鑰。瀏覽器說你可以相信這些CA的私鑰實際上是私有的,而且任何被這些私鑰加密的東西 - 包括所謂的Web服務器的證書 - 確實來自CA.

證書包含Web服務器的公鑰和Web服務器的地址(以及公司名稱等),並由CA的私鑰加密。當網站所有者從CA購買證書時,此加密只進行一次。之後,網站所有者會在發出https請求時將證書保存在手邊以發送給您。由於您的瀏覽器能夠使用CA的公鑰(已經在您的機器上)來解密由Web服務器發送的證書,並且在解密的證書中看到證書包含與https服務主機相匹配的主機地址,瀏覽器得出結論:主機的公鑰(使用CA的公鑰解密)是真實的。 Web主機定期發佈的證書可能仍然來自欺騙主機的隨機人員,但至少您可以確信它包含您要與之通信的https服務主機的真實公鑰。

然後,您可以發送用主機的公鑰加密的數據(如您的信用卡號碼),只有主機的私鑰才能夠解密您的數據。在交易過程中不需要與CA進行溝通。