第1章 企業應用安全
1.1 我們身邊的安全問題
1.2 拿什麼拯救你,我的應用
1.2.1 安全技術目標
1.2.2 OSI安全體系結構
1.2.3 TCP/IP安全體系結構
1.3 捍衛企業應用安全的銀彈
1.3.1 密碼學在安全領域中的身影
1.3. 2 密碼與JavaEE
1.4 為你的企業應用上把鎖
1.5 小結
第2章 企業應用安全的銀彈—密碼學
2.1 密碼學得發家史
2.1.1 手工加密階段
2.1.2 機械加密階段
2.1.3 計算機加密階段
2.2密碼學定義、術語及其分類
2.2.1密碼學常用術語
2.2.1密碼學分類
2.3 保密通信模型
2.4 古典密碼
2.5 對稱密碼體制
2.5.1 流密碼
2.5.2 分組密碼
2.6 非對稱密碼體制
2.7 散列函數
2.8 數字簽名
2.9 密碼學的未來
2.9.1密碼演算法的破解
2.9.2 密碼學的明天
2.10 小結
第3章 Java加密利器
3.1 Java與密碼學
3.1.1 Java安全領域組成部分
3.1.2 關於出口的限制
3.1.3 本書所使用的軟體
3.1.4 關於本章內容
3.2 java.security包詳解
3.2.1 Provider
3.2.2 Security
3.2.3 MessageDigest
3.2.4 DigestInputStream
3.2.5 DigestOutputStream
3.2.6 key
3.2.7 AlgorithmParameters
3.2.8 AlgorithmParameter-Generator
3.2.9 KeyPair
3.2.10 KeyPairGenerator
3.2.11 KeyFactory
3.2.12 SecureRandom
3.2.13 Signature
3.2.14 SignedObject
3.2.15 Timestamp
3.2.16 CodeSigner
3.2.17 KeyStore
3.3 javax.crypto包詳解
3.3.1 Mac
3.3.2 KeyGenerator
3.3.3KeyAgreement
3.3.4 SecretKeyFactory
3.3.5 Clipher
3.3.6 ClipherInputStream
3.3.7 ClipheroutStream
3.3.8 SealedObject
3.4 java.security.spec包和javax.crypto.spec包詳解
3.4.1 KeySpec和Algorithm-ParameterSpec
3.4.2 EncodeKeySpec
3.4.3 SecreKeySpec
3.4.4 DESKeySpec
3.5 java/security.cert包詳解
3.5.1 Certificate
3.5.2 CertificateFactory
3.5.3 X509Certificate
3.5.4 CRL
3.5.5 X509CRLEntry
3.5.6 X509CRL
3.5.7 CertPath
3.6 javax.net.ssl包詳解
3.6.1 KeyManagerFactory
3.6.2 TrustManagerFactory
3.6.3 SSLContext
3.6.4 HttpsURLConnection
3.7 小結
第4章 他山之石,可以攻玉
4.1 加固你的系統
4.1.1 獲得許可權文件
4.1.2 配置許可權文件
4.1.3 驗證配置
4.2 加密組件BouncyCastle
4.2.1 獲得加密組件
4.2.2 擴充演算法支持
4.2.3 相關API
4.3 輔助工具CommonsCodec
4.3.1 獲得輔助工具
4.3.2 相關API
4.4 小結 第5章 電子郵件傳輸演算法——Base64
5.1 Base64演算法的由來
5.2 Base64演算法的定義
5.3 Base64演算法與加密演算法的關系
5.4 實現原理
5.4.1 ASCII碼字元編碼
5.4.2 非ASCII碼字元編碼
5.5 模型分析
5.6 Base演算法實現
5.6.1 Bounty Castle
5.6.2 Commons Codec
5.6.3 兩種實現方式的差異
5.6.4 不得不說的問題
5.7 Url Base64 演算法實現
5.7.1 Bounty Castle
5.7.2 Commons Codec
5.6.3 兩種實現方式的差異
5.8 應用舉例
5.8.1 電子郵件傳輸
5.8.2 網路數據傳輸
5.8.3 密鑰存儲
5.8.4 數字證書存儲
5.9 小結
第6章 驗證數據完整性——消息摘要演算法
6.1 消息摘要演算法簡述
6.1.1 消息摘要演算法的由來
6.1.2 消息摘要演算法的家譜
6.2 MD演算法家族
6.2.1 簡述
6.2.2 模型分析
6.2.3 實現
6.3 SHA演算法家族
6.3.1 簡述
6.3.2 模型分析
6.3.3 實現
6.4 MAC演算法家族
6.4.1簡述
6.4.2模型分析
6.4.3 實現
6.5 其它消息摘要演算法
6.5.1 簡述
6.5.2實現
6.6循環冗餘校驗演算法——CRC演算法
6.61 簡述
6.62 模型分析
6.63 實現
6.7 實例:文件校驗
6.8 小結
第7章 初等數據加密——對稱加密演算法
7.1 對稱加密演算法簡述
7.1.1 對稱加密演算法的由來
7.1.2 對稱加密演算法的家譜
7.2 數據加密的標准——DES
7.2.1 簡述
7.2.2 模型分析
7.2.3 實現
7.3 三重DES——DESede
7.3.1 簡述
7.3.2 實現
7.4 高級數據加密標准——AES
7.4.1 簡述
7.4.2 實現
7.5 國際數據加密——AES
7.5簡述
7.5.2 實現
7.6 基於口令加密——PBE
7.6.1 簡述
7.6.2 模型分析
7.6.3 實現
7.7 實例:對稱加密網路應用
7.8 小結
第8章 高等數據加密——非對稱加密演算法
8.1 非對稱加密演算法簡述
8.1.1 非對稱加密演算法的由來
8.1.2 非對稱加密演算法的家譜
8.2 密鑰交換演算法——DH
8.2.1 簡述
8.2.2 模型分析
8.2.3 實現
8.3 典型非對稱加密演算法——RSA
8.3.1 簡述
8.3.2 模型分析
8.3.3 實現
8.4 常用非對稱加密演算法——ELGamal
8.4.1 簡述
8.4.2 模型分析
8.4.3 實現
8.5 實例:非對稱加密網路應用
8.6 小結
第9章 帶著密鑰的消息摘要演算法——數字簽名演算法
9.1 數字簽名演算法簡述
9.1.1 數字簽名演算法的由來
9.1.2 數字簽名演算法的家譜
9.2 模型分析
9.3 經典簽名標准演算法——RSA
9.3.1 簡述
9.3.2 實現
9.4 數字簽名標准演算法——DSA
9.4.1 簡述
9.4.2 實現
9.5 橢圓曲線數字簽名演算法——ECDSA
9.5.1 簡述
9.5.2 實現
9.6 實例:帶有數字簽名的加密
網路應用
9.7 小結 第10章 終極武器—數字證書
10.1數字證書詳解
10.2 模型分析
10.2.1 證書簽發
10.2.2 加密交互
10.3 證書管理
10.3.1 KeyTool證書管理
10.3.2 OpenSSl證書管理
10.4 證書使用
10.5 應用舉例
10.6小結
第11章 終極裝備—安全協議
11.1 安全協議簡述
11.1.1 HTTPS協議
11.1.2 SSL/TLS協議
11.2 模型分析
11.2.1 協商演算法
11.2.2 驗證密鑰
11.2.3 產生密鑰
11.2.4 加密交互
11.3 單向認證服務
11.3.1 准備工作
11.3.2 服務驗證
11.3.3 代碼驗證
11.4 雙向認證服務
11.4.1 准備工作
11.4.2 服務驗證
11.4.3 代碼驗證
11.5 應用舉例
11.6 小結
第12章 量體裁衣—為應用選擇合適的裝備
12.1 實例:常規Web應用開發安全
12.1.1 常規Web應用基本實現
12.1.2 安全升級1——摘要處理
12.1.3 安全升級2——加鹽處理
12.2 實例:IM應用開發安全
12.2.1 IM應用開發基本實現
12.2.2 安全升級1——隱藏數據
12.2.3 安全升級2——加密數據
12.3 實例:Web Service應用開發安全
12.3.1WebService應用幾本實現
12.3.2安全升級1——單向認證服務
12.3.3安全升級2——雙向認證服務
12.4小結
附錄A Java6支持的演算法
附錄B Bouncy Castle支持的演算法