重庆时时彩骗局

IT職業教育

華中地區北大青鳥校區IT集訓營

027-87807717

北大青鳥首頁 > 熱門IT技術教程 > Java技術教程 > > java技術之Java2下Applet數字簽名具體實現方法

java技術之Java2下Applet數字簽名具體實現方法

時間:2012-06-13 13:54 來源:北大青鳥武漢宏鵬魯廣校區作者:027hpedu
導讀:武漢北大青鳥官網java技術支持:自從Java技術開始應用以來,人們對Java平臺的安性以及由于部署Java技術所引發的安問題給予了大的關注。特別是在1998年11月Java2發布后,Java的安

  武漢北大青鳥官網java技術支持:自從Java技術開始應用以來,人們對Java平臺的安性以及由于部署Java技術所引發的安問題給予了大的關注。特別是在1998年11月Java2發布后,Java的安體系結構發生了根本的改進,對于終端用戶而言,它可以保護文件和私人數據不被惡意的程序或病毒感染和破壞,鑒別代碼提供者的身份。對于開發者而言,通過使用API方法,能夠將安性功能集成到應用程序中,因為API的體系結構能夠定義和集成對特定的資源的使用權限、加密、安性管理、策略管理,并提供了一些類來管理公鑰/密鑰對及信任用戶群的公鑰證書。同時系統管理員、開發者和用戶可以使用它提供的工具管理鑰匙庫,在JAR文件中生成數字簽名、簽名的完整性檢測、創建和修改策略文件。按照Java設計者的觀點,Java安包括2個方面的內容,先將Java作為一種安的平臺提供給用戶,在此平臺上,可安地運行Java程序;其次提供用Java編程語言實現的安工具和服務,它使得諸如企業界這樣一些對安非常敏感的領域也可應用Java技術。本文將就這二個方面介紹Java2的安性新特性。

  密紋訪問控制

  這種能力從一開始就在JDK中存在。但要使用它,應用程序的編寫者不得不做大量的編程工作例如,創建SecurityManager和Classloader類的子類并使其用戶化。HotJava1.0就是一個這樣的應用程序,它允許瀏覽器用戶在幾個不同的安等級上進行選擇。然而,這種編程涉及非常敏感的安問題,它要求程序員對計算機安有精深的理解和純熟的技巧。新的安體系結構將使這些變得簡單而安。

  易于配置的安策略

  與上述情況相似,這種能力在原來的JDK中也是存在的,但是不便于使用,而且編寫安代碼也不是簡單明了的事情。于是,人們期望能夠允許應用程序的編寫者和用戶.不通過編程來設置安策略。

  便于擴展的訪問控制結構

  一直到JDK1.1為止,為了創建一個新的訪問許可,你必須在SecurityManager類中增加一個新的check方法。新的安體系結構則允許設置各類訪問許可(每個都表示對一個系統資源的訪問),并能對所有正確訪問許可(包括未定義的許可)進行自動處理。

  安檢查擴展至所有Java程序

  那種所有本地代碼是可信的內置概念將不復存在,取而代之的將是本地代碼(例如非系統代碼,安裝在本地的應用程序包等)服從于與Applet相同的安控制,但是可以聲明對本地代碼的政策是寬容的,從而使這些代碼可被認為是完可信而有效地運行。上述原則也可應用于已簽字的Applet和任何Java應用程序。

  Java2安體系的概念及運行機制

  保護域

  Java2安體系結構中的一個基本的概念是保護域(Protected Domain)。一個域可通過對象集來劃分范圍,這些對象當前可由1個主體直接訪問。而主體是在計算機系統中被授予許可的實體。JDK1.0所利用的沙箱就是一個有著固定邊界的保護域實例。保護域的概念是一種在保護單元間起著分組和隔離作用的便利機制。例如,我們可以將保護域分開以避免它們之間的直接交互作用,于是,任何允許的交互作用必須通過可信系統代碼或被有關的域所明確允許。

  目前,1個域單獨地由1個代碼來源(CodeSource)鑒別,它封裝了在該域中運行的代碼的2個特性:代碼基址和公共密鑰證書集,公共密鑰對應于在該域中為所有代碼簽字的私有密鑰。因而,由相同的密鑰簽字和來自相同URL的類被放在同一個域中。1個域還包含在該域中授予代碼的許可,它是由現行安策略所決定的。

  證書、鑰匙庫及其相關工具

  在Java2的安體系下,1個Applet開發和運行的過程如下:

  在代碼的分發端:

  (1)開發Java源程序并對其進行編譯。

  (2)用JAR工具對類文件和資源文件進行封裝。

  (3)用keytool創建公鑰和密鑰,生成X。509V1簽名證書,輸出證書。

  (4)通過jarsigner工具用生成的密鑰對JAR文件進行數字簽名。

  在代碼的接收端:

  (1)用keytool輸入證書視其為可信任。

  (2)用policytool創建和修改安性策略配置文件,授權請求的訪問權限。

  (3)從網絡取得字節碼,用公鑰驗證數字簽名證書和文檔代碼的完整性。

  (4)驗證字節碼的合法性,根據策略文件分配相應權限。

  (5)執行代碼,完成后被垃圾回收器回收內存。

  在用公鑰驗證數字簽名證書之前,接收方需要確認公鑰自身的可靠性,因此通常情況是提供一個包含公鑰的證書而不是公鑰自身。1個證書包括:

  (1)1個公鑰。

  (2)1個一的名字實體(個人或公司),它是證書的所有者,包含用戶名字、公司、組織、城市、地址、代碼、省份等信息。

  (3)數字簽名:1個證書被1個分發者的實體簽名,保證證書確實包含另1個

  實體(所有者)的公鑰。

  (4)分發者的標識名信息。

  發送者在發送簽名的代碼和文檔時還相應提供包含與簽名的密鑰相應的公鑰證書。用keytool-export命令或API函數可以從鑰匙庫中輸出證書到文件中,然后將這個文件發送給需要的接收者,由接收者用keytool-import命令或API函數將其引入鑰匙庫中。如果用jarsigner工具為JAR文件生成簽名,他會從鑰匙庫中取出證書及證書鏈,并和簽名一起放入JAR文件。

  密鑰和相應的公鑰證書存放在一個由口令保護的數據庫中,稱為鑰匙庫(keystore)。1個鑰匙庫包含2種類型的條目,可信任的證書條目,鑰匙和證書條目,每個都包含1個密鑰和與密鑰相應的公鑰證書,在鑰匙庫中的每個條目都有1個別名進行標識。1個鑰匙庫的所有者在鑰匙庫中可以有多個鑰匙,可以通過不同的別名進行訪問,每個別名通常是用鑰匙庫的所有者使用的鑰匙的特定角色來命名,別名也可以標識鑰匙的目的。
        武漢宏鵬北大青鳥魯廣校區java技術。

告訴我們,你現在想了解什么?

精彩專題——96%的同學看到這里都會點擊下面的專題

Copyright (c) 2006-2020 武漢宏鵬教育咨詢有限公司 版權所有 All Rights Reserved.

重庆时时彩骗局