Một số mô hình triển khai

Một phần của tài liệu Mật mã khóa công khai và ứng dụng (Trang 63)

3. Hạ tầng khóa công kha EJBCA

3.4. Một số mô hình triển khai

Tùy quy mô sử dụng của từng tổ chức, có thể triển khai EJBCA theo các mô hình khác nhau. Từ mô hình đơn giản với chi phí thấp bao gồm chỉ 1 node server cho tới mô hình phức hợp nhiều server riêng lẻ với chi phí cao hơn.

3.4.1. Mô hình triển khai EJBCA đơn node

Hình 16:Mô hình triển khai EJBCA đơn node

Với mô hình này có thể triển khai toàn bộ các thành phần, chức năng của EJBCA trên một node server. Trong mô hình này server EJBCA mang cả vai trò của CA server và RA server.

3.4.2. Off-line Root CA and multiple Sub CAs

Đây là một mô hình an toàn và phổ biến hiện nay, các RootCA chỉ làm nhiệm vụ cấp chứng thƣ cho các SubCAs sau đó sẽ đƣợc cách li khỏi môi trƣờng mạng (off-line) của hệ thống. Các SubCAs đã đƣợc cấp chứng thƣ bởi RootCA nên có thể thực hiện cấp chứng thƣ cho các thực thể cuối tham gia vào hệ thống.

64

Hình 17:Mô hình RootCA ofline và các SubCAs

3.5. Cấp phát chứng thư trên EJBCA

Tầng web của EJBCA bao gồm nhiều thành phần hỗ trợ máy khách tƣơng tác với hệ thống theo nhiều cách khác nhau nhƣ giao diện web (Web GUI), giao diện dịch vụ(webservice)… Thành phần giao diện web hỗ trợ sẵn công cụ giao diện cho phép quản trị viên sử dụng trình duyệt để tƣơng tác với hệ thống. Hai thành phần giao diện web tƣơng tác chính bao gồm: Administration GUI và Public Web hỗ trợ hầu hết các chức năng cơ bản cho công tác quản trị PKI.

Web GUI sử dụng cơ chế xác thực chứng thƣ trên máy khách. Vì vậy, ngƣời dùng cần có chứng thƣ đƣợc cấp bởi hệ thống để truy cập Web GUI. Luận văn sử dụng ba nhóm chức năng chính : Enroll, CA Functions và RA functions.

Web GUI

Public Web Administration GUI

Enroll Retrieve Inspect CA Functions RA Functions Supervision Functions System Functions

Hình 18: Biểu đồ phân rã chức năng EJBCA Web GUI

65

EJBCA hỗ phân quyền cho từng nhóm cán bộ quản trị đƣợc phép truy cập các chức năng. Tùy theo quyền của từng nhóm quản trị sẽ đƣợc phép truy cập các nhóm chức năng khác nhau. User Supper Admin có quyền truy cập toàn bộ các chức năng trong Administrations GUI.

Administration GUI gồm bốn nhóm chức năng chính:

 CA Functions: Nhóm các chức năng phục vụ cấu hình CA

 RA Functions: Nhóm các chức năng phục vụ cấu hình End Entity

 Supervisor Functions: Nhóm các chức năng phục vụ giám sát

 System Functions: Nhóm chức năng phục vụ một số nghiệp vụ quản trị và cấu hình tùy chọn hệ thống, phân quyền truy cập chức năng cho ngƣời quản trị hệ thống.

3.5.2. Thành phần Public Web

Public web gồm 5 nhóm chức năng chính:

 Enroll: cung cấp chức năng cho End Entity thực hiện tạo các chứng thƣ theo các loại khácnhau.

 Register: cho phép ngƣời dùng gửi yêu cầu đăng ký lên hệ thống

 Retrieve: cho phép ngƣời dùng tra cứu và download các chứng thƣ của CA.

 Inspect: hỗ trợ ngƣời dùng kiểm tra trạng thái chứng thƣ, hoặc yêu cầu chứng thƣ (.csr)

 Miscellaneous: Liên kết đến trang administration hoặc tài liệu hệ thống.

3.5.3. Luồng tạo thực thể cuối.

