CHƢƠNG 2 : CƠ SỞ HẠ TẦNG KHÓA CÔNG KHAI
3.3. Xây dựng ứng dụng mô hình sử dụng dịch vụ chứng thực chữ ký số ứng
3.3.1 Bài toán số 1: Xây dựng chƣơng trình quản lý chứng thƣ số
Khi ngƣời dùng có yêu cầu cấp phát chứng thƣ số, Root CA sẽ cấp cho họ một cặp khóa bí mật/ công khai. Root CA sẽ quản lý tất cả các chứng thƣ số đã cấp với các thông tin về chủ thuê bao, tổ chức cấp, cặp khóa bí mật/công khai, thời hạn có hiệu lực và tình trạng của chứng thƣ số. Root CA cần lƣu trữ, quản lý cập nhập thông tin các chứng thƣ số một cách thƣờng xuyên mỗi khi có sự thay đổi xảy ra. Việc lƣu trữ và quản lý các thông tin này để phục vụ cho việc cung cấp thông tin chính xác về các chứng thƣ số cho các đối tƣợng quan tâm, có thể tìm kiếm nhanh chóng thông tin theo các dấu hiệu nhận biết khác nhau.
Để giải quyết vấn đề này cần xây dựng cơ sở dữ liệu lƣu trữ các chứng thƣ số và chƣơng trình quản lý chứng thƣ số.
Đối với cơ sở dữ liệu cần lƣu trữ các thông tin:
Dựa theo luật giao dịch điện tử của quốc hội nƣớc Cộng hòa xã hội chủ nghĩa Việt Nam số 51/2005/QH11 ngày 29/11/2005 có các thông tin liên quan đến các đối tƣợng nhƣ sau:
- Nội dung ghi trên chứng thƣ số:
1. Tên của tổ chức cung cấp dịch vụ chứng thực chữ ký số. 2. Tên của thuê bao.
3. Số hiệu của chứng thƣ số.
4. Thời hạn có hiệu lực của chứng thƣ số. 5. Khoá công khai của thuê bao.
6. Chữ ký số của tổ chức cung cấp dịch vụ chứng thực chữ ký số. 7. Các hạn chế về mục đích, phạm vi sử dụng của chứng thƣ số.
8. Các hạn chế về trách nhiệm pháp lý của tổ chức cung cấp dịch vụ chứng thực chữ ký số.
9. Các nội dung cần thiết khác theo quy định của Bộ Bƣu chính, Viễn thông.
- Nội dung liên quan chứng thƣ số:
1. Xác nhận của thuê bao về tính chính xác Công khai chứng thƣ số. 2. Gia hạn chứng thƣ số: 30 ngày trƣớc khi hết hạn
3. Tạm dừng chứng thƣ số: Thời gian bắt đầu, kết thúc tạm dừng, lý do dừng
- Thông tin tổ chức cấp chứng thƣ số: 1. Tên tổ chức
3. Địa chỉ tổ chức
4. Chữ ký số của tổ chức
5. Thời hạn chữ ký số (không quá 10 năm, gia hạn không quá 1 năm)
- Thông tin thuê bao sử dụng chứng thƣ số: + Thuê bao cá nhân
1. Họ tên
2. Ngày tháng năm sinh 3. Nơi sinh
4. Số chứng minh thƣ nhân dân 5. Số Hộ chiếu
6. Hộ khẩu thƣờng trú 7. Điện thoại liên hệ 8. Địa chỉ liên hệ. + Thuê bao tổ chức
1. Tên tổ chức 2. Địa chỉ
3. Điện thoại liên hệ
4. Số quyết định thành lập hoặc chứng nhận đăng ký kinh doanh của tổ chức.
5. Tên ngƣời đại diện đƣợc ủy quyền
6. Số chứng minh thƣ nhân dân của ngƣời đại diện đƣợc ủy quyền
Đối với chƣơng trình cần đƣợc xây dựng để thực hiện các công việc sau:
- Cho phép cấp phát mới chứng thƣ số mỗi khi có yêu cầu. - Cập nhật các thông tin liên quan mỗi khi có sự thay đổi.
- Cập nhật và thông báo trạng thái tạm dừng của chứng thƣ số khi có quyết định tạm dừng.
- Cập nhật và thông báo trạng thái thu hồi của chứng thƣ số khi có quyết định thu hồi.
- Có thể tìm kiếm đƣợc chứng thƣ số thông qua các trƣờng thông tin liên quan khi có nhu cầu.
- Quản lý thông tin của các thuê bao và các nhà cung cấp chứng thƣ số.
Thiết kế hệ thống về xử lý
- Sơ đồ phân cấp chức năng:
Hình 3.2 Sơ đồ phân cấp chức năng hệ thống quản lý chứng thư số
-Biểu đồ luồng dữ liệu mức ngữ cảnh:
Hình 3.3 Biểu đồ luồng dữ liệu mức ngữ cảnh
Thiết kế hệ thống về dữ liệu
- Sử dụng hệ quản trị cơ sở dữ liệu MySQL.
- Xây dựng cơ sở dữ liệu quản lý chứng thƣ số bao gồm các bảng sau: 1. Bảng chungthuso: Lƣu thông tin các chứng thƣ số
SoHieuCTS Số hiệu chứng thƣ số Char(20) LoaiTB Loại thuê bao (cá nhân:0, tổ
chức:1)
Bit
MaTB Mã thuê bao Varchar(10)
TuNgay Ngày bắt đầu Date
DenNgay Ngày kết thúc Date
n Modulo Varchar(50)
b Khóa công khai Varchar(50)
MaTC Mã tổ chức cấp chứng thƣ số Varchar(10) MucDich_PhamVi Mục đích, phạm vi sử dụng chứng thƣ số Varchar(200) XacNhan Tình trạng xác nhận (0:chƣa xác nhận; 1: đã xác nhận) Bit TamDung Tình trạng tạm dừng (0: không tạm dừng; 1: đang tạm dừng) Bit
ThuHoi Tình trạng thu hồi (0: Không thu hồi; 1: Đã thu hồi)
Bit
2. Bảng chungthuso_tamdung: Lƣu thông tin các chứng thƣ số bị tạm dừng
Tên cột Mô tả Kiểu dữ liệu
SoHieuCTS Số hiệu chứng thƣ số Char(20)
DenNgay Ngày kết thúc Date
LyDo Lý do tạm dừng Varchar(200)
3. Bảng chungthuso_thuhoi: Lƣu thông tin các chứng thƣ số bị thu hồi
Tên cột Mô tả Kiểu dữ liệu
SoHieuCTS Số hiệu chứng thƣ số Char(20) LoaiTB Loại thuê bao (cá nhân:0, tổ
chức:1)
Bit
MaTB Mã thuê bao Varchar(10)
TuNgay Ngày bắt đầu Date
DenNgay Ngày kết thúc Date
n Modulo Varchar(50)
b Khóa công khai Varchar(50)
MaTC Mã tổ chức cấp chứng thƣ số Varchar(10) MucDich_PhamVi Mục đích, phạm vi sử dụng
chứng thƣ số
Varchar(200)
NgayThuHoi Ngày thu hồi Date
LyDoThuHoi Lý do thu hồi Varchar(2000)
4. Bảng tochuc_capcts: Lƣu thông tin tổ chức cấp chứng thƣ số
Tên cột Mô tả Kiểu dữ liệu
TenTC Tên tổ chức cấp chứng thƣ số Varchar(200) NgayThanhLap Ngày thành lập tổ chức Date
DiaChi Địa chỉ tổ chức Varchar(200)
n Modulo Varchar(100)
b Khóa công khai Varchar(100)
ThoiHanCKS Thời hạn sử dụng chữ ký số Date 5. Bảng thuebao_canhan: Lƣu thông tin về thuê bao cá nhân
Tên cột Mô tả Kiểu dữ liệu
MaTB Mã thuê bao cá nhân Varchar(10) HoTen Họ tên thuê bao cá nhân Varchar(50) NgaySinh Ngày sinh của thuê bao Date
NoiSinh Nơi sinh của thuê bao Varchar(100) SoCMTND Số chứng minh thƣ nhân dân Varchar(10)
SoHoChieu Số hộ chiếu Varchar(10)
HoKhauTT Hộ khẩu thƣờng trú Varchar(200) DienThoai Điện thoại của thuê bao Varchar(15) DiaChi Địa chỉ của thuê bao Varchar(200)
6. Bảng Thuebao_tochuc: Lƣu thông tin về thuê bao tổ chức
Tên cột Mô tả Kiểu dữ liệu
Ten_TCTB Tên tổ chức thuê bao Varchar(200) SoQDTL Số quyết định thành lập Varchar(20)
DiaChi Địa chỉ Varchar(200)
DienThoai Điện thoại Varchar(15)
TenNguoiDaiDien Tên ngƣời đại diện Varchar(50) SoCMTND Số chứng minh thƣ nhân dân Varchar(10)
Hình 3.4 Sơ đồ quan hệ giữa các bảng
Thiết kế chƣơng trình
Chƣơng trình đƣợc viết bằng ngôn ngữ lập trình Visual Basic.Net (phiên bản 2008), kết nối với cơ sở dữ liệu MySQL truy cập cơ sở dữ liệu ở trên.
- Chƣơng trình bao gồm các module và class sau:
+ Module Cơ sở dữ liệu: Bao gồm các hàm thao tác với cơ sở dữ liệu nhƣ kết nối, nhập xuất, tìm kiếm, chỉnh sửa dữ liệu…
+ Module xử lý: Bao gồm các hàm xử lý chung trong chƣơng trình. + Class chứng thƣ số.
+ Class chứng thƣ số thu hồi. + Class thuê bao cá nhân. + Class thuê bao tổ chức.
+ Class tổ chức cấp chứng thƣ số. - Chƣơng trình bao gồm các form:
+ frmLogin: Lựa chọn cơ sở dữ liệu + frmMain: Form chính
+ frmCapPhatCTS: Thêm chứng thƣ số
+ frmThemCTS_TamDung: Thêm chứng thƣ số tạm dừng + frmThuHoiCTS: Thu hồi chứng thƣ số
+ frmThemTC_CapCTS: Thêm tổ chức cấp chứng thƣ số + frmThemThueBao: Thêm thuê bao
+ frmCapNhapCTS: Cập nhật chứng thƣ số
+ frmCapNhapTC_CapCTS: Cập nhật tổ chức cấp chứng thƣ số + frmCapNhapThueBao: Cập nhật thuê bao
+ frmXoaCTS_TamDung: Xóa bỏ tạm dừng + frmTimKiemCTS: Tìm kiếm chứng thƣ số
+ frmTimKiemTC_CapCTS: Tiềm kiếm tổ chức cấp chứng thƣ số +frmTimKiemThueBao: Tìm kiếm thuê bao
- Một số giao diện chƣơng trình:
Hình 3.6 Thêm mới chứng thư số
Hình 3.8 Thêm thuê bao
Hình 3.9 Thêm tổ chức cấp chứng thư số
3.3.2. Bài toán số 2: Xây dựng WebSite tra cứu chứng thƣ số 3.3.2.1. Phân tích bài toán 3.3.2.1. Phân tích bài toán
Mục đích của việc quản lý chứng thƣ số là để phục vụ việc cung cấp thông tin về chứng thƣ số cho ngƣời dùng có nhu cầu. Cùng với việc quản lý thì Root CA sẽ phải xây dựng một website cho phép ngƣời dùng tra cứu thông tin
chứng thƣ số. Khi nhận đƣợc một chữ ký số của X ngƣời dùng cần xác thực nguồn gốc của chữ ký đó xem liệu có phải là chữ ký số của X thật hay không? Liệu rằng khóa công khai này còn sử dụng hợp pháp hay không (có đảm bảo tính pháp lý hay không)? Để làm điều này ngƣời dùng cần biết khóa công khai của X và tình trạng sử dụng chứng thƣ số của X (tình trạng xác nhận, tạm dừng, thu hồi). Website tra cứu chứng thƣ số sẽ đáp ứng nhu cầu sử dụng chữ ký số của ngƣời sử dụng.
Hình 3.10 Mô hình sử dụng website tra cứu chứng thư số
Website này sẽ thao tác với cơ sở dữ liệu chứng thƣ số đƣợc xây dựng ở bài toán 1 và thực hiện các yêu cầu sau:
- Cho phép ngƣời dùng tìm kiếm thông tin chứng thƣ số.
- Cho phép ngƣời dùng xem tình trạng xác nhận, tạm dừng, thu hồi của chứng thƣ số cần tìm.
- Thông báo danh sách các chứng thƣ số đang chờ xác nhận. - Thông báo danh sách các chứng thƣ số bị tạm dừng
- Thông báo danh sách các chứng thƣ số bị thu hồi. - Thông báo danh sách các nhà cung cấp chứng thƣ số.
3.3.2.2 Thiết kế hệ thống
Thiết kế hệ thống về xử lý
Hình 3.11 Sơ đồ chức năng hệ thống tra cứu chứng thư số
- Biểu đồ ngữ cảnh luồng dữ liệu của hệ thống:
Hình 3.12 Biểu đồ luồng dữ liệu mức ngữ cảnh của hệ thống
Thiết kế hệ thống về dữ liệu
Cơ sở dữ liệu để tra cứu là cơ sở dữ liệu quản lý chứng thƣ số trong bài toán số 1.
Thiết kế chƣơng trình
Website đƣợc viết bằng ngôn ngữ lập trình máy chủ PHP và ngôn ngữ lập trình Javascript, HTML thao tác với hệ quản trị cơ sở dữ liệu MySQL (cơ sở dữ liệu Quản lý chứng thƣ số ở bài toán số 1). Website bao gồm các chức năng:
+ Tra cứu thông tin chứng thƣ số.
+ Thông tin chứng thƣ số đang chờ xác nhận. + Thông tin chứng thƣ số tạm dừng.
+ Thông tin nhà cung cấp chứng thƣ số. -Một số giao diện của chƣơng trình:
Hình 3.13 Giao diện
chính
Hình 3.15 Giao diện chứng thư số tạm dừng
Hình 3.17 Giao diện chứng thư số chờ xác nhận
Hình 3.18 Giao diện nhà cung cấp chứng thư số
3.3.3. Bài toán số 3: Xây dựng website ứng dụng dịch vụ chứng thực chữ ký số trong giao dịch điện tử của lĩnh vực tài chính ngân hàng số trong giao dịch điện tử của lĩnh vực tài chính ngân hàng
Có một số hệ thống phƣơng tiện điện tử có thể ứng dụng dịch vụ chứng thực chữ ký số trong giao dịch điện tử của các ngân hàng nhƣ hệ thống ATM, email, tin nhắn SMS… Tuy nhiên trong luận văn này em chọn hệ thống website để xây dựng ứng dụng cho ngân hàng. Bởi vì hệ thống này có nhiều ƣu điểm nổi bật hơn : Là công cụ tiện lợi và dễ sử dụng đối với ngƣời dùng ngƣời dùng, khả năng phát triển ứng dụng cao và đang đƣợc sử dụng phổ biến.
Xây dựng website ứng dụng dịch vụ chứng thực chữ ký số trong giao dịch điện tử của lĩnh vực tài chính ngân hàng nhằm mục đích cho phép các khách thực hiện giao dịch điện tử sử dụng chữ ký số để xác thực nguồn gốc thông điệp. Website sẽ thực hiện các công việc sau:
+ Yêu cầu ngƣời dùng lựa chọn giao dịch cần thực hiện và nhập khóa bí mật của mình để chƣơng trình tạo thông điệp và chữ ký số trên máy client. Sau đó gửi thông tin về web server của ngân hàng. Việc tạo chữ ký đƣợc thực hiện trên máy client để tránh nguy cơ lộ khóa bí mật trên đƣờng truyền.
+ Web server của ngân hàng khi nhận đƣợc thông tin, trƣớc hết sẽ hỏi web server của tổ chức chứng thực gốc (Root CA) (trang web đƣợc xây dựng ở bài toán số 2) về thông tin chứng thƣ số của khách hàng xem chứng thƣ có hợp lệ không? (đã đƣợc xác nhận chƣa? Có bị tạm dừng hay không? Có bị thu hồi hay chƣa?). Nếu nhƣ hợp lệ, sẽ hỏi khóa công khai của khách hàng và thực hiện công việc xác thực. Nếu nhƣ kết quả xác thực là chính xác thì chƣơng trình thực hiện các nghiệp vụ ngân hàng tƣơng ứng của giao dịch đó.
Dựa theo các phân tích trên em xây dựng mô hình sử dụng website ứng dụng dịch vụ chứng thực chữ ký số trong giao dịch điện tử của lĩnh vực tài chính ngân hàn nhƣ sau:
Hình 3.19 Mô hình sử dụng website của ngân hàng
- Website cho phép khách hàng thực hiện các giao dịch trong lĩnh vực tài chính ngân hàng nhƣ: Kiểm tra tài khoản, chuyển khoản, thanh toán hóa đơn, in sao kê tài khoản, ủy nhiệm thu, ủy nhiệm chi, thay đổi hạn mức tín dụng…
3.3.3.2. Thiết kế hệ thống
Thiết kế hệ thống về xử lý
Mô tả các chức năng của hệ thống
Nhƣ mô tả ở trên hệ thống sẽ thực hiện 3 công việc chính: + Tạo chữ ký số
+ Kiểm tra chữ ký số
+ Thực hiện nghiệp vụ ngân hàng
- Tạo chữ ký: Chƣơng trình yêu cầu ngƣời dùng nhập thông tin giao dịch và khóa bí mật. Sau đó chƣơng trình thực hiện tạo chữ ký trên máy client và gửi về cho server. Quá trình tạo chữ ký diễn ra nhƣ sau:
Tạo thông điệp: Từ các thông tin ngƣời dùng nhập vào chƣơng trình gắn kết tạo ra thông điệp.
Tạo đại diện cho thông điệp: Sử dụng hàm băm (SHA256) băm thông điệp trên tạo ra đại diện thông điệp.
Tạo chữ ký số: Sử dụng hệ chữ ký RSA và khóa bí mật do ngƣời dùng nhập vào để ký lên đại diện thông điệp tạo ra chữ ký số.
Sau khi tạo đƣợc chữ ký số chƣơng trình sẽ gửi chữ ký số và thông điệp về cho máy chủ để thực hiện kiểm tra chữ ký số.
- Kiểm tra chữ ký số: Chƣơng trình khi nhận đƣợc chữ ký số và thông điệp sẽ thực hiện kiểm tra chữ ký số nhƣ sau:
+ Hỏi thông tin về chứng thƣ số : Chƣơng trình gửi thông tin số hiệu chứng thƣ số tới web server tra cứu chứng thƣ số (bài toán số 2). Web server tra cứu thông tin chứng thƣ số trả về tình trạng xác nhận, tạm dừng, thu hồi và khóa công khai của chứng thƣ số. Nếu chứng thƣ hợp lệ sẽ sử dụng khóa công khai để xác thực chữ ký số.
+ Xác thực chữ ký số: Chƣơng trình sử dụng hàm băm (SHA256) băm thông điệp để tạo đại diện cho thông điệp. Sử dụng khóa công khai và hệ chữ ký RSA để kiểm tra chữ ký số. So sánh đại diện tạo đƣợc với kết quả giải mã. Nếu nhƣ chúng giống nhau thì kết quả xác thực là đúng, ngƣợc lại là sai.
- Thực hiện nghiệp vụ ngân hàng: Nếu kết quả kiểm tra chữ ký số là đúng thì chƣơng trình thực hiện các giao dịch của ngân hàng nhƣ chuyển khoản, kiểm tra tài khoản, thanh toán hóa đơn…Các nghiệp vụ này đƣợc thao tác với cơ sở dữ liệu của ngân hàng. Trong ngân hàng có rất nhiều nghiệp vụ có thể thực hiện bằng hệ thống giao dịch điện tử tuy nhiên trong luận văn này em xây dựng ba nghiệp vụ:
+ Kiểm tra tài khoản: Sử dụng số tài khoản để truy xuất dữ liệu từ cơ sở