Tổng quan về bảo mật trong Javachương trình tương tác thông qua World Wide Web thống của người dùng, thay vì chạy trên máy chủ Web Web server tới việc sửa đổi hoặc đọc các dữ liệu nhạy c
Trang 1LẬP TRÌNH JAVA NÂNG CAO
Bộ môn: Lập trình máy tính
Trang 2Nội dung chương 05
Trang 3Tổng quan về bảo mật trong Java
chương trình tương tác thông qua World
Wide Web
thống của người dùng, thay vì chạy trên máy chủ Web (Web server)
tới việc sửa đổi hoặc đọc các dữ liệu nhạy
cảm trên máy người sử dụng Applet
Trang 4Công cụ JAR
Công dụng: Tạo file lưu trữ jar, chứa nhiều file trong một file
lưu trữ (.jar), cho phép tải về trình duyệt một cách hiệu quả
Cú pháp: jar [options][manifest] jar-file input-file(s)
c Tạo ra một file jar mới
t Liệt kê nội dung của file jar
x Trích dẫn file có tên từ file jar
v Tạo đầu ra chi tiết (verbose output) trên dòng lỗi chuẩn
f Xác định tên file jar
m Bao hàm thông tin chứng thực từ các file chứng thực xác định.
o Chỉ lưu trữ, không nén
M Không tạo các file chứng thực cho các mục (entries).
Trang 5Gộp file lưu trữ vào Applet
=’tenfileluutru.jar’ vào thẻ applet, như sau:
<applet code=”tenApplet.class”
ARRCHIVE=”tenfileluutru.jar” height=125
width=350></applet>
‘tenfileluutru.jar’ để tìm file
‘tenApplet.class’
Trang 6Bảo mật Applet
ngữ, không hỗ trợ một số thao tác sau:
– Đọc và ghi file từ hệ thống, nơi applet đang
chạy.
– Lấy thông tin từ file của hệ thống
– Xoá file của hệ thống
Java 2 có thể thực hiện tất cả các thao tác
trên, với các Applet được cung cấp từ nhà cung cấp applet tin cậy, và có ký chữ ký điện
tử (digitally signed)
Trang 7Mã hoá sử dụng khoá công khai
Trang 8Chữ ký điện tử
Là một file, một đối tượng, hoặc một thông báo được
mã hoá đi cùng với chương trình
Giúp nhận dạng chính xác nguồn gốc của file
Một khóa riêng (private key) được sử dụng để mã
hóa, khoá công khai (public keys) được sử dụng để giải mã.
Người ký dùng thuật toán Message Digest (như MD5) để tính giá trị digest của đối tượng.
Digest sau đó được mã hoá dùng khóa riêng, để tạo ra chử
ký điện tử của đối tượng
Khoá công khai được sử dụng để giải mã và kiểm tra.
Tài liệu mô tả chữ ký được gọi là “Chứng thực”
(Certificate)
Trang 9Khoá bảo mật Java
Tạo 3 công cụ là ‘jar’, ‘jarsigner’, và
‘keytool’, trước khi dùng các applet được ký
khoá, chứa các chứng thực số dùng để nhận dạng các giá trị khoá công khai
Trang 10các chứng thực bảo mật
keystore
– Quản lý cặp khoá public/private.
– Lưu trữ các khoá công khai
– Dùng các chứng thực để xác thực chứng thực khác – Xác thực (Authenticate) dữ liệu nguồn
Trang 11Keytool (tt)
chưa, thực hiện câu lệnh sau:
keytool –list
JDK tìm keystore trong file ‘try’ của thư mục
‘try’:
keytool –list keystore c:\java\try
khoá public/private:
keytool –genkey –alias “I”
Trang 12Keytool (tt)
Nhập mật khẩu (password) cho keystore:
Enter keystore password:
Nhập các thông tin bổ sung:
What is your first and last name? [unknown]
what is the name of your organization unit? [unknown] What is the name of your organization? [Unknown]
What is the name of your city or Locality? [Unknown] What is the name of your State or Province? [Unknown] What is the two-letter country code for this unit?
[Unknown]
Trang 13Keytool (tt)
Nhập mật khẩu cho khoá riêng:
Enter key password for <I>
(RETURN if same as keystore password):
Mật khẩu sau cùng phần biệt với mật khẩu keystore,
được dùng để truy cập khoá riêng của cặp khoá.
Chỉ rõ bằng cách sử dụng tuỳ chọn ‘-keypass’, nếu
không, mật khẩu keystore sẽ được sử dụng.
Tuỳ chọn ‘-keypasswd’ được dùng để thay đổi mật khẩu
Tuỳ chọn ‘-keyalg’ chỉ rõ thuật toán tạo cặp khoá
Xoá cặp khoá từ cơ sớ liệu, dùng lệnh sau:
keytool –delete –alias aliasName
Trang 14 Được sử dụng để ký một file JAR
Cú pháp:
jarsigner –keystore keyStore –storepass storePassword – keypass keyPassword JARFileNames Alias
Tuỳ chọn Mô tả
keyStore Tên keystore sử dụng
storePassword Mật khẩu keystore
keyPassword Mật khẩu khoá riêng
JARFileName Tên của file JAR được ký danh
Alias Bí danh của bộ ký danh
Trang 16Xuất chữ ký điện tử
trị các khoá công khai Ví dụ chứng nhận
X.509 của tổ chức International Standards
Organization, được hỗ trợ bởi keytool
keytool –keystore store –alias mykey –certreq – file mykey.txt
keytool –export –keystore store –alias pk –file mykey
Trang 17Nhập chữ ký điện tử
dụng câu lệnh sau:
keytool -import –keytool keystore –alias alias – file filename
Ví dụ, câu lệnh sau chỉ tên bí danh là ‘alice’ để nhập chứng nhận trong file ‘mykey’ vào
keystore ‘MyStore’:
keytool –import –keystore MyStore –alias alice – file mykey
Trang 18Các gói bảo mật của Java
java.security: Là gói API bảo mật chính, chứa các lớp và giao diện hỗ trợ mã hoá, digest và chữ ký điện tử
java.security.acl: Chứa các giao diện dùng để cài đặt các chính sách điều khiể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 các giao diện truy cập Digital Signature Algorithm
java.security.spec: Cung cấp các lớp độc lập và phụ thuộc vào thuật toán mã hoá sử dụng khoá
Trang 19Các gói bảo mật của Java (tiếp)
hiển thị dữ liệu tĩnh, mà nhu cầu kết nối và thao tác với cơ sở dữ liệu ngày càng cao
Một trong những cách dùng để tổ chức cấu trúc website thường sử dụng nhất là mô
hình MVC, và Zend là một framework hỗ trợ mạnh cho mô hình này
Trang 20Bài tập
Language)