Tải bản đầy đủ (.pdf) (65 trang)

Xây dựng ứng dụng di động cho ví điện tử luận văn ths công nghệ thông tin 60 48 10 pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.18 MB, 65 trang )

1

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

VŨ MINH TÂN

XÂY DỰNG ỨNG DỤNG DI ĐỘNG
CHO VÍ ĐIỆN TỬ

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội 2013


2

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
--------------------------------------------

VŨ MINH TÂN

XÂY DỰNG ỨNG DỤNG DI ĐỘNG CHO VÍ
ĐIỆN TỬ
Ngành

: Công nghệ thông tin

Chuyên ngành


: Công nghệ phần mềm

Mã số

: 60 48 10

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC : TS. TRẦN THỊ MINH CHÂU

Hà Nội 2013


3

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn sâu sắc tới cô giáo TS. Trần Thị Minh Châu, giảng viên
khoa Công nghệ Thông tin trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội – đã
hƣớng dẫn tôi trong suốt quá trình tôi hoàn thành luận văn.
Tôi chân thành cảm ơn các thầy cô trong trƣờng đã giảng dạy cho tôi trong suốt
quá trình học tập tại trƣờng.
Cuối cùng, tôi xin chân thành cảm ơn các bạn đồng nghiệp của tôi đã tạo điều kiện
để tôi hoàn thành luận văn.

Hà Nội, ngày 05 tháng 10 năm 2013.

Vũ Minh Tân


4


LỜI CAM ĐOAN
Tôi xin cam đoan: Luận văn thạc sĩ này là công trình nghiên cứu thực sự của cá
nhân tôi, đƣợc thực hiện trên cơ sở nghiên cứu, tổng hợp lý thuyết và thực tiễn dƣới sự
hƣớng dẫn khoa học của TS. Trần Thị Minh Châu.

Hà Nội, ngày 05 tháng 10 năm 2013.

Vũ Minh Tân


5

Mục lục
LỜI CAM ĐOAN ................................................................................................................ 4
CÁC THUẬT NGỮ VIẾT TẮT.......................................................................................... 7
DANH MỤC HÌNH VẼ ...................................................................................................... 8
CHƢƠNG 1 – MÔ TẢ BÀI TOÁN VÍ ĐIỆN TỬ............................................................ 10
1.1.

Lợi ích và thực trạng phát triển của ví điện tử ..................................................... 10

1.2.

Các vấn đề bảo mật của ví điện tử ....................................................................... 11

1.3.

Bài toán luận văn cần giải quyết .......................................................................... 12


CHƢƠNG 2 – KHẢO SÁT CÁC GIẢI PHÁP XÁC THỰC NGƢỜI DÙNG CỦA VÍ
ĐIỆN TỬ ........................................................................................................................... 14
2.1.

OTP ...................................................................................................................... 14

2.2.

Các thiết bị nhận dạng sinh trắc học .................................................................... 14

2.3.

USB token ............................................................................................................ 15

2.4.

RSA Token ........................................................................................................... 15

2.5.

Sử dụng điện thoại di động .................................................................................. 17

2.5.1.

Các ký hiệu liên quan .................................................................................... 18

2.5.2.

Các bước thực hiện ....................................................................................... 18


CHƢƠNG 3 – GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG VÍ ĐIỆN TỬ....................... 20
3.1.

Kiến trúc hệ thống ................................................................................................ 20

3.2.

Các giao thức bảo mật của hệ thống .................................................................... 20

3.2.1.

Giao thức sử dụng tên đăng nhập và mật khẩu để đăng nhập hệ thống ....... 21

3.2.2.

Giao thức sử dụng mật khẩu một lần (OTP) để thực hiện giao dịch ............ 21

3.2.3.

Giao thức tạo chữ ký bằng cặp khóa RSA..................................................... 22

3.2.4.

Ứng dụng các giao thức vào các chức năng cụ thể ...................................... 23

3.3.

Mô tả giải pháp .................................................................................................... 27

CHƢƠNG 4 – PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CHƢƠNG TRÌNH ................... 30

4.1.

Hoạt động nghiệp vụ ............................................................................................ 30

4.2.

Phát triển mô hình ca sử dụng.............................................................................. 30

4.2.1.

Xác định tác nhân .......................................................................................... 30

4.2.2.

Xác định các ca sử dụng ............................................................................... 31


6

4.2.3.

Mô hình ca sử dụng ....................................................................................... 31

4.2.4.

Mô hình chi tiết các ca sử dụng .................................................................... 32

4.3.

Phân tích hệ thống ................................................................................................ 36


4.3.1.

Ca sử dụng kích hoạt tài khoản..................................................................... 36

4.3.2.

Ca sử dụng thực hiện giao dịch .................................................................... 38

4.3.3.

Ca sử dụng thực hiện giao dịch trên web ..................................................... 40

4.3.4.

Ca sử dụng kiểm tra lịch sử giao dịch .......................................................... 44

4.3.5.

Ca sử dụng kiểm tra thông tin tài khoản ....................................................... 46

4.4.

Thiết kế hệ thống.................................................................................................. 49

4.4.1.

Ca sử dụng kích hoạt tài khoản..................................................................... 49

4.4.2.


Ca sử dụng thực hiện giao dịch .................................................................... 51

4.4.3.

Ca sử dụng thực hiện giao dịch trên website ................................................ 53

4.4.4.

Ca sử dụng tra kiểm tra lịch sử giao dịch ..................................................... 55

4.4.5.

Ca sử dụng tra cứu thông tin tài khoản ........................................................ 57

4.5.

Kết quả cài đặt chƣơng trình ................................................................................ 59

4.5.1.

Kích hoạt tài khoản ....................................................................................... 59

4.5.2.

Chức năng chuyển khoản .............................................................................. 61

4.5.3.

Chức năng xác nhận giao dịch trên website ................................................. 61


CHƢƠNG 5 – KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU TIẾP THEO ......................... 64
5.1.

Kết luận ................................................................................................................ 64

5.2.

Hƣớng nghiên cứu tiếp theo ................................................................................. 64

TÀI LIỆU THAM KHẢO ................................................................................................. 65


7

CÁC THUẬT NGỮ VIẾT TẮT
Từ viết tắt
CA
Client
HTTPS
OTP
RSA
Server
SMS
SSL
TMP
UNCITRAL
USB

Nghĩa tiếng Anh

Certificate Authority
Máy khách
Hypertext Transfer Protocol Secure
One Time Password
Tên của ba tác giả : Ron Rivest, Adi Shamir và Len Adleman
Máy chủ
Short Message Services
Secure Sockets Layer
Trusted Platform Module
United Nations Commission on International Trade Law
Universal Serial Bus


8

