身份認證 對稱密鑰的認證協議 公開密鑰的認證協議 公鑰基礎設施PKI

要點:

1:瞭解身份認證的概念及意義;
2:瞭解各種認證協議的基本思想,重點掌握Kerberos工作原理;
3:瞭解公鑰基礎設施PKI的基本思想,重點掌握X.509協議;

4.1概述:

     隨着互聯網的不斷髮展,人們逐漸開始嘗試在網絡上購物、交易以及各種信息交流。然而黑客、木馬以及網絡釣魚等惡意欺詐行爲,給互聯網絡的安全性帶來了極大的挑戰。層出不窮的網絡犯罪,引起了人們對網絡身份的信任危機,如何證明“我是誰?”及如何防止身份冒用等問題已經成爲人們必須解決的焦點問題,解決這些問題的唯一途徑就是進行身份認證。

     身份認證是證實用戶的真實身份與其所聲稱的身份是否相符的過程。身份認證的依據應包含只有該用戶所特有的並可以驗證的特定信息。主要包括三個方面。

    (1)用戶所知道的或所掌握的信息,如密碼、口令等。
    (2)用戶所擁有的特定東西,如身份證、護照、密鑰盤等。
    (3)用戶所具有的個人特徵,如指紋、筆跡、聲紋、虹膜、DNA等。

     目前,實現身份認證的技術主要包括基於口令的認證技術、基於密碼學的認證技術和生物特徵的認證技術。基於口令的認證原理是通過比較用戶輸入的口令與系統內部存儲的口令是否一致來判斷其身份,基於口令的認證簡單靈活,是目前最常使用的一種認證方式,但由於口令容易泄漏,其安全性相對較差。基於生物特徵的認證是指通過計算機利用人體固有的生理特徵或行爲特徵來識別用戶的真實身份,生理特徵與生俱來,多爲先天性;行爲特徵則是習慣使然,多爲後天性。生理和行爲特徵被統稱爲生物特徵,常用的生物特徵包括臉像、虹膜、指紋、聲音、筆跡等。生物特徵認證與傳統的密碼、證件等認證方式相比,具有依附於人體、不易僞造、不易模仿等優勢。基於密碼學的認證主要包括基於對稱密鑰的認證和基於公開密鑰的認證,這部分會在後面的內容中詳細介紹。
     考慮到認證數據的多種特徵,身份認證可以進行不同的分類。根據認證條件的數目分類,僅通過一個條件的相符來證明一個人的身份,稱爲單因子認證;通過兩種不同條件來證明一個人的身份,稱爲雙因子認證;通過組合多種不同條件來證明一個人的身份,稱爲多因子認證。根據認證數據的狀態來看,可以分爲靜態數據認證(Static Data Authentication,SDA)和動態數據認證(Dynamic Data Authentication,DDA)。靜態數據認證是指用於識別用戶身份的認證數據事先已產生並保存在特定的存儲介質上,認證時提取該數據進行覈實認證;而動態數據認證是指用於識別用戶身份的認證數據不斷動態變化,每次認證使用不同的認證數據,即動態密碼。動態密碼是由一種稱爲動態令牌的專用設備產生,可以是硬件也可以是軟件,其產生動態密碼的算法與認證服務器採用的算法相同.身份認證還有其他的分類方法,這裏不再一一說明。作爲信息安全必不可少的技術手段,身份認證在整個安全體系中佔有十分重要的位置。

4.2認證協議:

     以網絡爲背景的認證技術的核心基礎是密碼學,對稱密碼和公開密碼是實現用戶身份識別的主要技術,雖然身份認證方式有很多,但歸根結底都是以密碼學思想爲理論基礎。實現認證必須要求示證方和驗證方遵循一個特定的規則來實施認證,這個規則被稱爲認證協議,認證過程的安全取決於認證協議的完整性和健壯性。

