1. Trang chủ
  2. » Công Nghệ Thông Tin

Thực thi bảo mật với CoreJava 10

9 7 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 205,81 KB

Nội dung

Mục tiêu bài học -Mô tả công cụ JAR -Tạo vào xem 1 file JAR, liệt kê và trích rút 1 file. -Sử dụng chữ ký điện tử(Digital Signatures) để nhận dạng Applets -Tạo bộ công cụ khoá bảo mật (Security key) -Làm việc với chứng chỉ số (Digital Certificate) -Tìm hiểu về gói Java Security

TH C THI B O M T M c tiêu h c: Cu i ch ng b n có th Mơ t v cơng c JAR T o xem m t file JAR, li t kê trích rút n i dung c a file S d ng ch ký n t (Digital Signatures) đ nh n d ng Applets T o b công c khóa b o m t (Security key) Làm vi c v i ch ng ch s (Digital Certificate) Tìm hi u v gói Java.security 10.1 Gi i thi u: Trong ph n này, s tìm hi u chi ti t v b o m t Java applet Chúng ta c ng th o lu n v mơ hình b o m t JDK 1.2 đáp ng nhu c u ng i dùng nhà phát tri n Java m t ngơn ng l p trình đ u tiên g i ch ng trình khơng t ng tác nh file v n b n, file nh thông tin t nh thông qua World Wide Web Các ch ng trình này, khơng gi ng nh ch ng trình CGI, đ c ch y h th ng c a ng i dùng, h n ch y máy ch Web (Web server) B o m t Java Applet s quan tâm gi a ng i dùng nhà phát tri n applet Thi t tính b o m t applet có th d n t i s a đ i ho c ph i bày d li u nh y c m Mơ hình b o m t c a Java 2, ho c JDK 1.2 r t h u ích cho ng i dùng, c ng nh cho nhà phát tri n Nó giúp ng i dùng trì m c đ b o m t cao Trong ch ng nay, s h c mơ hình b o m t JDK 1.2 10.2 Công c JAR: M t file JAR m t file l u tr đ c nén công c l u tr Java t o File t ng t nh ch ng trình PKZIP Nó ch a nhi u file m t file l u tr i u cho phép t i trình t hi u qu Dùng m t jar v i m t applet c i ti n đáng k kh n ng th c hi n c a trình t Vì t c c t t c file đ c biên d ch m t file đ n, trình t ch c n thi t l p k t n i HTTP v i web server Nén file gi m 50% th i gian t i file kh i đ ng công c JAR, dùng câu l nh sau t i d u nh c l nh: jar [options][manifest] jar-file input-file(s) Tu ch n c t x v f m o M Mô t T o m t l u tr m i Ghi vào b ng n i dung cho l u tr Trích d n file có tên t l u tr T o ngu n xu t đa dòng (verbose output) m t l i chu n Xác đ nh tên file l u tr Bao hàm thông tin ch ng th c t file ch ng th c xác đ nh L u tr ch ‘use no zip’ nén Không t o file ch ng th c cho m c (entries) B ng 0.1 công c jar M t file ch ng th c ch a thông v file l u tr File m t tu ch n Th m chí file khơng xác đ nh JAR c ng t đ ng t o File jar đ c dùng nh l u tr File ph i có ph n m r ng ‘.jar’ đ c xác đ nh t i dòng l nh File đ u vào (input-file) danh sách phân cách file đ c đ t l u tr Netscape Navigator Internet Explorer h tr file JAR Câu l nh sau l u tr t t c file class file java bao g m m t th m c xác đ nh vào m t file jar g i ‘pack’ 85 jar cf pack.jar *.class *.java Tên câu l nh T o m t l u tr m i Xác đ nh l u tr Tên file Các file đ c l u tr Hình 10.1 l nh jar Dùng l nh sau t i d u nh c li t kê file file ‘pack.jar’ jar tf pack.jar Tu ch n đ c s d ng cho b ng n i dung l u tr Tu ch n xác đ nh tên file l u tr Hình 10.2 Li t kê file file pack.jar g p file l u tr ‘pack.jar vào m t applet, m trang HTML, thêm thu c tính ARCHIVE=’pack.jar’ vào th applet, nh sau: Thu c tính s ch cho trình t n p l u tr ‘pack.jar’ đ tìm file ‘exr7.class’ Câu l nh sau trích rút file đ c nén file pack.jar: jar xvf pack.jar M c ch n ‘x’ cho phép b n trích rút n i dung c a file 10.3 Ch ký n t (Digital Signature) cho đ nh danh applet: Trong java, b o m t applet web ph n r t quan tr ng Hacker có th vi t applet nguy hi m xuyên th ng hàng rào b o m t Vì th , applet h n ch s can thi t c a ngôn ng Applet không h tr m t s nét đ t tr ng sau: c ghi file t h th ng n i applet ch y L y thông tin v m t file t h th ng Xoá m t file t h th ng Java có th th c hi n t t c đ c m trên, v i applet cung c p t m t nhà cung c p applet tin c y, đ c ký danh s (digitally signed) Hình sau minh h a trình mã hố khố 86 Hình 10.3 Mã hố d a khố Trong hình trên, khố cơng c ng (public keys) đ c dùng mã hoá gi i mã Cùng ý t ng đ c s d ng cho ch ký s , thêm tính n ng b sung M t ch ký s m t file mã hố cung c p ch ng trình nh n d ng xác ngu n g c c a file Khóa bí m t tính giá tr t file applet Ng i gi khố bí m t ki m tra n i dung c a đ i t ng Trong đ nh danh s , m t khóa riêng (private key) đ c s d ng đ mã hóa, khố cơng c ng, đ c dùng gi i mã Trong ký danh (sign) m t đ i t ng, ng i ký danh dùng thu t toán tóm l c thơng báo nh MD5 đ tính b ng tóm l c c a đ i t ng B ng tóm l c đ c dùng nh d u tay cho đ i t ng b ng tóm l c l n l t đ c mã hố dùng khóa riêng, đ a ch ký n t c a đ i t ng Khố cơng c ng c a b ký t dùng đ mã hoá ch ký ki m tra chúng K t qu c a s gi i mã, giá tr tóm l c đ c đ a Giá tr tóm l c c a đ i t ng đ c tính so sánh v i giá tr tóm l c đ c gi i mã N u giá tr tóm l c (digest) c a đ i t ng giá tr tóm l c đ c mã hoá kh p v i nhau, ch ký đ c đ c xác nh n Tài li u mô t ch ký đ c g i “Ch ng th c” (Certificate) Thi t l p s u thác (trust), nh n d ng applet đ c ch ng nh n Ch ng nh n th c th s d ng khóa cơng c ng đ t bi t Quy n ch ng th c (a certificate authority) đ c dùng th c hi n ch ng nhân Nh n đ c đ c ch ng th c t m t CA (Certificate Authority), applet ph i đ trình tài li u ch ng th c s nh n d ng c a Hi n gi công ty đ a d ch v xác nh n ch ng th c sau: VeriSign Ch ng th c Thawte B n có th thi t l p m c b o m t khác M t applet có th đ a s u thác hồn tồn, ho c khơng u thác, v i s giúp đ c a t p l p g i “Quy n” (Permissions) Nh ng nhìn chung, m i applet đ c gi i h n m t cách đ y đ , tr nhà phát tri n ký danh applet i u thi t l p cho nhà phát tri n đáng tin c y 10.4 Khoá b o m t Java (Java Security key) Chúng ta c n t o công c , tên là, ‘jar’, ‘jarsigner’, ‘keytool’, tr c dùng applet ký danh Chúng ta c n t o c p khóa cơng c ng/riêng, làm cho tr nên s n sàng v i cơng c jarsigner Bây gi , s t o công d ng c a keystore Keystore (L u tr khoá) Keystore m t c s d li u khoá, ch a ch ng th c s dùng đ nh n d ng giá tr khố cơng c ng Keytool (Cơng c khố) 87 Keytool cơng c khoá b o m t c a java, t o qu n lý khóa cơng c ng, khố riêng, ch ng th c b o m t Nó c ng có th th c hi n: o Qu n lý c p khố cơng c ng/riêng o L u tr khố cơng c ng o Dùng ch ng th c đ xác th c ch ng th c khác o Xác th c (Authenticate) d li u ngu n T t c thông tin mà keytool qu n lý đ c l u tr c s d li u g i keystore Sun có m t keystore m t đ nh dùng m t đ nh d ng file m i g i JKS (java key store L u tr khoá java) ki m n u h th ng b n có m t keystore d i đ nh d ng này, th c hi n câu l nh sau t i d u nh c l nh: Keytool –list Thông báo l i sau xu t hi n n u b n khơng có keystore c a b n Keytool error: keystore file does not exist: c:\windows\.keystore JDK tìm keystore th m c C:\windows\ ây m t v trí chung cho file h th ng quan tr ng windows 95, 98 NT systems Tu ch n keystore c ng có th đ c s d ng l nh keytool, nh sau: keytool –list keystore c:\java\try Câu l nh ch cho JDK tìm keystore file đ c g i ‘try’ th ‘C:\java\try’ N u khơng tìm th y, s hi n th thông báo l i nh m c M c ‘-genkey’ có th đ c s d ng v i câu l nh keytool đ t o c p khố cơng c ng/riêng B n c ng có th dùng m t s tu ch n khác D ng đ n gi n nh t nh sau: keytool –genkey –alias “I” Bí danh (alias) có th đ c dùng l u tr , thay th ho c xố c p khố Các bí danh keytool không phân bi t ch hoa Trong l nh trên, không s d ng tu ch n keystore N u câu l nh s d ng tu ch n keystore, s đ c vi t l i nh sau: keytool –genkey –alias “I” –keystore “store” Trong l nh trên, c p khoá s đ m t đ nh c a h th ng c l u tr keystore ‘store’, không l u keystore Sau nh p l nh vào, nh n phím enter, keytool nh c b n nh p vào m t kh u (password) cho keystore, nh sau: Enter keystore password Nh p vào ‘password’ nh yêu c u Ti p theo, keytool nh c b n nh p vào thông tin b sung nh : What is your first and last name? (Tên h ) [unknown] what is the name of your organization unit? 88 [unknown]: software Development What is the name of your organization? (Tên c a t ch c) [Unknown]: ABC Consultants (t v n ABC) What is the name of your city or Locality? (tên thành ph ho c đ a ph ng c a b n) [Unknown]: California What is the name of your State or Province? (tên bang ho c t nh c a b n) [Unknown]:United States of America What is the two-letter country code for this unit?(Mã qu c gia v i ký t ) [Unknown]: US Khi b n nh p vào thông tin, keytool hi n th thông tin sau: Is correct? [no]: Cu i cùng, keystool nh c b n nh p vào m t kh u cho khoá riêng c a b n, nh : Enter key password for (RETURN if same as keystore password) Thông tin đ c s d ng đ k t h p s phân bi t tên (name) X500 v i bí danh (alias) Thơng tin c ng có th đ c đ a vào tr c ti p t m c ch n ‘-dname’ M t kh u sau ph n bi t v i m t kh u keystore Nó đ c dùng truy c p khố riêng c a c p khố cơng c ng M t kh u có th tr c ti p ch rõ b ng cách s d ng tu ch n ‘-keypass’ N u m t kh u không ch rõ, m t kh u keystore đ c s đ c dùng Tu ch n ‘-keypasswd’ dùng thay đ i m t kh u Tu ch n ‘-keyalg’ ch rõ thu t toán t o c p khoá Khi b n t o m t khố b sung vào keystore, b n có th dùng tu ch n ‘-list’ c a keytool đ xem khố có keystore hay khơng xoá c p khoá t c s li u, dùng l nh sau: keytool –delete –alias aliasName ‘aliasName’ ch tên c a khoá đ c xoá Bây gi , t o c p khố riêng/cơng c ng cho file JAR, ký danh L nh jarsigner dùng đ ký danh m t file JAR Nh p l nh sau vào d u nh c DOS: jarsigner –keystore keyStore –storepass storePassword –keypass keyPassword B ng sau cung c p danh sách c a JARFileNames bí danh: Tu ch n keyStore storePassword keyPassword JARFileName Alias Mô t Tên keystore s d ng M t kh u keystore M t kh u khoá riêng Tên c a file JAR đ c ký danh Bí danh c a b ký danh 89 B ng 10.2 JARFileNames bí danh ký danh file JAR ‘pack.jar’, v i keystore ‘store’, m t kh u đ l u tr khoá riêng ‘password’, dùng l nh sau: jarsigner –keystore store –storepass password –keypass password pack.jar pk ‘pk’ ngh a tên bí danh N u tu ch n ‘-keystore’ khơng ch rõ, keystore m t đ nh đ ch rõ ch ký c a file JAR đ c dùng c đ nh danh, dùng tu ch n ‘-verify’ jarsigner –verify pack.jar ‘pack.jar’ ch tên file JAR N u ch ký khơng h p l , ngo i l sau đ c ném (thrown) Jarsigner:java.util.zip.ZipException:invalid entry size (expected 900 but got 876 bytes) Ng c l i, xu t hi n thông báo “jar verified” (jar đ Quá trình xác th c ki m tra theo b c xác minh) c sau: Có file ‘.DSA’ ch a ch ký h p l cho file ch ký SF khơng Có m c file ch ký tóm l c h p l cho m i m c t khai (manifest file) ng ng file kê 10.5 Ch ký n t (digital Certificates) Cho đ n bây gi , h c cách t o ký danh m t file JAR Bây gi , s h c cách xu t ch ký n t (digital certificates), s s d ng đ xác th c ch ký c a file JAR Chúng ta c ng s h c nh p ch ký n t t file Ch ký n t m t file, m t đ i t ng, ho c m t thông báo đ c ký danh b i quy n ch ng th c (certificate authority) The CA (Certificate authority) c p ch ng nh n giá tr khố cơng c ng Ch ng nh n X.509 c a t ch c International Standards Organization m t d ng ch ng nh n s ph bi n Keytool h tr nh ng ch ng nh n Keytool b c đ u tiên c n nh n đ c m t ch ng nh n (certificate) Chúng ta dùng ch ng nh n t o c p khố ‘cơng c ng/riêng’ (private/public) Keytool nh p vào ch ng nh n đ c t o đ c ký danh Keytool t đ ng g n (bundle) khố cơng c ng m i v i m t ch ng nh n m i Cùng th c th t o khố cơng c ng ký danh ch ng nh n ó đ c g i ‘self-signed certificates’ (Ch ng nh n t ký danh).Các ch ng nh n không ph i ch ng nh n đáng tin c y cho đ nh danh Tuy nhiên, chúng c n đ t o yêu c u ký danh ch ng nh n (certificate-signing request) Keytool tu ch n đ ch ng nh n trên: c s d ng đ t o ch ng nh n Câu l nh sau giúp t o keytool –keystore store –alias mykey –certreq –file mykey.txt C p khoá đ c t o ‘mykey’ Tu ch n ‘-file’ ch tên file, mà yêu c u ký danh ch ng nh n dùng đ l u 90 Dùng l nh ‘-export’ xu t ch ng nh n nh sau: keytool –export –keystore store –alias pk –file mykey Câu l nh hi n th d u nh c sau: Enter keystore password Ch ng nh n l u tr nh p ch ng nh n khác vào keystore c a b n, nh p câu l nh sau: keytool import –keytool keystore –alias alias –file filename Tên đ c ch nh tên file ch a ch ng nh n đ c nh p vào (imported certificate) Câu l nh sau ch tên bí danh ‘alice’ đ nh p ch ng nh n file ‘mykey’ vào keystore ‘MyStore’: keytool –import –keystore MyStore –alias alice –file mykey Câu l nh hi n th d u nh c sau: Enter keystore password (Nh p vào m t kh u keystore) K t qu xu t hi n th hai tu ch n –Owner Issuer Nó hi n th tên cơng ty, ngh nghi p, t ch c, đ a m, bang ti n t Nó c ng hi n th s serial th i gian có giá tr Cu i cùng, h i có ch ng nh n u thác không Ch ng nh n đ c ch p thu n cho s u thác c a riêng b n Dùng l nh ‘-list’ li t kê n i dung c a keystore nh sau: keystool –list –keystore Store Câu l nh yêu y u password keystore Dùng tu ch n ‘-alias’ li t kê m t m c Dùng l nh -delete đ xoá bí danh keystore, nh sau: keytool –delete –keystore Store –alias alias Dùng l nh ‘-printcert’ in ch ng nh n đ c l u tr file, theo cách sau: keytool –printcert –file myfile Dùng l nh ‘-help’ nh n v danh sách t t c l nh keytool h tr : keytool -help 10.6 Các gói b o m t java (JAVA Security packages) Các gói b o m t Java bao g m: 91 java.security ây gói API nhân b o m t (the core security API package) Ch a l p giao di n (interface) h tr mã hố (encryption), tính b ng tóm l c tài li u ch ký n t java.security.acl Ch a giao di n dùng cài đ t sách u ki n truy c p java.security.cert Cung c p s h tr cho ch ng nh n X.509 java.security.interfaces nh ngh a giao di n truy c p thu t toán ch ký n t (the digital signature algorithm) java.security.spec Cung c p l p đ c l p ph c thu c vào thu t tốn cho khố Tóm t t: N u kh n ng b o m t applet không đ m b o, d li u nh y c m có th đ c s a đ i ho c ph i bày M c đích c a JAR k t n i file mà applet s d ng m t file nén đ n i u cho phép applet n p vào trình t m t cách hi u qu M t file kê khai (manifest file) ch a thông tin v file l u tr Ch ký n t m t mã hoá kèm v i ch ng trình đ nh n di n xác n i ngu n g c c a file Keystore m t c s d li u c a khố Keytool cơng c khố b o m t c a java ch ng nh n n t m t file, ho c m t đ i t ng, ho c m t thông báo đ c ký danh b i quy n ch ng nh n (certificate authority) Ki m tra ki n th c: File file l u tr đ c nén Tu ch n _, dùng v i cơng c jar, trích rút tên file t m t l u tr (file) JAR t đ ng t o file kê khai, th m chí khơng đ c ch true/false Thu c tính ,khi dùng th applet, ch cho trình t n p file jar l u tr c th , tìm file class đ c nh p vào Trong ch ký n t , _đ c dùng cho mã hoá _đ c dùng cho gi i mã T t c thông tin keytool qu n lý, đ c l u tr m t c s d li u g i _ keytool b c đ u tiên c n nh n đ c m t ch ng nh n true/false Gói _ch a giao di n (interfaces) dùng cài đ t sách u ki n truy c p Bài t p: T o câu l nh java th c hi n hành đ ng sau: T o m t file jar ‘core-java.jar’ ch a file l p (class file) file ngu n Li t kê n i dung c a file jar T o file html cho file CardLayoutDemo.class,file l p đ c ch a file jar trích rút (extract) file jar Dùng l nh keytool v i tên bí danh keystore đ t o c p khố cơng c ng/riêng m i Ký danh file jar m i đ c t o Xác minh ch ký (signature) Xu t ch ng nh n (certificate) 92 Li t kê n i dung c a keystore 10 In ch ng nh n đ c l u file 93 ... l u tr Hình 10. 1 l nh jar Dùng l nh sau t i d u nh c li t kê file file ‘pack.jar’ jar tf pack.jar Tu ch n đ c s d ng cho b ng n i dung l u tr Tu ch n xác đ nh tên file l u tr Hình 10. 2 Li t kê... applet đ c gi i h n m t cách đ y đ , tr nhà phát tri n ký danh applet i u thi t l p cho nhà phát tri n đáng tin c y 10. 4 Khoá b o m t Java (Java Security key) Chúng ta c n t o công c , tên là,... ng Hacker có th vi t applet nguy hi m xuyên th ng hàng rào b o m t Vì th , applet h n ch s can thi t c a ngôn ng Applet không h tr m t s nét đ t tr ng sau: c ghi file t h th ng n i applet ch

Ngày đăng: 11/05/2021, 19:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w