DANH MỤC HÌNH VẼ
Hình 2.1: Giao thức xác thực thông qua điện thoại
Hình 3.1: Kiến trúc của hệ thống
Hình 3.2: Quá trình kích hoạt tài khoản
Hình 3.3: Quá trình thực hiện giao dịch từ ứng dụng trên di động
Hình 3.4: Quá trình thực hiện giao dịch từ website
Hình 3.5: Quá trình xác thực thanh toán
Hình 4.1: Mô hình ca sử dụng mức tổng thể của hệ thống
Hình 4.2: Biểu đồ tuần tự hệ thống kích hoạt tài khoản
Hình 4.3: Biểu đồ lớp phân tích thực thi ca sử dụng kích hoạt tài khoản
Hình 4.4: Biểu đồ tuần tự phân tích thực thi ca sử dụng kích hoạt tài khoản
Hình 4.5: Giao diện kích hoạt tài khoản
Hình 4.6: Biểu đồ tuần tự hệ thống thực hiện giao dịch
Hình 4.7: Biểu đồ lớp phân tích thực thi ca sử dụng thực hiện giao dịch
Hình 4.8: Biểu đồ tuần tự phân tích thực thi ca sử dụng thực hiện giao dịch

Hình 4.9: Giao diện thực hiện giao dịch
Hình 4.10: Biểu đồ tuần tự hệ thống thực hiện giao dịch trên website
Hình 4.11: Biểu đồ lớp phân tích thực thi ca sử dụng thực hiện giao dịch trên website
Hình 4.12: Biểu đồ tuần tự phân tích thực thi ca sử dụng thực hiện giao dịch trên website
Hình 4.13: Giao diện thực hiện giao dịch trên website
Hình 4.14: Biểu đồ lớp phân tích ca sử dụng kiểm tra lịch sử giao dịch
Hình 4.15: Biểu đồ tuần tự phân tích thực thi ca sử dụng kiểm tra lịch sử giao dịch
Hình 4.16: Giao diện kiểm tra lịch sử giao dịch
Hình 4.17: Biểu đồ tuần tự hệ thống kiểm tra thông tin tài khoản


9

Hình 4.18: Biểu đồ lớp phân tích thực thi ca sử dụng kiểm tra thông tin tài khoản
Hình 4.19: Biểu đồ tuần tự phân tích thực thi ca sử dụng kiểm tra thông tin tài khoản
Hình 4.20: Giao diện kiểm tra thông tin tài khoản
Hình 4.21: Biểu đồ tuần tự thực thi ca sử dụng kích hoạt tài khoản
Hình 4.22: Biểu đồ lớp thực thi ca sử dụng kích hoạt tài khoản
Hình 4.23: Biểu đồ tuần tự thực thi ca sử dụng thực hiện giao dịch
Hình 4.24: Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch
Hình 4.25: Biểu đồ tuần tự thực thi ca sử dụng thực hiện giao dịch trên website
Hình 4.26: Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch trên website
Hình 4.27: Biểu đồ tuần tự thực thi ca sử dụng kiểm tra lịch sử giao dịch
Hình 4.28: Biểu đồ lớp thực thi ca sử dụng kiểm tra lịch sử giao dịch
Hình 4.29: Biểu đồ tuần tự thực thi ca sử dụng tra cứu thông tin tài khoản
Hình 4.30: Biểu đồ lớp thực thi ca sử dụng tra cứu thông tin tài khoản
Hình 4.31: Giao diện kích hoạt ứng dụng
Hình 4.32: Menu chính của chƣơng trình
Hình 4.33: Giao diện chức năng chuyển khoản
Hình 4.34: Giao diện thực hiện giao dịch trên website

Hình 4.35: Giao diện chức năng xác thực giao dịch trên website


10

CHƢƠNG 1 – MÔ TẢ BÀI TOÁN VÍ ĐIỆN TỬ
1.1.

Lợi ích và thực trạng phát triển của ví điện tử

Thƣơng mại điện tử, một yếu tố hợp thành của nền kinh tế số hóa là hình thái hoạt
động thƣơng mại bằng các phƣơng pháp điện tử. Theo quan điểm trong luật mẫu của
UNCITRAL về thƣơng mại điện tử thì "Thƣơng mại điện tử là việc sử dụng các công
nghệ mạng Internet trong các hoạt động giao dịch thƣơng mại". Với quan điểm này ta có
thể hiểu thƣơng mại điện tử bao gồm một chu trình hoàn chỉnh của một phiên giao dịch
thƣơng mại nhƣ: chào hàng, chọn hàng, ký kết hợp đồng, giao hàng, thanh toán, bảo hành
và các dịch vụ sau bán. Thƣơng mại điện tử mang lại những lợi ích tiềm tàng, nhờ các
phƣơng tiện của thƣơng mại điện tử, các doanh nghiệp có đƣợc thông tin nhanh chóng,
phong phú về thị trƣờng; các chi phí văn phòng, bán hàng, giao dịch giảm đi nhiều lần, rút
ngắn chu kỳ sản xuất, nhanh chóng tạo ra nhiều sản phẩm mới.
Ví điện tử là một tài khoản điện tử. Nó giống nhƣ “ví tiền” của bạn trên Internet và
đóng vai trò nhƣ một chiếc ví tiền mặt trong thanh toán trực tuyến, giúp bạn thực hiện
công việc thanh toán các khoản phí trên internet, gửi và nhận tiền một cách nhanh chóng,
đơn giản và tiết kiệm cả về thời gian và tiền bạc.
Ví điện tử ra đời góp phần phát triển hệ thống kinh doanh thƣơng mại điện tử, đem
lại những lợi ích cho ngƣời mua, ngƣời bán, ngân hàng và xã hội. Ví điện tử giúp cho
ngƣời mua thực hiện nhanh chóng công việc thanh toán, ngƣời bán tăng hiệu quả hoạt
động bán hàng trực tuyến, giúp ngân hàng giảm sự quản lý các giao dịch thanh toán từ thẻ
khách hàng, ngƣời dùng có thể dễ dàng chuyển và nhận tiền nhanh chóng vƣợt qua rào
cản địa lý.

Hình thức ví điện tử đã đƣợc phát triển mạnh mẽ trên thế giới có thể kể đến những
ví điện tử nhƣ: Paypal, AlertPay, Moneybooker, Mchek,…. Các ví này hỗ trợ thanh toán
trực tuyến trên các website bán hàng, thanh toán hóa đơn dịch vụ,…. Ngoài ra một số ví
còn hỗ trợ thanh toán trong siêu thị, nhà hàng, xe bus….
Ở Việt Nam hiện nay cũng có khá nhiều ví điện tử có thể kể đến nhƣ: Ngân Lƣợng
của Công ty cổ phần Ngân Lƣơng, Bảo Kim của Công ty cổ phần thƣơng mại điện tử Bảo
Kim, Netcash của Công ty PayNet, Vcash của Công ty VinaPay, VnMart của Công ty cổ
phần Giải pháp thanh toán Việt Nam (Vnpay), Smartlink của Công ty cổ phần dịch vụ thẻ
Smartlink... Mỗi dịch vụ ví đều đƣợc các doanh nghiệp cung cấp, quảng cáo những tính
năng hỗ trợ thanh toán tiện lợi khác nhau. Mỗi ví cũng khác nhau ở số lƣợng website
thƣơng mại điện tử và các sản phẩm mà nó cho phép thanh toán. Hiện nay các loại ví này
hỗ trợ ngƣời dùng thanh toán online trên các các website bán hàng, thanh toán hóa đơn,