4.2.1基於對稱密鑰的認證協議:

    基於對稱密碼體制下的認證要求示證方和驗證方共享密鑰,通過共享密鑰來維繫彼此的信任關係,實際上認證就是建立某種信任關係的過程.在一個只有少量用戶的封閉式網絡系統中,各用戶之間的雙人共享密鑰的數量有限,可以採用挑戰-應答方式來實現認證;對於規模較大的網絡系統,一般採用密鑰服務器的方式來實現認證,即依靠可信的第三方完成認證。
    爲了更方便地進行協議描述,規定一些描述符號,具體如下:
    ◇A→B表示A向B發送信息;
    ◇Ek(x)表示使用共享密鑰k對信息串x進行加密;
    ◇x||y表示信息串x和y相連接.
    1)基於挑戰-應答方式的認證協議
    基於挑戰-應答方式的認證協議實際上是由驗證方生成一個大的隨機數據串,即挑戰,將挑戰發送給示證方,示證方使用共享密鑰加密挑戰,然後回送給驗證方,驗證方通過解密密文得到挑戰,通過驗證挑戰的正確與否,來認證示證方的身份。
    如圖4.1所示,A和B通信爲了覈實對方的身份,B發送給A一個挑戰Nb,A收到後使用A和B之間的共享密鑰k對Nb進行加密,然後將密文發送給B,B使用k還原密文判斷還原的內容與挑戰Nb是否一致.在這個過程中B可以覈實A的身份,因爲只有A才能夠使用k加密Nb。

                                                圖4.1基於挑戰-應答方式的認證協議

    2)Needham-Schroeder認證協議
    Needham-Schroeder協議是由Needham及Schroeder在1978年所設計的,是早期較有影響的依靠可信第三方的認證協議。在Needham-Schroeder認證協議中,所有的使用者共同信任一個公正的第三方,此第三方被稱爲認證服務。每個使用者需要在認證服務器(Authentication Server,AS)上完成註冊,AS保存每一個用戶的信息並與每一個用戶共享一個對稱密鑰。實際上用戶和AS之間的信任關係依靠它們的共享密鑰來維繫。
    Needham-Schroeder協議的具體描述如下。


      其中,KDC爲AS的密鑰分配中心,主要功能爲用戶生成並分發通信密鑰Ks,Ka和Kb分別是用戶A、B與AS之間的共享密鑰,Needham-Schroeder協議的目的就是要安全地分發一個會話密鑰Ks給A和B,A、B和KDC可以通過對稱加密信息及挑戰值來覈實對方的身份,並取得信任。
      Needham-Schroeder協議雖然設計比較嚴密,但也存在漏洞。協議的第4、第5步目的是爲了防止某種類型的重放攻擊,特別是如果敵方能夠在第3步捕獲該消息,並重放,將在某種程度上干擾破壞B的運行操作.但假定攻擊方C已經掌握A和B之間通信的一個老的會話密鑰,C可以在第3步冒充A利用老的會話密鑰欺騙B,除非B記住所有以前使用的與A通信的會話密鑰,否則B無法判斷這是一個重放攻擊.如果C可以中途阻止第4步的握手信息,則可以冒充A在第5步響應,從這一點起C就可以向B發送僞造的消息,而對B來說,會認爲是用認證的會話密鑰與A進行的正常通信。

     3)Kerberos
     Kerberos是希臘神話中的一個擁有三個頭和一個蛇形尾巴的狗,是地獄之門的守衛。20世紀80年代,美國麻省理工學院MIT啓動了一個被稱爲Athena的網絡安全計劃,網絡認證是該計劃的重要組成部分,被命名爲Kerberos,用來比喻是網絡之門的保衛者,“三個頭”分別指認證(Authentication)、簿記(Accounting)和審計(Audit)。
     Kerberos的設計目標是通過對稱密鑰系統爲客戶機/服務器應用程序提供強大的第三方認證服務。Kerberos的認證過程不依賴於主機操作系統的認證,無須基於主機地址的信任,不要求網絡上所有主機的物理安全,並假定網絡上傳送的數據包可以被任意地讀取、修改和插入數據。Kerberos作爲一種可信任的第三方認證服務,是通過傳統的共享密碼技術來執行認證服務的,每個用戶或應用服務器均與Kerberos分享一個對稱密鑰。Kerberos由兩個部分組成,分別是一個AS和一個票據授予服務器(Ticket Granting Server,TGS)。Kerberos提供的認證服務,允許一個用戶通過交換加密消息在整個網絡上與另一個用戶或應用服務器互相證明身份,一旦身份得以驗證,Kerberos給通信雙方提供對稱密鑰,雙方進行安全通信對話。在Kerberos體系中,票據Ticket是客戶端訪問服務器時,提交的用於證明自己身份,並可傳遞通信會話密鑰的認證資料。AS負貴簽發訪問TGS服務器的票據,TGS負責簽發訪問其他應用服務器的票據。
     Kerberos協議的認證過程分爲三個階段,共六個步驟,如圖4.2所示。

                                                     圖4.2 Kerberos 協議的認證過程

     4)Windows系統的安全認證:

     Windows 2000 Server作爲網絡操作系統,其用戶登錄時的身份認證過程也是採用對稱密鑰加密來完成的。每一個試圖登錄到Windows 2000 Server管理的網絡上的用戶必須是已經在主域控制器上進行了有效註冊的合法用戶,用戶與主域控制器共享口令,在域控制器的安全用戶管理(Security Accounts Manager,SAM)數據庫(Database)中保存註冊用戶的用戶名、口令的散列以及其他信息。
     圖4.3爲Windows用戶登錄認證具體過程,用戶首先激活Winlogon窗口,並且輸入用戶名和口令,然後向域控制器發送登錄請求,同時計算出口令的散列,口令及其散列不包含在登錄請求信息中。域控制器收到登錄請求後產生一個8字節的質詢(挑戰)併發送給客戶端,同時取出給用戶的口令散列,用此口令散列對質詢進行散列計算(也稱加密),得到質詢散列。客戶端收到8字節的質詢後,首先使用前邊計算得到的口令散列對質詢進行散列計算,得到質詢散列,隨後將計算出的質詢散列作爲應答發送給域控制器。域控制器比對其計算出的質詢散列和用戶應答回送的質詢散列,如果相同則登錄認證通過,否則登錄認證失敗,同時向用戶發送登錄認證結果。在Windows 2000登錄認證過程中,無需通過網絡傳輸口令或口令散列,很好地保證了口令的安全。

                     圖4.3 Windows用戶登錄認證過程