Quá trình tạo và cấp phát chứng thƣ gồm bốn bƣớc chính bao gồm: tạo profile chứng thƣ, tạo trung tâm chứng thƣ (CA), tạo profile thực thể cuối, tạo thực thể cuối. Luồng thực hiện đƣợc biểu diễn qua hình bên dƣới.

Các Certificate Profile quy định các thông tin sử dụng trong chứng thƣ của CA nhƣ độ dài khóa, thuật toán ký áp dụng, các trƣờng thông tin mở rộng theo chuẩn X509 v3... , tùy theo nhu cầu sử dụng của từng đối tƣợng ngƣời dùng ta sẽ tạo sẵn các profile khác nhau cho các nhóm đối tƣợng này. CA cấp chứng thƣ cho thực thể cuối. Profile thực thể cuối quy định các thông tin sử dụng trong thực thể cuối. Cuối

66

cùng, thực thể cuối là ngƣời dùng, thiết bị, trang web… sử dụng chứng thƣ trong hệ thống.

Hình 19: Luồng tạo thực thể cuối, cấp chứng thư

4. Kết luận chương

Nội dung chƣơng này là về PKI và mã nguồn mở EJBCA. Kết quả cụ thể bao gồm: tìm hiểu về chứng thƣ số, chuẩn chứng thƣ số X.509, nghiên cứu kiến trúc của hạ tầng khóa công khai và nguyên lý hoạt động của nó, nghiên cứu hạ tầng khóa công khai mã nguồn mở cụ thể là EJBCA, đồng thời đánh giá khả năng áp dụng mã nguồn mở này.

67

Chương 3: Ứng dụng

1. Bài toán xác thực vận đơn Viettel Post

Tổng công ty Bƣu Chính Viettel (Viettel Post - VTP) là thành viên trực thuộc Tập Đoàn Viễn Thông Quân Đội (Viettel), chuyên cung cấp các dịch vụ vận chuyển bƣu phẩm (hàng hóa) theo yêu cầu (vận đơn). Với mạng lƣới Bƣu cục trải khắp cả nƣớc, VTP là một trong những nhà cung cấp dịch vụ vận chuyển hàng đầu Việt Nam.

Hiện tại, Viettel Post đã có hệ thống tiếp nhận và quản lý vận đơn từ khách hàng tại địa chỉ http://www.viettelpost.com.vn. Hệ thống cho phép bất kỳ ngƣời dùng nào cũng có thể đăng ký tài khoản và đăng nhập vào hệ thống để thực hiện tạo vận đơn. Tuy nhiên, hệ thống chƣa có cơ chế xác thực khách hàng và vận đơn. Việc xác nhận này đang phải thƣc hiện thủ công nhờ đội ngũ nhân viên chăm sóc khách hàng thực hiện lọc vận đơn và gọi điện xác nhận với khách hàng.

Với số lƣợng lớn vận đơn tiếp nhận mỗi ngày (khoảng hơn 20.000 vận đơn) chi phí cho công tác xác nhận thông tin vận đơn là không hề nhỏ. Ngoài ra, việc phải xác thực các vận đơn có thông tin không chính xác có thể làm chậm quá trình tiếp nhận các vận đơn có nhu cầu thực của khách hàng làm ảnh hƣởng đến chất lƣợng dịch vụ và thƣơng hiệu của Viettel Post.

Ngay cả khi nhân viên chăm sóc khách hàng đã xác nhận với khách hàng qua điện thoại, thì tính pháp lý của vận đơn cũng không đƣợc đảm bảo, ví dụ trƣờng hợp có kẻ xấu dùng các thông tin không chính xác để đăng ký vận đơn nhằm mục đích quấy rối, phá hoại…

