



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Java 眾所周知, Java 語言具有完善的安全框架,從編程語言,編譯器、解釋程序到虛擬機(jī),都能確保Java 系統(tǒng)不被無效的代碼或敵對的編譯器暗中破壞,基本上,它們保證了 Java 代碼按預(yù)定的規(guī)則運(yùn)作。但是,當(dāng)我們需要逾越這些限制時(shí),例如,讀寫文件,監(jiān)聽和讀寫Socket ,退出Java 系統(tǒng)等,就必須使用數(shù)字簽名或安全策略文件( *.Policy )。 在企業(yè)內(nèi)部網(wǎng)中,本文提出了使用安全策略文件來設(shè)置java 程序權(quán)限的一種簡單的方法。由于企業(yè)內(nèi)部網(wǎng)中各臺計(jì)算機(jī)的位置、用途和安全性明確,更適于使用安全策略文件來設(shè)置java 的權(quán)限,軟件的安裝、設(shè)置、升級和遷移都非常的方便,并且,還可以和
2、數(shù)字簽名配合使用,更重要的是,可以細(xì)分每個(gè)java 程序的權(quán)限,使用起來靈活方便。一 .Java 中安全策略的概念Java 應(yīng)用程序環(huán)境的安全策略,詳細(xì)說明了對于不同的代碼所擁有的不同資源的許可,它由一個(gè)Policy 對象來表達(dá)。為了讓applet (或者運(yùn)行在SecurityManager 下的一個(gè)應(yīng)用程序)能夠執(zhí)行受保護(hù)的行為,例如讀寫文件, applet (或 Java 應(yīng)用程序)必須獲得那項(xiàng)操作的許可, 安全策略文件就是用來實(shí)現(xiàn)這些許可。Policy 對象可能有多個(gè)實(shí)體,雖然任何時(shí)候只能有一個(gè)起作用。當(dāng)前安裝的 Policy對象,在程序中可以通過調(diào)用 getPolicy 方法得到,也可
3、以通過調(diào)用 setPolicy 方法改變。 Policy 對象評估整個(gè)策略,返回一個(gè)適當(dāng)?shù)?Permissions 對象,詳細(xì)說明那些代碼可以訪問那些資源。 策略文件可以儲存在無格式的 ASCII 文件,或 Policy 類的二進(jìn)制文件,或數(shù)據(jù)庫中。本文僅討論無格式的 ASCII 文件的形式。二 .Policy 文件的格式 為 了 能 夠 更 好 地 理 解 下 面 的 內(nèi) 容 , 建 議 在 閱 讀 時(shí) 參 照 jdk1.2jrelibsecurityjava.policy文件和jdk1.2jrelibsecurityjava.security文件的內(nèi)容。1 Policy 文件的語法格式與說
4、明 一個(gè) Policy 文件實(shí)質(zhì)上是一個(gè)記錄列表,它可能含有一個(gè)“ keystore ”記錄,以及含有零個(gè)或多個(gè)“ grant ”記錄。其格式如下:keystore"some_keystore_url", "keystore_type"grantSignedBy"signer_names",CodeBase"URL"Permissionpermission_class_name"target_name","action",SignedBy"signer_names&
5、quot; Permission.;1.1"keystore" 記錄 一個(gè) keystore 是一個(gè)私有密鑰 ( privatekeys ) 數(shù)據(jù)庫和相應(yīng)的數(shù)字簽名,例如 X.509證書。 Policy 文件中可能只有一條keystore 記錄(也可能不含有該記錄),它可以出現(xiàn)在文件中 grant 記錄以外的任何地方。 Policy 配置文件中指定的 keystores 用于尋找grant 記錄中指定的、簽名者的公共密鑰( publickeys ),如果任何grant 記錄指定簽名者( signer_names ),那么, keystore 記錄必須出現(xiàn)在policy 配置
6、文件中。-"some_keystore_url” 是指 keystore 的 URLf置,"keystore_type” 是指 keystore 的 類型。第二個(gè)選項(xiàng)是可選項(xiàng),如果沒有指定,該類型則假定由安全屬性文件 (java.security)中的 "keystore.type" 屬性來確定。 keystore 類型定義了 keystore 信息的存儲和數(shù)據(jù)格式,用于保護(hù)keystore 中的私有密鑰和keystore 完整性的算法。SunMicrosystems 支持的缺省類型為“ JKS”。1.2"grant" 記錄-在Pol
7、icy 文件中的每一個(gè)grant記錄含有一個(gè) CodeSource (一個(gè)指定的代碼)及其 permission( 許可 ) 。Policy 文件中的每一條grant 記錄遵循下面的格式,以保留字“grant ”開頭,表示一條新的記錄的開始,“ Permission ”是另一個(gè)保留字,在記錄中用來標(biāo)記一個(gè)新的許可的開始。每一個(gè)grant 記錄授予一個(gè)指定的代碼( CodeBase) 一套許可( Permissions ) 。target_name用來指定目標(biāo)類的位置,action 用于指定目標(biāo)類擁有的權(quán)限。target_name可以直接指定類名(可以是絕對或相對路徑),目錄名,也可以是下面的通
8、配符:directory/* 目錄下的所有文件* 當(dāng)前目錄的所有文件directory/- 目錄下的所有文件,包括子目錄- 當(dāng)前目錄下的所有文件,包括子目錄ALLFILES文件系統(tǒng)中的所有文件read,write,delete 和 execute 。listen , accept , connect , read , write 。1.3Policy 文件中的屬性擴(kuò)展( PropertyExpansion ) 屬性擴(kuò)展與shell 中使用的變量擴(kuò)展類似,它的格式為:"$perty"實(shí)際使用的例子為:permission"$user.home&quo
9、t;,"read""$user.home" 的值為 "d:Project" ,因此,下面的語句和上面的語句是一樣的:permission"d:Project","read"三 . 實(shí)例 當(dāng)初始化 Policy 時(shí),首先裝載系統(tǒng)Policy ,然后再增加用戶 Policy ,如果兩者都不存在,則使用缺省的 Policy ,即原始的沙箱模型。 系統(tǒng) Policy 文件的缺省位置為:java.home/lib/security/java.policy(Solaris)java.homelibsecur
10、ityjava.policy(Windows)用戶 Policy 文件的缺省位置為:user.home/.java.policy(Solaris)user.home.java.policy(Windows) 其實(shí),在實(shí)際使用中,我們可能不會象上面介紹的那么復(fù)雜,特別是在不使用數(shù)字簽 名 時(shí) 。 這 時(shí) , 我 們 完 全 可 以 借 鑒 JDK1.2 提 供 給 我 們 的 現(xiàn) 成 的jdk1.2jrelibsecurityjava.policy文件,根據(jù)我們的需要作相應(yīng)的修改,本文就針對不使用數(shù)字簽名情況詳細(xì)說明安全策略文件的用法。-下面,是一個(gè)完整的在 Windows95/98/NT下使用
11、的.java.policy 文件。在文件中,分別使用注釋的形式說明了每個(gè)“ permission ”記錄的用途。/ForLanServerTalk.javaandLanClientTalk.javagrant/ 對系統(tǒng)和用戶目錄“讀”的權(quán)限 permission"user.dir","read"permission"user.home","read"permission"java.home","read"permission"read"permission
12、"","read"/ 對線程和線程組的操作權(quán)限permission"modifyThread"permission"modifyThreadGroup"/ 操作 Socket 端口的各種權(quán)限 permission "-","listen"permission"-","accept"permission"-","connect"permission"-",&qu
13、ot;read"permission"-","write"/ 讀寫文件的權(quán)限permission"-","read"permission"-","write"/ 退出系統(tǒng)的權(quán)限,例如 System.exit(0) permission"exitVM"四 .java.policy 文件的使用 對于 windows95/98/NT ,使用 .java.policy 文件的方法主要有下面兩種。1 使用缺省目錄 我 們 可 以 簡 單 地 將 編 輯 好 的 .java.policy 文 件 拷 貝 到 windows , 其 目 標(biāo) 類 的 target_name 必須使用絕對路徑),如果不是在企業(yè)內(nèi)部網(wǎng)中使用,還可能存在一定安全 隱患。2 在命令行中指定 appletviewer-J-Djava.security.policy=pURLmyAppletpURL 為 Policy 文件的位置。下面,是一個(gè)實(shí)際的例子,以當(dāng)前目錄的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園教室色彩搭配與裝修方案
- 2025年公安院校聯(lián)考公安專業(yè)知識模擬題(附答案)
- 高效能源轉(zhuǎn)型:農(nóng)林廢棄物摻燒發(fā)電的可行性研究
- 2025至2030中國自行車設(shè)備行業(yè)市場占有率及投資前景評估規(guī)劃報(bào)告
- 2025至2030中國自動(dòng)肽合成設(shè)備行業(yè)市場占有率及投資前景評估規(guī)劃報(bào)告
- 2025至2030中國自動(dòng)地板研磨機(jī)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國自動(dòng)化醫(yī)院病床行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 半命題作文《-讓愛長久》寫作指導(dǎo)及范文
- 2025至2030中國腦深部刺激行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 資源循環(huán)利用視角下的風(fēng)機(jī)葉片回收產(chǎn)業(yè)發(fā)展規(guī)劃
- 2024年四川省資中縣事業(yè)單位公開招聘教師崗筆試題帶答案
- 成人女性壓力性尿失禁護(hù)理干預(yù)護(hù)理團(tuán)標(biāo)解讀
- 某律師事務(wù)所內(nèi)部規(guī)章管理制度大全
- GB 29743.2-2025機(jī)動(dòng)車?yán)鋮s液第2部分:電動(dòng)汽車?yán)鋮s液
- 六西格瑪試題及答案
- 急性右心衰的治療與護(hù)理
- 制約理論(TOC)驅(qū)動(dòng)制造業(yè)突破性增長
- 社交媒體情感分析方法-全面剖析
- 2024年遼寧省文體旅集團(tuán)所屬企業(yè)招聘筆試真題
- 湖南省2024年普通高等學(xué)校對口升學(xué)旅游專業(yè)
- 氨甲環(huán)酸用藥護(hù)理
評論
0/150
提交評論