11

dịch vụ, trong tƣơng lai có thể áp dụng thanh toán ở ngoài xã hội thực nhƣ vé xe buýt,
taxi, quán cafe, siêu thị,….
1.2.

Các vấn đề bảo mật của ví điện tử

Sự tiện lợi của ví điện tử đi đôi với những nguy cơ tiềm ẩn: khi mọi ngƣời
đangtậnhƣởngsự tiện lợimanglạibởi ví điện tử, thông tintài khoản của họcũng làđối
tƣợngbị đánh cắphoặclàmgiảmạocủa bọn tội phạmInternet.Nhƣ vậy, quá trình xác thực
khách hàng trong khi giao dịch bằng ví điện tử trởthànhmột mối quan tâmbảo mật quan
trọngđối với các tổ chứctàichính.
Xác thực là mộtbiện pháp an ninhđƣợcthiếtkếđểxácminhdanhtínhcủa một cá
nhânthông quaxác nhậnthông tincủa cá nhân đó thƣờng xảy ratrƣớckhicá nhân đƣợctruy
cậpmột số thông tinhoặchệ thống.

Xác thực trực tuyến là xác thực thông qua mạng lƣới không gian. Xác thực trực
tuyến có ba vấn đề phải giải quyết: Thứ nhất, làm thế nào để chắc chắn rằng các trang
web mà ngƣời dùng muốn truy cập là chính xác. Thứ hai, làm thể nào để bảo vệ các thông
tin cá nhân trong quá trình truyền dữ liệu. Thứ ba, làm thế nào để xác nhận đƣợc những
thông tin đƣợc chuyển đến server là đúng do ngƣời dùng truyền đến.
HTTPS đáp ứng đƣợc hai vấn đề đầu. HTTPS là sự kết hợp giữa HTTP và SSL.
Quá trình xác thực đƣợc triển khai trong quá trình bắt tay SSL. Khi ngƣời dùng truy cập
vào website của nhà cung cấp ví điện tử, Server sẽ gửi giấy chứng nhận sốdomộtcơ quan
chứng nhận(CA) nhƣ Verisign, DigiCert, Symantec… đến ngƣời dùng. Thôngtintrong
giấy chứng nhận sốbao gồmtêncủatổ chức phát hành, thời gian cấp giấy chứng nhậnxác
nhận, số phiên bản, sốserial, tiêu đề... Máy khách kiểm tra tính hợp lệ của giấy chứng
nhận và gửi chứng chỉ của mình cho máy chủ ví điện tử. Cuối cùng, máy chủxác minh
danh tínhcủa khách hàng vàbắtđầucác thông tin liên lạcdƣới mộtmã hóa đối xứng. Các
vấn đềan ninhmột và haiđãđƣợcgiải quyếtkhá tốtvớiviệcthựchiệncủa SSL: Mộtgiấy chứng
nhậnsốcó chữ kýsốcủa CAkhiếnnókhông thểgiả mạovàủy nhiệm của mỗi khách hàng
đƣợc mã hóa với khóa công khai của ngân hàng mà chỉ ngân hàng mới có thể giải mã.
Để giải quyết vấn đề thứ ba ngƣời ta thƣờng sử dụng một tên truy cập và một mật
khẩu gắn liền với tên truy cập đó. Để đăng nhập vào hệ thống ngƣời dùng chỉ cần cung
cấp cho hệ thống tên truy cập và mật khẩu là đủ. Tên truy cập là hoàn toàn công khai
trong khi mật khẩu nhất thiết phải đƣợc giữ kín. Giải pháp xác thực này có những ƣu
nhƣợc điểm của nó. Ƣu điểm của nó là: đơn giản, dễ sử dụng, không cần phải thêm bất cứ
một phần mềm hoặc một phần cứng nào. Tuy nhiên giải pháp này có những nhƣợc điểm
lớn nhƣ sau:


12
-

-


1.3.

Dễ bị giả mạo: chỉ cần biết đƣợc mật khẩu của ai đó, tin tặc hoàn toàn có thể
mạo danh ngƣời đó để thực hiện các giao dịch trên mạng hoặc đăng nhập vào
hệ thống để tiến hành phá hoại hay đánh cắp thông tin.
Dễ bị đánh cắp: một mật khẩu thông thƣờng là đƣợc dùng nhiều lần, do vậy chỉ
cần những phần mềm đơn giản (có thể tải đƣợc một cách dễ dàng từ Internet),
một tin tặc có thể chặn bắt đƣợc các gói tin trên mạng và lấy cắp đƣợc mật
khẩu ngƣời sử dụng. Ngƣời dùng cũng hay có xu hƣớng là sử dụng những mật
khẩu đơn giản, dễ nhớ và cũng chỉ có một vài mật khẩu để sử dụng quay vòng
và kết quả là rất dễ bị đoán biết. Các phần mềm Spyware hiện nay rất phổ biến
và đƣợc nguỵ trang rất kỹ nên đa số ngƣời sử dụng khó có thể nhận biết đƣợc.
Những chƣơng trình nhƣ Keyboard logging sẽ ghi lại những gì ngƣời dùng gõ
từ bàn phím và gửi đến cho chủ nhân của nó.

Bài toán luận văn cần giải quyết

Để giải quyết vấn đề thứ ba, trong luận văn này chúng tôi tìm hiểu một số giải pháp
xác thực và đƣa ra một giải pháp để xác thực ngƣời dùng trong quá trình sử dụng ví điện
tử,áp dụngnó để xây dựng hệ thống Client. Giải pháp của chúng tôi là xây dựng một
chƣơng trình dành cho khách hàng, chƣơng trình đƣợc cài đặt ngay trên điện thoại của
khách hàng và có chức năng thực hiện các giao dịch thanh toán và xác thực các giao dịch
đƣợc sử dụng trên website của nhà cung cấp bằng cách sử dụng OTP và thuật toán RSA
để tạo và xác thực chữ ký số của tài khoản ví.
Nội dụng luận văn đƣợc chia thành 05 chƣơng nhƣ sau:
Chƣơng 1:Giới thiệu khái niệm về thƣơng mại điện tử, ví điện tử, các lợi ích và
thực trạng phát triển của ví điện tử và các vấn đề bảo mật của ví điện tử
Chƣơng 2: Khảo sát và đánh giá một số phƣơng pháp xác thực ngƣời dùng của ví
điện tử nhƣ : giải pháp sử dụng OTP, các thiết bị sinh trắc học, USB token, RSA token,
giải pháp sử dụng điện thoại di động để xác thực.

