TÌM HIỂU TỔNG QUAN VỀ PKI - OPENCA VÀ SINH TRẮC HỌC
Khái niệm và các cơ sở lý thuyết của hạ tầng cơ sở khóa công khai
1.1 Khái niệm hạ tầng cơ sở khóa công khai
Theo RFC 2828 [4]: hạ tầng cơ sở khoá công khai ( Public Key Infrastructure – PKI ) là một tập hợp phần cứng, phần mềm, chính sách, thủ tục cần thiết để tạo, quản lý và lưu trữ, phân phối và thu hồi các chứng chỉ số dựa trên công nghệ mã hoá khoá công khai.
1.2 Các cơ sở lý thuyết của hệ thống PKI
1.2.1 Công nghệ mã hóa bất đối xứng (Mã hóa công khai)
1.2.1.1 Mô hình mã hóa bất đối xứng
Mô hình mã hóa bất đối xứng hay còn có tên gọi là mô hình mã hóa công khai gồm có 5 thành phần đặc trưng như mô tả trong các hình dưới đây:
Hình 1.1 Mô hình mã hóa sử dụng khóa công khai
1 Bản tin rõ: Là dạng nguyên bản của thông điệp cần truyền đi, nó được sử dụng làm đầu vào cho các thuật toán mã hóa.
2 Thuật toán mã hóa: được dùng để tạo ra những phép biến đổi khác nhau lên bản tin rõ trong từng trường hợp cụ thể.
3 Khóa công khai và khóa riêng: Là cặp khóa được sử dụng trong quá trình truyền và nhận thông tin Một khóa trong hai khóa được sử dụng cho việc mã hóa, khóa còn lại được sử dụng cho việc giải mã bản tin Cặp khóa này mang giá trị độc lập đối với bản tin rõ và thuật toán mã hóa Thuật toán sẽ tạo ra các giá trị khác nhau phụ thuộc vào việc khoá công khai hay khóa riêng nào được sử dụng làm đầu vào trong thời điểm đấy Khóa riêng phải được giữ bí mật với tất cả mọi người, trừ người sở hữu nó, còn khóa công khai có thể được công bố rộng rã1
4 Mã mật: là một bản tin được xuất ra bởi thuật toán mã hóa, nó phụ thuộc vào bản tin rõ và khóa Với cùng một bản tin rõ, 2 khóa khác nhau sẽ tạo ra 2 bản mã mật khác nhau.
5 Thuật toán giải mã: Ngược với thuật toán mã hóa, nó dùng mã mật làm đầu vào và sử dụng cặp khóa công khai/ khóa riêng để tạo ra bản tin rõ ban đầu.Trong phương pháp mã hóa bằng khóa công khai, cặp khoá công khai/khóa riêng của một người mang tính chất duy nhất, vì thế có thể coi đó là đặc trưng cho người sử dụng khóa Nguyên tắc sử dụng cặp khóa này là:
Bản tin được mã hóa bằng một trong hai khoá thì chỉ có thể được giải mã bằng khóa còn lại trong cặp khóa đó.
Không thể tìm ra được khóa giải mã nếu biết thuật toán và khóa mã hóa.
Bản tin không thể được giải mã bằng khóa đã dùng để mã hóa nó.
Nhờ những nguyên tắc trên mà phương pháp mã hóa công khai trở nên rất thích hợp trong việc sử dụng các chứng thư số số và các dịch vụ chống phủ nhận
Các bước cần thiết cho một quá trình mã hóa và giải mã sử dụng phương pháp mã hóa khoá công khai
1 Mỗi bên tham gia trao đổi thông tin sẽ sinh ra một cặp khóa để sử dụng cho mục đích mã hoá và giải mã các bản tin sau này.
2 Mỗi bên công khai một trong hai khóa vừa tạo ra, khóa này sẽ được coi là khóa công kha1 Khóa còn lại được giữ bí mật.
3 Nếu B muốn gửi một bản tin bí mật cho A, thì B sẽ mã hóa bản tin bằng khóa công khai của A.
4 Khi nhận được bản tin, A sẽ dùng khóa riêng của mình để giải mã bản tin đó. Không ai khác ngoài A có thể đọc được bản tin vì chỉ A mới biết khóa riêng của chính mình.
5 Nếu B muốn cho A xác thực mình thì B sẽ mã hóa bản tin bằng khóa riêng của bản thân.
6 Khi nhận được bản tin, A sẽ dùng khóa công khai của B để giải mã Nếu việc giải mã thành công thì chứng tỏ bản tin đó đúng do B gửi vì chỉ B mới có khóa riêng để mã hóa.
1.2.1.2 Mô hình hệ mật sử dụng phương pháp mã hóa công khai
Một đặc trưng của công nghệ mã hóa công khai đó là: đảm bảo được tính mật và tính xác thực Trong các hệ mật sử dụng mã hóa công khai, người ta có thể áp dụng từng tính chất này hoặc kết hợp cả hai để đạt được hiệu quả an ninh tốt nhất. a Mô hình đảm bảo tính mật
Giả sử bên A cần gửi một bản tin X cho B B sẽ tạo ra một cặp khóa bất đối xứng, trong đó: khóa công khai của B là PU b và khóa riêng tương ứng là PR b Chỉ mình B mới biết được PR b trong khi đó PU b được công khai, do đó A có thể sử dụng được khóa này
Sử dụng bản tin X và khóa công khai PU b làm đầu vào cho thuật toán giải mã, A sẽ tạo ra một mã mật:
Khi nhận được Y, bên B sẽ sử dụng khoá riêng PR b để thực hiện việc giải mã dữ liệu:
Hình 1.2 Mô hình hệ mã hóa công khai đảm bảo tính mật
Một thám mã nếu bắt được bản tin mật Y và có được khóa công khai PU b nhưng không có khóa riêng PR b thì sẽ không thể nào tìm ra được X Thám mã mong muốn sẽ khôi phục lại được bản tin gốc X hoặc là khóa riêng PR b Nếu thám mã chỉ muốn cố gắng để đọc được X tại một thời điểm cụ thể này thì chúng sẽ tập trung vào khôi phục X bằng cách tạo ra các bản tin xấp xỉ Tuy nhiên thông thường thì thám mã mong muốn có thể đọc được bản tin trong các lần sau đó nữa vì thế chũng sẽ tạo ra các khóa riêng xấp xỉ
Trong những trường hợp như thế này thì độ mạnh của thuật toán mã hóa đóng vai trò hết sức quan trọng đối với việc bảo vệ an toàn cho dữ liệu. b Mô hình đảm bảo tính xác thực
Như đã nói ở trên, việc sử dụng cặp khóa bất đối xứng, một để mã hóa dữ liệu, một để giải mã không những chỉ đảm bảo được tính mật cho hệ thống mà còn có thể cung cấp cả tính năng xác thực như mô hình dưới đây:
Tạo cặp khóa Bản tin gốc
Hình 1.3 Mô hình hệ mã hóa công khai đảm bảo tính xác thực
Trong trường hợp này, khi bên A muốn gửi một bản tin X đến B, A sẽ sử dụng khóa riêng PR a của mình để mã hóa dữ liệu trước khi truyền Mã mật Y = E (PR a , X) sẽ được nhận bởi B B có thể giải mã Y để thu được bản tin gốc bằng cách sử dụng khóa công khai PU a của A: X = D (PU a , Y).
HỆ THỐNG BK-BioPKI VÀ GIẢI PHÁP TÍCH HỢP SINH TRẮC
1.Khái quát hệ thống BK-BioPKI
1.1.Mô hình thiết kế tổng thể hệ thống BK-BioPKI
Hệ thống BK-BioPKI thuộc đề tài nghiên cứu cấp nhà nước KC01110 của khoa công nghệ thông tin nhằm nghiên cứu thử nghiệm một số giải pháp tích hợp sinh trắc học vào hệ thống PKI Hệ thống được xây dựng dựa trên nền tảng OpenCA Đây là hệ thống được phát triển tiếp theo hệ thống BK-BioPKI trong môi trường OpenSSL của đề tài theoNghị định thư hợp tác với Malaysia 2008 Mục đích của hệ thống BK-BioPKI là tạo một môi trường cơ sở hạ tầng khóa công khai trong phòng thí nghiệm với mạng cục bộ từ đó phát triển thử nghiệm tích hợp sinh trắc học vào PKI để nghiên cứu một số vấn đề về an toàn an ninh dựa trên sinh trắc học
Mô hình hệ thống BioPKI dựa trên môi trường OpenCA thuộc về công trình của đề tài KC0111 nghiên cứu và xây dựng, phiên bản hệ thống hiện nay đang được thiết kế triển khai bởi nhóm sinh viên K49, bao gồm các bạn: Nguyễn Văn Toàn, Nguyễn Đức Toàn, Bùi Đức Khánh, Trần Anh Mỹ, Nguyễn Thúy Hằng, Trần Hoàn Vũ Hiệp, Ngô Xuân Tùng, Nguyễn Tư Hoàn.
Sơ đồ về mô hình hệ thống BK-BioPKI được trình bày trong hình dưới đây
Hì nh 2.1 Mô hình thiết kế tổng thể hệ thống BK-BioPKI.
Trong mô hình này, yếu tố sinh trắc sẽ được sử dụng trong các hoạt động : cấp chứng chỉ và sử dụng chứng chỉ
1.2 Các thành phần của hệ thống BKBio-PKI dựa trên OpenCA
Theo phân tích của nhóm đề tài KC0111, hệ thống BK-BioPKI gồm có các thành phần và chức năng của chúng như sau:
CA là nơi cấp phát chứng chỉ (hay còn gọi là chứng thư số) Các chứng chỉ này tuân theo chuẩn X509 đã trình bày ở trên Theo sơ đồ trên, CA gồm có hai bộ phận: CA Operator là máy của người điều hành CA, và máy Linux-OpenCA.
1 Là một máy Windows kết nối với một máy chủ Linux-OpenCA.
2 CA Operator là một công cụ quản trị cho người điều hành CA.
3 CA Operator cung cấp ứng dụng cho phép người điều hành CA nhập thông tin yêu cầu vào cơ sở dữ liệu của OpenCA
4 CA Operator cung cấp ứng dụng để có thể xuất ra thiết bị nhúng giao tiếp với PC qua cổng USB (gọi là Etoken) Thiết bị nhúng Etoken sẽ chứa chứng chỉ, khóa riêng, đặc trưng vân tay của người đăng ký (đã mã hóa) (thiết bị nhúng này có vai trò như thẻ giao dịch điên tử).
5 Là một máy chủ Linux
6 Quản lý yêu cầu, phát hành chứng chỉ
7 Cung cấp một giao diện web cho phép người điều hành CA quản trị được các yêu cầu từ đó phát hành chứng chỉ.
RA giao dịch với CA offline RA bao gồm 2 bộ phận: bộ phận phát hành chứng chỉ và bộ phận cung cấp các dịch vụ cho phép người dùng sử dụng chứng chỉ đối với các ứng dụng cụ thể.
1.2.2.1.Bộ phận dịch vụ phát hành chứng chỉ
Cung cấp các dịch vụ về chứng chỉ Bộ phận này bao gồm các chức năng :
8 Phát hành thiết bị nhúng Etoken chứa chứng chỉ (Phát hành chứng chỉ )
9 xử lý mất thiết bị nhúng Etoken (hủy chứng chỉ theo yêu cầu)
10 xử lý cấp thiết bị nhúng Etoken (cấp mới chứng chỉ).
1.2.2.2.Bộ phận dịch vụ chứng chỉ
Cung cấp các dịch vụ để sử dụng chứng chỉ tương ứng với từng ứng dụng cụ thể như chữ ký số, mã hóa thông điệp Chẳng hạn:
11 Dịch vụ xác thực chứng chỉ: kiểm tra thông tin, tính hợp lệ của chứng chỉ.
12 Dịch vụ cung cấp chứng chỉ theo serial number…
LRA là nơi giao tiếp trực tiếp với người dùng các vấn đề về cấp thiết bị nhúng Etoken, bao gồm các chức năng sau:
Phát hành thiết bị nhúng Etoken (chứng chỉ) mới: nơi tiếp nhận yêu cầu, mẫu sinh trắc, đồng thời là nơi trả thẻ cho khách hàng.
Xử lý mất thiết bị nhúng Etoken (chứng chỉ): nơi khách hàng đến để yêu cầu hủy chứng chỉ trong trường hợp mất thẻ.
Cấp mới thiết bị nhúng Etoken (chứng chỉ).
User Application là các ứng dụng cho phép người dùng truy cập đến trung tâm dịch vụ chứng chỉ của RA để sử dụng chứng chỉ của mình vào một số ứng dụng như chữ ký sô, mã hóa thông điệp…
1.3 Xây dựng phương án về quy trình hệ thống BK-BioPKI
Quy trình để cấp phát mới một chứng chỉ cho một người dùng gồm có:
1 Khi một người dùng muốn có một chứng chỉ để sử dụng, anh ta sẽ đến chi nhánh đăng ký chứng chỉ (LRA), điền thông tin vào mẫu đơn đăng ký xin cấp chứng chỉ (xem mẫu) nộp cho nhân viên chi nhánh Các thông tin bao gồm: họ tên, giới tính, ngày sinh, nơi sinh, quốc tịch, số CMND/hộ chiếu, ngày cấp, nơi cấp, địa chỉ thường trú, nơi công tác, điện thoại, fax, điện thoại, email, chức vụ, thời hạn đề nghị cấp
2 Nhân viên chi nhánh tiếp nhận đơn đăng ký, kiểm tra thông tin người dùng cung cấp Nếu các thông tin chính xác, yêu cầu người dùng nhập mẫu sinh trắc đúng chuẩn Mẫu sinh trắc được chuyển thành đặc trưng sinh trắc Đặc trưng này được mã hóa với chứng chỉ chuyên dùng cho user của CA
3 Lưu vào cơ sở dữ liệu quản lý thông tin sau:
Thông tin người dùng (cả đặc trưng sinh trắc đã mã hóa).
Ngày nhận đăng ký, ngày trả kết quả.
Sinh mã đăng ký: 3 ký tự đầu mã LRA, 6 ký tự sau phiên đăng ký (tự động tăng)
Lưu trạng thái yêu cầu: đã đăng ký
4 Đưa giấy hẹn trả lời cho người dùng (có mã đăng ký).
5 LRA ký và gửi thông tin đăng ký xin cấp chứng chỉ cho RA gồm các thông tin sau:
6 RA nhận yêu cầu từ LRA, lọc lấy mã LRA, căn cứ vào mã LRA để kiểm tra chữ ký LRA, nếu kiểm tra thấy không đúng thông báo cho LRA , còn nếu đúng lưu những thông tin sau vào cơ sơ dữ liệu:
Trạng thái yêu cầu: đang xét duyệt tại RA.
LRA nhận được trả lời từ RA thì cập nhật lại trạng thái yêu cầu (nếu cần) và hủy các thông tin sinh trắc của đăng ký tương ứng Nếu trả lời chữ kí hợp lệ thì cập nhật trạng thái: Đang chờ duyệt.
7 RA duyệt yêu cầu, nếu không chấp nhận yêu cầu gửi thông báo không chấp nhận cho LRA, hủy đăng ký trong CSDL Duyệt yêu cầu gồm: Đã có chứng chỉ hay chưa…
Nếu LRA nhận được thông báo không chấp nhận từ RA thì cập nhật trạng thái yêu cầu là Không hợp lệ
8 Nếu RA chấp nhận yêu cầu thì ký lên yêu cầu và gửi lên CA (kèm mã đăng ký), chuyển trạng thái yêu cầu thành đã gửi CA (offline).
9 CA operator kiểm chữ ký của RA trên dữ liệu đăng ký (sử dụng ứng dụng trên nền Windows) Nếu sai thì thông báo (offline), nếu đúng sử dụng application insert vào CSDL của CA.
10.CA phát hành chứng chỉ, bao gồm các công việc sau:
Ghi khóa riêng, chứng chỉ, đặc trưng sinh trắc vào thiết bị nhúng
Chuyển thiết bị nhúng, chứng chỉ, và mã yêu cầu cho RA
11.RA nhận dữ liệu từ CA, sau đó làm các công việc sau:
Insert chứng chỉ vào CSDL chứng chỉ của RA.
Căn cứ vào mã yêu cầu, update trạng thái yêu cầu: đã được cấp, điền mã thẻ vào yêu cầu tương ưng
Insert thông tin thiết bị nhúng vào CSDL: mã thiết bị, ID người dùng, serial number của chứng chỉ, trạng thái của thiết bị (delivered to LRA - false, delivered to User - false), mã yêu cầu tương ứng với thiết bị.
12.RA trả thiết bị nhúng cho LRA, mã yêu cầu, cập nhật lại trạng thái của thiết bị nhúng (Delivered to LRA – true).
13.LRA nhận thiết bị nhúng từ RA kèm mã yêu cầu Dựa vào mã yêu cầu, cập nhật trạng thái yêu cầu là đã có thẻ và điền mã thẻ vào yêu cầu tương ứng.
14.Người đăng ký cầm giấy hẹn đến LRA để lấy chứng chỉ LRA căn cứ vào mã đăng ký để lấy thiết bị nhúng trả cho người đăng ký và cập nhật trạng thái yêu cầu là đã trả thẻ Đồng thời LRA thông báo cho RA người dùng đã nhận thẻ (kèm mã thẻ).
15.RA nhận được thông báo người đăng ký đã nhận thẻ Dựa trên mã thẻ cập nhật lại trạng thái thẻ (Delivered to User – true).
1.3.2.Hủy chứng chỉ tức thời
KHẢO SÁT VÀ PHÂN TÍCH XÂY DỰNG ỨNG DỤNG TRÊN NỀN WEB-BASED
ỨNG DỤNG TRÊN NỀN WEB-BASED
1 Giới thiệu công nghệ Web
Trước tiên, chúng ta không thể phủ nhận tầm quan trọng của các ứng dụng desktop Với các ứng dụng desktop, chúng ta có thể thực hiện được các chương trình lớn, đòi hỏi việc sử dụng tài nguyên lớn của hệ thống: yêu cầu về tốc độ xử lý hay yêu cầu về bộ nhớ lớn, làm việc với các dữ liệu lớn Tuy nhiên đối với những nhiệm vụ không đòi hỏi việc sử dụng tài nguyên của hệ thống lớn, mà lại đề cao những yếu tố khác như tính phổ dụng, thuận tiện khi sử dụng…thì các ứng dụng web là một lựa chọn giải pháp rất tốt và thực tế ngày càng phát triển nhất là vào thời kỳ hoàng kim của Internet như hiện nay.
Có thể đưa ra một số thuận tiện của công nghệ web như sau: Đầu tiên là việc chúng ta có thể truy cập vào chương trình và dữ liệu bất cứ lúc nào (ngày hay đêm), bất cứ nơi đâu (ở nhà, cơ quan hay bất cứ đâu có máy tính nối mạng Internet) Chúng ta cũng không phải tiến hành cài đặt bất cứ thứ gì.
Thứ hai, chúng ta có thể tiết kiệm được chi phí do không phải đầu tư một hệ thống mạnh hay yêu cầu cấu hình cao Việc cập nhật và nâng cấp là tức thì, tự động và hơn hết là đều miễn phí Ngoài ra, chúng ta không còn phải cài đặt chương trình phần mềm trên mọi máy làm việc Các ứng dụng web cũng không có nguy cơ xung đột với các ứng dụng desktop trên máy.
Thứ ba là về vấn đề an toàn an ninh Ngày nay với việc sử dụng kênh truyền SSL ngày càng rộng rãi thì việc truyền dữ liệu trên Internet đã an toàn hơn nhiều Tất nhiên không có gì trên thế giới là an toàn 100% , nhưng các chuyên gia về an ninh đã đồng ý rằng các ứng dụng web là một giải pháp an toàn hơn.
2 Xây dựng ứng dụng sử dụng công nghệ Java
Trong đề tài KC-0111, hệ thống an ninh sinh trắc BK-bioPKI được phân thành các module nhỏ và hiện được xây dựng trên nền application-based Tuy nhiên, xét thấy để có thể triển khai hệ thống một cách rộng rãi ra thực tế, em đã nghiên cứu đưa công nghệ web vào hệ thống, bước đầu là xây dựng ứng dụng người dùng module đăng ký trên nền web- based.
2.1 Phân tích yêu cầu ứng dụng
Việc đưa ra các phân tích về yêu cầu của ứng dụng giúp xác định và lựa chọn các giải pháp công nghệ dùng để xây dựng ứng dụng Ngoài các yêu cầu thông thường của một ứng dụng web như: yêu cầu về tốc độ,dễ sử dụng, hỗ trợ nhiều loại trình duyệt, ứng dụng này còn có thêm các yêu cầu riêng biệt sau:
Ứng dụng web cho phép người dùng truy cập vào một file bất kỳ trên máy local thông qua trình duyệt web.(đó là lấy file ảnh để làm một nội dung đăng ký và truy cập vào file chứa private key để ký vào dữ liệu).
Ứng dụng web cho phép ghi file dữ liệu xuống máy local.
Về đặc điểm sinh trắc, lúc đầu ứng dụng chọn giải pháp quét vân tay người dùng Song do việc giao tiếp với thiết bị quét vân tay trên nền web gặp nhiều khó khăn, chưa phổ dụng, nên em đã chọn ảnh khuôn mặt làm đặc điểm sinh trắc Ứng dụng cho phép người dùng có thể chụp ảnh trực tiếp trên trình duyệt Tức là gọi trực tiếp webcam trên máy local để chụp ảnh trên trình duyệt (không cần cài chương trình chụp ảnh trên máy local).
Ứng dụng sử dụng chữ ký số để đảm bảo an toàn cho dữ liệu trước khi truyền đi.
Do đó công nghệ được lựa chọn phải hỗ trợ tốt các vấn đề về an ninh, mã hóa, bảo mật.
Dữ liệu sau phải sau đã được ký thì mới được gửi lên server, và dữ liệu đó bao gồm dữ liệu ban đầu và chữ ký.
Ứng dụng sử dụng kênh truyền SSL (Https) để truyền dữ liệu lên server để đảm bảo an toàn an ninh.
Biểu đồ phân rã chức năng của ứng dụng
Hình 3.1 Biểu đồ phân rã chức năng của ứng dụng
2.2 Lựa chọn giải pháp công nghệ
Dựa vào các phân tích yêu cầu của ứng dụng như trên, em đã chọn Java là công nghệ nền tảng cho việc triển khai xây dựng ứng dụng của mình Java hoàn toàn đáp ứng được các yêu cầu trên của ứng dụng:
Công nghệ Applet của Java hỗ trợ rất tốt cho các hành động như: truy cập file, ghi file, truy cập các thiết bị (các thiết bị media) trên máy local từ trình duyệt Java Applet là một mẫu chương trình nhỏ nhúng vào trang web có khả năng lập trình
RA server Đóng gói dữ liệu
Kiểm tra chữ ký LRA
Báo lại và lưu vào CSDL
Lưu được Khả năng lập trình và tương tác không thua gì các ứng dụng Desktop Nói chung tất cả những gì lập trình được cho ứng dụng truyền thống đều có thể đưa vào lập trình trên Applet, gắn nó vào trang web và gửi đi Ngày nay hầu hết các trình duyệt đều hỗ trợ Applet, các trình duyệt nổi tiếng như: Internet Explorer, Firefox… Các Applet được thiết kế có kích thước thật nhỏ gọn và tải chạy được trên môi trường phân tán Internet Hơn nữa, Applet được dùng để thiết kế giao diện rất hiệu quả.
Để hỗ trợ cho việc giao tiếp và xử lý đối với các thiết bị media như video hay sound, Java hỗ trợ một framework rất mạnh đó là Java Media Framework (JMF). JMF là một API toàn diện cho phép các nhà phát triển Java xử lý media theo nhiều cách khác nhau Sử dụng JMF API, người lập trình có thể tạo các ứng dụng Java chơi, chỉnh sửa, tạo luồng hay chụp rất nhiều dạng media phổ biến hiện nay như avi, swf, spl, mp3, mov, au, mpeg, mpg,.wav, gsm, aiff, mid, jpg,… JMF cũng hỗ trợ media từ các thiết bị như microphone, camera kỹ thuật số, và hiện nay nó cũng hỗ trợ phát hiện ra được rất nhiều các thiết bị media từ nhiều nhà sản xuất khác nhau.
Platform Java hỗ trợ rất mạnh về bảo mật bao gồm sự an toàn của ngôn ngữ, mật mã, cơ sở hạ tầng khóa công khai (PKI), xác thực, bảo mật giao tiếp và điều khiển truy cập Java Crytography Architecture (JCA) là một thành phần chính hỗ trợ sự bảo mật này Nó chứa tập các API phục vụ cho các thao tác về chữ ký số (digital signature), các bản tóm lược (message digest), chứng chỉ và xác thực chứng chỉ, mã hóa (đối xứng, bất đối xứng, mã hóa luồng), sinh và quản lý khóa Việc tạo chữ ký vào dữ liệu và xác thực chữ ký theo như yêu cầu của ứng dụng được thực hiện dễ dàng nhờ kiến trúc này.
Việc sử dụng kênh truyền bảo mật SSL hiện nay được hầu hết các trình chủ web hỗ trợ, các trình chủ nổi tiếng như IIS của Micorsoft, hay Apache Ở đây, em sử dụng công nghệ Java kết hợp với trình chủ Apache Tomcat.
2.3 Triển khai sử dụng công nghệ
Phần này giới thiệu các bước thiết lập môi trường để phục vụ cho việc xây dựng ứng dụng Bao gồm:
Cài đặt Java Cài đặt gói công cụ Java Development Kit bản JDK6update13 Gói này download miễn phí tại trang chủ của Sun: http://java.sun.com/javase/downloads/index.jsp
Cài đặt server Ở đây em sử dụng trình chủ Apache Tomcat bản 6.0.
Công cụ phát triển Sử dụng IDE Eclipse và JCreatorPro.
Ngoài ra cài đặt thêm bộ framework JMF 2.1.1.e cho việc xử lý multimedia.
2.4 Một số điểm cần chú ý
THIẾT KẾ CHI TIẾT MODULE ĐĂNG KÝ TRÊN WEB
1.Thiết kế kịch bản ứng dụng Ứng dụng được xây dựng trên kịch bản chi tiết như sau:
1 Người dùng đến đăng ký điền vào mẫu đơn đăng ký (form giấy) với LRA Operator.
2 Sau khi kiểm tra thông tin người dùng đăng ký, LRA Operator tiến hành nhập thông tin từ mẫu đơn đăng ký vào trình duyệt trên máy LRA.
3 LRA Operator lấy ảnh của người dùng (một giải pháp sinh trắc) vào form đăng ký Ở đây có 2 lựa chọn:
Lấy ảnh từ một file ảnh đã có sẵn của người đến đăng ký.
Chụp ảnh trực tiếp khuôn mặt người dùng bằng webcam tại máy LRA (gọi applet chụp ảnh).
4 Dữ liệu người dùng sau đó được ghi ra 1 file xuống máy LRA.
5 LRA Operator chọn file PKCS#12 được lưu trên máy LRA để chuẩn bị cho việc kí dữ liệu.
6 Ký dữ liệu (dữ liệu đã được “băm” ra trước khi ký để đảm bảo độ dài chữ ký không lớn), đồng thời ghi dữ liệu (bao gồm thông tin người dùng và chữ ký số) ra 1 file trên máy LRA.
7 LRA Operator bẫm nút “Gửi lên RA” Khi nhận được yêu cầu gửi file, RA server thiết lập kênh truyền bảo mật SSL Khi đó dữ liệu sẽ được gửi lên server RA qua SSL.
8.Server nhận dữ liệu gửi lên, kiểm tra chữ ký của LRA Operator :
Nếu chữ ký hợp lệ, lưu dữ liệu vào cơ sở dữ liệu và gửi lại thông báo đăng ký thành công cho LRA.
Nếu chữ ký không hợp lệ, hủy bỏ dữ liệu và gửi lại thông báo đăng ký lỗi cho LRA.
Kịch bản được mô tả chi tiết theo sơ đồ:
Hình 4.1 Kịch bản đăng ký người dùng
2 Thiết kế chi tiết ứng dụng
2.1 Xây dựng form đăng ký
Trên form này, LRA Operator sẽ nhập các thông tin của người dùng từ form giấy lên Các thông tin đó bao gồm:
Thời hạn đề nghị cấp (tối đa là 5 năm tính từ ngày cấp).
Ngoài ra, trên form đăng ký còn có mục lấy ảnh người dùng Ở đây có 2 lựa chọn:
Lấy từ một file ảnh có sẵn.
Lấy bằng cách chụp ảnh trực tiếp (Tuy nhiên, phần này vẫn đang trong quá trình xây dựng).
Hình 4.3 Lấy ảnh từ camera.
Hình 4.4 Bắt sự kiện bỏ trống trường chưa nhập.
Hình 4.5 Bắt sự kiện nhập không đúng.
Hình 4.6 Form nhập đầy đủ.
2.2 Xây dựng form ký dữ liệu
Trên form này, cho phép LRA Operator chọn file chứng chỉ PKCS#12 (file chứa khóa riêng để ký dữ liệu) do CA cấp và được lưu ở máy LRA Cụ thể, form này có những nhiệm vụ:
Đọc lại file thông tin người dùng vừa ghi ra ở form trước và hiển thị cho người dùng review.
Chọn file PKCS#12 để ký dữ liệu.
Sau khi có file PKCS#12, tiến hành lấy private key, sử dụng hàm readprvKey
Chuyển file thông tin sang mảng byte
Tạo bản tin tóm lược cho file thông tin để chuẩn bị ký:
Ký vào bản tin tóm lược vừa tạo. public static PrivateKey readprvKey(String pathname,char[] passphrase)throws
FileNotFoundException,KeyStoreException,IOException,NoSuchAlgorithmException,Certi ficateException,UnrecoverableKeyException{
KeyStore ks=KeyStore.getInstance("PKCS12"); ks.load(new FileInputStream(pathname),passphrase);
Vector vctAlias=new Vector(); while(en.hasMoreElements()){ vctAlias.add(en.nextElement());}
String[] aliases=(String[])(vctAlias.toArray(new String[0])); for(int i=0;i