1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

65 469 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 2,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

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

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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 7

CÁC THUẬT NGỮ VIẾT TẮT

CA Certificate Authority

Client Máy khách

HTTPS Hypertext Transfer Protocol Secure

OTP One Time Password

RSA Tên của ba tác giả : Ron Rivest, Adi Shamir và Len Adleman Server Máy chủ

SMS Short Message Services

SSL Secure Sockets Layer

TMP Trusted Platform Module

UNCITRAL United Nations Commission on International Trade Law USB Universal Serial Bus

Trang 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

Trang 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

Trang 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,

Trang 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:

Trang 12

- 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ó

1.3 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

Trang 14

CHƯƠNG 2 – KHẢO SÁT CÁC GIẢI PHÁP XÁC THỰC NGƯỜI DÙNG

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

Trang 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

- 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

2.4 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à

Trang 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

Trang 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]

Trang 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ách truy cậptrangwebcủangânhàng Cácchi tiết củakết nốiHTTPSđược mô tảnhưsau:

- 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

6 8

7 9

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

Trang 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

6 8

7 9

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

Trang 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

Trang 26

Hình 3.4: Quá trình thực hiện giao dịch từ website

Để thực hiện giao dịch từ website người dùng thực hiện theo các bước sau:

o Bước 1: Người dùng truy cập vào website của hệ thống bằng một kết nối HTTPS thông qua trình duyệt web, đăng nhập vào hệ thống bằng số điện thoại và mã PIN Sau khi đăng nhập thành công, người dùng chọn giao dịch

để thực hiện sau đó nhập thông tin giao dịch và bấm xác nhận

o Bước 2: Server 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 giao dịch khả thi 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 sau đó 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 và

thông tin giao dịch đế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 và thông tin giao dịch đến số điện thoại của người dùng Ứng dụng mobile đọc tin nhắn lấy OTP và thông tin giao dịch có trong tin nhắn, sử dụng khóa riêng tư được lưu trong máy

để giải mã OTP đồng thời hiển thị thông tin giao dịch lên màn hình để

người dùng xem

Trang 27

o Bước 6:Nếu thông tin giao dịch đúng người dùng sẽ nhập mã PIN vào giao diện của ứng dụng và bấm xác nhận Ứ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 thông tin xác nhận giao dịch bao gồm số điện thoại, mã PIN được mã hóa bằng MD5, OTP và chữ ký điện tử vừa được tạo ra lên Server thông qua kết

nối Internet

o Bước 7: Server sẽ kiểm tra tính chính xác của thông tin số điện thoại và mã PIN, OTP, 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 một lần nữa (số dư tài khoản, thông tin tài khoản nhận…), nếu

thông tin giao dịch khả thi Server sẽ thực hiện giao dịch

o Bước 8: Server trả kết quả xác thực giao dịch về mobile client

o Bước 9: Server trả kết quả xác thực giao dịch về web client

o Bước 10: 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

o Bước 11: Web client nhận kết quả trả về từ server Sau đó hiển thị kết quả giao dịch lên màn hình để người dùng biết

3.3 Mô tả giải pháp

Mỗi tài khoản người dùng gắn với một số điện thoại, một mã PIN và một cặp khóa RSA Người dùng sẽ sử dụng số điện thoại làm tên truy cập, mã PIN làm mật khẩu đăng nhập và sử dụng điện thoại để lưu trữ khóa riêng của họ.Mỗi khi thực hiện giao dịch khóa riêng được sử dụng để tạo ra chữ ký số gửi kèm theo lên server, trên server sử dụng khóa công khai để xác thực chữ ký của người dùng Quá trình khởi tạo khóa riêng và giao dịch được mô tả cụ thể bên dưới

Đầu tiên người dùng tải phần mềm về cài đặt trên điện thoại của mình Sau khi cài đặt xong sẽ thực hiện đăng ký tài khoản mới hoặc kích hoạt tài khoản nếu đã có tài khoản Quá trình đăng ký, kích hoạt sẽ tạo ra một cặp khóa theo thuật toán RSA, khóa riêng lưu lại trên điện thoại của người dùng, khóa công khai được gửi kèm theo thông tin đăng ký lên server của nhà cung cấp