Chƣơng 3:Mô tả giải pháp sử dụng trong luận văn: đó là giải pháp kết hợp việc sử
dụng mật khẩu một lần (OTP – One time password) và sử dụng thuật toán RSA để tạo
chữ ký số trong mỗi phiên giao dịch. Đƣa ra kiến trúc và các giao thức bảo mật của hệ
thống. Áp dụng các giao thức vào từng chức năng cụ thể của ứng dụng.
Chƣơng 4:Sử dụng UML để phân tích thiết kế hệ thống: xác định tác nhân và các
ca sử dụng, phân tích thiết kế chi tiết các ca sử dụng. Cài đặt chƣơng trình: Sử dụng ngôn
ngữ lập trình Android để lập trình ứng dụng.
Chƣơng 5: Đƣa ra kết luận và hƣớng nghiên cứu tiếp theo của luận văn


13


14

CHƢƠNG 2 – KHẢO SÁT CÁC GIẢI PHÁP XÁC THỰC NGƢỜI DÙNG
CỦA VÍ ĐIỆN TỬ
2.1.

OTP

OTP - One Time Password: là một mật khẩu chỉ đƣợc sử dụng một lần cho một
phiên giao dịch [2].
Giải pháp xác thực ngƣời dùng sử dụng OTP ngoài sử dụng tên truy cập và mật
khẩu ban đầu, mỗi khi cần xác thực ngƣời dùng hệ thống sinh ra một chuỗi các ký tự ngẫu
nhiên và gửi đến cho ngƣời dùng thông qua tin nhắn điện thoại. Mỗi OTP này chỉ tồn tại
trong một thời gian ngắn nhất định do hệ thống quy định và chỉ có hiệu lực cho phiên giao
dịch đó. Ngƣời dùng nhận đƣợc OTP từ hệ thống gửi tới sẽ nhập lên trên giao diện của hệ
thống để thực hiện tiếp giao dịch đó.
Phƣơng pháp xác thực ngƣời dùng bằng OTP hiện nay đƣợc sử dụng phổ biến

trong các ví điện tử ở Việt Nam, nó có ƣu điểm là nó khắc phục đƣợc nhƣợc điểm tĩnh
của mật khẩu truyền thống, làm tăng tính an toàn của giao dịch. Tuy nhiên nó có nhƣợc
điểm là nội dung tin nhắn đƣợc gửi qua SMS là dạng văn bản nên nó có thể bị lộ trên
đƣờng truyền.
2.2.

Các thiết bị nhận dạng sinh trắc học

Sinh trắc học hay Công nghệ sinh trắc học là công nghệ sử dụng những thuộc tính
vật lý, đặc điểm sinh học riêng của mỗi cá nhân nhƣ vân tay, mống mắt, khuôn mặt... để
nhận diện [8]. Mỗi ngƣời có một đặc điểm sinh học duy nhất. Dữ liệu sinh trắc học của
từng cá nhân với đặc điểm khuôn mặt, ảnh chụp võng mạc, giọng nói sẽ đƣợc kết hợp với
nhau bằng phần mềm để tạo ra mật khẩu dành cho những giao dịch điện tử, phƣơng thức
đó là “công nghệ sinh trắc đa nhân tố”.
Đây đƣợc coi là công cụ xác thực nhân thân hữu hiệu nhất mà ngƣời ta sử dụng
phổ biến vẫn là nhận dạng vân tay bởi đặc tính ổn định và độc nhất của nó và cho đến
nay, nhận dạng dấu vân tay vẫn đƣợc xem là một trong những phƣơng pháp sinh trắc tin
cậy nhất.Công nghệ nhận dạng vân tay hoạt động theo nguyên tắc: Khi đặt ngón tay lên
trên một thiết bị đọc dấu vân tay, ngay lập tức thiết bị này sẽ quét hình ảnh ngón tay đó và
đƣa vào hệ thống. Hệ thống sẽ xử lý dấu vân tay, chuyển sang dạng dữ liệu số rồi đối
chiếu các đặc điểm của vân tay đó với dữ liệu đã đƣợc lƣu trữ trong hệ thống. Nếu dấu
vân tay này khớp với dữ liệu sẽ cho phép hệ thống thực hiện các chức năng tiếp theo.
Tuy nhiên thiết bị nhận dạngsinh trắc họcđắt tiền và cách lƣu trữ đặc điểm sinh
học của con ngƣờicũngtrởthànhmột vấn đềgâytranhcãicó thể thỏa hiệpriêng tƣ cá nhân.


15

2.3.


USB token

Phƣơng pháp này lƣu trữ giấy chứng nhận số của ngƣời dùng trong một USB, giấy
chứng nhận số của ngƣời dùng tƣơng tự nhƣ của ngân hàng bao gồm: tên của khách hàng,
địa chỉ, ngày sinh và số điện thoại đƣợc ký bởi một CA. Khi cần xác thực tài khoản với
ngân hàng ngƣời dùng sẽ sử dụng USB này cung cấp giấy chứng nhận của mình. Giải
phápnàycungcấpmột chữ ký số của khách hàng trênmỗi giao dịchbằngcáchsửdụngkhóa
riêngcủakháchhàng.
Với sự phổ biếncủa việc sử dụngcácthuật toánmã hóabất đối xứngđể bảo
vệanninhxác thực,làm thế nào đểlƣu trữantoàn các khóachínhđãtrởthànhmột vấn đề.Đểtrả
lời câu hỏi, USB Tokencómột hệ thốngtập tin cụ thểđểtổchứccác khóa riêngmà làm
chokhóa có thểsử dụng đƣợcnhƣngkhông đọc đƣợccũng nhƣghi bởi các chƣơng trình
khác.Hệ thống từchốibấtkỳlệnhnàotừ bất cứ aicố gắng để đọcvà ghi cáckhóa riêng.
Trusted Platform Module(TPM) làmột vi mạchcó thểlƣu trữ an toàncácyếutốxác
thựcnhƣ các khóamã hóavàchứng chỉkỹ thuật số. Nó có thể đƣợcnhúng vàomáytính, máy
tính xách tay và điện thoạidiđộng. Bên cạnh đó,chạymã hóa bất đối xứng/giải mã
vàcácthuậttoánbăman toàntrên điện thoạidiđộngcũngđi vàothựctếtrong phạm vichức
năngcủaTPM [8].
USB Tokencó lợi thếkhông thể chối cãicủa nó nhƣ làmộtgiải pháp chứng
thựctrựctuyến. Nhƣngnócũng cho thấymột vàikhiếm khuyết.
-

2.4.

Sửdụngbất tiện vìkháchhàngphảimangtheoổ đĩa flashUSBbấtcứkhinàohọ muốn
sửngân hàng trực tuyến.
NếuTokenbị mất,nókhông thểlà mộtvấn đề lớnnhƣng nócảntrởkhảnăngsử dụng
ngân hàng trực tuyếncủakháchhàngtrong một thời gian.
Một lỗ hổngnghiêm trọng hơn làcácchƣơng trìnhkhông thể ngăn
chặncácgiaodịchgiả mạo đƣợcký kết. Giảsửmáytínhcủakháchhàngđãbị hacker

kiểm soát, hackercó thể sửa đổi mộtgiaodịch mà ngƣời dùng không nhận
ranhữnggìđãđƣợc thay đổi, giao dịchđƣợcsửa đổisẽđƣợc xác nhậnbởikhách
hàng.

RSA Token

Hãng bảo mật RSA đã đƣa ra một cơ chế xác thực ngƣời dùng gồm 3 thành phần
nhƣ sau:
-

RSA SecurID® Authenticators: Là thiết bị đƣợc gắn với ngƣời sử dụng.
Chúng có thể là phần cứng hoặc phần mềm và đƣợc gọi là các Token. Nếu là


16

-

-

phần mềm, chúng có thể đƣợc cài đặt lên máy tính xách tay hoặc các thiết bị
cầm tay khác nhƣ PDA, Wireless Phone, .... Các thiết bị này tạo ra các con số
khác nhau trong một khoảng thời gian nhất định. Khách hàng có thể lựa chọn
thiết bị phù hợp với nhu cầu của mình.
RSA ACE/Agent Software: là phần mềm đƣợc cài lên trên các điểm truy cập
vào mạng (Ví dụ: gateway, VPN, Remote Access Server,...), các máy chủvà
các tài nguyên thông tin cần đƣợc bảo vệ của doanh nghiệp. Nó hoạt động
giống nhƣ là một ngƣời gác cửa. Khi có yêu cầu đăng nhập của ngƣời sử dụng
gửi đến, nó sẽ tiếp nhận và chuyển những thông tin đăng nhập tới máy chủ có
thành phần RSA ACE/Server để thực hiện xác thực.

RSA ACE/Server: là thành phần quản trị của giải pháp RSA SecurID đƣợc sử
dụng để kiểm tra các yêu cầu xác thực và quản trị tập trung chính sách xác
thực.

Giả sử một ngƣời sử dụng trong hệ thống đƣợc cấp phát một Token, khi đăng nhập
vào hệ thống, ngƣời sử dụng này sẽ đƣợc yêu cầu nhập tên đăng nhập và một dãy số đƣợc
gọi là Passcode. Dãy số này gồm có hai thành phần là số PIN và dãy số xuất hiện trên
token (Token code) của ngƣời đó vào thời điểm đăng nhập. Tất cả các thông tin (Tên
đăng nhập và Passcode) này đƣợc thành phần RSA ACE/Agent tiếp nhận và thành phần
này sẽ lại gửi những thông tin này đến RSA ACE/Server. Server này sẽ có số PIN của
ngƣời sử dụng trong cơ sở dữ liệu của nó. Ngoài ra, nó cũng có một cơ chế cho phép nó
tính toán ra một dãy số của nó. ACE/Server sẽ ghép số PIN trong cơ sở dữ liệu và dãy số
của nó với nhau sau đó so sánh với Passcode của ngƣời sử dụng cung cấp. Nếu hai dãy số
này giống nhau, ngƣời dùng đƣợc xác thực là hợp lệ và đƣợc quyền đăng nhập vào mạng.
Trong trƣờng hợp ngƣợc lại, quyền truy cập sẽ bị từ chối. Hoặc đƣợc chấp nhận truy cập
hoặc không, những thông tin này sẽ đƣợc RSA ACE/Server gửi đến ngƣời sử dụng thông
qua thành phần RSA ACE/Agent.
Cơ chế để RSA ACE/Server tính toán đƣợc một dẫy số của nó để so khớp với dẫy
số trên token của ngƣời sử dụng là tƣơng đối đơn giản. Để tạo ra đƣợc dẫy số thay đổi sau
mỗi khoảng thời gian, một token sẽ có những thành phần sau:
-

Một đồng hồ bên trong (Tính theo giờ UTC).
Một số Seed có độ dài 64 hoặc 128 bits.
Thuật toán tạo số giả ngẫu nhiên

Với hai yếu tố là thời gian và số seed, sau khi áp dụng thuật toán tạo số giả ngẫu
nhiên, token sẽ có một con số xuất hiện trên màn hình của nó (token code) và sau một
khoảng thời gian xác định, thuật toán này lại tạo ra đƣợc một con số khác ứng với thời
gian đó. Thuật toán này luôn tạo đƣợc những con số thay đổi theo thời gian và không lặp



17

lại. Do vậy, việc dự đoán trƣớc con số sẽ xuất hiện tiếp theo hoặc con số sẽ xuất hiện tại
một thời điểm nào đó trong tƣơng lai là không thể (chỉ có thể thực hiện đƣợc khi có số
seed và thuật toán).
Khi gán một token cho một ngƣời sử dụng, quản trị mạng cũng sẽ phải cập nhật số
seed của token đó vào cơ sở dữ liệu của RSA ACE/Server tƣơng ứng với ngƣời dùng.
Trên RSA ACE/Server cũng có một chƣơng trình chạy thuật toán tạo số giả ngẫu nhiên
giống với trên token. Khi có yêu cầu đăng nhập của ngƣời sử dụng, căn cứ vào tên đăng
nhập, căn cứ vào đồng hồ hệ thống, căn cứ vào số seed đƣợc lƣu trong cơ sở dữ liệu, khi
chạy thuật toán tạo số giả ngẫu nhiên, RSA ACE/Server cũng sẽ có đƣợc một dẫy số
giống với dẫy số trên token của ngƣời sử dụng tại cùng một thời điểm. Dãy số này đƣợc
ghép với số PIN của ngƣời sử dụng trong cơ sở dữ liệu, RSA ACE/Server có thể kiểm tra
đƣợc ngƣời sử dụng này có hợp lệ hay không.
Phƣơng pháp này có độ an toàn cao bởi vì ngoài tên truy cập và mật khẩu ban đầu
nó còn một Token code luôn luôn thay đổi và có hiệu lực trong một thời gian ngắn và chỉ
một lần sử dụng. Bởi vậy trừ khi bị mất cả mật khẩu và Token ngƣời dùng mới có nguy
cơ bị đánh cắp tài khoản.
Tuy nhiên theo phƣơng pháp này có nhƣợc điểm là khá tốn kém, nhà cung cấp ví
điện tử phải đầu tƣ một số lƣợng tiền lớn để mua giải pháp này, số lƣợng ngƣời dùng càng
tăng thì số lƣợng token cũng tăng theo.
2.5.

Sử dụng điện thoại di động

Điện thoại di động ngày càng trở nênquan trọng đối vớiđời sống xã hội.
Mộttrongnhữnglý dochínhđó làngày càng cónhiều chức năng hơnđƣợctích hợp trongđiện
thoại di động, chẳng hạn nhƣduyệt web, gửi nhận thƣ điện tử, chỉnh sửa văn bản,sử dụng

ngân hàng di độngvà mua sắm qua mạng. Giờ đây ngƣờidùngsử dụngđiện thoại di
độngkhông chỉ đểgọi điện, nhắn tinmà còn sử dụng nhiều chức năng khácnhƣđọc tin
tức,thanh toán hóa đơn, đặt vé…. Chính vì thếmọi ngƣờiđangchú ýđến việc bảo vệ điện
thoại di động của mình nhiều hơn, làm chođiệnthoạidiđộngtƣơng đốikhóbị mấthoặcbị
đánh cắpso vớicác thiết bịmà mọi ngƣờikhôngcóýđịnhquantâmrấtnhiều, ví dụ nhƣ USB
flash.
Một giải pháp đƣợc đƣa ra là sử dụng điện thoại di động để xác thực ngân hàng
trực tuyến bằng cách lƣu trữ giấy chứng nhận số của khách hàng cũng nhƣ xác nhận giao
dịch để ngăn chặn các giao dịch giả mạo. Trong phần dƣớisẽ mô tảcác chi tiết củagiao
thứcxácthựcvà giao thứcxác nhậngiao dịchtƣơngứng. Trƣớckhigiao thứcbắt đầu, chúng ta
giả địnhđiện thoại di độngcủa khách hàngđãTPMnhúng vàkếtnốivới một máy
tínhcánhânthông qua mộtcápUSBhoặcBluetooth [8]


18

2.5.1. Các ký hiệu liên quan
C - Khách hàng
M - Điện thoại di động
P -Máy tính của khách
S – Servercủa Ngân hàng
PIN - PersonalIdentification Number (số xác thực cá nhân)
RC -sốngẫu nhiênđƣợc tạo rabởiP
RS -sốngẫu nhiênđƣợc tạo rabởiS
H ()- SecureHashFunction
PKC - Khóa công khaicủa khách hàng
PVC – Khóa riêng của khách hàng
PKB -Khóa công khaicủaNgân hàng
PVB –Khóa riêng của ngân hàng
{Dữ liệu} K-dữ liệuđƣợc mã hóabởikhóa(K)

2.5.2. Các bƣớc thực hiện

Hình 2.1: Giao thức xác thực thông qua điện thoại
Bƣớc 1: Kháchhàngbắt đầumộtkếtnốiHTTPSvớingân hàngbằng
cậptrangwebcủangânhàng. Cácchi tiết củakết nốiHTTPSđƣợc mô tảnhƣsau:
-

cách

truy

P nói'Hello' S:Khibƣớcđầu, cấu hìnhthuật toán mã hóatài liệucácthuật toánmật
mãcó sẵn trênPcũng nhƣmột sốđƣợctạorangẫu nhiênRCđƣợcgửi đếnS.
S nói'Hello' P:Sxemxétcáccấu hìnhvàgửi lạilựa chọnthuật toán mã hóacủa nócùng
vớigiấy chứng nhậncủa ngân hàng,RS, và khách hàngyêucầugiấy chứng nhận số

Bƣớc 2: Trên cơ sở xác minhthànhcônggiấy chứng nhậncủahệ thống, M
sẽhiểnthịmộtthôngbáonhắcCđểnhậpmã PIN, đƣợc sử dụng để chứng minhchủ sở hữuhiện
tại củaM thực sự làC.


19

Bƣớc 3: C nhậpmã PINbằngcáchsửdụngbàn phímM
Bƣớc 4: Giấy chứng nhận của Ckết hợp vớiPKC, chữ ký củaCvàmộttổng
thể,đƣợcmãhóabởiPKBvảgửiđếnSsau khimã PINđƣợc cung cấp. Chữ ký củaCtrong mẫu:
{H (RC, RS)} PVC.
Bƣớc 5: S đầu tiên sẽxácminhgiấy chứng nhậnC, sau đó xác nhậnchữkýcủa mình
thông
quagiải

mãnóbằngcáchsửdụngPKCvàso
sánhkết
quảbăm.Cuối
cùng,
Stínhtoánmộtkhóa đối xứng - SK, cho việc sử dụngsau này.
Bƣớc 6: P tạo ra mộtSKvà giao tiếpgiữaPvàSsẽ đƣợc mã hóabởiSK. Tại thời điểm
này, quá trìnhxác thựcthành côngđƣợchoàn tất.
Phƣơng pháp này sử dụng điện thoại để lƣu trữ giấy chứng nhận số của khách hàng cũng
nhƣ xác nhận giao dịch để ngăn chặn các giao dịch giả mạo. Tuy nhiên, ngày nay do sự
phát triển rất mạnh của các hệ điều hành cho điện thoại kéo theo sự phát triển của các
virus, trojan trên điện thoại di động. Điều này có nghĩa là giấy chứng nhận số của ngƣời
đƣợc lƣu trên điện thoại có nguy cơ bị bại lộ bởi các virus, trojan và tin tặc có thể sử dụng
chính chứng thực số của ngƣời dùng để xác nhận các giao dịch.


20

CHƢƠNG 3 – GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG VÍ ĐIỆN TỬ
Dựa vào việc khảo sát các phƣơng pháp ở chƣơng 2 tôi đề xuất áp dụng việc kết
hợp sử dụng mật khẩu một lần (OTP) và sử dụng điện thoại di động để lƣu trữ khóa RSA
phục vụ cho việc ký xác nhận trong mỗi phiên giao dịch
3.1.

Kiến trúc hệ thống

Kiến trúc của hệ thống gồm 5 phần: cơ sở dữ liệu, website, server, sms server và
mobile client
-

Cơ sở dữ liệu: nơi lƣu trữ các thông tin tài khoản, giao dịch của hệ thống.

Website: đây là phần để ngƣời dùng truy cập vào để thực hiện các giao dịch từ máy
tính.
Mobile client: dùng để thực hiện các giao dịch từ ứng dụng di động và xác thực
các giao dịch đƣợc thực hiện trên website.
Server: phần này xử lý các giao dịch của hệ thống.
SMS server: dùng để gửi tin nhắn thông báo và xác nhận giao dịch.

Người dùng

CSDL

Server

SMS server

3.2.

Hình 3.1 : Kiến trúc của hệ thống
Các giao thức bảo mật của hệ thống


21

3.2.1. Giao thức sử dụng tên đăng nhập và mật khẩu để đăng nhập hệ thống
Mỗi tài khoản của hệ thống đƣợc cung cấp một tên đăng nhập là số điện thoại của
khách hàng, tên đăng nhập này là duy nhất trong hệ thống và một mật khẩu gắn liền với
tên đăng nhập đấy. Tên đăng nhập là hoàn toàn công khai trong khi mật khẩu nhất thiết
phải đƣợc giữ kín. Mỗi khi đăng nhập vào hệ thống ngƣời dùng sẽ phải cung cấp hai
thông tin trên, hệ thống sẽ sử dụng tên đăng nhập và mật khẩu để xác thực ngƣời dùng.
3.2.2. Giao thức sử dụng mật khẩu một lần (OTP) để thực hiện giao dịch

