¥HSigned Applet¬°§Þ³N¥­¥xªººô¸ô¥æ©ö





§d§Óªl §d·ç²» °K½å»Ê

°ê¥ß¥æ³q¤j¾Ç¸ê°T¬ì¾Ç¨t¤À´²¦¡¨t²Î¹êÅç«Ç
·s¦Ë¥«¤j¾Ç¸ô1001¸¹¹q¤l¸ê°T¤j¼Ó703«Ç
TEL:(03)5712121 EXT. 59265,59266
EMAIL: {gis86501, gis87539, smyuan}@cis.nctu.edu.tw


ºK­n

¦b³o½g½×¤å¤¤ , ©Ò­n¤¶²Ðªº¬OÃö©ó Signed Applet ªº¤èªk . Java Applet ¦bªñ´X¦~¥i¥H»¡¬Oª¥¤â¥i¼ö . ¥Ñ©ó Applet ¬O¸g¥Ñºô¸ô¶Ç¿é¦Ó¨ú±oªº , °ò©ó¦w¥þªº¦Ò¶q , «K¦³¤F³\¦h¦w¥þªº¾÷¨î , ³oÂI­­¨î¤F Applet ªº¯à¤O , ¤j¤jªº­°§C¤F Applet ¥i¥H¾A¥Îªº½d³ò ; ¬°¦¹ , Microsoft »P Netscpae ©M Sun µ¥¤½¥q¤À§O¬°¦U¦ÛªºÂsÄý¾¹¥[¤W¤@¨Ç¤èªk¨Ó¬ð¯}³o¼h­­¨î , ¤S¯à½T«O§Ú­Ìªº¦w¥þ©Ê , ¤]´N¬O¥»¤å©Ò­n¤¶²Ðªº Signed Applet ªº¤èªk .

¸g¥Ñ³o­Ó¤èªk , ´N¥i¥H°µ¥X¥\¯à§ó±j¤jªºµ{¦¡¥X¨Ó ; ¦P®É , ªñ¦~¨Ó¿³°_ªººô¸ôÁʪ« , ¦w¥þ©Ê¤@ª½¾D¤H¸á¯f ; ¦ý¥i¥H¸g¥Ñ³o­Ó¤èªk , ¨Ó§¹¥þ¸Ñ¨M³o¼Ëªº°ÝÃD .





¤@.°Ê¾÷

ºô¸ôÁʪ«¤w¶V¨Ó¶V²±¦æ,ºô¸ô¦w¥þ¥H¤Îºô¸ô¾Þ§@ªº¤è«K©Ê¤]¶V¨Ó¶V¨ü¨ì­«µø,°ò©ó³o¨âºØªº¦Ò¶q, ¥Ø«e¬y¦æªºbrowser¦pNetscape, Microsoft IE³£¬O³Ì¨Îªº¿ï«h,browser©ö¾Þ§@, ¨S¦³¥­¥x¤Wªº ­­¨î,security¤]¨S¦³°ÝÃD,¤£¥Î©È¦]¬°¥Î¤Fbrowser¦Ó³y¦¨¦Û¤v¹q¸£ùتº¸ê®Æ³QÅѨú¡C

¤£¹L¥t¤@¤è¤]¦]¬°browser¤WºØºØªºsecurity­­¨î,¥H­P©ó³\¦hªº¥\¯àµLªk§¹¥þªºµo´§,¥Ø«e¥i¬ð ¯}¦¹­­¨îªº¦³MicrosoftªºActiveX,¦ý¬OActiveX¦bsecurity¤Wªº¤£ÄYÂÔ,·|³y¦¨³\¦hºô¸ô¤W¤£ªk ªº¤J«I,¥t¤@¤èActiveX¥Ø«e¤]¥u¦³Microsoftªº¥­¥x¤W¤~¦³¤ä´©,¨ä©Ò»Ýªº¤]¬O¦³­­¡C

¦Ó¥Ø«e¤j¦h¼Æbrowser³£¤ä´©ªºjava applet,¥i¸ó¥­¥x¬O¨ä³Ì¤jªºÀuÂI,¦ý¬O¦bsecurity¤W·|³Qbrowser ©Ò­­¨î,¨ä±j¨î±Ä¥Îªº¦w¥þ­­¨î¦³:

