1.Ngƣời sử dụng mở ứng dụng Liferay
2. Cổng thụng tin Liferay hiển thị trang đăng nhập yờu cầu chứng thực CAS với địa chỉ URL của Liferay. Ngƣời sử dụng gửi tờn đăng nhập và mật khẩu của hệ thống.
3.Server chứng thực CAS gửi yờu cầu xỏc thực tới LDAP server.
4.Nếu thụng tin định danh ngƣời dựng tồn tại và chớnh xỏc, LDAP server trả lời OK.
5.Server chứng thực CAS trả lại một session cookie (TGC) 6.Trỡnh duyệt Liferay chuyển một ticket trong HTTP GET (ST) 7.Ứng dụng Liferay chuyển ticket trong HTTP GET (ST)
8.Server chứng thực CAS trả lại UID của ngƣời dựng. Quỏ trỡnh xỏc thực hoàn tất, ngƣời dựng cú thể đăng nhập vào để sử dụng cỏc chức năng của hệ thống.
3.1.3 Thiết kế và xõy dựng tiện ớch quản lý định danh xỏc thực người dựng
Sử dụng OpenLDAP để quản lý tập trung định danh chuẩn. OpenLDAP là một phần mềm mó nguồn mở đƣợc xõy dựng dựa trờn một giao thức cú tờn gọi là LDAP (Lightweight Directory Access Protocol).
46
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.3 Mụ hỡnh tiện ớch quản lý định danh chuẩn
3.1.4 Xõy dựng dịch vụ đăng nhập cho người dựng Tiến hành tớch hợp CAS với liferay portal
Đầu tiờn ta phải vào thƣ mục conf trong tomcat để chỉnh sửa tệp tin server.xml. Nhằm mở cổng mật https để thực hiện bảo mật nhƣ hỡnh dƣới đõy.
Hỡnh 3.4 Cài đặt tệp tin server.xml
Hệ thống quản lý định danh chuẩn Hệ thống ký và xỏc thực chữ ký RSA Hệ thống xỏc thực chung OpenLDAP Server Hệ thống Liferay
47
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Tƣơng tự nhƣ tớch hợp LDAP. Tớch hợp CAS cũng đƣợc thực hiện ở mục Authentication, chọn mục CAS. Nhƣ hỡnh dƣới đõy
Hỡnh 3.5 Giao diện tớch hợp CAS
Ta tiến hành cài đặt giao diện tớch hợp CAS nhƣ dƣới đõy
Hỡnh 3.6 Cài đặt giao diện tớch hợp với CAS
Nhƣng để kết nối đƣơc với CAS server ta phải tạo ra khúa xỏc thực SSL, và đăng ký với xỏc thực của Java nhƣ cỏc bƣớc dƣới đõy
48
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.7 Tạo khúa riờng bằng cõu lệnh
Sau đú tạo ra chứng nhận từ khúa riờng bằng cõu lệnh dƣới đõy:
Hỡnh 3.8 Tạo chứng nhận từ khúa riờng
49
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.9 Đăng ký xỏc thực vào keystore của java
Sau đú khởi động lại tomcat và LDAP server. Tiến hành cài đặt nhƣ hỡnh 3.14 và test thử kết nối và lƣu lại cài đặt là hoàn thành nhƣ hỡnh dƣới đõy.
Hỡnh 3.10 Cài đặt CAS trờn Liferay Portal
50
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.12 Hoàn thành tớch hợp CAS
Khởi động LDAP server và tomcat
Ta cú thể đăng nhập vào xỏc thực CAS nhƣ dƣới đõy
51
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.14 Thụng bỏo thành cụng đăng nhập xỏc thực CAS
Sau khi đăng nhập thành cụng xỏc thực CAS nú sẽ tự động chuyển sang trang Liferay Portal.
Khi thoỏt ra khỏi liferay portal thỡ sẽ tự động chuyển tới trang thoỏt khỏi xỏc thực CAS nhƣ dƣới đõy
Hỡnh 3.15 Trạng thỏi thoỏt khỏi xỏc thực CAS 3.2 Xõy dựng ứng dụng ký số, xỏc thực trờn nền tảng Web
3.2.1 Mụ hỡnh tổng quan giải phỏp ký số, xỏc thực trờn nền tảng Web
Web Server
Ngƣời sử dụng cuối 1 Ngƣời sử dụng cuối 2 2. Tải ứng dụng ký số
applet
1. Tƣơng tỏc trực tuyến
4. Upload dữ tài liệu 3. Applet băm và ký số dữ liệu
52
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.16 Mụ hỡnh tổng quan
Ngƣời sử dụng cuối 1 sau khi nhập liệu trờn web form cú thể ký dữ liệu trờn web form và gửi lờn web server, ngƣời sử dụng cuối 2 sẽ tải dữ liệu đó ký lờn web form trờn mỏy của mỡnh và tiến hành xỏc thực dữ liệu trờn server.
3.2.2 Phõn tớch thiết kế quy trỡnh ký số, xỏc thực
Chuẩn khuụn dạng ký số CMS/PKCS#7
CMS viết tắt của Cryptographic Message Syntax (Cỳ phỏp mó húa thụng điệp). Cỳ phỏp này đƣợc sử dụng để ký số, túm lƣợc, xỏc thực mó húa nội dung của một thụng điệp bất kỳ.
CMS mụ tả một cỳ phỏp đúng gúi để bảo vệ dữ liệu. Nú hỗ trợ mó húa và ký số dữ liệu. Cỳ phỏp này cho phộp đúng gúi nhiều lần; một vỏ bọc gúi cú thể đƣợc lồng trong gúi khỏc. Tƣơng tự nhƣ vậy, một bờn cú thể ký số lờn dữ liệu đó đƣợc đúng gúi trƣớc đú. Nú cũng cho phộp cỏc thuộc tớnh bất kỳ, vớ dụ thời gian ký (signing time), đƣợc ký cựng với nội dung thụng điệp, và cung cấp cho cỏc thuộc tớnh nhƣ countersignatures đƣợc liờn kết với một chữ ký.
Cỏc giỏ trị CMS đƣợc tạo ra sử dụng ASN.1, BER-ENCODING. Cỏc giỏ trị thụng thƣờng đƣợc biểu diễn dƣới dạng cỏc chuỗi octet. Trong khi nhiều hệ thống cú khả năng truyền nhận cỏc chuỗi octet bất kỳ, trong đú cú một số hệ thống thƣ điện tử.
CMS đƣợc xõy dựng dựa trờn PKCS#7 phiờn bản 1.5. CMS cú sự tƣơng thớch với PKCS#7, tuy nhiờn cần thiết cú một số thay đổi để phự hợp với thuộc tớnh chuyển đổi chứng thƣ số, cỏc kỹ thuật thỏa thuận khúa và khúa mó húa đối xứng để quản lý khúa.
CMS sử dụng cỏc yếu tố mật mó để mó húa và ký số dữ liệu. CMS sử dụng một kiểu định dạng và giỏ trớ cơ bản nhƣ hỡnh bờn dƣới.
53
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Content
CMS định nghĩa 6 kiểu cơ bản để mụ tả dạng của mó húa nõng cao đƣợc ỏp dụng cho cỏc dữ liệu số, cỏc hỡnh dƣới chỉ ra cỳ phỏp cơ bản của chỳng. Sỏu kiểu đú là:
Data: Sử dụng để tham chiếu tới chuỗi octet bất kỳ (vớ dụ ASCII) và thƣờng đƣợc đúng gúi trong một kiểu khỏc
Signed Data: Sử dụng để ký nội dung, cú thể cú nhiều hơn một ngƣời ký Enveloped Data: Chứa nội dung đƣợc mó húa với một khúa giải mó cho mỗi ngƣời nhận (khúa này đƣợc mó húa)
Digested Data: Kiểu này chứa nội dung và một túm lƣợc thụng điệp của nội dung để cung cấp tớnh toàn vẹn của nội dung
Encrypted Data: Đõy chỉ là dữ liệu đƣợc mó húa. Một phƣơng thức cho quản lý khúa bắt buộc phải đƣợc sử dụng! CMS khụng định nghĩa bất kỳ phƣơng thức quản lý khúa cụ thể nào.
Authenticated Data: Kiểu này bao gồm cỏc nội dung, mó xỏc thực thụng điệp (MAC), và cỏc khúa xỏc thực đƣợc mó húa cho một hoặc nhiều ngƣời nhận
54
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
55
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Cỏc kiểu nội dung cú thể nồng nhau để cung cấp nhiều mức bảo mật. Cỏc giao thức sau sử dụng CMS:
Secure Hypertext Transport Protocol (S-HTTP)
56
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Lƣợc đồ ký số
Dữ liệu cần ký
Thuật toỏn băm
Tờn hàm băm Hàm băm Túm lƣợc (băm) của dữ liệu đƣợc ký Ký số Chữ ký số Chứng thƣ số ngƣời ký ID ngƣời ký Chứng thƣ số ngƣời ký Khúa bớ mật USB lƣu khúa Kho chứng thƣ số Khuụn dạng thụng điệp đƣợc ký Hỡnh 3.18 Lƣợc đồ ký số dữ liệu
Trong sơ đồ này, sử dụng phƣơng phỏp tỏch chữ ký và dữ liệu ký. Do vậy, dữ liệu cần ký khụng đƣợc ghộp vào khuụn dạng chữ ký đầu ra, dữ liệu cần ký đƣợc băm thụng qua một hàm băm (SHA-1 hoặc SHA-2), dữ liệu băm đƣợc ký bởi khúa bớ mật của ngƣời ký, khúa bớ mật đƣợc lƣu trong thiết bị USB lƣu khúa, ID của chứng thƣ số ngƣời ký cũng đƣợc ghộp với chữ ký đầu ra. Để thuận tiện cho ngƣời xỏc thực dữ liệu, chứng thƣ số của ngƣời ký cũng đƣợc ghộp với chữ ký đầu ra để ngƣời xỏc thực khụng phải tỡm kiếm chứng thƣ số của ngƣời ký để xỏc thực chữ ký. Khuụn dạng chữ ký đầu ra gồm cỏc thụng tin chớnh sau:
Tờn hàm băm đƣợc sử dụng Chữ ký số
57
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
ID ngƣời ký Lƣợc đồ xỏc thực dữ liệu Dữ liệu cần ký Xỏc thực tốt Tờn hàm băm Hàm băm Túm lƣợc (băm) mới của dữ liệu đƣợc ký Chữ ký số Chứng thƣ số ngƣời ký ID ngƣời ký Khụng xỏc thực đƣợc Khuụn dạng thụng điệp đƣợc ký Xỏc thực Khúa cụng khai ngƣời ký Kho chứng thƣ số Chứng thƣ số ngƣời ký Túm lƣợc gốc So sỏnh NO Yes Hỡnh 3.19 Lƣợc đồ xỏc thực dữ liệu tổng quan
Ngƣời nhận xỏc thực chữ ký trờn webform theo cỏc bƣớc sau: 1.Tỏch tờn thuật toỏn hàm băm đó sử dụng
2.Sử dụng thuật toỏn băm giống nhƣ ngƣời ký để băm dữ liệu rừ đƣợc một bản túm lƣợc mới
3.Tỏch chữ ký số, chứng thƣ số ngƣời ký
4.Lấy khúa cụng khai từ chứng thƣ số ngƣời ký và giải mó chữ ký đƣợc bản túm lƣợc gốc của dữ liệu ký
5.So sỏnh hai túm lƣợc mới và bản túm lƣợc gốc:
58
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Nếu khụng giống nhau tớnh toàn vẹn của dữ liệu đó bị vi phạm, chữ ký khụng đƣợc xỏc thực.
3.2.3 Thiết kế và xõy dựng ứng dụng ký số, xỏc thực trờn nền tảng Web
Giao diện chớnh
59
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.21 Giao diện chớnh – Mở rộng Cỏc kiểu đối tƣợng: STT Tờn đối tƣợng Kiểu đối tƣợng Định dạng Giỏ trị mặc định 1 frmBisSign Jdialog Chọn chứng thƣ số
2 jLabel1 Jlabel Text Chọn chứng thƣ ký
3 jComboBox1 JcomboBox
4 jLabel2 Jlabel Text Nhập mật khẩu truy cập thiết bị lƣu khúa
5 jTextField1 JtextField
6 JButton1 Jbutton Text Tải chứng thƣ
7 JButton2 Jbutton Text Ký số
8 JButton3 Jbutton Text Mở rộng
9 JButton4 Jbutton Text Hủy bỏ
10 jLabel3 Jlabel Text Chọn đƣờng dẫn thƣ viện PKCS#11
(.dll/.so) 11 jTextField2 JtextField
12 JButton5 Jbutton Text Chọn…
60
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.22 Chọn đƣờng dẫn thƣ viện PKCS#11
3.3 Cấu hỡnh, tớch hợp giao thức SSL/TLS trong quỏ trỡnh trao đổi giữa Web Client và Web Server Client và Web Server
3.3.1 Mụ tả giải phỏp
Ngày nay việc bảo mật thụng tin là yếu tố quan trọng để quyết định sự sống cũn của một tổ chức, một cụng ty hay doanh nghiệp. Với sự phỏt triển nhanh chúng của cụng nghệ đó mang lại nhiều tiện ớch cho ngƣời dựng nhƣng đồng thời cũng đặt ra một nhu cầu hết sức cấp thiết về sự an toàn và bảo mật thụng tin. Và SSL chớnh là một trong những giải phỏp tốt nhất hiện nay đỏp ứng những nhu cầu đú.
Chứng thƣ số SSL cú tớnh năng chứng thực Server trong cỏc phiờn SSL/TLS và sau đú đƣợc sử dụng để mó húa trờn đƣờng truyền.
Việc ứng dụng giao thức SSL vào Website tin nhằm đảm bảo: - Chứng thực Website – trỏnh giả mạo Website
- Đảm bảo mọi dữ liệu, thụng tin trao đổi giữa Website và ngƣời sử dụng đƣợc mó húa, trỏnh nguy cơ bị can thiệp.
61
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Với việc sử dụng SSL, cỏc Web site cú thể cung cấp khả năng bảo mật thụng tin, xỏc thực và toàn vẹn dữ liệu đến ngƣời dựng. SSL đƣợc tớch hợp sẵn vào cỏc browser và Web server, cho phộp ngƣời sử dụng làm việc với cỏc trang Web ở chế độ an toàn. Khi Web browser sử dụng kết nối SSL tới server, biểu tƣợng ổ khúa sẽ xuất hiện trờn thanh trạng thỏi của cửa sổ browser và dũng “http” trong hộp nhập địa chỉ URL sẽ đổi thành “https”. Một phiờn giao dịch HTTPS sử dụng cổng 443 thay vỡ sử dụng cổng 80 nhƣ dựng cho HTTP.
Hacker
Man-in-Middle Attack: Khụng thể phỏ vỡ kờnh an toàn
`
Người sử dụng Web Server
Kờnh giao tiếp SSL
Internet/Unsecurity Network
Hỡnh 3.23 Xõy dựng giải phỏp sử dụng giao thức SSL/TLS trong quỏ trỡnh trao đổi giữa Web Client và Web Server
3.3.2 Sử dụng giao thức SSL/TLS 2 chiều trong quỏ trỡnh xỏc thực người dựng của cỏc website cú sử dụng chứng thư số
Trong xỏc thực 2 chiều SSL/TLS, ứng dụng mỏy khỏch SSL (SSL-Client) xỏc minh định danh của cỏc ứng dụng mỏy chủ SSL và sau đú ứng dụng mỏy chủ SSL xỏc minh định danh của cỏc ứng dụng mỏy khỏch SSL
Xỏc thực hai chiều SSL cung đƣợc gọi là xỏc thực mỏy khỏch bởi vỡ ứng dụng hoạt động nhƣ một mỏy khỏch SSL cung cấp chứng thƣ cho mỏy chủ SSL sau khi mỏy chủ SSL xỏc thực chớnh nú với mỏy khỏch SSL.
62
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.24 Mụ hỡnh sử dụng giải phỏp xỏc thực 2 chiều SSL/TLS
Với việc sử dụng giải phỏp xỏc thực này hệ thống đảm bảo
- Xỏc thực server: Ngƣời sử dụng cú thể kiểm tra bằng chứng chỉ số trang
web mỡnh đang truy cập cú đỳng là chớnh trang web đú khụng?
Cho phộp ngƣời sử dụng xỏc thực đƣợc server muốn kết nối. Lỳc này, phớa browser sử dụng cỏc kỹ thuật mó hoỏ cụng khai để chắc chắn rằng certificate và public ID của server là cú giỏ trị và đƣợc cấp phỏt bởi một CA (certificate authority) trong danh sỏch cỏc CA đỏng tin cậy của client. Điều này rất quan trọng đối với ngƣời dựng. Vớ dụ nhƣ khi gửi mó số credit card qua mạng thỡ ngƣời dựng thực sự muốn kiểm tra liệu server sẽ nhận thụng tin này cú đỳng là server mà họ định gửi đến khụng? Và phải biết chắc rằng ngƣời giao dịch là một ngƣời hợp phỏp và sẽ khụng dựng thụng tin của mỡnh cho cỏc mục đớch lừa đảo.
- Xỏc thực Client: Cho phộp phớa server xỏc thực đƣợc ngƣời sử dụng muốn
kết nối. Phớa server cũng sử dụng cỏc kỹ thuật mó hoỏ cụng khai để kiểm tra xem certificate và public ID của server cú giỏ trị hay khụng và đƣợc cấp phỏt bởi một CA (certificate authority) trong danh sỏch cỏc CA đỏng tin cậy của server khụng. Điều này rất quan trọng đối với cỏc nhà cung cấp. Vớ dụ nhƣ khi một ngõn hàng
63
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
định gửi cỏc thụng tin tài chớnh mang tớnh bảo mật tới khỏch hàng thỡ họ rất muốn kiểm tra định danh của ngƣời nhận.
- Mó hoỏ kết nối: Tất cả cỏc thụng tin trao đổi giữa client và server đƣợc mó hoỏ trờn đƣờng truyền nhằm nõng cao khả năng bảo mật. Điều này rất quan trọng đối với cả hai bờn khi cú cỏc giao dịch mang tớnh riờng tƣ. Ngoài ra, tất cả cỏc dữ liệu đƣợc gửi đi trờn một kết nối SSL đó đƣợc mó hoỏ cũn đƣợc bảo vệ nhờ cơ chế tự động phỏt hiện cỏc xỏo trộn, thay đổi trong dữ liệu. ( đú là cỏc thuật toỏn băm – hash algorithm).
64
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Hỡnh 3.25 Lựa chọn chứng thƣ số xỏc thực vào website
# Export the certificate from the client key and then add to server key store
keytool -export -alias hoanghaKey -keystore hoangha.p12 -storetype PKCS12 - storepass developassword -rfc -file developer.cer
keytool -import -v -file hoangha.cer -keystore tomcat.keystore -storepass serverpassword
# Enabling the SSL Connector (/usr/share/apache-tomcat-6.0.35/conf/server.xml) <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/root/tomcat.keystore" keystorePass="serverpassword"
truststoreFile="/root/tomcat.keystore" truststorePass="serverpassword" clientAuth="true" sslProtocol="TLS" />
# addding your credential in to the tomcat's file (/usr/share/apache-tomcat- 6.0.35/conf/tomcat-users.xml)
<user username="CN=Hoang Ha, OU=Solution, O=CNTT, L=Hanoi, S=VietNam, C=VN" password="null" roles="admin" />
65
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/