4.2.2基於公開密鑰的認證協議:

     基於公開密鑰體制下的認證協議通常有兩種認證方式,方式一是實體A需要認證實體B,A發送一個明文挑戰消息(也稱挑戰因子,通常是隨機數)給B,B接收到挑戰後,用自己的私鑰對挑戰明文消息加密,稱爲簽名;B將簽名信息發送給A,A使用B的公鑰來解密簽名消息,稱爲驗證簽名,以此來確定B是否具有合法身份。方式二是實體A將挑戰因子用實體B的公鑰加密後發送給B,B收到後是用自己的私鑰解密還原出挑戰因子,並將挑戰因子明文發還給A,A可以根據挑戰因子內容的真僞來覈實B的身份。
    1)Needham-Schroeder公鑰認證協議
    Needham和Schroeder在1978年所設計的Needham-Schroeder公鑰認證協議,是一個雙向認證協議,具體內容如下。

     2)基於CA數字證書的認證協議
     基於CA數字證書的認證協議也屬於基於公開密鑰的認證協議範疇,只是引入了一個可信的第三方來管理公鑰並提供仲裁,在實際的網絡環境中公鑰是採用數字證書(Certificate)的形式來完成發佈的.數字證書是一個經過權威的、可信賴的、公正的第三方機構(即CA認證中心,CA是Certificate Authority的縮寫)簽名的包含擁有者信息及公開密鑰的文件。
     數宇證書綁定了公鑰及其持有者的真實身份,它類似於現實生活中的居民身份證,所不同的是數字證書不再是紙質的證書,而是一段含有證書持有者身份信息並經過CA認證中心審覈簽發的電子數據,可以更加方便靈活地運用在電子商務和電子政務中。
     目前數字證書的格式普遍採用的是X.509V3國際標準,如圖4.4所示,證書的內容包括證書版本、序列號、簽名算法、簽發者、有效期、主體唯一標識、公鑰、證書頒發者的數字簽名等。
    基於數字證書進行身份認證的過程如圖4.5所示,共包括如下五個基本環節。

                   圖4.4 X.509 V3的證書

                                                        圖4.5  基於數字證書的身份認證過程

    (1)示證方A首先需要向CA提交相關注冊資料,進行數字證書申請。

    (2)CA對A提供的資料進行審覈,通過後向其頒發使用CA私鑰簽過名的數字證書,數字證書包含了A的身份信息和A的公鑰,由於使用了CA的私鑰簽名,因此其他人無法僞造。
    (3)A使用私鑰對特定信息進行簽名,連同數字證書一起發送給B,B爲驗證方。
    (4)B爲了能夠覈實A的數字證書的真僞,必須先獲得CA的公鑰。
    (5)B使用CA的公鑰對A的數字證書進行合法性驗證,通過後獲得A的公鑰,對A簽過名的特定信息進行認證.通過這五個環節,B可以確認A的身份以及其簽名的信息。