Việc sử dụng tên đăng nhập và mật khẩu có nhƣợc điểm:
-

-

Dễ bị giả mạo: chỉ cần biết đƣợc mật khẩu của ai đó, tin tặc hoàn toàn có thể mạo
danh ngƣời đó để thực hiện các giao dịch trên mạng hoặc đăng nhập vào hệ thống
để tiến hành phá hoại hay đánh cắp thông tin.
Dễ bị đánh cắp: một mật khẩu thông thƣờng là đƣợc dùng nhiều lần, do vậy chỉ
cần những phần mềm đơn giản (có thể tải đƣợc một cách dễ dàng từ Internet), một
tin tặc có thể chặn bắt đƣợc các gói tin trên mạng và lấy cắp đƣợc mật khẩu ngƣời
sử dụng. Ngƣời dùng cũng hay có xu hƣớng là sử dụng những mật khẩu đơn giản,
dễ nhớ và cũng chỉ có một vài mật khẩu để sử dụng quay vòng và kết quả là rất dễ
bị đoán biết. Các phần mềm spyware hiện nay rất phổ biến và đƣợc nguỵ trang rất
kỹ nên đa số ngƣời sử dụng khó có thể nhận biết đƣợc. Những chƣơng trình nhƣ
Keyboard logging sẽ ghi lại những gì ngƣời dùng gõ từ bàn phím và gửi đến cho
chủ nhân của nó

Để tránh các nhƣợc điểm trên ngoài tên đăng và mật khẩu ban đầu hệ thống còn sử
dụng phƣơng pháp xác thực bằng OTP. Mỗi khi cần xác thực ngƣời dùng hệ thống
sinh ra một chuỗi các ký tự ngẫu nhiên và gửi đến cho ngƣời dùng thông qua tin nhắn
điện thoại. Mỗi OTP này chỉ tồn tại trong một thời gian ngắn nhất định do hệ thống
quy định và chỉ có hiệu lực cho phiên giao dịch đó. Ngƣời dùng nhận đƣợc OTP từ hệ
thống gửi tới sẽ nhập lên trên giao diện của hệ thống để thực hiện tiếp giao dịch đó.
Việc sinh OTP trong hệ thông đƣợc dựa trên các thuật toán rất phổ biến HMAC
SHA. Nó không phải là một thuật toán mã hóa mà là một thuật toán băm nó biến đổi
một tập hợp các byte thành tập hợp các byte khác, thuật toán này không thể giải mã
ngƣợc. Một HMAC SHA sử dụng một khóa bí mật để chuyển đổi một mảng đầu vào
của bytes. Thuật toán sử dụng khóa bí mật 20 byte và một bộ đếm 8 byte để tạo ra
một số OTP có 8 chữ số.[3]

Trƣờng hợp ngƣời dùng bị mất số điện thoại và số điện thoại khi đó ngƣời dùng sẽ
gọi đến tổng đài chăm sóc khách hàng để khóa tài khoản để tránh trƣờng hợp bị kẻ
gian sử dụng tài khoản của mình. Sau khi có điện thoại và số điện thoại mới ngƣời


22

dùng sẽ phải mang chứng minh thƣ lên nhà cung cấp dịch vụ ví để kích hoạt lại tài
khoản của mình.
3.2.3. Giao thức tạo chữ ký bằng cặp khóa RSA
Phƣơng pháp xác thực ngƣời dùng bằng OTP có ƣu điểm là nó khắc phục đƣợc
nhƣợc điểm tĩnh của mật khẩu truyền thống, làm tăng tính an toàn của giao dịch. Tuy
nhiên nó có nhƣợc điểm là nội dung tin nhắn đƣợc gửi qua SMS là dạng văn bản nên nó
có thể bị lộ trên đƣờng truyền. Để khắc phục nhƣợc điểm của phƣơng pháp OTP hệ thống
còn sử dụng thêm một phƣơng pháp thứ ba đó là sử dụng thuật toán RSA để tạo chữ kí số
cho mỗi phiên giao dịch và để mã hóa OTP trƣớc khi gửi đến số điện thoại của khách
hàng.
Thuật toán RSA đƣợc tạo bởi ba tác giả Ron Rivest, Adi Shamir và Len Adleman.
Thuật toán RSA có hai khóa: khóa công khai (Public Key) và khóa riêng tƣ (Private Key).
Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã. Khóa công khai
đƣợc công bố rộng rãi cho mọi ngƣời và đƣợc dùng để mã hóa hoặc xác thực chữ ký số.
Những thông tin đƣợc mã hóa bằng khóa công khai chỉ có thể đƣợc giải mã bằng khóa bí
mật tƣơng ứng. Nói cách khác, mọi ngƣời đều có thể mã hóa nhƣng chỉ có ngƣời biết
khóa riêng tƣ mới có thể giải mã đƣợc.Thuật toán RSA cung cấp một thủ tục dùng khóa
riêng tƣ để tạo chữ ký số và dùng khóa công khai để xác minh chữ ký số.Giả sử Alice
muốn gửi cho Bob một văn bản có chữ ký của mình. Để làm việc này, Alice tạo ra một
giá trị băm (hash value) của văn bản cần ký và tính giá trị mũ d mod n của nó (giống nhƣ
khi Alice thực hiện giải mã). Giá trị cuối cùng chính là chữ ký điện tử của văn bản đang
xét. Khi Bob nhận đƣợc văn bản cùng với chữ ký điện tử, anh ta tính giá trị mũ e mod n
của chữ ký đồng thời với việc tính giá trị băm của văn bản. Nếu hai giá trị này nhƣ nhau

thì Bob biết rằng ngƣời tạo ra chữ ký biết khóa bí mật của Alice và văn bản đã không bị
thay đổi sau khi ký. Trƣờng hợp hai giá trị khác nhau chứng tỏ là chữ ký không đƣợc tạo
bởi khóa bí mật của Alice hoặc văn bản đã bị sửa đổi [5].
Mỗi một tài khoản khi cài ứng dụng mobile của hệ thống sẽ đƣợc sinh ra một cặp
khóa RSA. Cặp khóa RSA này kết hợp với số điện thoại và mật khẩu tạo thành một bộ ba
duy nhất dùng để xác thực ngƣời dùng. Khóa riêng tƣ sẽ đƣợc lƣu lại trên điện thoại của
ngƣời dùng và khóa công khai sẽ đƣợc gửi lên server của hệ thống. Mỗi khi thực hiện một
giao dịch ứng dụng mobile sẽ đọc khóa riêng tƣ rồi kết hợp với các thông tin của giao
dịch để tạo ra một chữ ký điện tử. Chữ ký này sẽ đƣợc gửi lên server của hệ thống cùng
với các thông tin giao dịch. Khi server tiếp nhận sẽ sử dụng khóa công khai của tài khoản
đó để xác thực chữ ký điện tử, nếu chữ ký chính xác hệ thống sẽ tiếp tục thực hiện các
công việc tiếp theo, nếu chữ ký không chính xác server sẽ kết thúc giao dịch và thông báo
cho ngƣời dùng biết.