Sau bƣớc xác thực vận đơn, Viettel Post sẽ cử nhân viên trực tiếp làm việc cùng khách hàng để kiểm kê và tiếp nhận bƣu phẩm trong vận đơn. Hiện tại, công việc này vẫn phải thực hiện thủ công với chữ ký bằng tay trên phiếu giao vận, ngay cả với những khách hàng thân thiết, có độ tin cậy cao (nhóm khách hàng mang lại 70% doanh thu của VTP). Ngoài ra, việc lƣu trữ bản ký giấy trên môi trƣờng vật lý tại khắp các bƣu cục trên toàn quốc không những tốn chi phí mà còn có nhiều rủi ro từ các yếu tố môi trƣờng khiến cho thời gian và số lƣợng văn bản có thể lƣu trữ hạn chế. Trƣờng hợp khách hàng khiếu nại cần xác minh lại vận đơn cũng mất nhiều thời gian và đôi khi gặp phải khó khăn do yếu tố địa lý.

Giải pháp đƣa ra để giải quyết các vấn đề bất cập nêu trên là tích hợp chữ ký số vào hệ thống hiện tại của Viettel Post, nhằm phục vụ xác thực khách hàng và vận

68

đơn. Đồng thời, công nghệ thông tin hóa tối đa quy trình tiếp nhận và xử lý vận đơn nhằm nâng cao hiệu quả kinh doanh.

2. Kiến trúc hệ thống I I Vip Customer VTP Employer VTP RA Admin Internet Signature Service EJBCA DataBase VTP HTTPS HTTPS VTP Portal

OCSP Responder External RA Interface

Sync Account Service

Hình 20:Đề xuất mô hình triển khai hạ tầng khóa công khai tại Viettel Post

Một số yêu cầu đặt ra cho quá trình tích hợp chữ ký số vào hệ thống hiện tại của Viettel Post là cần kế thừa tối đa những chức năng, tiện ích của hệ thống thông tin hiện tại, hạn chế những thay đổi trên hệ thống nhằm giảm thiểu chi phí nâng cấp và những ảnh hƣởng lên hệ thống, công tác triển khai cần đơn giản. Luận văn đề xuất kiến trúc tích hợp chữ ký số nhƣ một phân hệ, hệ thống độc lập, với khả năng tích hợp dựa trên nguyên lý “cắm và chạy” (plug and play) để tăng khả năng mở rộng khi có nhu cầu triển khai cho một hệ thống thông tin tƣơng tự nhƣ hệ thống của Viettel Post.

2.1. Thành phần hệ thống.

 Thành phần EJBCA: là máy chủ cài đặt mã nguồn mở EJBCA, đóng vai trò làm Root CA của Viettel Post.

69

 Thành phần OCSP Responder: là máy chủ triển khai thành phần OCSP của EJBCA giúp các client kiểm tra chứng thƣ online.

 Thành phần giao diện đăng ký chứng thƣ (External RA Interface): là máy chủ cài đặt ứng dụng web cho phép cán bộ quản trị tạo ra chứng thƣ cho khách hàng và nhân viên của Viettel Post.

 Dịch vụ đồng bộ tài khoản ngƣời dùng (Sync Account Service): là webservice đồng bộ thông tin chứng thƣ của ngƣời dùng sang cơ sở dữ liệu của hệ thống quản trị khách hàng của Viettel Post.

 Dịch vụ ký vận đơn (Sign Service): là webservice tiếp nhận và xác thực yêu cầu vận đơn từ khách hàng, xử lý yêu cầu ký và xác thực vận đơn từ khách hàng và nhân viên nhận vận đơn Viettel post.

 Thành phần client: bao gồm các ứng dụng cho phép khách hàng tạo yêu cầu vận đơn, ký giao bƣu phẩm trong vận đơn. Ứng dụng client bao gồm các ứng dụng trên điện thoại di động (smart phone), ứng dụng windows hoặc ứng dụng web.

2.2. Các tác nhân tham gia hệ thống

 Khách hàng (VIP Customer): bao gồm khách hàng “thân thiết” đã đƣợc cấp chứng thƣ trên hệ thống CA của Viettel Post và có khóa cá nhân cho các giao dịch cần ký số trên hệ thống.

 Nhân viên nhận vận đơn (VTP Employer, hay còn gọi là bƣu tá): là nhân viên Viettel Post trực tiếp nhận và kiểm kê bƣu phẩm trong vận đơn, đƣợc cấp chứng thƣ và khóa cá nhân phục vụ cho các giao dịch ký xác nhận vận đơn cùng khách hàng.

 Nhân viên cấp chứng thƣ (VTP RA Admin): là cán bộ Viettel Post đƣợc cấp quyền truy cập giao diện đăng ký chứng thƣ, để yêu cầu CA cấp chứng thƣ cho ngƣời dùng.