Quá trình xác thực thanh toán thực hiện theo các bước dưới đây

Trang 28

Hình 3.5: Quá trình xác thực thanh toán

Bước 1: Người dùng sử dụng máy tính cá nhânbắt đầumộtkếtnốiHTTPSvớihệ thống ví điện tử (Server)bằng cách truy cậptrangwebcủacủa nhà cung cấp và thực hiện giao dịch

Bước 2: Server nhận yêu cầu thực hiện giao dịch sau khi khởi tạo giao dịch một tin nhắn yêu cầu xác thực giao dịch kèm theo một mã OTP được mã hóa bằng khóa công khai của tài khoảnđược gửi về điện thoại của người dùng

Bước 3: Điện thoại nhận được tin nhắn từ server, ứng dụng được cài đặt trên điện thoại sẽ đọc tin nhắn, giải mã thông tin, hiện thị thông tin lên màn hình và yêu cầu người dùng nhập PIN để xác thực thanh toán

Bước 4: Người dùng nhập PIN trên điện thoại và ấn nút gửi khi đó phần mềm sẽ sử dụng khóa riêng tư được lưu trong máy điện thoại và thông tin giao dịch để tạo chữ ký số, chữ ký số này sẽ được gửi kèm theo thông tin xác thực lên server thông qua Internet

Bước 5: Server nhận thông tin xác thực từ người dùng và sử dụng khóa công khai

để xác thực chữ ký số người dùng gửi kèm theo, nếu chữ ký đúng sẽ tiếp tục xác thực các thông tin giao dịch khác, nếu sai sẽ hủy giao dịch

Trang 29

Bước 6: Server gửi thông báo kết quả giao dịch tới điện thoại của người dùng và hiện thị trên trang web

Phương pháp này giải quyết được đầy đủ ba vấn đề xác thực được nêu ở chương 1 Đối với vấn đề một và hai, HTTPS đã giải quyết được Đối với vấn đề 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 Hệ thống đã sử dụng đồng thời hai phương pháp:

- Sử dụng mật khẩu một lần OTP gửi kèm thông tin giao dịch được gửi đến điện thoại của người dùng thông qua tin nhắn SMS

- Sử dụng thuật toán RSA để tạo chữ ký điện tử từ khóa riêng tư của người dùng Hai phương pháp này xác định được chính xác người dùng bởi vì chỉ có khách hàng

sử dụng số điện thoại của họ mới nhận được tin nhắn từ hệ thống, nếu không may tin nhắn bị lộ trên đường truyền thì OTP cũng không bị lộ bởi vì nó đã được mã hóa bằng khóa công khai RSA của tài khoản và chỉ khi có khóa riêng tư RSA của tài khoản mới giải mã được OTP đó Phương pháp sử dụng chữ ký điện tử bằng khóa riêng tư sẽ tránh được trường hợp giao dịch bị xác thực giả mạo hoặc bị thay đổi thông tin, bởi vì cặp khóa RSA là duy nhất chỉ khi có được khóa riêng tư mới tạo ra được đúng chữ ký, nếu chữ ký được tạo ra bởi một khóa riêng tư khác hoặc thông tin gửi lên bị thay đổi thì khi lên đến server hệ thống sẽ phát hiện ra được đây không phải là chữ ký của đúng người dùng Vì vậy trừ khi người dùng mất cả số điện thoại, điện thoại, mã PIN người dùng mới có nguy

cơ bị đánh cắp tài khoản

Trang 30

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

4.1 Hoạt động nghiệp vụ

Một ví điện tử hoạt động tương tự như một ví tiền thông thường Các bước sử dụng

ví điện tử cũng tương tự như ví tiền thông thường: tạo tài khoản ví – mua một ví; nạp tiền vào ví điện tử – bỏ tiền vào ví; sử dụng tiền trong ví để thanh toán – rút tiền ra khỏi ví và trả cho người bán hàng; kiểm tra thông tin ví – mở ví xem số dư Từ thực tế ta có thể tóm tắt hoạt động của hệ thống ví điện tử như sau:

