網頁

2009年12月20日 星期日

[Java] 製作 Sign Applet

前言:

Applet 是用於網頁上的小程式,基於安全理由,它不允許你做任何的 IO 操作,(存取本機電腦 及 網路連線...等,只有存放該網頁的 server 例外)否則一旦開了惡意的 applet,電腦就如同中了木馬一般。

這種概念稱為 Sandbox,只允許你在盒子內部操作,所以無論你在盒子裡做了什麼事,都不會影響到盒子外的世界。如果有特殊的需求,可以使用 Sign Applet,在開啟程式前會先出現確認視窗,待使用者同意後,程式便能夠有較高的存取權限。

製作 Sign Applet 方法:

  1. 產生 key:
    keytool -genkey -keyalg RSA -alias "key_name"


    1. 如果 key store 目前並不存在,
      則必須設定 keystore 密碼;
      反之,如果先前已經設定過密碼,
      則此時就需要輸入先前所設定的密碼。
    2. 接著必須輸入一些基本資料,
      如: 姓名, 單位, 國碼, ... 等等,
      此處就不贅述了。
    3. 最後輸入 key 密碼,即可順利產生 key。

  2. 將 key 加入 applet 中:
    jarsigner "applet.jar" "key_name"
    此時需要依序輸入 key store 密碼與 key 密碼。 
  3.  Sign Applet 製作完成,
    此時連上嵌入此 Sign Applet 的網頁,
    即會跳出確認視窗,詢問是否同意進行操作。 
延伸說明:
  1. 在產生 keytool 時,如果沒有特別指定,
    將會存放在此: ~/.keystore
    註: 此處以 ubuntu 為例, Windows 作業系統將會在其他的位址。
    如果需要額外指定存放位址, 需加上參數 -keystore "path"。
  2. 列出目前已有的 key:
    keytool -list
  3. 檢查 jar 是否已經完成 Sign
    jarsigner -verify "applet.jar"

沒有留言:

張貼留言