Bài toán số 3: Xây dựng website ứng dụng dịch vụ chứng thực chữ ký

Một phần của tài liệu 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 (Trang 63)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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. (adsbygoogle = window.adsbygoogle || []).push({});

- 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 (adsbygoogle = window.adsbygoogle || []).push({});

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; (adsbygoogle = window.adsbygoogle || []).push({});

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) {

Một phần của tài liệu 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 (Trang 63)