PKI
公鑰基礎設施( PKI ) 是創建、管理、分發、使用、存盤和撤銷數字證書以及管理公鑰加密所需的一組角色、策略、硬體、軟體和程式,PKI 的目的是為電子商務、網上銀行和機密電子郵件等一系列網路活動促進資訊的安全電子傳輸,對于簡單密碼不足以進行身份驗證的活動,需要更嚴格的證據來確認通信參與方的身份并驗證正在傳輸的資訊,
PKI就是利用公開密鑰理論和技術建立提供安全服務的、具有通用性的基礎設施,是創建、頒發、管理、注銷公鑰證書所涉及的所有軟體、硬體集合體,PKI可以用來建立不同物體間的"信任"關系,它是目前網路安全建設的基礎與核心,PKI的主要任務是在開放環境中為開放性業務提供基于非對稱密鑰密碼技術的一系列安全服務,包括身份證書和密鑰管理、機密性、完整性、身份認證和數字簽名等,
PKI的組成
PKI作為一組在分布式計算系統中利用公鑰技術和X.509證書所提供的安全服務,企業或組織可利用相關產品建立安全域,并在其中發布密鑰和證書,在安全域內,PKI管理加密密鑰和證書的發布,并提供諸如密鑰管理(包括密鑰更新,密鑰恢復和密鑰委托等)、證書管理(包括證書產生和撤銷等)和策略管理等,PKI產品也允許一個組織通過證書級別或直接交叉認證等方式來同其他安全域建立信任關系,這些服務和信任關系不能局限于獨立的網路之內,而應建立在網路之間和Internet之上,為電子商務和網路通信提供安全保障,所以具有互操作性的結構化和標準化技術成為PKI的核心

-
PKI安全策略建立和定義了一個組織資訊安全方面的指導方針,同時也定義了密碼系統使用的處理方法和原則,它包括一個組織怎樣處理密鑰和有價值的資訊,根據風險的級別定義安全控制的級別,一般情況下,在PKI中有兩種型別的策略:一是證書策略,用于管理證書的使用,比如,可以確認某一CA是在Internet上的公有CA,還是某一企業內部的私有CA;另外一個就是CPS(Certificate Practice Statement),一些由商業證書發放機構(CCA)或者可信的第三方操作的PKI系統需要CPS,這是一個包含如何在實踐中增強和支持安全策略的一些操作程序的詳細檔案,它包括CA是如何建立和運作的,證書是如何發行、接收和廢除的,密鑰是如何產生、注冊的,以及密鑰是如何存盤的,用戶是如何得到它的等等,
-
證書機構CA是PKI的信任基礎,它管理公鑰的整個生命周期,其作用包括:發放證書、規定證書的有效期和通過發布證書廢除串列(CRL)確保必要時可以廢除證書,
-
注冊機構RA提供用戶和CA之間的一個介面,它獲取并認證用戶的身份,向CA提出證書請求,它主要完成收集用戶資訊和確認用戶身份的功能,這里指的用戶,是指將要向認證中心(即CA)申請數字證書的客戶,可以是個人,也可以是集團或團體、某政府機構等,注冊管理一般由一個獨立的注冊機構(即RA)來承擔,它接受用戶的注冊申請,審查用戶的申請資格,并決定是否同意CA給其簽發數字證書,注冊機構并不給用戶簽發證書,而只是對用戶進行資格審查,因此,RA可以設定在直接面對客戶的業務部門,如銀行的營業部、機構認識部門等,當然,對于一個規模較小的PKI應用系統來說,可把注冊管理的職能由認證中心CA來完成,而不設立獨立運行的RA,但這并不是取消了PKI的注冊功能,而只是將其作為CA的一項功能而已,PKI國際標準推薦由一個獨立的RA來完成注冊管理的任務,可以增強應用系統的安全,
-
證書發布系統負責證書的發放,如可以通過用戶自己,或是通過目錄服務,目錄服務器可以是一個組織中現存的,也可以是PKI方案中提供的,
一個簡單的PKI系統包括證書機構CA、注冊機構RA和相應的PKI存盤庫,CA用于簽發并管理證書;RA可作為CA的一部分,也可以獨立,其功能包括個人身份審核、CRL管理、密鑰產生和密鑰對備份等;PKI存盤庫包括LDAP目錄服務器和普通資料庫,用于對用戶申請、證書、密鑰、CRL和日志等資訊進行存盤和管理,并提供一定的查詢功能,
X.509證書
X.509 證書是一種數字證書,它使用廣泛接受的國際 X.509 公鑰基礎結構 ( PKI ) 標準來驗證公鑰是否屬于證書中包含的用戶、計算機或服務身份,
公鑰是一個很大的數值,用于加密資料或檢查數字簽名的合法性,此外,PKI 是使用戶和服務器等物體能夠使用數字證書安全地交換資訊的底層框架,
X.509 證書是針對惡意網路冒充者的保護措施,當證書由受信任的機構簽署或以其他方式驗證時,持有該證書的設備可以驗證檔案,它還可以使用公鑰證書來保護與第二方的通信,