Applet¤£¯à¦b°õ¦æªº¾÷¾¹¤W¶i¦æ¤@¯ëªºÅª¼g°Ê§@:

ÁöµM¦bJDK©Ò´£¨ÑªºApplet Viewer¤¹³\¨Ï¥ÎªÌ¥h©w¸qÀɮתº¦s¨ú³W«h¡A¦ý¬O¦b¤@¯ëªºbrowser¤W¦p Netscape¡AMS IEµ¥¬O¤£¤¹³\ªº¡A¥H§K¨Ï¥ÎªÌªº¹q¸£¸ê®Æ³Q¯}Ãa©ÎÅѨú¡C

°£¤F³Qdownload ªºappletªº¾÷¾¹¥~Applet¤£¯à»P¨ä¥Lªº¾÷¾¹¶i¦æºô¸ôªº·¾³q:

³o¤]¬O¬°¤F¦w¥þªº¦Ò¶q©Ò³]ªº­­¨î¡A¥H§K¦³¥~¨Óªºhacker±q¨ä¥Lªº¾÷¾¹¶i¦æ¯}Ãa¡C

Applet¤£¯à°õ¦æ¾÷¾¹¤Wªº¥ô¦óµ{¦¡:

¤]´N¬OµLªk¨Ï¥ÎNative method¡C

Applet µLªkŪ¨ú¯S©wªº¨t²Î¸ê®Æ:

¬°¤F¦w¥þªº¦Ò¶q¡A¥H¤Uªº¸ê®ÆµLªk³Qbrowser©ÒŪ¨ú¡C

ÃöÁä¦r ©w¸q
java.class.pathJava class¸ô®|
java.homeJava installªº¸ô®|
user.dirUser¥Ø«eªº¤u§@¥Ø¿ý
user.homeUserªºhome directory
user.nameUserªºaccount




¤G.¸Ñ¨M¤è®×

