1 / 37

密碼學

密碼學. Chapter 8 密碼學 / 安全性的實作 Practical Implementations of Cryptography/Security. 1. Java 密碼學 微軟密碼學 第三方組織之解決方案. 實務上密碼學的實作. 2. 使用 Java 來做密碼學. 概括上來說, Java 密碼學架構有兩個主要的技術 Java 密碼學架構 (JCA) Java 密碼學延伸 (JCE). Java 密碼學. Java 密碼學架構 (JCA). Java 密碼學延伸 (JCE). Java 密碼學架構.

bud
Download Presentation

密碼學

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 密碼學 Chapter 8 密碼學/安全性的實作 Practical Implementations of Cryptography/Security 1

  2. Java密碼學 微軟密碼學 第三方組織之解決方案 實務上密碼學的實作 2

  3. 使用 Java 來做密碼學 • 概括上來說,Java 密碼學架構有兩個主要的技術 • Java密碼學架構 (JCA) • Java密碼學延伸 (JCE) Java密碼學 Java密碼學架構 (JCA) Java密碼學延伸 (JCE)

  4. Java密碼學架構 • Java Cryptography Architecture, JCA • JCA是預設的Java應用程式發展環境(JDK)的一部分 • 提供基本的密碼學功能 • 存取控制、許可、金鑰對、訊息摘要、數位簽章 • Package • java.security

  5. 介面與實作 • JCA設計的主要目標是將密碼學概念(Java的介面)與實際的演算法實作(Java的實作)分離 • 介面(interfaces) • 定義什麼是介面可以執行的,也就是介面的行為 • 實作(implementation) • 定義執行的細節,也就是如何被執行

  6. 介面與實作

  7. 引擎類別 (engine class) • JCA套件包含了很多類別,稱為引擎類別 • 引擎類別是密碼學功能的邏輯呈現 • 例如訊息摘要或數位簽章 • 提供者(provider)類別 • 執行演算法的實際實作 • 可由很多廠商提供

  8. 引擎類別和提供者類別之間的關係

  9. JCA引擎類別和提供者

  10. JCA中的金鑰管理 • Java2 使用金鑰工具(Keytool) • 將公開金鑰與私密金鑰分別儲存 • 儲存的資料庫稱為金鑰儲存(keystore) • 簡單的電腦檔案,.keystore • 金鑰工具提供的重要服務 • 建立金鑰對和自我簽署憑證 • 輸出憑證 • 在要求憑證時,發出憑證簽署要求(CSR)給憑證授權中心(CA) • 輸入其他人的憑證做為簽章驗證

  11. Java中使用JCA建立訊息摘要的例子

  12. Java密碼學延伸 • Java Cryptography Extension, JCE • 密碼學政策 • 美國政府限制密碼學軟體的出口 • JCA • 訊息摘要與數位簽章 • 包含在JDK中 • JCE • 加密與解密 • 另外下載

  13. JCE架構 • JCE架構擁有與JCA相同的型態 • 基於引擎類別和提供者類別的概念 • 差異在於包含一個引擎類別的實作 • 昇陽公司提供的預設實作

  14. Java中使用JCE加密的例子

  15. JCA 和 JCE結論 • JCA 和 JCE 都是很強大的密碼學架構。它們已經經過很小心地規劃和設計,因此允許其未來的延伸和供應商獨立發展。 • 優點 • 它是免費的 • 缺點 • 不像其他密碼學產品一樣複雜

  16. 使用微軟的密碼學方法 • 微軟密碼學應用程式介面 • Microsoft Cryptography Application Programming Interface, MS-CAPI • 微軟發展出的一個綜合的密碼學軟體 • MS-CAPI是免費的 • Windows作業系統的一部分

  17. MS-CAPI • 如同JCA/JCE的架構 • 使用引擎與提供者類別的方法 • 使用自有專門術語描述 • 密碼學服務提供者 • Cryptographic Service Providers, CSP • 等同JCA的提供者 • 提供一個共通CSP獨立的介面 • 提供一個預設的CSP實作 • 可由第三方組織的CSP時作取代

  18. MS-CAPI和CSP的關係

  19. MS-CAPI方法和CSP

  20. 使用MS-CAPI建立的數位簽章

  21. MS-CAPI結論 • 完全免費 • IE與Windows作業系統的一部分 • 非常受到歡迎的密碼學軟體

  22. .NET Framework 密碼編譯模型 資料來源:Microsoft MSDN http://msdn.microsoft.com/zh-tw/library/93bskf9z(v=VS.90).aspx System.Security.Cryptography 命名空間中的類別管理許多加密的詳細資訊 某些是 Unmanaged Microsoft Cryptography API (CryptoAPI) 的包裝函式,其他則僅是 Managed 實作 資料流架構的密碼編譯物件全都支援單一標準介面 (CryptoStream) 來處理物件的資料傳輸部分

  23. .NET Framework 提供的類別實作 • 私密金鑰加密演算法 • DESCryptoServiceProvider • RC2CryptoServiceProvider • RijndaelManaged • TripleDESCryptoServiceProvider • 公開金鑰加密演算法 • DSACryptoServiceProvider • RSACryptoServiceProvider • 數位簽章演算法 • DSACryptoServiceProvider • RSACryptoServiceProvider

  24. .NET Framework 提供的類別實作 • 雜湊值 • HMACSHA1 • MACTripleDES • MD5CryptoServiceProvider • SHA1Managed • SHA256Managed • SHA384Managed • SHA512Managed • 亂數產生器演算法 • RNGCryptoServiceProvider

  25. 密碼學工具 • 很多公司專注在提供密碼學工具(cryptographic toolkits) • RSA Data Security Inc • Entrust • Baltimore • 不同的工具會提供不同的密碼學功能,需要中間層確保其可相互運作

  26. 安全性和作業系統 • 對象 • UNIX 的安全性 • Windows 2000 的安全性 • 討論 • 存取控制 • 使用者鑑別

  27. UNIX 的存取控制 • UNIX一開始被設計成多使用者的作業系統 • 需要確保許多使用者可同時存取作業系統服務 • 需要高度的安全性與隱私性 • 標示所有檔案、程序、資源 • UID(使用者身份識別碼) • GID(群組身份識別碼)

  28. UNIX檔案存取權限的例子

  29. UNIX的使用者鑑別 • 使用者的密碼取得訊息摘要後儲存在使用者資料庫 • 使用salt避免字典攻擊法

  30. UNIX密碼產生程序

  31. Windows 2000的安全特徵

  32. SID • 在Windows 2000中,每個使用者與群組都被指定一個唯一的SID • 程序和其執行序是在使用者的SID下執行 • 所有程序都有一個存取符記,包含SID和其他資訊 • 每個資源都有一個與它相關的安全性描述符號,描述這個SID被允許做什麼活動

  33. Windows 2000的使用者鑑別 • 使用Kerberos來作使用者鑑別 • 支援Windows NT的挑戰/回應機制 • NT LAN管理者(NTLM) • 基於挑戰/回應機制,避免使用者密碼明文傳送

  34. Windows NTLM鑑別程序

  35. 章節總結 • Java 密碼學方法是以 Java 密碼學架構和 Java 密碼學延伸為基礎。 • JCA 將介面和實作分離出來。 • JCA 提供即插即用架構。 • JCA 是由引擎類別和提供者類別所組成。 • 由於美國限制密碼學軟體出口,因此 JCE 從 JCA 中被獨立建立出來。 • 先前的 JCE 要求授權,現在則不必。

  36. 章節總結 • 微軟密碼學應用程式介面是微軟的密碼學軟體。 • IE 和 Windows 作業系統中免費附贈 MS-CAPI。 • MS-CAPI 的架構與 JCE 類似。 • 密碼學工具也可以用在密碼學中。 • 密碼學工具非常穩固且已經驗證,但可能非常昂貴。

  37. The End 37

More Related