第一部分 Java安全基礎
第1章 安全性基礎
1.1 基本安全模型
1.2 加密
1.2.1 加密類
l.2.2 消息摘要
1.2.3 對稱密鑰
1.2.4 非對稱密鑰
1.3 驗證與非否認
1.3.1 驗證類型
1.3.2非否認
1.4 訪問控制
1.4.1 自由選擇訪問控制
1.4.2 基于角色的訪問控制
1.4.3 強制訪問控制
1.4.4 防火墻訪問控制
1.5 域
1.6 審計
1.7 策略與管理
1.8 小結
第2章 Java安全概述
2.1 Java安全歷史
2.2 Java安全體系結構
2.2.1 Java 2安全體系結構的核心
2.2.2 Java加密體系結構
2.2.3 Java加密擴展
2.2.4 Java安全套接擴展
2.2.5 Java驗證與授權服務
2.3 字節(jié)碼驗證器
2.4 類裝入器
2.4.1 類裝火器體系結構與安全性
2.4.2 類裝入器接口
2.5 安全管理器
2.5.1 安全管理器接口
2.5.2 定制安全管理器
2.6 Java加密體系結構
2.6.1 JCA體系結構
2.6.2 加密引擎
2.6.3 加密服務提供者
2.7 小結
第3章 Java應用程序安全訪問控制
3.1 權限
3.1.1 權限體系結構
3.1.2 權限類型
3.1.3 定制權限類型
3.2 安全策略
3.2.1 安全策略文件格式
3.2.2 在策略文件中引用屬性
3.2.3 使用安全策略文件
3.2.4 安全策略工具
3.2.5 安全策略 API
3.3 Java訪問控制
3.3.1 訪問控制體系結構
3.3.2 保護對象
3.3.3 SecurityManager訪問控制映射
3.3.4 微調與可配置訪問控制舉例
3.4 小結
第4章 小程序安全性
4.1 擴展沙袋
4.1.1 JDK1.0沙袋
4.1.2 JDK1.1沙袋
4.1.3 JDK1.2最低權限
4.2 指定小程序安全策略
4.2.1 安全策略文件內容
4.2.2 提供項目語法
4.3 使用簽名小程序
4.3.1 生成JAR文件
4.3.2 簽名JAR文件
4.3.3 指定簽名小程序策略
4.4 取得簽名證書
4.5 使用不同的瀏覽器
4.6小結
第二部分 加密安全
第5章 加密簡介
5.1 密寫簡史
5.2 加密技術與密碼分析
5.3 密碼
5.3.1 凱撒密碼
5.3.2 簡單替換密碼
5.4 秘密密鑰加密
5.4.1 數據加密標準
5.4.2 DESede
5.4.3 Blowfish
5.4.4 Rivest密碼
5.5 公開密鑰加密法
5.5.1 Rivest、Shamir、Adleman(RSA)算法
5.5.2 EIGamal算法
5.6 消息摘要
5.6.1 MD5
5.6.2 SHA—1
5.6.3 Base 64編碼
5.7 數字簽名
5.7.1 數字簽名算法
5.8 數字證書
5.9 小結
第6章 密鑰管理與數字證書
6.1 密鑰管理的重要性
6.2 密鑰表示
6.3 密鑰產生
6.3.1 KeyPairGenerator類
6.3.2 KeyGenerator類
6.3.3 KeyGeneratorApp程序
6.3.4 安全隨機數與密鑰生成
6.3.5 密鑰轉換
6.4 密鑰協商
6.4.1 Internet簡單密鑰管理協議
6.4.2 密鑰協商的JCE支持.
6.5 密鑰存儲與基于口令加密
6.6 JDK1.1與JDK1.2密鑰管理的差別
6.6.1 JDK1.1密鑰管理
6.6.2 JDK1.2密鑰管理
6.7 keytool
6.8 小結
第7章 消息摘要與數字簽名
7.1 消息摘要類與接口
7.1.1 MessageDigestSpi
7.1.2 MessageDigeSt
7.1.3 DigestInputStream與DigestOutputStream
7.1.4 使用摘要流
7.1.5 DigestException
7.2 消息驗證代碼
7.2.1 MacSpi
7.2.2 Mac
7.2.3 MAC操作
7.3 簽名類與接口
7.3.1 SignatureSpi
7.3.2 Signature
7.3.3 SignedObject
7.3.4 Signer
7.3.5 SignatureException
7.4 小結
第8章 Java加密擴展
8.1 JCE內幕
8.2 CryptiX JCE
8.3 安全提供者與算法獨立性
8.4 如何組織安全提供者
8.4.1 引擎類
8.4.2 SPI類
8.4.3 提供者類
8.5 生成新提供者
8.5.1 擴展SPI類
8.5.2 擴展Provider類
8.5.3 安裝Provider類
8.6 使用提供者
8.7 小結
第9章 SSL與JSSE
9.1 SSL概述
9.2 Java安全套接擴展概述
9.2.1 JSSE包與類概述
9.3 JSSE提供者
9.4 JSSE SSL服務器套接
9.4.1 取得SSL服務器套接工廠
9.4.2 生成SSL服務器套接
9.4.3 SSL服務器套接聽取
9.4.4 客戶機驗證
9.5 JSSE SSL客戶機套接
9.5.1 取得SSL套接工廠
9.5.2 生成SSL客戶機套接
9.6 JSSE SSL對話
9.7 小結
第三部分 分布式系統(tǒng)安全
第10章 分布式企業(yè)安全概述
10.1 分布式企業(yè)系統(tǒng)技術
10.1.1 企業(yè)數據庫連接
10.1.2 企業(yè)通信
10.1.3 企業(yè)通信服務
10.1.4 基于容器的企業(yè)組件
10.2 企業(yè)數據庫連接安全性
10.3 企業(yè)通信安全
10.3.1 基本網絡安全
10.3.2 RMI安全性
10.3.3 CORBA安全性
10.4 企業(yè)通信服務安全
10.4.1 JNDI安全
10.4.2 Jini安全性
10.4.3 JMS安全性
10.4.4 JavaMail安全性
10.5 基于容器的企業(yè)組件安全性
10.5.1 Web組件安全
10.5.2 EJB安全性
10.6 小結
第11章 數據庫與數據庫安全
11.1 何謂數據庫
11.2 關系型數據庫
11.2.1 使用關鍵字
11.3 結構化查詢語言
11.4 遠程數據庫訪問
11.4.1 CDBC與 JDBC驅動器
11.5 用jsva.sql包連接數據庫
11.5.1 建立數據庫連接
11.5.2 執(zhí)行 SQL語句
11.5.3 StatementApp程序
11.6 數據庫安全問題
11.6.1 保護數據庫連接
11.6.2 保護用戶連接
11.6.3 審計
11.6.4 數據庫掃描
11.7 小結
第12章 Java驗證與授權服務
12.1 JAAS概述
12.2 JAAS主題
12.2.1 主題關系
12.2.2 生成主題
12.2.3 操縱主題屬性
12.2.4 專門主題證書
12.3 用JAAS驗證
12.3.1 登錄模塊配置與初始化
12.3.2 驗證過程
12.3.3 回撥處理
12.4 用JAAS授權
12.4.1 JAAS安全策略文件格式
12.4.2 使用JAAS安全策略文件
12.4.3 進行安全關鍵操作
12.4.4 JAAS安全授權抽象
12.4.5 標準Java安全策略與JAAS權限
12.5 小結
第13章 CORBA安全性
13.1 CORBA Security概述
13.1.1 CORBA Secutity包
13.1.2 CORBA安全體系結構
13.1.3 核心 CORBA Security接口
13.2 驗證
13.3 代理
13.4 授權
13.5 審計
13.6 非否認
13.7 加密
13.8 安全策略
13.9 安全管理
13.10 小結
第14章 企業(yè)JavaBeans安全
14.1 EJB安全概述
14.2 標準編程EJB訪問控制
14.3 標準聲明性EJB訪問控制
14.4 廠家特定EJB訪問控制
14.5 廠家特定EJB標識與驗證
14.6 EJB安全通信、代理與審計
14.6.1 EJB連接安全性
14.6.2 EJB主體代理
14.6.3 EJB安全審計
14.7 小結
第15章 JSP與Java servlet安全
15.1 公用網關接口
15.1.1 Web服務器與CGI程序通信
15.1.2 CGI程序——Web服務器通信
15.2 對話狀態(tài)維護
15.2.1 cookie
15.2.2 URL改寫
15.2.3 隱藏窗體字段
15.3 服務器方編程安全問題
15.3.1 截獲對話狀態(tài)信息
15.3.2 偽造對話狀態(tài)信息
15.3.3 緩沖區(qū)溢出
15.3.4 數據驗證
15.3.5 頁面序列化
15.3.6 對話超時
15.3.7 信息報表
15.3.8 瀏覽器殘余
15.3.9 用戶驗證
15.3.10 登記敏感信息
15.3.11 最低權限
15.4 Java servlet
15.4.1 為什么使用servlet
15.4.2 Servlet API
15.4.3 Servlet如何工作
15.4.4 Servlet舉例
15.4.5 Servlet安全性
15.5 JavaServerPages
15.6 小結
第四部分 附錄
附錄A Java安全缺陷
附錄B RSA算法
附錄C 下戴與安裝JCE
附錄D Java 2 SecurityAPI
附錄E 下載與安裝Cryptix JCE 1.2
附錄F 使用Keytool
附錄G 使用Jsrsigner工具