第1章Java技術與安全概述
1.1 為什么企業(yè)應用要采用Java技術
1.1.1 Java2平臺標準版(Java 2 Platform Standard Edition, J2SE)
1.1.2 Java2平臺企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)
1.1.3 Java組件
1.1.4 完整的、發(fā)展的和可互操作的Java安全技術
1.1.5 異類環(huán)境中的可移植性
1.2 企業(yè)級Java技術
1.2.1 中間層:Servlets、JSP和EJB
1.2.2 組件軟件:向正確方向邁出的第一步
1.2.3 企業(yè)內部的安全通信
1.3 作為安全一部分的Java技術
1.4 企業(yè)安全集成的概述
1.4.1 身份認證與授權服務
1.4.2 密碼服務
1.4.3 防火墻
1.5 上市的時間
1.5.1 對基本技術標準的支持
1.5.2 不同環(huán)境中的工程軟件
1.5.3 時間是關鍵
第2章 企業(yè)網絡安全與Java技術
2.1 網絡體系結構
2.1.1 兩層體系結構
2.1.2 三層體系結構
2.2 網絡安全
2.3 服務器端的Java技術
2.3.1 WAS組件
2.3.2 WAS安全環(huán)境
2.4 Java與防火墻
2.4.1 TCP/IP報文
2.4.2 通過防火墻的程序間通信
2.4.3 防火墻對Java程序的影響
2.5 小結
第II部分 Enterprise Java組件安全
第3章 Enterprise Java安全基礎
3.1 企業(yè)系統(tǒng)
3.2 J2EE應用
3.2.1 EJB模塊
3.2.2 Web模塊
3.2.3 應用客戶端模塊
3.3 ORB間的安全互操作
3.4 連接器
3.5 Java消息傳送服務(JMS)
3.6 一個簡單的電子商務請求流程
3.7 J2EE平臺角色
3.7.1 應用組件提供者
3.7.2 應用級裝者
3.7.3 部署者
3.7.4 系統(tǒng)管理員
3.7.5 J2EE產品提供者
3.8 J2EE安全角色
3.9 聲明性安全策略
3.9.1 登錄配置策略
3.9.2 認證策略
3.9.3 委托策略
3.9.4 連接策略
3.10 程序性安全
3.10.1獲取身份信息
3.10.2 預應授權
3.10.3 對EIS的應用管理式登錄
3.11 WAS環(huán)境內部的安全通信
3.12 安全電子商務請求流程
第4章 Servlet和JSP安全
4.1 介紹
4.1.1 Java Servlet
4.1.2 JSP技術
4.2 Servlet的優(yōu)點
4.3 Servlet生命周期
4.4 Web模塊的部署描述符
4.5 認證
4.5.1 登錄配置策略
4.5.2 一次登錄,資源盡享
4.6 授權
4.6.1 調用鏈
4.6.2 保護指定的URL
4.6.3 保護URL模式
4.6.4 完全保護
4.6.5 理解優(yōu)先級規(guī)則
4.6.6 數(shù)據(jù)約速——只能通過SSL傳送
4.7 主體委托
4.8 程序性安全
4.8.1 主體信息
4.8.2 授權信息
4.8.3 SSL屬性信息:證書和密碼組
4.8.4 程序性的登錄
4.9 Web組件的運行時約束
4.10 使用方式
4.10.1 使用HTTPS連接到外部HTTP服務器
4.10.2 安全地維持狀態(tài)
4.10.3 pre-servlet與post-servlet處理
4.11 分割Web應用
第5章 EJB安全
5.1 引言
5.2 EJB角色和安全
5.2.1 EJB提供者
5.2.2 應用組裝者
5.2.3 部署者
5.2.4 系統(tǒng)管理員
5.2.5 EJB容器提供者
5.3 認證
5.4 授權
5.5 委托
5.6 安全考慮事項
第6章 Enterprise Java Security部署實例
6.1 規(guī)劃組件安全系統(tǒng)
6.1.1 客戶端訪問
6.1.2 表示層
6.1.3 業(yè)務邏輯
6.1.4 資源適配器和遺留應用
6.2 部署拓撲結構
6.2.1 入門級
6.2.2 集群環(huán)境
6.2.3 加另一個防御等級
6.2.4 使用安全緩存反向代理服務器進行防御
6.3 安全通信信道
6.3.1 HTTP連接
6.3.2 HOP連接
6.3.3 JMS連接
6.3.4 連接到非J2EE系統(tǒng)
6.3.5 關于其他主題
6.4 安全性考慮
第III部分 Java 2安全基礎
第7章 J2SE安全基本原理
7.1 訪問類、接口、域和方法
7.2 類加載器
7.2.1 類加載機制的安全責任
7.2.2 被加載類的可靠性級別
7.2.3 類加載過程
7.2.4 構建定制的ClassLoader
7.3 類文件驗證器
7.3.1 類文件驗證器的責任
7.3.2 類文件驗證器的四個關口
7.3.3 字節(jié)碼驗證器的詳細細節(jié)
7.3.4 類文件驗證器的一個例子
7.4 安全管理器
7.4.1 安全管理器的職責
7.4.2 安全管理器的操作
7.4.3 攻擊類型
7.4.4 惡習意代碼
7.4.5 安全管理器擴展
7.5 三個Java安全支柱之間的互相依賴
7.6 小結
第8章 Java 2許可模型
8.1 Java2 訪問控制模型總覽
8.1.1 特權修改的詞法范圍
8.1.2 Java2安全工具
8.1.3 JAAS
8.2 Java許可
8.2.1 許可目標和操作
8.2.2 PermissionCollection類和Permission類
8.2.3 Permission類中的implies()方法
8.2.4 PermissionCollection類和Permission類中的implies()方法
8.2.5 Permission隱式地等同于AllPermission
8.3 Java安全策略
8.3.1 聯(lián)合多個簽名者
8.3.2 多個策略文件,一個激活的策略
8.4 CodeSource的概念
8.5 ProtectionDomain
8.5.1 d PermissionDomain類中的implies()方法
8.5.2 系統(tǒng)域和應用域
8.5.3 Class、ProtectionDomain和Permission之間的關系
8.6 基本的Java 2訪問控制模型
8.6.1 場景:當前線程的簡單檢測
8.6.2 SecurityManager和AccessController
8.7 Java 2特權代碼
8.7.1 構造特權代碼的安全建議
8.7.2 如何編寫特權代碼
8.7.3 特權代碼場景
8.8 protectionDomain繼承
8.9 Java 2 訪問控制模型中的性能問題
8.9.1 去除復制ProtectionDomain的操作
8.9.2 在系統(tǒng)域之外過濾
8.9.3 在第一個特權棧幀處停止驗證
8.10 小結
第9章 Java認證與授權服務(JAAS)
9.1 JAAS概述和JAAS術語
9.2 認證
9.2.1 通過LoginModule實現(xiàn)可插的認證
9.2.2 JAAS的LoginModule模塊的示例
9.3 授權概述
9.3.1 基于J2SE保護域的授權概述
9.3.2 向線程添加Subject
9.3.3 安全授權策略文件
9.3.4 基于Subject的授權算法示例
9.3.5 對JAAS的其他觀察
9.4 JAAS與J2EE
9.4.1 在不同JVM中執(zhí)行的Web應用服務器
9.4.2 J2EE環(huán)境中的JAAS
9.4.3 跨越鴻溝
9.4.4 企業(yè)級安全策略管理
9.5 可插入認證的其他技術支持
第IV部分 企業(yè)級Java與密碼學
第10章 密碼學理論
10.1 密碼學的目標
10.2 秘密密鑰密碼學
10.2.1 算法與技術
10.2.2 秘密密鑰安全屬性
10.3 公開密鑰密碼學
10.3.1 算法與技術
10.3.2 公開密鑰安全屬性
10.3.3 數(shù)字簽名
10.3.4 數(shù)字證書
10.3.5 秘密密鑰分發(fā)
第11章 Java2平臺與加密技術
11.1 JCA和JCE框架
11.1.1 術語和定義
11.1.2 JCA和JCE工作原理
11.1.3 JCA和JCE提供者
11.1.4 引擎類和SPI類
11.2 JCA API
11.2.1 java.security.SecureRandom類
11.2.2 java.security.Key接口
11.2.3 java.security包的publicKey接口和PrivateKey接口
11.2.4 java.security.KeyFactory類
11.2.5 java.security.KeyPair類
11.2.6 java.security.KeyPairGenerator類
11.2.7 java.security.KeyStore類
11.2.8 java.security.MessageDigest類
11.2.9 java.security.Signature類
11.2.10 java.security包中的AlgorithmParameters和AlgorithmParameterGenerator類
11.2.11 java.security.SignedObject類
11.2.12 java.security.spec包
11.2.13 java.security.cert包
11.2.14 java.security.interfaces包
11.3 JCE API
11.3.1 javax.crypto.Cipher類
11.3.2 javax.crypto包的CipherInputStream類和CipherOutputStream類
11.3.3 javax.crypto.SecreKey接口
11.3.4 javax.crypto.spec.SecretKeySpec類
11.3.5 javax.crypto.KeyGenerator類
11.3.6 javax.crypto.seretKeyFactory類
11.3.7 javax.crypto.SealedObject類
11.3.8 javax.crypto.KeyAgreement類
11.3.9 javax.crypto.Mac類
11.4 實踐中的JCE
11.4.1 Bob的程序
11.4.2 Alice的程序
11.5 安全考慮
第12章 J2EE中的PKCS與S/MIME
12.1 PKCE概述
12.1.1 PKCS#1:RSA加密標準
12.1.2 PKCS#5:基于密碼的加密標準
12.1.3 PKCS#7:加密消息語法標準
12.1.4 PKCS#8:私有密鑰信息語法標準
12.1.5 PKCS#9:選擇屬性類型
12.1.6 PKCS#10:證書申請語法標準
12.1.7 PKCS#12:個人信息交換語法標準
12.2 S/MIME概述
12.3 PKCS和S/MIME的簽名和驗證事務
12.3.1 有關PKCS#7標準的思考
12.3.2 使用PKCS和S/MIME
12.4 帶PKCS和S/MIME的加密事務
12.5 安全考慮
12.6 展望未來
第13章 J2EE環(huán)境下的SSL和TLS協(xié)議
13.1 SSL和TLS協(xié)議
13.1.1 record協(xié)議
13.1.2 handshake(握手)協(xié)議
13.2 HTTPS
13.3 通過SSL支持構建J2EE產品
13.3.1 使用SSL保護認證期間的用戶ID和密碼
13.3.2 基于證書認證的SSL
13.3.3 反向代理服務器和WAS的相互認證
13.3.4 SSL中基于Cookie的單點登錄
13.3.5 基于證書認證的單點登錄
13.3.6 SSL保護通信信道
13.4 在J2EE程序中使用SSL
13.4.1 JSSE
13.4.2 信任管理員
13.4.3 信任庫
13.5 示例
13.5.1 無SSL的基本場景
13.5.2 帶SSL的場景
13.6 小結
第V部分 高級專題
第14章 Web服務的企業(yè)級安全
14.1 XML
14.2 SOAP
14.3 WSKL
14.4 Web服務的安全:動機
14.5 安全技術
14.5.1 XML與加密技術
14.5.2 WS-Security
14.6 Web服務安全模型的原則
14.6.1 Web服務消息安全
14.6.2 WS-Policy
14.6.3 WS-Trust
14.6.4 WS-SecureConversation
14.6.5 WS-Privacy
14.6.6 WS-Federation
14.6.7 WS-Authorization
14.6.8 示例
14.7 應用模式
14.8 使用場景
14.9 Web服務提供者安全
14.9.1 用戶認證
14.9.2 強制授權
14.10 安全考慮
14.11 前景
第15章 對容器提供者的安全考慮
15.1 理解環(huán)境
15.2 認證
15.2.1 認證機制
15.2.2 使用JAAS LoginModule
15.2.3 用戶信息
15.2.4 單點登錄
15.3 授權
15.4 安全通信
15.4.1 使用JSSE
15.4.2 客戶證書
15.5 安全相關
15.6 訪問系統(tǒng)資源
15.7 在連接器邊界匹配身份
第16章 后記
第VI部分 附錄
附錄A 分布式對象體系結構的安全
A.1 RMI
A.2 存根和框架
A.3 RMI注冊
A.4 RMI的安全
附錄B X.509數(shù)字證書
附錄C 中英文對照縮略詞表
附錄D 參考文獻