1. 程式人生 > >【Java 安全技術探索之路系列:J2SE安全架構】之六:安全管理工具

【Java 安全技術探索之路系列:J2SE安全架構】之六:安全管理工具

【Java 安全技術探索之路系列:J2SE安全架構】章節列表

作為J2SE複合包的一部分,Java2平臺提供了一組工具來管理安全策略、建立金鑰、管理金鑰和證書、簽署JAR檔案、驗證簽名以及支援金鑰管理相關的其他功能。

一 keystore

金鑰庫是一個受保護的資料庫,儲存了金鑰及金鑰的可信證書項。金鑰庫的結構如下圖所示:

這裡寫圖片描述

下面來介紹相關工具的使用。

二 keytool

Keytool是用於管理金鑰和證書的工具,使使用者能管理自己的公/私鑰對以及相關的證書。keytool主要用於認證服務和使用數字簽名驗證資料的完整性。keytool工具使用X.509證書標準。該標準使用:

  • 抽象語法標記(Abstract Syntax Notation 1):描述證書資料.
  • 明確編碼規則(Definite Encoding Rules):指定資訊如何儲存和傳輸。
  • 可辨別名稱(Distinguished Name):描述持有者和頒發者欄位的值。

j2SE複合包使用命令列工具的形式提供keytool工具。相關命令如下所示:

這裡寫圖片描述

下面演示一下如何使用這些命令:

2.1 使用keytool生成金鑰對

keytool -genkey -alias myalias -keyalg RSA -keystore mykeystore -keypass mykeypass -storepass mystorepass

執行該命令後,會出現以下介面,逐一回答即可。

這裡寫圖片描述

回答完成後會在當前目錄生成mykeystore檔案,該檔案是加密檔案,無法直接開啟。

2.2 金鑰庫相關操作

2.2.1 檢視金鑰庫中的項


keytool -list -keystore mykeystore

輸入密碼:mykeystorepass,即可檢視金鑰庫中的項,如下圖所示:

這裡寫圖片描述


keytool -list -v -keystore mykeystore

-v選項,證書會以人類可讀的格式顯示,如下圖所示:

這裡寫圖片描述

-rfc選項,證書會以Base64編碼格式顯示證書,如下圖所示:

這裡寫圖片描述

2.2.2 從金鑰庫匯出證書

keytool -export
-alias myalias -file mycertificate.cer -keystore mykeystore

輸入命令後,會提示輸入金鑰庫口令,如下圖所示:

這裡寫圖片描述

輸入口令後,會在命令行當前目錄生成證書檔案,如下圖所示:

這裡寫圖片描述

這裡寫圖片描述
這裡寫圖片描述

2.2.3 匯入證書到金鑰庫

keytool -import -alias myclientalias -file mycertificate.cer -keypass clientkeypass -keystore clientstore -storepass clientpass

執行命令,即可匯入證書,如下圖所示:

這裡寫圖片描述

2.2.4 修改金鑰庫密碼

keytool -storepasswd -new newstorepass -keystore mykeystore -storepass mystorepass

2.3 證書相關操作

2.3.1 顯示證書內容

keytool -printcert -file mycertificate.cer

執行命令後,顯示證書資訊,如下圖所示:

這裡寫圖片描述

2.3.2 建立證書籤發請求

keytool -certReq -keystore mykeystore -file myCSR.csr -alias mycsralias

三 policytool

輸入命令

policytool

介面如下圖所示:

這裡寫圖片描述

四 jarsigner

jarsigner工具用於對JAR檔案進行數字簽名並驗證JAR檔案的簽名和檔案的的完整性。相關操作命令如下圖所示:

這裡寫圖片描述

4.1 JAR檔案簽名

下面演示了為myJar.jar簽名,並將簽名後的JAR檔案命名為mySignedJar.jar過程。

jarsigner -keystore C:\Users\Administrator\mykeystore -storepass mystorepass -keypass mykeypass -signedjar mySignedJar.jar myJar.jar myalias

執行命令後,會顯示命令成功,如下圖所示:

這裡寫圖片描述

3.2 驗證簽名後的JAR檔案

jarsigner -keystore C:\Users\Administrator\mykeystore -verify -certs mySignedJar.jar

這裡寫圖片描述