證書欄位
X.509 證書包含有關向其頒發證書的身份和頒發證書的身份的資訊,X.509 證書中的標準資訊包括以下內容
+-------------------------------+----------
| Version | | | | <-- 版本號
+-------------------------------+ | | |
| Certificate Serial Number | V V V <-- 證書序列號,也可以指定
+-------------------------------+ E E E
| Sinature Algorithm Identifier | R R R <-- 簽名加密演算法標識
+-------------------------------+ S S S
| Issuer Name | I I I <-- 頒發機構資訊,包括了C/ST/L/O/CN等資訊
+-------------------------------+ O O O
| Not Before & Not After | N N N <-- 證書有效期,指定了開始結束范圍
+-------------------------------+ 1 2 3
| Subject Name | | | | <-- 證書持有人資訊
+-------------------------------+ | | |
| Subject's Public Key Info | | | | <-- 證書持有人公鑰資訊
+-------------------------------+---- | |
| Issuer Unique Identifier | | | <-- 簽發機構唯一標識
+-------------------------------+ | |
| Subject Unique Identifier | | | <-- 證書持有人唯一標識
+-------------------------------+------- |
| Extensions | | <-- 擴展資訊
+-------------------------------+----------
| Signature | ALL <-- 證書簽名資訊
+-------------------------------+
應用

- 數字身份,X.509 證書的一個關鍵用途可以是驗證設備、人員、資料和應用程式的數字身份,
- TLS/SSL 和 Web 瀏覽器安全性,PKI 和 X.509 是傳輸層安全 ( TLS ) 和安全套接字層 ( SSL ) 協議的基礎,Web 瀏覽器讀取網頁的 X.509 證書以驗證其 TLS/SSL 狀態,
- 數字簽名和檔案簽名,X.509 證書可以驗證數字簽名檔案的身份,特別是驗證簽名和檔案,
- 電子郵件證書,安全電子郵件標準(例如,安全/多用途 Internet 郵件擴展或 S/MIME)使用 X.509 證書,
- 安全外殼密鑰,安全外殼 ( SSH ) 密鑰是 X.509 證書的一種形式,它們提供 SSH 協議中使用的安全訪問憑證,
- 代碼簽名,代碼簽名使用證書來驗證代碼,因此最終用戶可以驗證代碼沒有被第三方更改,
CA證書機構
證書機構CA用于創建和發布證書,它通常為一個稱為安全域(security domain)的有限群體發放證書,創建證書的時候,CA系統首先獲取用戶的請求資訊,其中包括用戶公鑰(如果用戶端是個人使用或者測驗用,則公鑰一般由用戶端產生,如電子郵件程式或瀏覽器等或者使用第三方開發的具有獨立CSP的智能終端如USBkey),CA將根據用戶的請求資訊產生證書,并用自己的私鑰對證書進行簽名,其他用戶、應用程式或物體將使用CA的公鑰對證書進行驗證,如果一個CA系統是可信的,則驗證證書的用戶可以確信,他所驗證的證書中的公鑰屬于證書所代表的那個物體,
CA還負責維護和發布證書廢除串列CRL(certificate revocation lists,又稱為證書黑名單),當一個證書,特別是其中的公鑰因為其他原因無效時(不是因為到期),CRL提供了一種通知用戶和其他應用的中心管理方式,CA系統生成CRL以后,要么是放到LDAP服務器中供用戶查詢或下載,要么是放置在Web服務器的合適位置,以頁面超級連接的方式供用戶直接查詢或下載,