70

Hình 21:Biểu đồ use chính trong hệ thống

2.3. Luồng ký trên hệ thống 2.3.1. Ký trên sim CA 2.3.1. Ký trên sim CA

Chữ ký số trên sim CA là giải pháp sử dụng thiết bị di động có gắn SIM CA (smart phone, máy tính bảng…) nhƣ một thiết bị để ký (“bút ký”). Khóa bí mật đƣợc sinh và lƣu trữ trên SIM (đảm bảo an toàn). Luồng tuần tự quá trình ký số thực hiện trên SIM CA nhƣ sau:

Đầu tiên, ngƣời dùng gửi yêu cầu ký lên Signature Service từ ứng dụng client trên thiết bị di động. Signature Service nhận yêu cầu, sẽ tiến hành kiểm tra tính hợp lệ của yêu cầu dựa trên chứng thƣ và chữ ký gửi kèm yêu cầu. Khi xác nhận yêu cầu hợp lệ, máy chủ này sẽ tiến hành băm dữ liệu ký (tệp PDF) và trả về kết quả băm cho ứng dụng client. Ứng dụng client nhận đƣợc bản băm sẽ ký lên bản băm và gửi trả cho máy chủ. Máy chủ thực kiểm tra và đính chữ ký vào dữ liệu cần ký rồi trả về kết quả cho ứng dụng client.

71 Client App (Iphone, Ipad)

Signature Service MSSP SIM CA

Kiểm tra điều kiện ký và băm dữ liệu

Kiểm tra dữ liệu ký và gửi dữ liệu yêu cầu ký

Thực hiện ký tại SIM

Ghi thao tác ký

Kiểm tra dữ liệu ký, đính dữ liệu ký vào dữ liệu ban đầu

Thông báo kết quả cho người dùng Yêu cầu ký

Gửi bản băm dữ liệu

Gửi bản băm cần ký xuống SIM

Trả về dữ liệu ký

Dữ liệu ký

Kết quả ký

Hình 22: Luồng ký sử dụng SIM CA

2.3.2. Ký trên thiết bị ký

Chữ ký số trên thiết bị ký là giải pháp sử dụng thiết bị có cài sẵn ứng dụng để lƣu trữ khóa bí mật một cách an toàn để thực hiện ký. Quá trình ký sử dụng thiết bị này đƣợc mô tả đơn giản nhƣ sau:

Khi phát sinh nhu cầu ký, thiết bị ký gửi yêu cầu ký lên máy chủ dịch vụ ký. Máy chủ tiến hành kiểm tra tính hợp lệ của yêu cầu ký, sau đó băm dữ liệu cần ký và gửi về bản băm cho thiết bị ký. Thiết bị ký thực hiện ký lên bản băm này và gửi chữ ký cho máy chủ. Máy chủ tiến hành đính chữ ký vào dữ liệu ký ban đầu, và trả về kết quả của quá trình ký cho thiết bị ký.

72

Thiết bị ký Signature Service

Yêu cầu ký

Gửi chữ ký lên server

Kiểm tra điều kiện ký dữ liệu, thực hiện băm dữ liệu ký.

Đính chữ ký vào dữ liệu Ký lên bản băm

Trả về bản băm dữ liệu ký

Trả về bản băm dữ liệu ký

Hình 23: Luồng ký trên thiết bị ký

2.3.3. Ký trên USB

Các loại “bút ký” nhƣ USB token, USB bluetooth đƣợc dùng phổ biến hiện nay bởi các nhà cung cấp dịch vụ chữ ký số. Trong giải pháp này, khóa bí mật dùng để ký đƣợc lƣu trữ an toàn trong USB. Các nhà sản xuất USB cung cấp sẵn các API cho phép ứng dụng client gọi tới trong quá trình ký.