4.3 公鑰基礎設施PKI:

     爲了解決Internet上電子商務等應用的安全問題,世界各國經過多年的研究,初步形成了一套完整的Internet安全解決方案,即目前被廣泛採用的公鑰基礎設施(Public Key Infrastructure,PKI)。PKI是一種遵循一定標準的密鑰管理基礎平臺,它能夠爲所有網絡應用提供加密和數字簽名等密碼服務所必需的密鑰和證書管理。簡單來說,PKI就是利用公鑰理論和技術建立的提供安全服務的基礎設施。用戶可利用PKI平臺提供的服務進行安全的電子交易、通信和互聯網上的各種活動。


4.3.1 PKI體系結構:


     PKI採用數字證書技術來管理公鑰,通過第三方的可信任機構—CA認證中心把用戶的公鑰和用戶的其他標識信息捆綁在一起,在互聯網上驗證用戶的身份。如圖4.6所示,在PKI的組成結構中,處在中心位置的是構建PKI的核心技術,即公鑰算法和數字證書技術,在此技術基礎上實現的PKI平臺包括四個基本功能模塊和一個應用接口模塊。

                                  圖4.6 PKI組成結構

    1)認證機構CA
    CA是PKI的核心執行機構,也稱爲認證中心。其主要功能包括數字證書的申請註冊、證書籤發和管理。其工作內容包括驗證並標識證書申請者的身份,對證書申請者的信用度、申請證書的目的、身份的真實可靠性等問題進行審查,確保證書與身份綁定的正確性。確保CA用於簽名證書的非對稱密鑰的質量和安全性。當服務範圍較大時,CA還可以拆分出證書申請註冊機構(Registration Authority,RA),專門負責證書的註冊申請和撤銷申請等管理工作。
    2)證書庫
    證書庫(Repository)是CA頒發證書和撤銷證書的集中存放地,它像網上的“白頁”一樣,是網上的公共信息庫,可供公衆進行開放式查詢.一般來說,查詢的目的有兩個:其一是想得到與之通信實體的公鑰,其二是要驗證通信對方的證書是否已進入“黑名單”。證書庫的構造一般採用LDAP(Lightweight Directory Access Protocol 輕型目錄訪問協議)協議,搭建分佈式的目錄系統。
    3)密鑰備份及恢復
    密鑰備份及恢復是密鑰管理的主要內容,用戶由於某些原因將解密數據的密鑰丟失,從而使已被加密的密文無法解開。爲避免這種情況的發生,PKI提供了密鑰備份與密鑰恢復機制,即當用戶證書生成時,密鑰被CA備份存儲,當需要恢復時,用戶只需向CA提出申請,CA就會爲用戶自動進行密鑰恢復。
    4)證書撤銷處理
    證書撤銷處理是PKI平臺的另一重要工作,證書和密鑰都有一定的生存期限。當用戶的私鑰泄漏或公司的某職員離職時,都需要撤銷原CA證書。被撤銷的CA證書將進入證書庫的“黑名單”,用於公衆來覈實證書的有效性。
    5)PKI應用接口
    PKI應用接口是使用者與PKI交互的唯一途徑,其重要性不言而喻。PKI應用接口也可以看成是PKI的客戶端軟件,使用者在其計算機中安裝PKI的客戶端軟件,以實現數字簽名、加密傳輸數據等功能。此外,客戶端軟件還負責在認證過程中,查詢證書和相關證書的撤銷信息以及進行證書路徑處理、對特定文檔提供時間戳請求等。