安全服務器:安全服務器面向普通用戶,用于提供證書申請、瀏覽、證書撤消串列以及證書下載等安全服務,安全服務器與用戶的的通信采取安全信道方式(如SSL的方式,不需要對用戶進行身份認證),用戶首先得到安全服務器的證書(該證書由CA頒發),然后用戶與服務器之間的所有通信,包括用戶填寫的申請資訊以及瀏覽器生成的公鑰均以安全服務器的密鑰進行加密傳輸,只有安全服務器利用自己的私鑰解密才能得到明文,這樣可以防止其他人通過竊聽得到明文,從而保證了證書申請和傳輸程序中的資訊安全性,
CA服務器:CA服務器使整個證書機構的核心,負責證書的簽發,CA首先產生自身的私鑰和公鑰(密鑰長度至少為1024位),然后生成數字證書,并且將數字證書傳輸給安全服務器,CA還負責為操作員、安全服務器以及注冊機構服務器生成數字證書,安全服務器的數字證書和私鑰也需要傳輸給安全服務器,CA服務器是整個結構中最為重要的部分,存有CA的私鑰以及發行證書的腳本檔案,出于安全的考慮,應將CA服務器與其他服務器隔離,任何通信采用人工干預的方式,確保認證中心的安全,
注冊機構RA:登記中心服務器面向登記中心操作員,在CA體系結構中起承上啟下的作用,一方面向CA轉發安全服務器傳輸過來的證書申請請求,另一方面向LDAP服務器和安全服務器轉發CA頒發的數字證書和證書撤消串列,
LDAP服務器:LDAP服務器提供目錄瀏覽服務,負責將注冊機構服務器傳輸過來的用戶資訊以及數字證書加入到服務器上,這樣其他用戶通過訪問LDAP服務器就能夠得到其他用戶的數字證書,
資料庫服務器:資料庫服務器是認證機構中的核心部分,用于認證機構中資料(如密鑰和用戶資訊等)、日志合統計資訊的存盤和管理,實際的的資料庫系統應采用多種措施,如磁盤陣列、雙機備份和多處理器等方式,以維護資料庫系統的安全性、穩定性、可伸縮性和高性能,
證書頒發機構(CA)是PKI(公鑰基礎設施)系統中重要組成部分之一,當您訪問一個掛有安全鎖的網站,就表示該網站使用了SSL/TLS證書,而SSL /TLS證書是基于PKI, 并且需要以下幾個關鍵東西才能正常使用SSL/TLS證書:
- 一張數字證書(如SSL/TLS證書),以證明該網站的真實身份;
- 一個CA,用于驗證網站,并頒發數字證書;
- 一個數字簽名,證明SSL證書是由受信任的證書頒發機構頒發的;
- 一個公鑰,用于向網站發送的資料加密;
- 一個私鑰,網站用來解密資料;
比如說我們現在要訪問一個博客園https://www.cnblogs.com/ivanlee717/,但是如何判斷這個網站是連接到cnblog運行的服務器?萬一是一個黑客仿的一個網站,那么您如何知道是連接到真實網站呢?這就是CA的作業了,證書頒發機構(CA)會驗證該網站的企業資訊,這樣就知道您是與誰在進行通信,而且還可以查看該網站上的SSL證書的詳細資訊,了解該網站是經過Digicert CA嚴格驗證的,也可以確信您與真實的博客園建立了通信,

作業原理圖:

CA中心為每個使用公開密鑰的用戶發放一個數字證書,數字證書的作用是證明證書中列出的用戶合法擁有證書中列出的公開密鑰,CA機構的數字簽名使得攻擊者不能偽造和篡改證書,它負責產生、分配并管理所有參與網上交易的個體所需的數字證書,因此是安全電子交易的核心環節,在SET交易中,CA不僅對持卡人、商戶發放證書,還要對獲款的銀行、網關發放證書,
CA是證書的簽發機構,它是公鑰基礎設施的核心,CA是負責簽發證書、認證證書、管理已頒發證書的機關,它要制定政策和具體步驟來驗證、識別用戶身份,并對用戶證書進行簽名,以確保證書持有者的身份和公鑰的擁有權,
CA也擁有用戶的證書(內含公鑰)和私鑰,網上的公眾用戶通過驗證CA的簽名從而信任CA,任何人都可以得到CA的證書(含公鑰),用以驗證CA所簽發的證書,
用戶若欲獲取證書,應先向CA提出申請,CA判明申請者的身份后,為之分配一個公鑰,并將該公鑰與其身份資訊系結,為該整體簽名,簽名后的整體即為證書,發還給申請者,
如果一個用戶想鑒別另一個證書的真偽,他就用CA的公鑰對那個證書上的簽字進行驗證,一旦驗證通過,該證書就被認為是有效的,
為保證用戶之間在網上傳遞資訊的安全性、真實性、可靠性、完整性和不可抵賴性,不僅需要對用戶的身份真實性進行驗證,也需要有一個具有權威性、公正性、唯一性的機構,負責向電子商務的各個主體頒發并管理符合國際安全電子交易協議標準的電子商務安全證,并負責管理所有參與網上交易的個體所需的數字證書,因此CA是安全電子交易的核心環節,
密鑰管理
密鑰管理也是PKI(主要指CA)中的一個核心功能,主要是指密鑰對的安全管理,包括密鑰產生、密鑰備份、密鑰恢復和密鑰更新等,
(1)密鑰產生 密鑰對的產生是證書申請程序中重要的一步,其中產生的私鑰由用戶保留,公鑰和其他資訊則交于CA中心進行簽名,從而產生證書,根據證書型別和應用的不同,密鑰對的產生也有不同的形式和方法,對普通證書和測驗證書,一般由瀏覽器或固定的終端應用來產生,這樣產生的密鑰強度較小,不適合應用于比較重要的安全網路交易,而對于比較重要的證書,如商家證書和服務器證書等,密鑰對一般由專用應用程式或CA中心直接產生,這樣產生的密鑰強度大,適合于重要的應用場合, 另外,根據密鑰的應用不同,也可能會有不同的產生方式,比如簽名密鑰可能在客戶端或RA中心產生,而加密密鑰則需要在CA中心直接產生,
(2)密鑰備份和恢復 在一個PKI系統中,維護密鑰對的備份至關重要,如果沒有這種措施,當密鑰丟失后,將意味著加密資料的完全丟失,對于一些重要資料,這將是災難性的,所以,密鑰的備份和恢復也是PKI密鑰管理中的重要一環, 使用PKI的企業和組織必須恩能夠得到確認:即使密鑰丟失,受密要加密保護的重要資訊也必須能夠恢復,并且不能讓一個獨立的個人完全控制最重要的主密鑰,否則將引起嚴重后果, 企業級的PKI產品至少應該支持用于加密的安全密鑰的存盤、備份和恢復,密鑰一般用口令進行保護,而口令丟失則是管理員最常見的安全疏漏之一,所以,PKI產品應該能夠備份密鑰,即使口令丟失,它也能夠讓用戶在一定條件下恢復該密鑰,并設定新的口令, 例如,在某些情況下用戶可能有多對密鑰,至少應該有兩個密鑰:一個用于加密,一個用于簽名,簽名密要不需要備份,因為用于驗證簽名的公鑰(或公鑰證書)廣泛發布,即使簽名私鑰丟失,任何用于相應公要的人都可以對已簽名的檔案進行驗證,但PKI系統必須備份用于加密的密鑰對,并允許用戶進行恢復,否則,用于解密的私鑰丟失將意味著加密資料的完全不可恢復, 另外,使用PKI的企業也應該考慮所使用密鑰的生命周期,它包括密鑰和證書的有效時間,以及已撤銷密鑰和證書的維護時間等,
(3)密鑰更新 對每一個由CA頒發的證書都會有有效期,密鑰對生命周期的長短由簽發證書的CA中心來確定,各CA系統的證書有效期限有所不同,一般大約為2-3年, 當用戶的私鑰被泄漏或證書的有效期快到時,用戶應該更新私鑰,這時用戶可以廢除證書,產生新的密鑰對,申請新的證書,
PKI的機制
在整個安全系統中,身份認證技術是重點,基本安全服務就是身份認證,其他安全服務也都建立在身份認證的基礎上,這使得身份認證系統具有十分重要的地位,也最容易遭受攻擊,因此,建立安全的身份認證系統是網路安全的首要步驟,目前常用的網路身份認證機制包括基于口令的身份認證機制、挑戰/回應認證機制、基于DCE/Kerberos的認證機制以及基于公共密鑰的認證機制,