Quá trình ký USB đƣợc biểu diễn nhƣ hình 24. Cụ thể, khi ngƣời dùng có nhu cầu ký họ sẽ thực hiện kết nối usb với máy tính cài ứng dụng client. Ứng dụng client gửi yêu cầu ký lên máy chủ dịch vụ ký. Máy chủ tiến hành kiểm tra tính hợp lệ của yêu cầu, sau đó tiến hành băm dữ liệu ký và gửi trả bản băm cho ứng dụng client. Ứng dụng client thực hiện ký lên dữ liệu băm bằng cách gọi API ký của USB với tham số truyền vào là bản băm của dữ liệu cần ký. USB thực hiện ký và trả về

73

kết quả cho ứng dụng client. Ứng dụng client chuyển tiếp chữ ký cho máy chủ để máy chủ thực hiện đính chữ ký vào tệp dữ liệu ban đầu. Kết quả quá trình ký đƣợc máy chủ gửi về cho ứng dụng client.

USB App Client Signature Service

Yêu cầu ký

Gọi API ký

Gửi chữ ký

Kiểm tra dữ liệu ký, băm dữ liệu

Đính chữ ký vào dữ liệu ký Ký lên dữ liệu băm

Trả về chữ ký

Trả về bản băm dữ liệu

Trả về kết quả ký

Hình 24:Luồng ký sử dụng USB

3. Cài đặt thử nghiệm ứng dụng

Kiến trúc hệ thống ký số đƣa ra ở mục trên là một hệ thống lớn. Chính vì vậy quá trình tích hợp, triển khai đầy đủ và hoàn thiện cần có nguồn lực phát triển không nhỏ. Luận văn chỉ giới thiệu một số cài đặt cơ bản của quá trình ký số nhằm

74

thể hiện đƣợc tính khả thi của kiến trúc đã đƣa ra, bao gồm: cài đặt EJBCA thể hiện các thành phần Trung tâm chứng thƣ, Trung tâm đăng ký, OCSP và cài đặt ứng dụng ký và xác thực thể hiện máy chủ dịch vụ ký.

3.1. Cài đặt Root CA EJBCA.

Hình 25:Thông tin chứng thư Root CA

Chi tiết quá trình cài đặt Root CA EJBCA đƣợc mô tả ở phụ lục 1. Sau khi cài đặt thành công Root CA ta thực hiện khai báo các cấu hình cho Root CA, và các profile cho đối tƣợng khách hàng và nhân viên Viettel Post trên trang quản trị của EJBCA. Chứng thƣ của Root CA đƣợc công bố cho tất cả các thành phần trong hệ thống, và đƣợc tin tƣởng trong hệ thống. CA và các thực thể cuối trong hệ thống đều sử dụng các khóa có kích thƣớc 2048 bit, và chứng thƣ đƣợc khai báo theo chuẩn X.503 v.3.

Quản trị hệ thống thực hiện khai báo thực thể cuối với profile tƣơng ứng cho từng loại ngƣời dùng (khách hàng, nhân viên). Profile khai báo bổ sung thêm một số thông tin mở rộng phục vụ cho quá trình đồng bộ thông tin ngƣời dùng với hệ thống cổng thông tin hiện tại của Viettel Post. Sau khi khai báo thông tin ngƣời dùng, CA sẽ sinh chứng thƣ cho ngƣời dùng khi có yêu cầu sinh chứng thƣ qua giao diện web public của EJBCA (hình 27,28 – ví dụ về chứng thƣ của ngƣời dùng). Khóa bí mật của ngƣời dùng có thể do ngƣời dùng tự sinh bằng các công cụ sinh khóa RSA hoặc do CA sinh ngẫu nhiên. Để đơn giản, quá trình cài đặt thử nghiệm sẽ thực hiện sinh khóa bí mật cho ngƣời dùng trên CA (hình 26 – ví dụ về khóa bí

75

mật đƣợc sinh bởi hệ thống). Luồng màn hình thực hiện cấu hình thông tin CA, và ngƣời dùng đƣợc biểu diễn chi tiết trong phụ lục 2 của luận văn.

Hình 26:Ví dụ khóa bí mật ở dạng rõ(encode Base64)

Một phần của tài liệu Mật mã khóa công khai và ứng dụng (Trang 63)

Tải bản đầy đủ (PDF)

(91 trang)