Mục tiêu bài học:
Cuối chương này bạn có thể
- Mô tả về công cụ JAR
- Tạo và xem một file JAR, liệt kê và trích rút nội dung của file.
- Sử dụng chữ ký điệ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, chúng ta 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 và nhà phát triển.
Java là một ngôn ngữ lập trình đầu tiên gởi các chương trình không tương tác như các file văn bản, file ảnh và các 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 trên hệ thống của người dùng, hơn là chạy trên máy chủ Web (Web server). Bảo mật Java Applet là sự quan tâm chính giữa người dùng và nhà phát triển applet. Thiết tính bảo mật trong applet có thể dẫn tới sửa đổi hoặc phơi bày các 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 duy trì mức độ bảo mật cao. Trong chương nay, chúng ta sẽ học mô hình bảo mật JDK 1.2.
10.2 Công cụ JAR
Một file JAR là một file lưu trữ được nén do công cụ lưu trữ Java tạo ra. File này tương tự như chương trình PKZIP. Nó chứa nhiều file trong một file lưu trữ. Điều này cho phép tải trong trình duyệ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 duyệt. Vì tấc cả các tất cả các file được biên dịch trong một file đơn, trình duyệ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 |
Mô tả |
c |
Tạo ra một lưu trữ mới |
t |
Ghi vào bảng nội dung cho lưu trữ |
x |
Trích dẫn file có tên từ lưu trữ |
v |
Tạo nguồn xuất đa dòng (verbose output) trên một lỗi chuẩn |
f |
Xác định tên file lưu trữ |
m |
Bao hàm thông tin chứng thực từ các file chứng thực xác định |
o |
Lưu trữ chỉ ‘use no zip’ nén |
M |
Không tạo các file chứng thực cho các mục (entries). |
Bảng 0.1. công cụ jar
Một file chứng thực chứa thông về các file lưu trữ. File này là một tuỳ chọn. Thậm chí file không xác định thì JAR cũng tự động tạo ra. File jar được dùng như các lưu trữ. File này phải có phần mở rộng là ‘.jar’ được xác định tại dòng lệnh. File đầu vào (input-file) là danh sách phân cách các file được đặt trong lưu trữ. Netscape Navigator và Internet Explorer hỗ trợ file JAR.
Câu lệnh sau lưu trữ tất cả các file class và file java bao gồm trong một thư mục xác định vào một file jar gọi là ‘pack’
Tạo một lưu trữ mới |
Tên câu lệnh |
Xác định lưu trữ |
Tên file |
Các file được lưu trữ |
jar cf pack.jar *.class *.java
Hình 10.1 lệnh jar
Dùng lệnh sau tại dấu nhắc liệt kê các file trong file ‘pack.jar’
Tuỳ chọn này đượ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ữ |
jar tf pack.jar
Hình 10.2 Liệt kê các file trong file pack.jar
Để gộp file lưu trữ ‘pack.jar vào trong một applet, mở trang HTML, và thêm thuộc tính ARCHIVE=’pack.jar’ vào thẻ applet, như sau:
<applet code=”exr7.class” ARRCHIVE=”pack.jar” height=125 width=350></applet>
Thuộc tính sẽ chỉ cho trình duyệt nạp lưu trữ ‘pack.jar’ để tìm file ‘exr7.class’
Câu lệnh sau trích rút các file được nén trong 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ý điện tử (Digital Signature) để định danh các applet
Trong java, bảo mật applet trên web là phần rất quan trọng. Hacker có thể viết các 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 các ngôn ngữ. Applet không hỗ trợ một số nét đặt trưng sau:
- Đọc và ghi file từ hệ thống nơi applet đang chạy.
- Lấy thông tin về một file từ hệ thống
- Xoá một file từ hệ thống.
Java 2 có thể thực hiện tất cả các đặc điểm trên, với các applet cung cấp từ một nhà cung cấp applet tin cậy, và được ký danh số (digitally signed).
Hình sau minh họa quá trình mã hoá khoá