題:
SSL指紋不一致:是什麼意思?
Aki
2012-02-22 18:13:07 UTC
view on stackexchange narkive permalink

很抱歉,這不是在Stack Exchange網絡上問我問題的最佳地點,我不知道在哪裡可以得到足夠的關注和相關性。

Facebook提供了SSL主機,可以通過 https://www.facebook.com進行訪問。據我所知,基本上,證書的更改僅應在要刪除舊證書時進行。但是, Perspectives(Firefox的附加程序,可檢查許多服務器的指紋)發現Facebook指紋不一致。我很擔心,希望您對此事有見識。

Perspective screenshot Feb, 23th

編輯:屏幕截圖的說明

公證和當前鍵列列出了所有內容嘗試訪問www.facebook.com的服務器以及在主機證書中找到的指紋。密鑰歷史記錄顯示了30天的密鑰更改。因此,我們可以推測:

  • 在全球範圍內,證書​​發生更改
  • 一個證書(藍色)似乎是主要證書
  • 其他證書有時會替換它,並且相當可疑

為什麼Facebook會以這種方式更改其證書?這是常見/安全的做法嗎?

我了解具有證書頒發機構的PKI並不是很安全,我知道對於某些人(無論是富人,功能強大或知識淵博)以獲取其所需域名的證書。但是在完全偏執之前,我想知道是否存在與安全無關的合理解釋。

作為比較,這裡是 https://encrypted.google的公證結果。 com

encrypted.google.com

證書更改定期發生,但是瀏覽器的密鑰在30天的時間內只能看到一次。我開始認為什麼都沒有確實令人討厭,但是這些做法似乎破壞了Perspective的用處,並要求用戶信任。他們至少應該為此提供某種解釋,為什麼不提供其證書指紋列表。

賞金:我希望看到有關此系統的一些參考資料,當然可以找到在同一區域集群內推薦具有多個證書的配置的規範或文檔,就像Facebook的情況一樣。另外,如果存在其他可信的理論,請與我們分享。

已建立的事實

感謝此主題中的答案和評論,我們可以弄清楚:

  • Facebook確實具有不同的證書
  • 甚至在單個IP(負載平衡器)後面
  • 吊銷證書並替換它會更容易
  • >

BUT

  • 這是否提高了安全性?
  • 跟踪哪個服務器的證書看上去很繁瑣,是嗎?這種方法真的值得嗎?由於證書在單個區域集群中是不同的,因此甚至無法擴展
  • 如何在洩漏時僅保留備用證書呢?從安全角度來看,保留它們而不是全部部署似乎更好:如果一個洩漏,為什麼不洩漏?

編輯:已接受的答案

請參閱已接受回答和評論,我看得更清楚了。它幫助我理解了這種設置背後的原因,現實生活中的部署可能不像我最初想像的那麼簡單。遺憾的是,在這種情況下,透視插件幾乎是無用的,但我不能指望Facebook會關心它,這對幾乎每個人都毫無意義。感謝大家的投入。

我猜Facebook服務器出於任何原因都會提供不同的證書。
有正當的理由嗎?重要的是要知道。還是我們應該*信任*?此外,如果facebook不知道這一點,而其他人正在執行MITM攻擊怎麼辦?我想深入了解這一點。
我認為是出於管理和安全目的。例如。不同位置的服務器可能具有不同的證書,以防止私鑰洩漏(一個洩露的證書可能會造成很大的危害,但是如果它是整個生態系統的唯一證書,則洩漏的機會會大大增加,並且損害會更大)太)
給定cert1,cert2和cert3,如果cert1洩漏,則仍然可以使用它。每個證書都可以用來執行一個MITM。正如屏幕快照中指出的那樣:“瀏覽器信任此站點,不需要任何安全例外”。因此,如果某個位置的服務器洩漏了證書,則攻擊者可以在任意位置使用它。在屏幕截圖中,我們可以看到所有證書都在不同的位置使用,因此它不是基於位置的,它們是在全球範圍內切換的,並且大多數時候似乎只有一個(並且並不可疑)。我真的不明白:/ ...
+1似乎也是我特有的。如果這是合法的,我想知道為什麼我沒有聽說過這種技術/好處是什麼。很好的問題(儘管可能更適合於安全性SE)
@Aki洩漏的證書被吊銷。與在100萬個節點上吊銷和替換證書相比,在100個節點上吊銷證書更容易,更便宜,對嗎?
@EugeneMayevski'EldoSCorp:同意。但是,為什麼它們會在許多不同的節點之間共享相同的證書(圖中的藍色鍵)?為了向用戶提供全局視圖,探測facebook的服務器應該位於不同的區域。因此,如果一個證書洩漏並被吊銷,則所有通過透視圖探測的主機都必須在某個時候更改其conf。如果那是facebook在做什麼,那就是。
如果這是有效且預期的行為,這是否會完全破壞基於信任的信任的觀點/融合方法?
事實上,它確實是...不幸的是。
二 答案:
Yoav Aner
2012-02-26 14:24:37 UTC
view on stackexchange narkive permalink