- Người dùng truy cập vào website của hệ thống ví điện tử để tạo tài khoản sau đó nạp tiền vào ví Sử dụng số tiền đã nạp vào ví để thanh toán cho các cuộc mua bán trên internet

- Các website bán hàng sử dụng chấp nhận hệ thống ví điện tử để người dùng ví điện

tử có thể thanh toán cho việc mua các mặt hàng trên website của họ

- Quản trị hệ thống ví điện tử sẽ quản lý các tài khoản của hệ thống, xử lý các giao dịch do người dùng khiếu nại, thực hiện khóa và mở khóa đối với các tài khoản nghi vấn gian lận

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

4.2.1 Xác định tác nhân

Xem xét tiến trình nghiệp vụ của chương trình ta xác định được hai tác nhân chính:

- Tác nhân thứ nhất là người sử dụng ví điện tử, tác nhân này tham gia hệ thống với việc chủ yếu là tạo tài khoản, cập nhật các thông tin tài khoản, nạp tiền vào tài khoản, thực hiện các giao dịch thanh toán, kiểm tra thông tin tài khoản, lịch sử giao dịch

- Tác nhân thứ hai là quản trị hệ thống, tác nhân này tham gia hệ thống với công việc là quản lý các tài khoản của hệ thống, thực hiện khóa tài khoản nếu có vi phạm, xử lý các giao dịch bị lỗi

Tác nhân Vai trò Kết quả

Người sử

dụng ví

điện tử

- Tạo tài khoản

- Kích hoạt tài khoản

- Cập nhật thông tin tài khoản

- Nạp tiền vào tài khoản

- Thực hiện các giao dịch thanh toán

- Tài khoản được tạo

- Tài khoản được kích hoạt

- Thông tin tài khoản được cập nhật

- Tiền trong tài khoản tăng lên

- Các giao dịch được thực

Trang 31

- Kiểm tra thông tin tài khoản

- Kiểm tra lịch sử giao dịch

hiện, tiền trong tài khoản đƣợc tăng hoặc giảm theo giá trị của giao dịch

- Xem đƣợc thông tin tài khoản

- Xem đƣợc các giao dịch đã thực hiện

Quản trị

hệ thống

- Quản lý tài khoản

- Cập nhận trạng thái tài khoản

Xuất phát từ các tác nhân của hệ thống ta xác định đƣợc các ca sử dụng sau:

- Ca sử dụng tạo tài khoản

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

- Ca sử dụng cập nhật thông tin tài khoản

- Ca sử dụng nạp tiền vào tài khoản

- Ca sử dụng thực hiện các giao dịch thanh toán

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

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

- Ca sử dụng quản lý tài khoản

- Ca sử dụng cập nhật trạng thái tài khoản

- Ca sử dụng xử lý các giao dịch lỗi

4.2.3 Mô hình ca sử dụng

Trang 32

Hình 4.1: Mô hình ca sử dụng mức tổng thể của hệ thống

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

Do đề tài của luận văn là xây dựng ứng dụng di động cho hệ thống ví điện tử nên dưới đây chúng tôi chỉ đi phân tích chi tiết vào các ca sử dụng: ca sử dụng kích hoạt tài khoản, ca sử dụng thực hiện các giao dịch thanh toán, ca sử dụng kiểm tra lịch sử giao dịch và ca sử dụng kiểm tra thông tin tài khoản

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

Tác nhân: Người sử dụng ví điện tử

Mục đích: Kích hoạt tài khoản nhằm xác minh số điện thoại của khách hàng và để

tạo ra cặp khóa RSA để sau này sử dụng trong các giao dịch thanh toán

Mô tả: Sau khi tạo tài khoản và cài đặt ứng dụng trên điện thoại di động, trong lần