實體
甲想將一份合同檔案通過Internet發給遠在國外的乙,此合同檔案對雙方非常重要,不能有絲毫差錯,而且此檔案絕對不能被其他人得知其內容,如何才能實作這個合同的安全發送?
問題1:甲必須對檔案加密才能保證不被其他人查看其內容,那么,到底應該用什么加密技術,才能使合同傳送既安全又快速呢?
可以采用一些成熟的對稱加密演算法,如DES、3DES、RC5等對檔案加密,對稱加密采用了對稱密碼編碼技術,它的特點是檔案加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密演算法,
問題2:如果黑客截獲此檔案,是否用同一演算法就可以解密此檔案呢?
不可以,因為加密和解密均需要兩個組件:加密演算法和對稱密鑰,加密演算法需要一個對稱密鑰來解密,黑客并不知道此密鑰,
問題3:既然黑客不知密鑰,那么乙怎樣才能安全地得到其密鑰呢?
用非對稱密鑰演算法加密對稱密鑰后進行傳送,與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(Public Key)和私有密鑰(Private Key),公開密鑰與私有密鑰是一對,如果公開密鑰對資料進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對資料進行加密,只有用對應的公開密鑰才能解密,因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫做非對稱加解密演算法(公/私鑰可由專門軟體生成),甲乙雙方各有一對公/私鑰,公鑰可在Internet上傳送,私鑰自己保存,這樣甲就可以用乙的公鑰加密問題1中提到的對稱加密演算法中的對稱密鑰,即使黑客截獲到此密鑰,也會因為黑客不知乙的私鑰,而解不開對稱密鑰,因此解不開密文,只有乙才能解開密文,
問題4:既然甲可以用乙的公鑰加密其對稱密文,為什么不直接用乙的公鑰加密其檔案呢?這樣不僅簡單,而且省去了用對稱加密演算法加密檔案的步驟?
不可以這么做,因為非對稱密碼演算法有兩個缺點:加密速度慢,比對稱加密演算法慢10~100倍,因此只可用其加密小資料(如對稱密鑰),另外加密后會導致得到的密文變長,因此一般采用對稱加密演算法加密檔案,然后用非對稱演算法加密對稱演算法所用到的對稱密鑰,
問題5:如果黑客截獲到密文,同樣也截獲到用公鑰加密的對稱密鑰,由于黑客無乙的私鑰,因此它解不開對稱密鑰,但如果他用對稱加密演算法加密一份假檔案,并用乙的公鑰加密一份假檔案的對稱密鑰,并發給乙,乙會以為收到的是甲發送的檔案,會用其私鑰解密假檔案,并高興地閱讀其內容,但不知已經被替換,換句話說,乙并不知道這不是甲發給他的,怎么辦?
用數字簽名證明其身份,數字簽名是通過散列演算法,如MD5、SHA-1等演算法從大塊的資料中提取一個摘要,而從這個摘要中不能通過散列演算法恢復出任何一點原文,即得到的摘要不會透露出任何最初明文的訊息,但如果原資訊受到任何改動,得到的摘要卻肯定會有所不同,因此甲可以對檔案進行散列演算法得到摘要,并用自己的私鑰加密,這樣即使黑客截獲也無用,黑客不會從摘要內獲得任何資訊,但乙不一樣,他可用甲的公鑰解密,得到其摘要(如果公鑰能夠解開此摘要,說明此摘要肯定是甲發的,因為只有甲的公鑰才能解開用甲的私鑰加密的資訊,而甲的私鑰只有甲自己知道),并對收到的檔案(解密后的合同檔案)也進行同樣的散列演算法,通過比較其摘要是否一致,就可得知此檔案是否被篡改過(因為若摘要相同,則肯定資訊未被改動,這是散列演算法的特點),這樣不僅解決了證明發送人身份的問題,同時還解決了檔案是否被篡改的問題,
問題6:通過對稱加密演算法加密其檔案,再通過非對稱演算法加密其對稱密鑰,又通過散列演算法證明發送者身份和其資訊的正確性,這樣是否就萬無一失了?
回答是否定的,問題在于乙并不能肯定他所用的所謂的甲的公鑰一定是甲的,解決辦法是用數字證書來系結公鑰與公鑰所屬人,
數字證書是一個經證書授權中心數字簽名的包含公開密鑰擁有者資訊以及公開密鑰的檔案,是網路通信中標識通信各方身份資訊的一系列資料,它提供了一種在Internet上驗證身份的方式,其作用類似于司機的駕駛執斬訓日常中的身份證,人們可以在交往中用它來識別對方的身份,
最簡單的證書包含一個公開密鑰,名稱以及證書授權中心的數字簽名,一般情況下證書還包含有密鑰的有效時間、發證機關(證書授權中心)名稱、該證書的序列號等資訊,它是由一個權威機構—CA機構,又稱為證書授權(Certificate Authority)中心發放的,CA機構作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任,CA中心為每個使用公開密鑰的用戶發放一個數字證書,數字證書的作用是證明證書中列出的用戶合法擁有證書中列出的公開密鑰,CA機構的數字簽名使得攻擊者不能偽造和篡改證書,CA是PKI的核心,負責管理PKI結構下的所有用戶(包括各種應用程式)的證書,把用戶的公鑰和用戶的其他資訊捆綁在一起,在網上驗證用戶的身份,
因為數字證書是公開的,就像公開的電話簿一樣,在實踐中,發送者(即甲)會將一份自己的數字證書的拷貝連同密文、摘要等放在一起發送給接收者(即乙),而乙則通過驗證證書上權威機構的簽名來檢查此證書的有效性(只需用那個可信的權威機構的公鑰來驗證該證書上的簽名就可以了),如果證書檢查一切正常,那么就可以相信包含在該證書中的公鑰的確屬于列在證書中的那個人(即甲),
問題7:至此似乎很安全了,但仍存在安全漏洞,例如:甲雖將合同檔案發給乙,但甲拒不承認在簽名所顯示的那一刻簽署過此檔案(數字簽名就相當于書面合同的文字簽名),并將此過錯歸咎于電腦,進而不履行合同,怎么辦?
解決辦法是采用可信的時鐘服務(由權威機構提供),即由可信的時間源和檔案的簽名者對檔案進行聯合簽名,在書面合同中,檔案簽署的日期和簽名一樣均是十分重要的防止檔案被偽造和篡改的關鍵性內容(例如合同中一般規定在檔案簽署之日起生效),在電子檔案中,由于用戶桌面時間很容易改變(不準確或可人為改變),由該時間產生的時間戳不可信賴,因此需要一個第三方來提供時間戳服務(數字時間戳服務(DTS)是網上安全服務專案,由專門的機構提供),此服務能提供電子檔案發表時間的安全保護,
時間戳產生的程序為:用戶首先將需要加時間戳的檔案用哈希編碼加密形成摘要,然后將該摘要發送到DTS,DTS在加入了收到檔案摘要的日期和時間資訊后再對該檔案加密(數字簽名),然后送回用戶,因此時間戳(time-stamp)是一個經加密后形成的憑證檔案,它包含三個部分:需加時間戳的檔案的摘要,DTS收到檔案的日期和時間,DTS的數字簽名,由于可信的時間源和檔案的簽名者對檔案進行了聯合簽名,進而阻止了檔案簽名的那一方(即甲方)在時間上欺詐的可能,因此具有不可否認性,
問題8:有了數字證書將公/私鑰和身份系結,又有權威機構提供時鐘服務使其具有不可否認性,是不是就萬無一失了?不,仍然有問題,乙還是不能證明對方就是甲,因為完全有可能是別人盜用了甲的私鑰(如別人趁甲不在使用甲的電腦),然后以甲的身份來和乙傳送資訊,這怎么解決呢?
解決辦法是使用強口令、認證令牌、智能卡和生物特征等技術對使用私鑰的用戶進行認證,以確定其是私鑰的合法使用者,
解決這個問題之前我們先來看看目前實作的基于PKI的認證通常是如何作業的,以瀏覽器或者其他登記申請證書的應用程式為例說明,在第一次生成密鑰的時候會創建一個密鑰存盤,瀏覽器用戶會被提示輸入一個口令,該口令將被用于構造保護該密鑰存盤所需的加密密鑰,如過密鑰存盤只有脆弱的口令保護或根本沒有口令保護,那么任何一個能夠訪問該電腦瀏覽器的用戶都可以訪問那些私鑰和證書,在這種場景下,又怎么可能信任用PKI創建的身份呢?正因為如此,一個強有力的PKI系統必須建立在對私鑰擁有者進行強認證的基礎之上,現在主要的認證技術有:強口令、認證令牌、智能卡和生物特征(如指紋和眼膜等認證),
以認證令牌舉例:假設用戶的私鑰被保存在后臺服務器的加密容器里,要訪問私鑰,用戶必須先使用認證令牌認證(如用戶輸入賬戶名、令牌上顯示的通行碼和PIN等),如果認證成功,該用戶的加密容器就下載到用戶系統并解密,
PKI的攻擊

-
對CA驗證的攻擊
攻擊者可能能夠獲得包含目標主題和攻擊者公鑰的證書,使用此假證書,攻擊者可以啟動中間人攻擊
-
對CA簽名的攻擊
如果CA的私鑰被泄露,攻擊者可以使用主題欄位中的任意資料簽署證書
日期 2011 年 6 月 17 日,DigiNotar 于 2011 年 7 月 19 日檢測到對其證書頒發機構基礎設施的入侵,[1] 疑似演員 名為“Comodohacker”的獨立伊朗黑客,[2] Fox-IT 發布的一份報告,[3]荷蘭政府聘請的一家安全咨詢公司調查針對 DigiNotar 的違規行為,發現與同一參與者針對 Comodo Certificate Authority 公司進行的較早攻擊的鏈接,[4] 目標 DigiNotar,一家由 Vasco Data Security Itl 擁有的荷蘭證書頒發機構公司,DigiNotar 還為荷蘭政府提供證書,[5] 目標系統 管理 DigiNotar 公司內的證書頒發機構的服務器, 方法 攻擊者進入 DigiNotar 的外部非軍事區(稱為 DMZ-ext-net)中的服務器,利用它們在內部和外部系統之間交換檔案,在破壞了 DigiNotar 的安全網路后,黑客能夠更深入地滲透,到達 Qualified-CA 服務器,這些服務器被用來頒發經過認證的合格證書和政府證書,[6] 目的 黑客將這次襲擊描述為對荷蘭政府未能阻止斯雷布雷尼察種族滅絕事件的政治報復,該事件在 1995 年波斯尼亞沖突期間造成 8,000 名穆斯林死亡,[7] 結果 [經初步調查,DigiNotar 頒發的所有證書均被微軟、 8] Google 和 Mozilla等大公司認為不可信,[9]由于入侵者能夠洗掉所有日志檔案,因此無法計算損壞程度,也無法確定黑客簽發的欺詐證書的確切數量,[10] Fox-IT 對該事件的審計報告提供了一份包含 Google、Facebook、Skype 和 Microsoft 的惡意行為者頒發的 531 個流氓證書的非詳盡串列,[11] 后果 由于無法檢測到自 DigiNotar 遭受破壞以來發布的許多流氓證書,該公司發布的所有證書都已被列入黑名單,[12]最終,違約導致巨大的信任損失,公司宣布破產解散,[13] 分析于 場景 08:證書頒發機構 hack -
對證書完整性的攻擊
數字證書取決于兩種型別的演算法:
單向哈希函式與數字簽名2017年2月,Google Research宣布SHA1攻擊:
創建了兩個具有相同SHA-1的不同PDF檔案, -
對用戶身份認證的攻擊
使用Unicode對通用名稱進行網路釣魚攻擊:鄭發現,如果域名包含Unicode字符,則有幾個瀏覽器無法正確顯示域名,因為有些Unicode字符看起來像ASCII,可能會引起混淆,
xn-80ak6aa92e.com使用西里爾字符編碼,但瀏覽器顯示的域名像apple.com
本文來自博客園,作者:ivanlee717,轉載請注明原文鏈接:https://www.cnblogs.com/ivanlee717/p/16818827.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/519070.html
標籤:其他