這可能取決於dns解析度+高速緩存,這也可能在公證服務器上發生。如果您解析www.facebook.com,通常會獲得一個IP地址。但是,隨著時間的流逝,此IP會發生變化,並可能導致您進入其他地方。

我只是做了一個快速檢查,確實更改了為我提供的www.facebook.com IP地址,並且證書信息也有所不同。

幾分鐘後,我收到了www.facebook.com的3個不同IP地址: 69.171.229.16 69.171.234.80 69.171.228.40

為每個IP獲取SSL證書會產生不同的證書。但是,即使對於相同的IP地址,證書也不一致。對這些幾分鐘我接收到的至少兩個證書:

  ----- BEGIN CERTIFICATE ----- MIIDzDCCAzWgAwIBAgIQPAjP7r6f68QrsT7gPWIL3zANBgkqhkiG9w0BAQUFADCBujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMgSW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0xMTExMTcwMDAwMDBaFw0xMjA3MTMyMzU5NTlaMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlQYWxvIEFsdG8xFzAVBgNVBAoTDkZhY2Vib29rLCBJbmMuMRkwFwYDVQQDExB3d3cuZmFjZWJvb2suY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4e9C0eD3zy0YR829bH7fd3PGGDp / 3Rd7UR65Q + jcsRoLZaer9k9tPEOd5ZmWR1MTzwVEmZ94fhoWf219K2Nx / v7fQaWYh5U0DETUobkDfR4zBAe + oMuFDIGrhEkUEdlWUOcpvScrtzRjRLyikTc4twjRlpB5RdnGGFopwCRTNMwIDAQABo4IBIDCCARwwCQYDVR0TBAIwADBEBgNVHSAEPTA7MDkGC2CGSAGG + EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwPAYDVR0fBDUwMzAxoC + gLYYraHR0cDovL1NWUkludGwtY3JsLnZlcmlzaWduLm NvbS9TVlJJbnRsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCwYDVR0PBAQDAgWgMCkGA1UdEQQiMCCCEHd3dy5mYWNlYm9vay5jb22CDGZhY2Vib29rLmNvbTA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnZlcmlzaWduLmNvbTANBgkqhkiG9w0BAQUFAAOBgQANiGfuAUQqkUZiD2cozCmb
7 + e6vK5yzc / 3o / zAd + QBydo7dkPo / t8nIHUfGxcAKUICjAzH / j3FDykK3bupFvBWD4GoU6qVvNFgH8ucYWMNbxsknN / s3lcFryIGZYFcsYuPEB / rbBEEK預>  ----- BEGIN CERTIFICATE ----- / 3Rd7UR65Q + jcsRoLZaer9k9tPEOd5ZmWR1MTzwVEmZ94fhoWf219K2Nx / v7fQaWYh5U0DETUobkDfR4zBAe + oMuFDIGrhEkUEdlWUOcpvScrtzRjRLyikTc4twjRlpB5RdnGGFopwCRTNMwIDAQABo4H0MIHxMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwA YYYaHR0cDovL29jc3AudmVyaXNpZ24uY29tMAkGA1UdEwQCMAAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9TVlJJbnRsLWNybC52ZXJpc2lnbi5jb20vU1ZSSW50bC5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAsGA1UdDwQEAwIFoDANBgkqhkiG9w0BAQUFAAOBgQAwUGokl1919Kf6YPDKuoF + k7CFm + j2YtZqw4ilP9166qkM8IDWyYa87MB084WXSyfS1VnT5FSwzjP37 + QxgjRaROuWGxfY25KebCQpoBW2PJp3S1JmqHHyxjk4mzr + tzWK0Qn + tlBUy9igtkIhVybjO + AxBZve1qyJIsVraz8wrw == ----- END CERTIFICATE ----- 代碼> 

Facebook的可能有一些優先級的列表,它的IP地址的DNS問題,然後在訪問任何一個Facebook IP地址時(通過其負載平衡器)命中的SSL端點。他們的基礎架構設置可能會“偏愛”某些端點,而不是另一些端點(也許它們在一個端點上擁有比其他端點更強大的硬件),這就是為什麼您通常會看到一個指紋,而偶爾看到另一個指紋的原因。

更新:

p>

更具體地回答您的其他問題:

這是否可以提高安全性?

我認為可以,但是主要是在您說“安全性”時考慮的是可用性而不是機密性或完整性。 '。如果一個證書過期/由於其他任何原因需要吊銷/需要替換,則您還有另一個可以完全正常運行且可以使用的證書。

跟踪哪個服務器的證書看上去很繁瑣,這種方法真的值得嗎?它甚至沒有可擴展性,因為證書在單個區域集群中是不同的