¥Ø«einternetªº¨Ï¥Î¡A¥Hbrowser¬°¦û¤j¦h¼Æ¡A¦pªG§Æ±æbrowser¯à¹F¨ì¤@¯ëºô¸ôÀ³¥Î³nÅéÀ³¦³ªº¥\ ¯à¡Ajava applet¦ü¥G¬O¤£¥i¯à¡A­Y¥HMSªºActiveX¨Ó·í°µsolutionªº¸Ü¡A°£¤F¥²»Ý³QMicrosoft¸j¦í¤§ ¥~¡A¦w¥þ¤]¬O¤@¤jÁôÀu¡A©Ò¥H¥Ø«eªº¸Ñ¨M¤§¹D°£¤F¹ïbrowser¤U¥\¤Ò¤§¥~¡A´NÄÝsigned applet¬°¥Ø«e ³Ì¨Îªº¸Ñ¨M¤èªk,¦]¬°signed applet ¥i¦bµ{«×¤W¾A·íªº¤£¨übrowser­­¨î,¤S¥i¸g¹L¦w¥þ»{ÃÒªº«OÅ@,¥H½T«O ¸ê®Æ¦w¥þ»P§¹¾ã¡C





¤T.¹B§@­ì²z

¹B§@­ì²z¤À¬° Programer ©M Broswer ¨â³¡¥÷ , »¡©ú¦p¤U:

Programer

¦p Fig. 1 ©Ò¥Ü , Applet ¥ý¸g¥Ñ Hash function ¨D¥X¤@¬q Hash code «á , ¦A¸g¥Ñ Signer ªº private key ¥[±K , ¦P®É¥[¤J­Ó¤Hªº certificate , ©Mµ{¦¡½X ¦@¦P¸g¥ÑÀ£ÁY , ²£¥Í¥X¤@­ÓÀ£ÁYÀÉ . ³o­ÓÀ£ÁYÀÉ´N¨ã¦³Åý¥L¤HÅçÃÒªº¯à¤O .


Fig. 1

Broswer

·í Broswer ±µ¦¬¨ì¤@­Ó³Qñ³¹¹Lªº Applet ÀÉ®×®É , ­º¥ý , ·|¹ï³o­ÓÀ£ÁYÀɶi¦æ¸ÑÀ£ÁY , ¥ý¨ú±o Signer ªº certificate ©M³Q¥[±K¹Lªº hash code , §Q¥Î CA ªº Public Key ¥i¥H¦b Signer ªº certificate ¨ú±o¥Lªº public key ¨Ó¸Ñ¶} hash code ªº¤º®e . ¥t¥~ , ¤]¹ï¨ú±oªº Applet §Q¥Î¬Û¦Pªº Hash function °µ¥X¥t¤@¬q hash code , ³Ì«á¤ñ¸û¨âªÌ¬O§_¬Û¦P . ¦pªG¬Û¦Pªº¸Ü , ªí¥Ü³o­Ó Applet ¤£´¿³Q­×§ï¹L , ¥i¥H©ñ¤ß°õ¦æ ; ¦pªG¤£¬Û¦P , ´Nªí¥Ü Applet ¤w¸g³Q­×§ï¤F , ¤£¥i¦A°õ¦æ³o­Ó Applet .


Fig. 2




¥|.¹ê§@©Mµ²ªG

Ãö©ó¥Ø«e¦³¸ê´© Applet ¥B¦³¬Û·í¨Ï¥ÎªÌªº broswer ´N¼Æ Microsoft IE ©M Netscape Communicator ; ©³¤U´N¤À§O¹ï³o¨âºØ broswer °µ¤¶²Ð :

Microsoft IE

­º¥ý , ­n¥ý¨ú±o MS JAVA SDK 2.01 , ¨ä¤¤¥]§t¤F§Ú­Ì©Ò»Ý­nªº¨â­Ó¤u¨ã. ¦b¹ï Applet °µÃ±³¹¥H«e , ­n¥ý¹ïµ{¦¡°µÀ£ÁY , À£¦¨ cab ÀÉ , ¨ä¤èªk¦p¤U :

abarc n CabFileName.cab <file will add to the CabFileName>

CabFileName.cab : À£ÁY§¹«á©Ò²£¥Íªº cab ÀÉ

±µ¤U¨Ó«K­n¹ï³o­Ó cab ÀɰµÃ±³¹ , ¨ä¤èªk¦p¤U:

signcode -j javasign.dll -jp low -spc MyCert.spc -k MyKeyName MyApplet.cab

-jp : Applet Åv­­ªº³]©w , ¦@¤À¬° low , medium , high ; ¨ä¤¤ , low ¹ï¦w¥þ©Êªº­n¨D¸û§C , high ¬°³Ì°ªªº .

-k : ªí¥Ü¾ÌÃÒ¤¤ , ¥Nªí­Ó¤H¥Nªí­Ó¤Hªºª÷Æ_ªº¤@­Ó¥NºÙ

MyApplet.cab : À£ÁY©Ò¦³ªº class «á©Ò²£¥Íªº cab ÀÉ .

©Ò²£¥Íªº³o­Ó MyApplet.cab´N¬OñÃÒ¹LªºÀÉ®× . ±µµÛ , ´N ­n§â³o­Ó cab ÀÉ©ñ¤J html ¤¤¤F , ¨ä®æ¦¡¦p¤U :

<applet code=Test.class width=300 hight=300 >

<param name="cabinets" value="MyTestApplet.cab"></applet>

·í¨ä¦b IE ¤W°õ¦æªº®É­Ô , ·|¦³ Fig. 3 ³o­Óµe­±¥X²{ , ·í¿ï¾Ü½T©w¥H«á , ³o­Ó applet «K¥i¥H¬ð¯}¦w¥þ­­¨î , Ū¨ú local ºÝªº¸ê°T¤F.



Fig. 3

Netscape Communicator

Netscape ´£¨Ñªº¤èªk , ¬O§Q¥Î signtool ³o­Óµ{¦¡»P communicator ¬Ûºò±Kµ²¦X , ¦Ó²£¥Í¥Xñ³¹¹Lªº Applet . ¦P®É , ¦b¹ï Applet °µÃ±³¹«e , ­n¹ïµ{¦¡°µ¨Ç³\ªº­×§ï , Åý Netscpae ©Òµo®iªº capsapi_classes.zip package ¨ÓºÞ²z¬ÛÃöªº¦w¥þ°ÝÃD . ¦bIJ¥Ç¨ì¦w¥þ­­¨îªºµ{¦¡½X , ¦pŪ¨ú¥»¦a¹q¸£ÀÉ®× , «e¥[¤J¤U­±ªºµ{¦¡½X :

try{
PrivilegeManager.enablePrivilege("UniversalFileRead");
} catch(netscape.security.ForbiddenTargetException e){
System.out.println(e);
}

signtool ¬O¨ÌªþµÛ Netscape ¤~¯à¹B§@ªº , ¨ä©Ò¤Uªº©R¥O¤¤ , ¦³«Ü¦h³£¬O¸òNetscpae communicator ¦³¬Û·í±K¤ÁªºÃö«Y .·í§Ú­Ìªº applet ¥[¤W¤W­±ªºµ{¦¡¥H«á , ±N³o­Ó class ©ñ¦b¤@­Ó¥Ø¿ý¤U , µM«á°õ¦æ¤U­±ªº©R¥O :

signtool -k"your ID" -d"c:\netscape\users\wrs" -Z"testjar.jar" classdirection

"your ID" : ¤§«e , ¨ú±o¼Æ¦ì¾ÌÃÒ®É , ©Ò¿é¤Jªº¦WºÙ .
"c:\netscape\users\wrs" : Netscape ¤¤¦s©ñ­Ó¤H¸ê®Æªº¦a¤è
"testjar.jar" : ³Ì«á©Ò²£¥ÍªºÀɮצWºÙ
classdirection : ¤§«e¦s©ñ class ªº¨º­Ó¥Ø¿ý

¦b§¹¦¨ Sign Applet ¥H«á , «K­n±N¨ä©ñ¤J html ¤¤ , ¨ä®æ¦¡¦p¤U :

<applet code=Test.class archive="testjar.jar" Width=250 height=60>

</applet>

±µµÛ´N­n°õ¦æ§Ú­Ìªºµ{¦¡¤F , ¤@¶}©l , ·|¸ò¤@¯ëªº Applet ¨S¦³¤°»ò¤À§O , ¦ý·íµ{¦¡°õ¦æ¨ì¥ý«e¦³¥[¦w¥þ­­¨îªº¨º¨Çµ{¦¡½Xªº®É­Ô , ´N·|¦³ Fig. 4 ªº³o­Óµe­±¥X²{ . ¨ÓÅý¨Ï¥ÎªÌ¨M©w¬O§_¤¹³\³o­Óµ{¦¡¥h°µ³o¥ó¨Æ±¡.



Fig. 4




¤­.¤èªk¤ñ¸û

©³¤U , ´N¹ï Netscape »P Microsoft ªº¤èªk²¤¥[¥H¤ñ¸û¨ä¶¡ªº®t²§:

Åv­­ªº³]©w

Microsoft ¹ï©ó Applet ¦b broswer ¤¤ªºÅv­­³]©w¦b©ó¹ï Applet °µÃ±³¹ªº®É­Ô°µ ; ¦ý Netscpae «h»Ý­n¹ïµ{¦¡½X¥[¥H­×§ï . ÅãµMªº , Microsoft ªº°µªk­n²³æªº¦h , ¦ý¦P®É¤]¥X²{¤@­Ó°ÝÃD ; ¦pªG ­n¦b¤@­Ó Applet ¤¤ , ¨Ï¥ÎªÌ­n¦P·N²Ä¤@¦¸ªºÀÉ®×Ū¨ú , ¦ý¤£¦P·N²Ä¤G¦¸ªºÀÉ®×Ū¨ú , ´N¨S¦³¿ìªk °µ¨ì¤F ; ¦ý Netscpe ´N¥i¥H¤À§O¤¹³\¦UºØªºÅv­­ .

Certificateªº¦w¥þ©Ê

Netscape ªº certificate ¬Oª½±µ¸m©ó¨ä broswer ¤¤ , ¤]ª½±µ±q¨ä¤¤Åª¥X¨Ó ; Microsoft «h±N¨ä ©ñ©óµwºÐªº¬Y³B ; ¦w¥þ©Êªº¦Ò¶q¬O¦U¦³Àu¯ÊÂI ; Netscape ¸g¥Ñ¨ä broswer ¨Ó«OÅ@³o¨Ç¸ê®Æ , ¦Ó Microsoft «h¥Ñ¨Ï¥ÎªÌ¦Û¦æ¨Ó«OÅ@.

À£ÁYÀÉ

Microsoft ´£¥Xªº cab ÀÉ , ¦³¸û°ªªºÀ£ÁY²v , ¦ý°£¤F Windows ªºÀô¹Ò¥~ , ¨ä¥¦ªº§@·~¨t²Î¨Ã ¨S¦³¬ÛÃöªºµ{¦¡ ; Netscape ©Ò¨Ï¥Îªº jar Àɬ° java ¼Ð·ÇªºÀ£ÁY®æ¦¡ , ¥Ø«eªº¸ê´©©Ê¸û°ª .

HTML ¼gªk

¸g¥Ñ¤W­±ªº¤¶²Ð , ¦pªG­n¦b¨â­Ó broswer ³£ ¯à°õ¦æ§Ú­Ìªº Applet , ´N»Ý­n¨â­Ó html ÀÉ ; ¤U­±¬O±N¤W­±´£¨ìªº¨â­ÓÀ£ÁYÀɾã¦X¦b¤@°_ªº½d¨Ò:

<applet code=Test.class archive="testjar.jar" width=300 hight=300 >

<param name="cabinets" value="MyTestApplet.cab">

</applet>

¦b IE ¤¤·|¦]¬°¦³ cabinets ³o­Ó param , ¦Ó©¿²¤ archive ¤¤ªº±Ô­z ; Communicator «h­è¦n¬Û¤Ï , ¬O¬G³o¼Ëªº¼gªk­è¦n¥i¥Hº¡¨¬§Ú­Ì¤@­Óºô­¶´N¥i¥HÅý¨âºØÂsÄý¾¹³£¯à¨Ï¥Îªº¥Øªº.





¤».µ²½×»P¥¼¨Ó®i±æ

Signed applet¥i¹F¨ìªº¥\¯à¥i¥H»¡¦p¦P¤@¯ëªºnetwork application¤@¼Ë¡A¤£¹L¥¦¦³¤@¯ëªºapplication ©Ò¨S¦³ªº¦n³B¡A´N¬O¥i¥H³z¹Lbrowser¨Ó°õ¦æ¡A¥i¸ó ¥­¥x¡A¤£»Ý­n°µinstallµ¥ªº°Ê§@¡A¥u­n¦³browser¡A¦³CAªºpublic key¡A´N¥i¥H«Ü¤è«Kªº¹F¨ì©Ò­nªº¥Øªº¡A¦]¦¹¥i¥H§Q¥Îbrowser¨Ómonitor¹q¸£ªº¦U­Óª¬ªp¡Aª½±µ±qbrowserºÊ±±¹F¨ìºôºÞªº¥Øªº¡A¤]¥i¥H§Q¥Îbrowser¶i¦æºô¸ô¶Ç¿éªºÀ³¥Î¡A¦pfileªºdownload upload¡Aweb fax¡Aweb ¤Wªººô¸ô¶R½æ¥æ©ö¡Aweb¤Wªºoffice¡Aweb¤W¥i¥HÀx¦s­Ó¤H³]©w»P¶i«×ªºgame¡A§Q¥Îweb¬Ý¹qµø¡A¬ÝVCDµ¥¡A´X¥G©Ò¦³¦b¥Ø«e¹q¸£ùتºÀ³¥Î³nÅé³£¥i¥H§ï¦¨webªºªO¥»¡A³o­Ó²z©À¦³§U©ónetwork PCªºµo®i¡A¨ì®É­Ô¥i¯à´N¤£¥²¶R¤@°ï³nÅé¡AµwºÐ¤@ÁûÁûªº¸Ë¡A¥u­n¦³ºô¸ô¡A¤£ºÞ¬O¤°»òOS¤°»òµwÅé¡A¤@¤Á¥Øªº³£¥i¥H¹F¨ì¡A¹ï©ó¨Ï¥ÎªÌ¬O«D±`¤è«Kªº¨Æ¡A¦Ó¶}µo³nÅ骺programmer¤]¤£»Ý¬°¤F¤£¦P¥­¥xªº¹q¸£¦Ó¯S¦a¥hµo®i¤£¦PªO¥»ªº³nÅé¡A³o¥i¥H»¡¬O¸ê°T¬Éªº²z·Q¤j¦P¥@¬É¡C





¤C.Reference

[1]http://microsoft.com

[2]http://developer.netscape.com

[3]http://www.verisign.com

[4]http://www.rsa.com

[5]http://www.javasoft.com