23

3.2.4. Ứng dụng các giao thức vào các chức năng cụ thể
- Chức năng kích hoạt tài khoản

SMS server
Người dùng
4
9
3

CSDL
1
5


2
7

6
8

Server

Hình 3.2 : Quá trình kích hoạt tài khoản

Sau khi cài đặt ứng dụng, trong lần đầu tiên ứng dụng sẽ yêu cầu ngƣời dùng
nhập số điện thoại để thực hiện kích hoạt ứng dụng. Việc này nhằm thiết lập các
giao thức bảo mật cho các giao dịch thanh toán sau này. Các bƣớc thực hiện nhƣ
sau:
o Bƣớc 1: Ngƣời dùng nhập số điện thoại và mã PIN vào giao diện của ứng
dụng và bấm xác nhận
o Bƣớc 2: Ứng dụng thực hiện tạo ra một cắp khóa RSA và lƣu khóa riêng
(private key) RSA vào trong bộ nhớ của điện thoại. Sau đó gửi yêu cầu kích
hoạt bao gồm số điện thoại, mã PIN đã đƣợc mã hóa bằng thuật toán MD5
và khóa RSA công khai lên Server thông qua kết nối Internet, Server sẽ
kiểm tra tính chính xác của thông tin số điện thoại, mã PIN.
o Bƣớc 3: Nếu thông tin đăng nhập chính xác Server sẽ sinh ra một OTP và
lƣu OTP đó cùng với khóa RSA công khai mà ứng dụng gửi lên vào cơ sở
dữ liệu. Sử dụng khóa công khai của tài khoản để mã hóa OTP.
o Bƣớc 4: Server gọi đến SMS server để yêu cầu gửi OTP đã đƣợc mã hóa
đến số điện thoại của ngƣời dùng.
o Bƣớc 5: SMS server gửi tin nhắn có chứa OTP đến số điện thoại của ngƣời
dùng.



24

o Bƣớc 6: Ứng dụng mobile đọc tin nhắn và lấy OTP có trong tin nhắn sử
dụng khóa riêng tƣ để giải mã OTP, gửi OTP đã giải mã đó cùng với số điện
thoại lên Server thông qua kết nối Internet.
o Bƣớc 7: Server đối chiếu OTP từ mobile client gửi lên với OTP đƣợc lƣu
trữ trong cơ sở dữ liệu nếu kết quả chính xác quá trình kích hoạt thành công,
ngƣời dùng có thể sử dụng các chức năng của hệ thống.
o Bƣớc 8: Server trả kết quả xác thực quá trình kích hoạt về mobile client.
o Bƣớc 9: Mobile client nhận kết quả trả về từ server. Nếu kết quả xác thực
thành công, ứng dụng sẽ lƣu thông tin số điện thoại vào bộ nhớ trên máy để
dùng cho các lần giao dịch sau này. Sau đó Mobile client hiển thị kết quả
kích hoạt ứng dụng lên màn hình để ngƣời dùng biết. Nếu không thành công
ngƣời dùng sẽ phải thực hiện lại.
Một tài khoản ngƣời dùng đƣợc xác định bởi 3 thông tin: số điện thoại, mã PIN và
cặp khóa RSA. Việc kích hoạt ứng dụng này nhằm đảm bảo ba thông tin trên là chính
xác.
o Việc sử dụng tin nhắn để gửi mã OTP nhằm đảm bảo ứng dụng đƣợc cài đặt
trên máy điện thoại sử dụng đúng số điện thoại ngƣời dùng đăng ký. Điều
này nhằm ngăn chặn một tài khoản đƣợc sử dụng trên các điện thoại không
dùng đúng số điện thoại đã đăng ký.
o Cặp khóa RSA đƣợc sử dụng để tạo chữ ký điện tử mỗi khi giao dịch, điều
này nhằm xác thực ngƣời dùng và ngăn chặn thông tin giao dịch bị thay đổi
trong quá trình truyền trên internet.
-

Chức năng thực hiện giao dịch từ điện thoại

SMS server
Người dùng

4
9
3

CSDL
1
5

2
7

6
8

Server

Hình 3.3: Quá trình thực hiện giao dịch từ ứng dụng trên di động


25

Để thực hiện giao dịch từ ứng dụng di động ngƣời dùng thực hiện theo các
bƣớc sau:
o Bƣớc 1: Ngƣời dùng mở ứng dụng chọn giao dịch cần thực hiện, nhập thông
tin giao dịch và mã PIN vào giao diện của ứng dụng và bấm xác nhận
o Bƣớc 2: Ứng dụng đọc khóa riêng tƣ RSA đểkết hợp với các thông tin giao
dịch tạo ra một chữ ký điện tử. Sau đó gửi yêu cầu thực hiện giao dịch bao
gồm các thông tin giao dịch, mã PIN đƣợc mã hóa bằng MD5 và chữ ký
điện tử vừa đƣợc tạo ra lên server. Server sẽ kiểm tra tính chính xác của
thông tin số điện thoại và mã PIN, nếu chính xác hệ thống sẽ đọc khóa công

khai RSA tƣơng ứng với tài khoản và sử dụng khóa công khai này để xác
thực chữ ký điện tử. Khi chữ ký đƣợc xác nhận chính xác hệ thống sẽ kiểm
tra tính khả thi của giao dịch (số dƣ tài khoản, thông tin tài khoản nhận…)
o Bƣớc 3: Nếu thông tin chính xác Server sẽ sinh ra một OTP và lƣu OTP đó
cùng với thông tin giao dịch vào cơ sở dữ liệu. Sử dụng khóa công khai của
tài khoản để mã hóa OTP.
o Bƣớc 4: Server gọi đến SMS server để yêu cầu gửi OTP đã mã hóa đến số
điện thoại của ngƣời dùng.
o Bƣớc 5: SMS server gửi tin nhắn có chứa OTP đến số điện thoại của ngƣời
dùng.
o Bƣớc 6: Ứng dụng mobile đọc tin nhắn và lấy OTP có trong tin nhắn, sử
dụng khóa riêng tƣ để giải mã OTP đó sau đó gửi OTP đã giải mã cùng với
số điện thoại lên server thông qua kết nối Internet.
o Bƣớc 7: Server đối chiếu OTP từ mobile client gửi lên với OTP đƣợc lƣu
trữ trong cơ sở dữ liệu, nếu xác thực OTP thành công server sẽ kiểm tra lại
tính khả thi của giao dịch, nếu khả thi giao dịch sẽ đƣợc thực hiện.
o Bƣớc 8: Server trả kết quả xác thực thanh toán về mobile client.
o Bƣớc 9: Mobile client nhận kết quả trả về từ server. Sau đó Mobile client
hiển thị kết quả giao dịch lên màn hình để ngƣời dùng biết.
-

Chức năng xác thực giao dịch trên website


×