這可能有點乏味,但我敢肯定,這只是facebook必須處理的繁瑣任務的一小部分宏偉的計劃。這值得麼?我想是這樣,我說Facebook這樣做是有原因的(如上所述,我主要是出於可用性考慮)。我想它不是在服務器上運行,而是某種功能強大的專用SSL加速器/端點集群。那些服務器將處理SSL流量,然後與某些前端Web服務器進行反向代理通信(無需擔心證書)。

如何僅保留備用證書以防萬一?洩漏?從安全的角度來看,保留它們而不是全部部署似乎更好:如果一個洩漏了,為什麼不洩漏?

是的,使一些備用證書脫機是一個非常好的主意,並且不知道我敢打賭Facebook也可以這樣做。擁有多個在線證書也並不與擁有幾個脫機證書互斥。您假設他們部署了所有這些,但事實並非如此。還建立了邏輯聯繫,如果一個洩漏,其他洩漏則需要更多的事實。如果他們具有良好的安全性以隔離事物,那麼一個折衷方案不會立即鏈接到另一個折衷方案。例如,他們可以在不同的服務器操作系統上使用來自不同供應商的不同HSM,由一組單獨的防火牆保護並由完全獨立的團隊進行管理。

這看起來很正確。我隨著時間的推移編輯了問題,以詢問從安全的角度來看,這種設置可以帶來哪些潛在好處。您是否知道涉及多個證書的任何論文或公共建議?當然,如果這是一個好習慣,應該有一些關於它的論文/演示文稿。
在我看來,這只是常識,避免了單點故障。但是,密鑰管理指南通常涵蓋密鑰輪換,吊銷和替換受損密鑰的各個方面。類似的方面適用於PKI環境。我需要再次檢查,但是如果我沒有記錯的話,FB甚至會使用不同的證書頒發機構來頒發其證書。這是有道理的,因此即使CA本身受到損害,他們也不必依賴單個權限。
我明白。我只是想知道,如果某個證書失敗了,那麼訪問Facebook的每個人都可能受到MITM攻擊,因此在這種情況下它不能提高安全性,對嗎?無論哪種情況,都必須等待吊銷和更改證書。如果一個證書洩漏了,為什麼不洩漏其他證書?由於設置相同,因此很有可能。隱藏備用證書的設置更加安全。僅在最佳情況下,多個證書才有用(隔離失敗),並且必須更改證書,更改10或200個主機的證書不會花費很多時間。這有意義嗎?
確實有道理,但我認為您正在得出結論。擁有多個“在線”證書並不意味著您也沒有準備安裝的多個“離線”證書。另外,我不一定要說,如果一個證書被洩露,那麼另一個證書的機會也會受到損害。如果您將系統充分分開,則它們也應受到獨立保護(具有不同的層等)。
我已經更新了答案,以回复您對問題的編輯。
謝謝,我必須等待11個小時才能獲得賞金,感謝您的奉獻,讓我頭腦清楚。我不再需要論文或參考資料,這是合乎邏輯的。現在更有意義,因為我記得人們可以輕鬆地從服務器池中禁用主機,從而快速禁用受影響的服務器。響應時間因此得以改善,同時又保持了可用性並簡化了維護。
很高興我可以幫您澄清。這並不是基於對Facebook基礎設施的任何熟悉,但是我認為至少有一定道理。
Shadowman
2012-02-23 01:29:42 UTC
view on stackexchange narkive permalink

Facebook可能已為同一終結點部署了多個SSL證書。這樣做通常是出於安全原因(受破壞的私鑰僅影響有限數量的主機)或出於可管理性原因(我可以錯開有效期,因此不必同時更換它們)。不同的證書意味著不同的序列號。結果,指紋將不同。

證書的內容也可能不同。例如,它們可以具有不同的subjectAltName擴展值,以通過多個DNS別名引用給定服務器。

可能是,但是您知道為什麼圖形上的藍色證書有時會被其他人替換嗎?這沒有道理。我想確定這一點。我認為這應該由安全專家對問題進行真正的分析,證書更改不會定期進行。我最瘋狂的客人將是他們的DNS緩存中的facebook條目過期,他們要求提供新地址,並且這是一台具有不同證書的服務器。但這似乎並沒有定期發生...如果我是對的,很奇怪我們沒有觀察到* pattern *,緩存的條目應該定期過期...
真的,可能有很多東西。打不同的數據中心,負載均衡器等。現實是您到達了不同的物理端點,這就是為什麼看到不同的證書回來的原因。
如何提高安全性?如果您有時間撤銷洩漏的證書,那麼您也有時間購買另一張證書。但是,您的理論是正確的。我想听聽其他意見或想法,所以我將這個問題開放幾天。謝謝。
吊銷證書可以是一個非常快速的過程。發行一個新的通常會比較冗長。如果您懷疑現有證書中的任何一個受到損害,則需要確保事先擁有“備用”證書。
-1
作為附帶說明,“ OCSP可能容易受到重放攻擊”,對於MITM攻擊者來說,似乎仍然可以使用舊的吊銷證書。只是認為這可能會使未來的讀者感興趣。但是,我們不再談論它了。這不是重點。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...