số trong giao dịch điện tử của lĩnh vực tài chính ngân hàng
Học viên: Nguyễn Thị Huyền - K16HTTT
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ọc viên: Nguyễn Thị Huyền - K16HTTT
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.
Học viên: Nguyễn Thị Huyền - K16HTTT
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ở dữ liệu của ngân hàng và trả về kết quả cho khách hàng.
+ Chuyển khoản: Kiểm tra số dƣ tài khoản chuyển. Nếu nhƣ số dƣ đủ để thực hiện chuyển khoản thì sẽ trừ tiền của tài khoản chuyển và cộng tiền vào tài khoản nhận.
+ Thanh toán hóa đơn: Kiểm tra số dƣ tài khoản thanh toán. Nếu nhƣ số dƣ đủ để thanh toán hóa đơn thì sẽ trừ tiền của tài khoản thanh toán và cộng tiền vào tài khoản của nhà cung cấp hóa đơn.
Học viên: Nguyễn Thị Huyền - K16HTTT
Hình 3.20 Sơ đồ phân cấp chức nă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
Biểu đồ luồng dữ liệu mức ngữ cảnh:
Hình 3.21 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 - Cơ sở dữ liệu bao gồm các bảng:
1. Tài khoản:
Tên cột Mô tả Kiểu dữ liệu
Học viên: Nguyễn Thị Huyền - K16HTTT
ChuTaiKhoan Chủ tài khoản Varchar(50)
NgaySinh Ngày sinh Date
CMTND Chứng minh thƣ nhân dân Varchar(10)
SoDuTK Số dƣ tài khoản Decimal
2. Nhà cung cấp:
Tên cột Mô tả Kiểu dữ liệu
MaNCC Mã nhà cung cấp Varchar(10)
SoTaiKhoan Số tài khoản Varchar(20)
3. Hóa đơn:
Tên cột Mô tả Kiểu dữ liệu
SoHoaDon Số hóa đơn Varchar(20)
MaNCC Mã nhà cung cấp Varchar(10)
DichVu Dịch vụ Varchar(100)
HoTenKH Họ tên khách hàng Varchar(50)
SoTien Số tiền Varchar(45)
TinhTrang Tình trạng Bit
TaiKhoanTT Tài khoản thanh toán Varchar(20)
4. Giao dịch:
Tên cột Mô tả Kiểu dữ liệu
Học viên: Nguyễn Thị Huyền - K16HTTT
ThongDiep Thông điệp Text
ChuKy Chữ ký số Text
NgayGiaoDich Ngày giao dịch Date
-Mối quan hệ giữa các bảng:
Hình 3.22 Sơ đồ quan hệ giữa các bảng
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. Website bao gồm các chức năng:
+ kiểm tra tài khoản + Chuyển Khoản + Thanh toán hóa đơn
Học viên: Nguyễn Thị Huyền - K16HTTT
Hình 3.23. Giao diện trang chủ
Học viên: Nguyễn Thị Huyền - K16HTTT
Hình 3.25 Chuyển khoản(2) - Xác nhận thông tin tài khoản
Học viên: Nguyễn Thị Huyền - K16HTTT
Hình 3.27 Chuyển khoản(4) - Kết quả chuyển khoản
Học viên: Nguyễn Thị Huyền - K16HTTT
Hình 3.29 Kiểm tra tài khoản(2) - Kết quả kiểm tra
Học viên: Nguyễn Thị Huyền - K16HTTT
Hình 3.31 Thanh toán hóa đơn(2)- Tạo chữ ký
Học viên: Nguyễn Thị Huyền - K16HTTT
Nhƣ vậy, trong chƣơng này em đã xây dựng mô hình sử dụng dịch vụ chứng thực chữ ký số ứng dụng trong lĩnh vực tài chính ngân hàng. Từ đó xây dựng và phân tích thiết kế, cài đặt các bài toán thực thi mô hình:
- Bài toán số 1: Xây dựng chƣơng trình quản lý chứng thƣ số đáp ứng đƣợc nhu cầu quản lý, cung cấp thông tin chứng thƣ số.
- Bài toán số 2: Xây dựng Website tra cứu thông tin chứng thƣ số phục vụ nhu cầu tra cứu thông tin chứng thƣ số của ngƣời dùng.
- Bài toán số 3: Xây dựng Website giao dịch điện tử của ngân hàng ứng dụng dịch vụ xác thực chữ ký số.
Học viên: Nguyễn Thị Huyền - K16HTTT
KẾT LUẬN
Qua thời gian nghiên cứu với sự nỗ lực của bản thân và sự hƣớng dẫn nhiệt tình của các thầy giáo luận văn đã đạt đƣợc mục tiêu đề ra. Luận văn:
“Nghiên cứu triển khai dịch vụ chứng thực chữ ký số ứng dụng trong lĩnh
vực tài chính ngân hàng” đã đạt đƣợc những kết quả sau:
- Trình bày tổng quan về giao dịch điện tử và bài toán giao dịch điện tử trong lĩnh vực tài chính ngân hàng.
- Trình bày tổng quan về cơ sở mật mã học, chữ ký số và hàm băm. - Trình bày tổng quan về cơ sở hạ tầng khóa công khai.
- Xây dựng mô hình ứng dụng dịch vụ chứng thực chữ ký số trong lĩnh vực tài chính ngân hàng.
- Đề xuất ba bài toán theo mô hình trên: Xây dựng chƣơng trình quản lý chứng thƣ số; Xây dựng website cho phép ngƣời dùng tra cứu thông tin chứng thƣ số; 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.
- Phân tích, thiết kế, cài đặt và chạy thử ba bài toán trên.
Trong thực tế các tổ chức chứng thực đang phối hợp với các ngân hàng để triển khai dịch vụ chứng thực chữ ký số và đƣợc sự hƣởng ứng nhiệt tình của các ngân hàng. Ngày 22/6/2011, tại Khách sạn Sofitel Plaza, TP. Hồ Chí Minh, Công ty an ninh mạng Bkav đã tổ chức hội thảo “Giải pháp tổng thể An ninh thông tin và mô hình ứng dụng Chữ ký số trong ngân hàng, chứng khoán” với sự tham gia của hơn 40 ngân hàng, công ty chứng khoán. Sáng ngày 04/6/2011, tại TP.HCM đã diễn ra Lễ ký kết thỏa thuận hợp tác kinh doanh giữa Trung Tâm Điện Toán Truyền Số liệu khu vực 2 (VDC2) và Ngân hàng Thƣơng mại cổ phần Á Châu ACB. ACB sẽ phối hợp xây dựng và phát triển tích hợp chữ ký số vào ứng dụng Internet Banking cung cấp cho các khách hàng trên cơ sở cùng triển khai dịch vụ chữ ký số công cộng VNPT-CA. Qua đây có thể nói luận văn này có ý nghĩa ứng dụng thực tế rất cao. Điểm nổi bật của mô hình sử dụng dịch vụ chứng thƣ số trong luận văn so với các mô hình trong thực tế đã đƣa ra đó là: Các khách hàng của ngân hàng không nhất thiết phải sử dụng chứng thƣ số của cùng một tổ chức cấp chứng thƣ số mà có thể sử dụng chứng thƣ số của các tổ chức cấp chứng thƣ số khác nhau.
Dịch vụ chứng thực chữ ký số đang ngày càng phát triển mạnh mẽ và đƣợc nhà nƣớc khuyến khích sử dụng. Do đó dịch vụ chứng thực chữ ký số sẽ đƣợc áp dụng rộng rãi trong mọi lĩnh vực. Đây cũng là hƣớng phát triển trong tƣơng lai của đề tài.
Học viên: Nguyễn Thị Huyền - K16HTTT
TÀI LIỆU THAM KHẢO Tiếng Việt:
[1] Phan Đình Diệu (2002), Lý thuyết mật mã và an toàn hệ thống thông tin, Nhà xuất bản Đại học Quốc Gia Hà Nội.
Tiếng Anh:
[2] Carlisle Adams, Steve Lloyd(2002), Understanding PKI, Addison Wesley. [3] Wenbo Mao Hewlett-Packard company(2003), Modern Cryptography:
Theory and Practice, Prentice Hall PTR.
[4] William Stalling, Cryptography and Network Security: Principles and Practice(1998), Prentice Hall PTR.
Học viên: Nguyễn Thị Huyền - K16HTTT
PHỤ LỤC PHỤ LỤC 1
DANH MỤC TIÊU CHUẨN BẮT BUỘC ÁP DỤNG VỀ CHỮ KÝ SỐ VÀ DỊCH VỤ CHỨNG THỰC CHỮ KÝ SỐ
(theo quyết định số 59/BTTTT, ngày 31 tháng 12 năm 2008 của Bộ Thông tin và Truyền thông) Số TT Loại tiêu chuẩn Ký hiệu tiêu chuẩn
Tên đầy đủ của tiêu chuẩn
Quy định áp dụng 1 Chuẩn bảo mật cho HSM
1.1 Bảo mật cho khối an ninh phần cứng HSM FIPS PUB 140-2
Security Requirements for Cryptographic Modules
Yêu cầu tối thiểu level 3 2 Chuẩn mã hóa 2.1 Mã hoá phi đối xứng và chữ ký số PKCS #1 RSA Cryptography Standard - Phiên bản 2.1 - Áp dụng lƣợc đồ RSAES-OAEP để mã hoá và RSASSA-PSS để ký 2.2 Mã hoá đối xứng FIPS PUB 197 Advanced Encryption Standard (AES) Áp dụng AES hoặc 3DES FIPS PUB 46-3
Data Encryption Standard (DES)
2.3 Hàm băm bảo mật
FIPS PUB 180-2
Secure Hash Standard Áp dụng một trong bốn hàm băm an toàn:
Học viên: Nguyễn Thị Huyền - K16HTTT Số TT Loại tiêu chuẩn Ký hiệu tiêu chuẩn
Tên đầy đủ của tiêu chuẩn Quy định áp dụng SHA-1, SHA-256, SHA-384, SHA-512
3 Chuẩn tạo yêu cầu và trao đổi chứng thƣ số
3.1 Định dạng chứng thƣ số và danh sách thu hồi chứng thƣ số
RFC 3280 Internet X.509 Public Key Infrastructure - Certificate and Certificate Revocation List (CRL) Profile 3.2 Cú pháp thông điệp mã hoá PKCS #7 Cryptographic Message Syntax Standard Phiên bản 1.5 3.3 Cú pháp thông tin khóa riêng
PKCS #8 Private-Key Information Syntax Standard Phiên bản 1.2 3.4 Cú pháp yêu cầu chứng thực PCKS #10 Certification Request Syntax Standard Phiên bản 1.7 3.5 Cú pháp trao đổi thông tin cá nhân PKCS #12 Personal Information Exchange Syntax Standard Phiên bản 1.0 4 Chuẩn về chính sách và quy chế chứng thực chữ ký số 4.1 Khung quy chế chứng thực và chính sách chứng thƣ
RFC 3647 Internet X.509 Public Key Infrastructure - Certificate Policy and Certification Practices Framework
Học viên: Nguyễn Thị Huyền - K16HTTT Số TT Loại tiêu chuẩn Ký hiệu tiêu chuẩn
Tên đầy đủ của tiêu chuẩn
Quy định áp dụng 5 Chuẩn về lƣu trữ và truy xuất chứng thƣ số
5.1 Giao thức lƣu trữ và truy xuất chứng thƣ số
RFC 2587 Internet X.509 Public Key Infrastructure LDAPv2 Schema Áp dụng RFC 2587 hoặc RFC 4523 RFC 4523 Lightweight Directory Access Protocol (LDAP) Schema Definitions for X.509 Certificates RFC 2251 Lightweight Directory Access Protocol (v3) Áp dụng RFC 2251 hoặc bộ bốn tiêu chuẩn RFC 4510, RFC 4511, RFC 4512, RFC 4513 RFC 4510 Lightweight Directory
Access Protocol (LDAP): Technical Specification Road Map
RFC 4511 Lightweight Directory Access Protocol (LDAP): The Protocol
RFC 4512 Lightweight Directory Access Protocol (LDAP): Directory Information Models
RFC 4513 Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms
6 Chuẩn về kiểm tra trạng thái chứng thƣ số
6.1 Giao thức cho kiểm tra trạng thái chứng thƣ số
RFC 2585 Internet X.509 Public Key Infrastructure - Operational Protocols: FTP and HTTP Áp dụng một hoặc cả hai giao thức FTP và HTTP
Học viên: Nguyễn Thị Huyền - K16HTTT
PHỤ LỤC 2
MỘT SỐ ĐOẠN MÃ CỦA CHƢƠNG TRÌNH
Modul RSA
//Hàm chuyển khóa từ hệ hexa sang hệ nhị phân
function RSAKeyPair(encryptionExponent, decryptionExponent, modulus)
{
this.e = biFromHex(encryptionExponent); this.d = biFromHex(decryptionExponent); this.m = biFromHex(modulus);
// We can do two bytes per digit, so
// chunkSize = 2 * (number of digits in modulus - 1).
// Since biHighIndex returns the high index, not the number of digits, 1 has
// already been subtracted.
this.chunkSize = 2 * biHighIndex(this.m); this.radix = 16;
this.barrett = new BarrettMu(this.m); } function twoDigit(n) { return (n < 10 ? "0" : "") + String(n); } //Hàm mã hóa function encryptedString(key, s)
// Altered by Rob Saunders (rob@robsaunders.net). New routine pads the
// string after it has been converted to an array. This fixes an // incompatibility with Flash MX's ActionScript.
{
var a = new Array(); var sl = s.length; var i = 0;
Học viên: Nguyễn Thị Huyền - K16HTTT
a[i] = s.charCodeAt(i); i++;
}
while (a.length % key.chunkSize != 0) { a[i++] = 0;
}
var al = a.length; var result = ""; var j, k, block;
for (i = 0; i < al; i += key.chunkSize) {