4.3.2基於X.509的PKI系統:


    X.509是國際電信聯盟-電信(ITU-T)部分標準和國際標準化組織的證書格式標準。1988年X.509首次發佈,1993年和1996年兩次修訂,當前使用的版本是X.509 V3,它加入了擴展字段支持,極大地增進了證書的靈活性。作爲ITU-ISO目錄服務系列標準的一部分,X.509的主要作用是確定了公鑰證書結構的基準,X.509 V3證書包括一組按預定義順序排列的強制字段,還有可選擴展字段,即使在強制字段中,X.509證書也具有很大的靈活性,因爲它爲大多數字段提供了多種編碼方案。X.509標準在PKI中具有極其重要的地位,PKI由小變大,由原來的網絡封閉環境到今天的分佈式開放環境,X.509起了巨大的作用,可以說X.509標準是PKI的雛形。
    X.509的CA目錄是一個層次結構,如圖4.7所示,如果某用戶x希望驗證用戶a的證書,而用戶a的CA證書又是認證機構D簽發的,則用戶x只要得到認證機構D的公鑰,就可以驗證用戶a的證書中D的簽名,即完成對用戶a的證書的認證,從而得到用戶a的公鑰。假如用戶x不能確定D的公鑰,就必須查看D的證書,由於D的證書是由認證機構C簽發的,因此,用戶x需要使用C的公鑰驗證D的證書並得到其公鑰;以此類推,最壞的情況是用戶x需要使用認證機構A的公鑰,而A是此認證機構的根,A的證書也叫根證書,是使用其私鑰自簽名產生的,用戶在使用CA證書之前必須先下載安裝A的證書,同時系統會自動加載保存認證機構A的公鑰。這個證書的認證路徑構成了一個證書鏈,起點是根證書,終點爲用戶a的證書。用戶a的證書鏈可以使用下面的形式表達:

                                                             圖4.7基於X.509的層次型認證機構分佈

     圖4.8是一個典型的PKI模型,從圖中可以看出一個CA認證機構主要包括RA服務器、CA服務器、安全服務器、LDAP服務器和數據庫服務器,其中,RA是CA重要的組成部分,很多系統將它從CA服務器中分離出來,作爲獨立的功能單元。

                                                                圖4.8 典型的PKI模型

     CA服務器是整個PKI系統的核心,負責證書的簽發管理。CA首先產生自己的公私密鑰對,生成自簽名的根證書。然後需要爲認證中心操作員、安全服務器、註冊服務器RA等生成數字證書。完成了CA的初始建設,接下來就是爲子CA認證機構和用戶提供數字證書的簽發、更新和撤銷等服務。

     RA服務器主要面向業務受理操作員,負責登記、審覈用戶申請信息,包括註冊申請和證書撤銷申請,並將相關信息傳給CA服務器和LDAP。
     安全服務器主要負貴RA服務器和CA服務器的安全,用戶的各種請求操作都在其監管下進行,這些操作包括證書申請、瀏覽請求、證書撤銷及證書下載等服務。

    LDAP是輕量目錄訪問協議的英文縮寫,它是基於X.500標準的設計實現的,同時支持TCP/IP協議,便於Internet用戶訪問。LDAP是一個用來發布不同資源的目錄信息的協議。通常它都作爲一個集中的地址薄使用,不過根據組織者的需要,它可以做得更加強大.一般在LDAP目錄中可以存儲各種類型的數據:電子郵件地址、郵件路由信息、人力資源數據、公用密匙、聯繫人列表等信息.在PKI系統中,LDAP服務器負責將CA發送過來的用戶信息、數字證和證書撤銷列表等信息公佈到網絡上,提供給用戶查詢下載。
    數據庫服務器主要用於存儲認證機構中的數據(如密鑰、用戶信息等)、日誌和統計信息,以便用戶下載以及重要的數據備份。
    一個典型的PKI系統應該提供如下功能。
    (1)接收驗證用戶數字證書的申請。
    (2)確定是否接受用戶數字證書的申請,即證書的審批。
    (3)向申請者頒發(或拒絕頒發)數字證書。
    (4)接收、處理用戶的數字證書更新請求。
    (5)接收用戶數字證書的查詢、撤銷。
    (6)產生和發佈證書的有效期。
    (7)數字證書的歸檔。
    (8)密鑰歸檔。
    (9)歷史數據歸檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章