sử dụng ứng dụng đầu tiên ứng dụng sẽ yêu cầu người dùng nhập số điện thoại đang sử dụng vào giao diện của ứng dụng Sau đó gửi số điện thoại lên server của hệ thống, hệ thống sẽ gửi lại mã xác thực vào số điện thoại người sử dụng vừa nhập, ứng dụng sẽ đọc tin nhắn để lấy mã xác thực và gửi lên server để xác thực

Ngày đăng: 18/12/2015, 23:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Đặng Văn Đức (2002), Phân tích thiết kế hướng đối tượng bằng UML, Nhà xuất bản Giáo dục.Tiếng Anh Sách, tạp chí
Tiêu đề: Phân tích thiết kế hướng đối tượng bằng UML
Tác giả: Đặng Văn Đức
Nhà XB: Nhà xuất bản Giáo dục. Tiếng Anh
Năm: 2002
[2] F. Aloul, S. Zahidi, and W. EI-Hajj, Two Factor Authentication Using Mobile Phones, IEEE/ACS International Conference on Computer Systems and Applications, Rabat, Morocco, May 2009 Sách, tạp chí
Tiêu đề: Two Factor Authentication Using Mobile Phones
[3] F. Hoornaert, D. M'Raihi, M. Bellare, D. Naccache and O. Ranen (2005),HOTP: An HMAC-Based One-Time Password Algorithm Sách, tạp chí
Tiêu đề: HOTP
Tác giả: F. Hoornaert, D. M'Raihi, M. Bellare, D. Naccache and O. Ranen
Năm: 2005
[5] R. Rivest, A. Shamir, L. Adleman, A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, pp 4-6 Sách, tạp chí
Tiêu đề: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems
[7] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, Third Edition. Section 31.7: The RSA public-key cryptosystem Sách, tạp chí
Tiêu đề: Introduction to Algorithms, Third Edition
[6] Sayed Hashimi , Satya Komatineni, and Dave MacLean, Pro Android 2 Khác
[8]Xing Fang and Justin Zhan, Online banking authentication using Mobile Phones Khác

HÌNH ẢNH LIÊN QUAN

Hình 3.5: Quá trình xác thực thanh toán - 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
Hình 3.5 Quá trình xác thực thanh toán (Trang 28)
Hình 4.1: Mô hình ca sử dụng mức tổng thể của hệ thống - 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
Hình 4.1 Mô hình ca sử dụng mức tổng thể của hệ thống (Trang 32)
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 - 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
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 (Trang 42)
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 - 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
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 (Trang 46)
Hình 4.16: Giao diện kiểm tra lịch sử giao dịch - 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
Hình 4.16 Giao diện kiểm tra lịch sử giao dịch (Trang 46)
Hình 4.19: Biểu đồ tuần tự phân tích thực thi ca sử dụng kiểm trathông tin tài khoản - 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
Hình 4.19 Biểu đồ tuần tự phân tích thực thi ca sử dụng kiểm trathông tin tài khoản (Trang 48)
Hình 4.20: Giao diện kiểm trathông tin tài khoản - 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
Hình 4.20 Giao diện kiểm trathông tin tài khoản (Trang 49)
Hình 4.21: Biểu đồ tuần tự thực thi ca sử dụng kích hoạt tài khoản - 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
Hình 4.21 Biểu đồ tuần tự thực thi ca sử dụng kích hoạt tài khoản (Trang 50)
Hình 4.23: Biểu đồ tuần tự thực thi ca sử dụng thực hiện giao dịch - 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
Hình 4.23 Biểu đồ tuần tự thực thi ca sử dụng thực hiện giao dịch (Trang 52)
Hình 4.24: Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch - 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
Hình 4.24 Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch (Trang 53)
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 - 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
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 (Trang 54)
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 - 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
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 (Trang 55)
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 - 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
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 (Trang 56)
Hình 4.28: Biểu đồ lớp thực thi ca sử dụng kiểm tra lịch sử giao dịch - 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
Hình 4.28 Biểu đồ lớp thực thi ca sử dụng kiểm tra lịch sử giao dịch (Trang 57)
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 - 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
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 (Trang 58)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm