《深入Java 2平臺(tái)安全:體系架構(gòu)、API設(shè)計(jì)和實(shí)現(xiàn)(第二》
作者:[美]Li Gong 等 譯者:朱岱 定價(jià):39.00 頁(yè)碼:356 開(kāi)本:短16開(kāi) 出版時(shí)間:2004-09-01 Dearbook訂購(gòu)地址 《深入Java 2平臺(tái)安全》一書(shū),是關(guān)于Java安全平臺(tái)的權(quán)威且全面的指南。本書(shū)針對(duì)當(dāng)前諸多領(lǐng)先科技企業(yè)所采用的Java安全技術(shù)進(jìn)行了更新,以體現(xiàn)其關(guān)鍵的內(nèi)容追加和版本修訂。本書(shū)為第二版,由Sun Microsystems的Java安全專(zhuān)家撰寫(xiě),提供對(duì)Java安全體系核心機(jī)制的深入解析,描述即使在最苛刻計(jì)算環(huán)境中仍然可以成功實(shí)現(xiàn)的工具和技術(shù)。Java總是提供比其它平臺(tái)更強(qiáng)的安全模型,而本書(shū)則回顧了用來(lái)增強(qiáng)安全性而不會(huì)犧牲功能特性的方法和實(shí)踐。通過(guò)采用一些定制、擴(kuò)展和優(yōu)化Java安全體系結(jié)構(gòu)的技巧,用戶(hù)將能夠使用所需的一切方法來(lái)保護(hù)其信息資產(chǎn)免受內(nèi)外攻擊。 本書(shū)深入講述了安全體系結(jié)構(gòu)、部署、定制、最新進(jìn)展等諸多方面,包括: ·安全基礎(chǔ)知識(shí) ·類(lèi)的安全加載 ·制定粒度適合的安全策略 ·使用AccessController、SecurityManager等來(lái)執(zhí)行安全策略 ·數(shù)字證書(shū)、證書(shū)路徑、代碼簽名、JAAS,以及其它鑒別方法 ·基于Java的密碼學(xué)機(jī)制,并提供了代碼范例 ·用于網(wǎng)絡(luò)安全的JSSE、Java GSS-API和RMI ·預(yù)覽了其它平臺(tái)的安全議題,包括Java Card、J2ME和Jini 《深入Java 2平臺(tái)安全》一書(shū)為系統(tǒng)管理員和軟件從業(yè)者撰寫(xiě),提供用Java 2平臺(tái)構(gòu)建和維護(hù)安全系統(tǒng)的關(guān)鍵知識(shí)。本書(shū)還提供了詳細(xì)的代碼和使用范例,為平臺(tái)安全所需的各方面內(nèi)容提供了不可缺少的資源。 Gong Li(宮力)是位于北京的Sun Microsystems工程研究院院長(zhǎng)。在此之前,他是Java安全和網(wǎng)絡(luò)、Java嵌入式服務(wù)器和JXTA項(xiàng)目的負(fù)責(zé)人。他在清華大學(xué)獲得了學(xué)士和碩士學(xué)位,在劍橋大學(xué)獲得了博士學(xué)位。他還是IEEE Internet Computing的副總編。 Gary Ellison是Sun Microsystems的資深工程師,在那里他設(shè)計(jì)了安全網(wǎng)絡(luò)計(jì)算平臺(tái)。他主要負(fù)責(zé)信任、安全和隱私保護(hù)等方面的技術(shù)。從1999年到2002年,他領(lǐng)導(dǎo)架構(gòu)、設(shè)計(jì)和實(shí)現(xiàn)了J2SE的安全和網(wǎng)絡(luò)組件。他從俄亥俄州立大學(xué)獲得了數(shù)理學(xué)學(xué)士學(xué)位。 Mary Dageforde是一名自由職業(yè)顧問(wèn),她為硅谷的許多計(jì)算機(jī)公司撰寫(xiě)軟件文檔。她從斯坦福大學(xué)獲得了計(jì)算機(jī)科學(xué)的碩士學(xué)位,她擁有軟件設(shè)計(jì)和開(kāi)發(fā)的背景。從1990年開(kāi)始,她就專(zhuān)門(mén)為各種API、語(yǔ)言、工具和系統(tǒng)撰寫(xiě)文檔。
目錄 譯序 (iii) 第二版序言 (xv) 本書(shū)的組織結(jié)構(gòu) (xvi) 致謝 (xvii) 作者介紹 (xx) 第一版序言 (xxi) 第一版致謝 (xxii) 第1章 計(jì)算機(jī)和網(wǎng)絡(luò)安全基礎(chǔ) (1) 第2章 Java語(yǔ)言的基本安全特點(diǎn) (23) 第3章 Java 2安全體系結(jié)構(gòu) (31) 第4章 類(lèi)的安全裝載 (41) 第5章 安全策略的元素 (57) 第6章 執(zhí)行安全策略 (87) 第7章 定制安全架構(gòu) (113) 第8章 建立信任 (127) 第9章 對(duì)象安全 (157) 第10章 密碼學(xué)編程 (177) 第11章 網(wǎng)絡(luò)安全 (241) 第12章 部署安全架構(gòu) (265) 第13章 其它平臺(tái)和未來(lái)發(fā)展方向 (309) 參考書(shū)目 (327) 索引 (339)
序 創(chuàng)造是大腦和原材料的結(jié)合。如果您更多使用大腦,您就只需更少的原材料。 ——Charles Kettering “計(jì)算機(jī)安全”、“網(wǎng)絡(luò)安全”和“信息安全”等類(lèi)似的術(shù)語(yǔ)給聽(tīng)眾們帶來(lái)了許多的概念和內(nèi)容。有些人傾向于以密碼學(xué)這樣的尺度作為安全唯一的含義,而另外一些人則承認(rèn)各種安全技術(shù)的局限性,他們只是將這些技術(shù)和其它技術(shù)組合在一起,將它們當(dāng)作完成任務(wù)的工具。這之間的差別是微妙而又重要的。“平臺(tái)安全性”這個(gè)詞反映了安全的全局觀點(diǎn),它意味著基礎(chǔ)是安全的,并且在構(gòu)建大型系統(tǒng)時(shí)可以信賴(lài),或者將其直接作為一個(gè)安全的子系統(tǒng)。構(gòu)建一個(gè)安全的平臺(tái)是一個(gè)非常困難和艱巨的任務(wù),從歷史上看來(lái),只有當(dāng)安全性在一開(kāi)始就被作為一個(gè)設(shè)計(jì)要求時(shí),這個(gè)目標(biāo)才有可能實(shí)現(xiàn)。安全性能夠“一蹴而就”的想法被證明是不可靠的和失敗的,這已經(jīng)導(dǎo)致了大量的安全缺陷。 Java技術(shù)可能是唯一的通用安全計(jì)算平臺(tái),它在商業(yè)上是成功的。假如設(shè)計(jì)者從一開(kāi)始沒(méi)有認(rèn)真地考慮安全性,那么這是不可能出現(xiàn)的。Java技術(shù)有許多安全特性,而Java平臺(tái)通過(guò)建立在自身基礎(chǔ)上來(lái)實(shí)現(xiàn)一個(gè)可靠安全的平臺(tái)。如果沒(méi)有Java語(yǔ)言自身提供的安全性,那么Java 2的安全模型是不可能實(shí)現(xiàn)可信賴(lài)特征的。Java語(yǔ)言規(guī)范了類(lèi)型安全和引用完整性的語(yǔ)義,但是如果沒(méi)有Java虛擬機(jī)提供的執(zhí)行和保證,Java語(yǔ)言仍然是很失敗的。因此,通過(guò)采用這些各種各樣的安全子系統(tǒng),我們創(chuàng)建了一個(gè)強(qiáng)大的安全體系。 本書(shū)的目標(biāo)讀者群是多樣的。對(duì)于那些希望對(duì)Java 2安全架構(gòu)所提供和依賴(lài)的安全基礎(chǔ)有個(gè)大體理解的人來(lái)說(shuō),我們相信本書(shū)將是有所助益的。同樣,本書(shū)特別有助于那些構(gòu)建企業(yè)級(jí)應(yīng)用的軟件從業(yè)者,他們構(gòu)建的應(yīng)用程序可能需要滿(mǎn)足多樣的安全需求,包括從鑒別到授權(quán)到信息保護(hù)。本書(shū)還提供了我們開(kāi)發(fā)平臺(tái)時(shí)所做的一些設(shè)計(jì)權(quán)衡,以及我們?cè)诔掷m(xù)升級(jí)和改進(jìn)平臺(tái)過(guò)程中所獲得的一些經(jīng)驗(yàn)教訓(xùn)。對(duì)那些由于特定的需求而需要定制安全模型的人,我們?cè)诒緯?shū)中提供了指導(dǎo),我們還描述了設(shè)計(jì)到平臺(tái)中的變化,以適應(yīng)那些不常見(jiàn)但重要的定制工作。上述大多數(shù)主題是針對(duì)系統(tǒng)開(kāi)發(fā)人員的,當(dāng)然我們認(rèn)為安全不僅僅局限于應(yīng)用的實(shí)現(xiàn),應(yīng)用的部署同樣重要。針對(duì)部署人員,我們提供從快速安全策略到強(qiáng)化安裝運(yùn)行時(shí)環(huán)境的描述。 本書(shū)沒(méi)有解釋Java語(yǔ)言任何層次上的細(xì)節(jié),我們推薦Arnold和Gosling的書(shū)[3]作為Java學(xué)習(xí)的起點(diǎn)。同樣,我們也不打算全面介紹各種安全方面的API,對(duì)此我們推薦讀者參考Java 2 SDK文檔。 本書(shū)的組織結(jié)構(gòu) 本書(shū)的內(nèi)容是為滿(mǎn)足不同的讀者而組織的。開(kāi)始兩章提供背景知識(shí),這些知識(shí)是后續(xù)章節(jié)介紹的具體內(nèi)容的基礎(chǔ),讀者無(wú)需精通Java語(yǔ)言就可以理解這些介紹性章節(jié)。第3章到第6章講述了Java 2的安全架構(gòu),提供了從一般的概念到安全策略執(zhí)行的全面介紹。第7章到第11章的內(nèi)容是針對(duì)企業(yè)應(yīng)用開(kāi)發(fā)者,覆蓋了從信任建立到密碼學(xué)和網(wǎng)絡(luò)安全方面的主題。對(duì)于這些章節(jié),我們假定讀者精通Java語(yǔ)言。第12章是直接針對(duì)部署者,他們還應(yīng)該閱讀第8章以獲得有關(guān)信任建立方面的細(xì)節(jié)。我們認(rèn)為部署者無(wú)需精通Java語(yǔ)言,他們可以忽略第8章中所描述的API。 本書(shū)各章的內(nèi)容如下: 第1章:有關(guān)計(jì)算機(jī)、網(wǎng)絡(luò)和信息安全方面的綜合背景知識(shí)。 第2章:講述從最初的沙盒模型到精細(xì)訪問(wèn)控制模型的發(fā)展,提供了Java安全模型的概覽。 第3章:深入介紹了Java 2安全架構(gòu),這是一個(gè)策略驅(qū)動(dòng)、并且能實(shí)現(xiàn)精細(xì)訪問(wèn)控制模型的體系架構(gòu)。 第4章:詳細(xì)介紹類(lèi)裝載,包括類(lèi)裝載繼承層級(jí)體系以及運(yùn)行時(shí)委托層級(jí)體系的說(shuō)明。 第5章:介紹為運(yùn)行時(shí)安全策略執(zhí)行提供支持基礎(chǔ)的安全類(lèi)。 第6章:全面介紹策略執(zhí)行類(lèi),以及Java 2安全架構(gòu)訪問(wèn)控制算法的設(shè)計(jì)。 第7章:說(shuō)明了定制要點(diǎn),這是為那些需要增強(qiáng)核心安全架構(gòu)的系統(tǒng)開(kāi)發(fā)人員準(zhǔn)備的。 第8章:提供了安全架構(gòu)所支持的信任建功能和機(jī)制的概述。 第9章:常見(jiàn)程序缺陷和防御性程序設(shè)計(jì)策略的介紹。 第10章:全面介紹與加解密相關(guān)的API。 第11章:用于安全網(wǎng)絡(luò)協(xié)議的API綜述,包括鑒別、機(jī)密性和完整性保護(hù)等方面。 第12章:介紹了部署選項(xiàng),用于安全部署Java運(yùn)行時(shí)環(huán)境和基于Java技術(shù)的應(yīng)用。 第13章:介紹各種Java安全技術(shù)平臺(tái)和Java安全性的未來(lái)展望。 第一版序言 給我一根杠桿和一個(gè)支點(diǎn),我就能撬起整個(gè)地球。 ——阿基米德 自從Java技術(shù)出現(xiàn),特別是在1995年春天她第一次公開(kāi)亮相以來(lái),關(guān)于Java平臺(tái)的安全性就吸引了越來(lái)越多的關(guān)注,而且大家也很關(guān)心由于部署Java技術(shù)而帶來(lái)的新的安全內(nèi)容。對(duì)于安全性有如此高的關(guān)注程度在計(jì)算技術(shù)史上還是相當(dāng)新鮮的現(xiàn)象。大多數(shù)新的計(jì)算機(jī)技術(shù)在剛出現(xiàn)的時(shí)候,總是容易忽略安全方面的考慮,其中又有大多數(shù)在以后也從未變得更加安全。試圖使其更加安全的嘗試常常不那么順利,現(xiàn)在我們知道改進(jìn)安全性通常是非常困難的,而且即使不是不可能,也通常會(huì)導(dǎo)致向后兼容的問(wèn)題。 非常幸運(yùn)的是,當(dāng)Java技術(shù)開(kāi)始出現(xiàn)在Internet世界中時(shí),安全性就是其主要設(shè)計(jì)目標(biāo)之一。它最初的安全模式盡管非常簡(jiǎn)單,但卻是一個(gè)了不起的開(kāi)始,好比阿基米德的支點(diǎn)。而JavaSoft團(tuán)隊(duì)中的天才工程師和強(qiáng)有力的管理團(tuán)隊(duì)就是杠桿,他們一起將Java可擴(kuò)展安全體系機(jī)構(gòu)變成現(xiàn)實(shí)。 從一個(gè)技術(shù)提供者的角度來(lái)看,Java平臺(tái)的安全性集中在兩個(gè)方面。首先是提供了Java平臺(tái),這主要是通過(guò)JDK來(lái)實(shí)現(xiàn)的。它本身就是一個(gè)安全的平臺(tái),在這個(gè)平臺(tái)上可以安全地運(yùn)行Java應(yīng)用程序。第二是在Java編程語(yǔ)言中實(shí)現(xiàn)了安全工具和服務(wù),這使得人們可以開(kāi)發(fā)各種各樣安全敏感的應(yīng)用,比如企業(yè)應(yīng)用領(lǐng)域。 我寫(xiě)這本書(shū)有多個(gè)目的。首先,我想讓讀者對(duì)整個(gè)系統(tǒng)和網(wǎng)絡(luò)安全方面有一個(gè)簡(jiǎn)明而清晰的理解,特別是在當(dāng)前的Internet環(huán)境中,Java技術(shù)在其中扮演著主要角色,而許多安全技術(shù)又是彼此相關(guān)的,獲得全局理解顯得更為重要。 其次,我打算對(duì)Java平臺(tái)當(dāng)前的安全架構(gòu)提供一個(gè)全面的說(shuō)明。這包括語(yǔ)言特性、平臺(tái)API、安全策略以及它們的運(yùn)行機(jī)制等。我盡量做到不僅只討論某個(gè)特性功能,而且講述為什么要這樣設(shè)計(jì),以及我們——Sun Microsystems的Java安全開(kāi)發(fā)小組——曾經(jīng)測(cè)試和否決的替代方案。當(dāng)示范一個(gè)類(lèi)或其方法的使用時(shí),我盡可能采用現(xiàn)實(shí)世界中的代碼范例。這些范例中有些是從Java 2 SDK的源代碼中直接獲取的。 第三,我試圖告訴讀者有關(guān)安全部署的事項(xiàng),包括獨(dú)立軟件供應(yīng)商或者一個(gè)企業(yè)怎樣管理安全性,也包括怎樣定制、擴(kuò)展和增強(qiáng)現(xiàn)有的安全架構(gòu)。 最后,我想通過(guò)分析許多常見(jiàn)的錯(cuò)誤,以及提供一些能夠立即用到當(dāng)前項(xiàng)目中去的安全編程技巧,以幫助開(kāi)發(fā)人員避免編程時(shí)的錯(cuò)誤。
出處:藍(lán)色理想
責(zé)任編輯:donger
|