關於證書的FAQ

2021-08-28 18:49:00 字數 2199 閱讀 8175

一 為什麼需要證書問:

我不理解證書的必要性,通過認證機構的證書來獲取公鑰,和直接獲取公鑰到底有什麼不一樣呢?

答:在通過不可信途徑(例如郵件)獲取公鑰時,可能會遭到中間人攻擊。alice本來想要獲取bob的公鑰,但實際上得到的卻是主動攻擊者的公鑰。

如果從認證機構獲取公鑰,就可以降低遭到中間人攻擊的風險。因為帶有證書的公鑰是經過認證機構進行數字簽名的。事實上無法被篡改。但現在的問題是,我們又該如何獲取認證機構本身的公鑰呢?

如果將上面這個問題替換成「我自己現在所持有的公鑰中,哪乙個更可信」這樣乙個問題,也許更容易理解。例如,如果alice和bob本人見面,bob直接將自己的公鑰交給alice的話,就不需要認證機構了,這是因為alice可以確信自己所得到的就是bob的公鑰。

然而,正如故事中所描述的那樣,在alice和bob無法直接見面的情況下,或者是即便見面alice也無法確信對方就是bob本人的情況下,認證機構和證書的存在就有意義了。因為alice得到帶有認證機構數字簽名的bob的公鑰,就表示alice將對bob本人身份的確認這項工作委託給了認證機構。認證機構則將認可該公鑰屬於bob這一事實通過證書(即對公鑰進行的數字簽名)傳達給alice。

上述內容的要點總結如下:

如果能夠取的可信的公鑰,則不需要認證機構。

當持有可信的認證機構的公鑰,並相信認證機構所進行的身份確認的情況下,則可以信任該認證機構頒發的證書以及通過該途徑取得的公鑰。

二 通過自己的方法進行認證是不是更安全問:

無論是證書的格式還是pki,使用公開的技術總覺得不放心。我覺得使用公開的技術就等於為攻擊者提供了用於攻擊的資訊,相比之下,還是使用公司自己開發的保密認證方法更安全吧?

答:不,這是錯誤的。

自己開發保密的認證方法是犯了典型的隱蔽式安全錯誤。私下開發安全相關的技術是非常危險的。僅靠一家公司的力量無法開發出足以抵禦攻擊的安全技術,這一點不僅限於密碼技術,對於數字簽名和證書等認證技術也同樣適用。

使用公開的技術的確會為攻擊者提供用於攻擊的資訊,但與此同時,全世界的安全專家也在為這些公開的技術尋找漏洞。

下面再更深入地思考一下關於使用公開的技術的問題。

使用公開的技術和把自己公司採用的技術公開是兩碼事。

採用已經公開的,並積累了大量成果的技術是正確的決定,然而並不需要將自己公司所採用的技術細節公開出來。拿員工訪問公司內部網路的方法為例。驗證員工的合法身份可以採用公開的,積累了大量成果的技術,但是我們並不需要將這些細節公開出來,而是只要告知相關的員工就可以了。這樣將可以將風險控制到最小,萬一有人惡意將技術的詳細資訊公開出來,也不會產生嚴重的問題,因為我們所採用的技術原本就是公開的。

反過來說,如果我們使用的技術是依靠對細節的保密來保證安全的,那麼一旦有人惡意洩露技術細節,就會造成嚴重的問題。

靠隱蔽來保證安全是錯誤的。

三 為什麼要相信認證機構問:

我已經明白認證機構的作用了,但是我總覺得這件事說來說去還是乙個死迴圈。為了相信公鑰,就必須相信為該公鑰頒發證書的證書機構,但是我為什麼要相信這個認證機構呢?就算有另乙個認證機構為它證明,那我為什麼要相信那個「另乙個認證機構」呢?

答:這個問題關係到「信任是如何產生的」這一本質性問題。為什麼要把錢存進銀行呢?為什麼我錢包中的鈔票能夠在商店裡使用呢?為什麼我們相信飯店裡提供的食物是安全的呢?我們在每天的生活中還會遇到很多像這樣「在某種程度上可信」的例子,那麼這種「可信」的感覺到底是怎樣產生的呢?

一言以蔽之,就是「感覺貌似是可信的」「從經驗上看是可信的」這一類的理由。我們之所以信任某家銀行,是因為電視和報紙等眾多**上都能看到它的名字和評價,才會讓人產生可信的感覺。

認證機構是否讓人感到可信,和銀行也是一樣的。如果各種**都報道過某家認證機構,而且說這家機構的業務非常正規,那麼這家認證機構就會覺得可信。對於公司內部的認證機構,只要公司發出過官方通知,而且你的上司也跟你說「這個就是我們公司的認證機構」,那麼它對你就是可信的。如果乙個陌生人通過郵件給你乙個**,就算上面寫著「這個是某公司的認證機構」,我們也不能相信。

在能夠處理證書的電子郵件軟體和web瀏覽器中,已經包含了一些有名的認證機構的證書。我們平時在使用時也不會再自行檢查那些軟體中已經內建的證書,這是因為我們信任這個軟體的作者,我們會認為有名的軟體應該不會嵌入一些惡意認證機構的證書。

通過上面的思考我們可以看出,即便認證機構是具有層級結構的,但實際上支撐「信任」關係的也並不是單純的層級而已。不管證書的鏈條是否具有層級結構,我們之所以信任某個認證機構,是因為那是我們基於多個可信的情報源做出的判斷。

翻譯 關於SQL CE RDA資料同步的FAQ

q1.怎麼判斷用 rda pulled 的表是否是被跟蹤的?什麼是 rda 訂閱表?a1.系統表 sysrdasubscriptions 儲存了 rda 訂閱的資訊。如果表被拉下來時 tracking 選項開啟了 就是 rdatrackoption.trackingon 或 rdatrackopti...

關於ios證書

一 成員介紹 1.certification 證書 證書是對電腦開發資格的認證,每個開發者帳號有一套,分為兩種 1 developer certification 開發證書 安裝在電腦上提供許可權 開發人員通過裝置進行真機測試。可以生成副本供多台電腦安裝 2 distribution certifi...

關於蘋果證書

最近整理了一下證書,疏通下思路,記錄下,以備以後查驗 1.證書,證書分為除錯證書,發布證書.申請都差不多,主要用於發布或者除錯程式 3.device 這個是最簡單的,就是新增到你需要真機除錯的iphone的udid加入這個devices list裡面 實戰操作 1.手動方式 申請真機除錯證書,需要從...