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

Nghiên cứu ứng dụng OTP trên thiết bị di động

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 (648.65 KB, 23 trang )


1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG






NÔNG THỊ LÂM


NGHIÊN CỨU ỨNG DỤNG OTP TRÊN
THIẾT BỊ DI ĐỘNG
Chuyên ngành: Truyền dữ liệu và Mạng máy tính
Mã số: 60.48.15

TÓM TẮT LUẬN VĂN THẠC SỸ KỸ THUẬT

Người hướng dẫn khoa học: TS. PHẠM HOÀNG DUY





HÀ NỘI - 2011

2

MỞ ĐẦU
Hiện nay cùng với sự phát triển nhanh chóng của các dịch vụ


online (trực tuyến) đã đưa đến việc tăng nhanh số lượng các chứng
thực số khác nhau mà mỗi người dùng cần quản lý. Kết quả là người
dùng cảm thấy quá tải với những chứng thực này, việc này làm cho
người dùng khó khăn trong việc quản lý chúng được an toàn. Hiện
nay mật khẩu chính là kiểu chứng thực được sử dụng phổ biến. Tuy
nhiên những mật khẩu yếu và những thói quen xấu lại chính là những
mối đe dọa an ninh trong giao dịch trực tuyến. Một giải pháp được
đưa ra để giúp người dùng trong việc tạo và quản lý các mật khẩu là
cung cấp cho người dùng một thiết bị phần cứng để tạo ra OTP (One-
Time-Password) – mật khẩu được sử dụng một lần cho một phiên
giao dịch. Tuy nhiên hầu hết những giải pháp này không đủ khả năng
mở rộng hoặc không tiện dụng cho người dùng hoặc không đủ an
toàn. Giải pháp đưa ra là có thể sử dụng các thuật toán đáng tin cậy
trên điện thoại di động để tạo OTP. Do vậy tôi đã chọn đề tài nghiên
cứu là “Nghiên cứu ứng dụng OTP trên thiết bị di động”.
Nội dung nghiên cứu bao gồm:
 Nghiên cứu lý thuyết về OTP: khái niệm, mô hình sinh, hàm
băm (tập trung vào SHA), các khuyến nghị.
 Nghiên cứu ứng dụng OTP trong các giao dịch trực tuyến
trên môi trường di động.
 Xây dựng chương trình mô phỏng.
Cấu trúc nội dung của luận văn bao gồm các phần sau:

3
Chương 1: Cơ sở lý thuyết.
Chương này trình bày những khái niệm cơ bản về OTP, các
mô hình sinh mã OTP, hàm băm và khuyến nghị tiêu chuẩn cho việc
tạo và xác thực mã OTP.
Chương 2: Ứng dụng OTP cho các giao dịch trực tuyến trong
môi trường di động

Chương này nghiên cứu về mô hình ứng dụng OTP trên môi
trường di động cũng như việc ứng dụng OTP trong các giao dịch trực
tuyến.
Chương 3: Xây dựng phần mềm ứng dụng OTP trong môi
trường di động
Chương này trình bày ngắn gọn về chương trình thử nghiệm
đã xây dựng trong luận văn, trong đó tập trung xây dựng quá trình
sinh và xác thực sử dụng mã OTP.
Chương 4: Nhận xét, đánh giá và đề xuất
Chương này khái quát lại hệ thống đã xây dựng và đưa ra
một số nhận xét.
Kết luận: Phần này tóm tắt những kết quả mà luận văn đã đạt được
và đề xuất hướng nghiên cứu trong thời gian tới.

4
CHƯƠNG 1 – CƠ SỞ LÝ THUYẾT
1.1. Khái niệm OTP
OTP là một mật khẩu chỉ có giá trị trong một phiên đăng
nhập làm việc. OTP có thể được sử dụng một lần cho việc xác thực
người dùng hoặc cho người dùng xác thực một giao dịch. OTP
thường được sử dụng trong các giao dịch điện tử hoặc các hệ thống
xác thực chặt chẽ.
1.2. Khái niệm hàm băm
1.2.1 Khái niệm hàm băm
Chức năng chính của hàm băm là thực hiện ánh xạ các bản tin có
chiều dài khác nhau thành một đoạn băm có kích thước cố định.
Đoạn băm mới tạo ra thường có kích thước nhỏ hơn rất nhiều so với
bản tin ban đầu.
Một giá trị đoạn băm h được sinh ra bởi hàm băm H có dạng:
h = H (M) trong đó: M là bản tin có chiều dài tùy ý.

h là giá trị băm chiều dài cố định.
1.2.2 Thuật toán băm bảo mật SHA
1.3 Khái niệm tính toán tin cậy (TC - Trusted computing)
1.4 Các mô hình sinh OTP
Có hai mô hình thường được sử dụng để sinh mã OTP là:
sinh mã OTP theo thời gian và sinh mã OTP theo sự kiện.

5
1.4.1 Mô hình sinh mã OTP theo thời gian
Theo cơ chế này, người dùng sẽ được cấp một thiết bị sinh
mã được gọi là token. Bên trong token gồm có ba thành phần là: một
mã seedcode, một đồng hồ đếm thời gian, và một thuật toán mã hóa
một chiều.
 Mã seedcode: là mã được nhà sản xuất cài đặt sẵn trong
token. Mỗi token có một mã seedcode khác nhau. Và mã
seedcode này cũng được lưu lại trong hệ thống của nhà cung
cấp dịch vụ tương ứng với tên truy nhập của người dùng.
 Đồng hồ đếm thời gian: là đồng hồ của token, nó được đồng
bộ với đồng hồ của hệ thống trước khi giao cho người dùng.
Mỗi khi người dùng bấm nút sinh mã, token sẽ lấy biến thời
gian của đồng hồ. Biến thời gian được lấy chi tiết đến từng
phút, hoặc 30 giây.
 Thuật toán mã hóa: sử dụng thuật toán băm SHA.

Hình 1.3 Mô hình của cơ chế sinh mã ngẫu nhiên dựa theo thời gian.

6
1.4.2 Mô hình sinh mã OTP theo sự kiện
Trong cơ chế này người dùng cũng được cấp một token như
ở trên, nhưng bên trong token sẽ có một bộ đếm sự kiện thay vì đồng

hồ đếm thời gian. Sự kiện được nhắc đến ở đây là sự kiện mà người
dùng bấm nút sinh mã trên Token. Mỗi token sẽ chứa một số mã hữu
hạn, có thứ tự và không thay đổi. Số lượng các mã hữu hạn đó được
gọi là cửa sổ. Kích thước của cửa sổ này càng lớn thì độ bảo mật của
giải pháp càng cao. Để hiểu rõ hơn cơ chế ta sẽ xét một ví dụ. Trong
ví dụ này, token lấy kích thước cửa sổ là 10, tức là token chứa 10 mã
cố định có thứ tự, như hình 1.4.

Hình 1.4 Mô hình của cơ chế sinh mã ngẫu nhiên dựa theo sự kiện

7
1.5 Các khuyến nghị tiêu chuẩn cho OTP
Thuật toán băm: Độ an toàn của mã OTP phụ thuộc tính bảo mật của
hàm băm. Tất cả các hệ thống sử dụng OTP phải hỗ trợ MD5, nên hỗ
trợ SHA và có thể hỗ trợ MD4. Các thuật toán băm chấp nhận đầu
vào tùy ý nhưng đầu ra cố định.
Khuôn dạng đầu vào:
Cấu trúc của từ đố:
otp-<tên thuật toán> <chuỗi số nguyên> <seed>
Khuôn dạng đầu ra: OTP tạo bởi thủ tục trên có 64 bit chiều dài.
Việc nhập vào 64 bit khó khăn và dễ gây lỗi cho người sử dụng khi
nhập bằng tay. Do vậy OTP có thể chuyển đổi thành một chuỗi 6 từ
ngắn (mỗi từ bao gồm 4 ký tự) theo chuẩn ISO-646 IVCS. Mỗi từ
được chọn từ một từ điển gồm 2048 từ, 11 bit cho mỗi từ, tất cả OTP
có thể được mã hóa.

8
CHƯƠNG 2 – ỨNG DỤNG OTP CHO CÁC
GIAO DỊCH TRỰC TUYẾN TRONG MÔI
TRƯỜNG DI ĐỘNG

2.1 Mô hình triển khai OTP trên môi trường di động
2.2 Ứng dụng OTP cho việc xác thực tài khoản trong giao dịch
trực tuyến
Trong phạm vi của luận văn, tôi đã xây dựng hệ thống sử
dụng OTP để xác thực tài khoản trong các giao dịch trực tuyến.
Hệ thống bao gồm: khách hàng, web server và thiết bị di
động của người sử dụng được dùng để tạo mã OTP.
Để thực hiện việc xác thực hai yếu tố khách hàng phải đăng
kí tài khoản với nhà cung cấp dịch vụ (server). Server cung cấp cho
người sử dụng thông tin tài khoản để xác thực trên hệ thống. Những
thông tin này sẽ được lưu vào cơ sở dữ liệu trên server. Tiến hành cài
đặt phần mềm và đồng bộ thời gian với server cho thiết bị di động.

9
Quá trình đăng kí:
Hình 2.1 Quá trình đăng kí
Người sử dụng khi cần xác thực trên trang web sẽ chạy
chương trình ứng dụng trên điện thoại của họ. Sau đó nhập những
thông tin mà chương trình yêu cầu để lấy mã OTP.
Người sử dụng khi cần xác thực trên trang web sẽ chạy
chương trình ứng dụng trên điện thoại của họ. Sau đó nhập những
thông tin mà chương trình yêu cầu để lấy mã OTP.
Đăng kí thông tin (usename,
password, pin, seedcode…)
Account(usename, password, pin,
seedcode…)
User
Server
User
Server

Lưu thông tin
vào CSDL

10
Quá trình tạo mã OTP:

Hình 2.2 Quá trình tạo mã OTP
Sau khi lấy được mã OTP sẽ nhập vào trang web cùng với
usename và password mà họ đã đăng kí với nhà cung cấp dịch vụ.
Server sau khi nhận được thông tin xác thực của khách hàng sẽ tiến
hành kiểm tra sự hợp lệ của thông tin và trả lại kết quả xác thực cho
khách hàng.
Nhập (PIN, seedcode)
Mã OTP

User Mobile
Sinh mã
OTP

11
Xác thực mã OTP:
Hình 2.3 Quá trình xác thực mã OTP





Thông tin xác thực
Nhập (username, password , OTP)
Web Server User

Xác th

c tài
khoản

12
CHƯƠNG 3 – XÂY DỰNG PHẦN MỀM ỨNG
DỤNG OTP TRONG MÔI TRƯỜNG DI ĐỘNG
3.1. Mô tả hệ thống sử dụng OTP trên điện thoại di động
Hệ thống xác thực phi kết nối
Quá trình tạo mã OTP phi kết nối.

Hình 3.1 Quá trình tạo mã OTP phi kết nối
Mã OTP được tạo ra có
hiệu lực trong một khoảng
thời gian xác định tương
ứng với người dùng nhập
vào.

Người sử dụng lấy mã
OTP vừa được tạo ra để
xác thực trên website.
Người sử dụng lựa chọn
nút tạo mã OTP của
chương trình.
Người sử dụng nhập
username và mã PIN.
Người sử dụng khởi động
phần mềm trên thiết bị di
động của họ.

Người sử dụng cần đăng
nhập. Ví dụ vào trang web
yêu cầu bảo mật.


13
Thứ hai là quá trình tạo mã OTP dựa trên tin nhắn SMS.

Hình 3.2 Quá trình tạo mã OTP dựa trên tin nhắn SMS

3.2. Xây dựng ứng dụng
Để mô phỏng ứng dụng OTP cho việc xác thực tài khoản
trong giao dịch trực tuyến, luận văn tập trung xây dựng chương trình
ứng dụng theo phương pháp phi kết nối. Ứng dụng gồm hai phần:
phần thứ nhất là chương trình xác thực bên server và thứ hai là
Người sử dụng cần đăng
nhập. Ví dụ vào trang web
yêu c

u b

o m

t.

Người sử dụng gửi tin nhắn
SMS đã được mã hóa tới
server.

Server nhận tin nhắn SMS.

Server giải mã và chia tin
nhắn SMS thành các phần:
1. Số điện thoại người gửi
2. Username
3. PIN
4. Số IMEI
Server đối chiếu thông tin
với cơ sở dữ liệu để đảm
bảo đúng là người sử dụng
c

a h


th

ng.

KT người
sử dụng
Sai

Server bỏ
qua tin
nhắn SMS
này.
Server tạo ra một mật khẩu
được cập nhật.
Mật khẩu được mã hóa sử
dụng khóa đối xứng duy

nhất được chia sẻ giữa
server và người sử dụng.
Server gửi mã OTP đến
người sử dụng thông qua tin
nhắn SMS.
Đúng

14
chương trình chạy trên thiết bị di động để tạo mã OTP. Hình 3.3 dưới
đây mô tả về quy trình sử dụng OTP trong luận văn.


Hình 3.3 Mô hình sử dụng OTP trong xác thực tài khoản
- Điều kiện tiên quyết:
o Khách hàng phải đăng kí thông tin tài khoản với
server và cài phần mềm sinh mã OTP trên thiết bị di
động của mình.
- Chú thích:
o Kiểm tra OK khi khách hàng nhập đúng các thông
tin xác thực: username, mật khẩu, mã OTP.
Khách hàng Trình duyệt Web Server
Yêu cầu thanh toán
Gửi thông tin đến
Server
Xác thực thông tin
tài khoản (tên, mật
khẩu, mã otp)
Gửi thông tin tài
khoản đến server
Nhận thông tin

Yêu cầu xác thực
tài khoản
Kiểm tra
Thực hiện
giao dịch
OK

Not OK
Thông báo giao dịch
thất bại
Thông báo
thành công
Sinh mã OTP


Bắt đầu
Kết thúc
Mobile Phone


15
Phần mềm bên server được xây dựng dưới dạng web server.
Phía server dựa vào thông tin tài khoản và mã OTP mà người dùng
cung cấp sẽ đưa ra quyết định cho phép người dùng thanh toán hay
từ chối yêu cầu này. Phần mềm này tương tác với cơ sở dữ liệu lưu
thông tin của khách hàng cũng như tài khoản của họ. Cơ sở dữ liệu
sử dụng trong ứng dụng này là mysql.
Phía client chạy một chương trình ứng dụng tạo mã OTP cho
khách hàng. Chương trình ứng dụng này được xây dựng trên nền
tảng ngôn ngữ java chạy trên nền hệ điều hành android. Android là

hệ điều hành trên điện thoại di động được phát triển bởi Google dựa
trên nền tảng Linux sử dụng các thư viện Java (một số trong các thư
viện đó được Google phát triển cho Android). Môi trường xây dựng
ứng dụng là eclipse (Eclipse IDE for Java Developer) được tích hợp
plugin của android gọi là ADT (Android Development Tools – Các
công cụ phát triển Android) và cài đặt android SDK (Software
Development Kit). Google android SDK là công cụ được chính
Google xây dựng và phát hành để phát triển ứng dụng cho hệ điều
hành android. Android SDK cung cấp một tập hợp các công cụ
phong phú, bao gồm trình gỡ rối, các thư viện, trình mô phỏng thiết
bị cầm tay, tài liệu, mã mẫu và các hướng dẫn.

16
3.2.1 Giao diện bên server

Hinh 3.5 Giao diện trang chủ

Hình 3.6 Giao diện xác thực tài khoản



17
3.2.2 Giao diện bên client


Hình 3.7 Giao diện tạo mã otp trên giả lập Android

18
CHƯƠNG 4 – NHẬN XÉT ĐÁNH GIÁ VÀ ĐỀ
XUẤT

Luận văn đã xây dựng chương trình mô phỏng sử dụng xác
thực OTP cho một thanh toán trực tuyến dựa trên mô hình sinh mã
dựa trên thời gian. Hệ thống bao gồm hai phần: phần mềm cho server
xác thực và phần mềm sinh mã OTP trên thiết bị di động.
Thiết bị di động và server cùng sử dụng hàm băm an toàn
SHA1 cho việc sinh và xác thực mã OTP.
Bên thiết bị di động mã OTP được tạo ra với các tham số:
thời gian thực, seed và mã PIN của từng người sử dụng. Mã PIN
không lưu trữ trên thiết bị di động được dùng để đảm bảo người sử
dụng là hợp pháp. Mã PIN có chiều dài 8 ký tự.
Bên phía server cũng thực hiện băm với đầu vào là thời gian
thực, seed và mã PIN của từng người dùng. Kết quả này được đem so
sánh với mã OTP mà người dùng nhập vào để đưa ra quyết định.
Các tham số đầu vào để tạo mã OTP của hệ thống:
 Seed: bao gồm 20 kí tự.
 Mã PIN: mã PIN có chiều dài 8 kí tự và được lưu trên server
dưới dạng đoạn băm để đảm bảo an toàn cho hệ thống.
 Thời gian thực: thời gian bao gồm: năm, tháng, ngày, giờ,
phút (chữ số đầu của số phút).
Các tham số này được kết nối với nhau và đưa qua hàm băm
SHA1. Đầu ra của thuật toán băm trình bày dưới dạng số hexa 40 ký

19
tự (160 bit). Đầu ra sẽ được chuyển về dạng dễ đọc cho người sử
dụng gồm 3 từ với 12 ký tự.
Mật khẩu OTP hợp lệ trong mười phút sẽ giảm nguy cơ bị
tấn công đồng thời tạo thuận tiện cho người sử dụng, vì người sử
dụng cần một khoảng thời gian để đọc và nhập mã OTP.
Mã PIN có độ dài 8 ký tự bao gồm các chữ số không chứa
dấu cách đảm bảo khó đoán hoặc bị tấn công brute-forced bởi các

hacker. Mã PIN không được lưu trữ trên điện thoại di động của
người dùng để đảm bảo trong trường hợp khách hàng mất điện thoại.
Độ an toàn của hệ thống phụ thuộc vào độ an toàn của hàm
băm. Đối với tấn công brute-force độ khó khăn để tính toán ra một
bản tin nào đó có kích cỡ đoạn băm 160 bit tạo bởi thuật toán băm
SHA1 cần 2
80
phép tính.
So sánh hệ thống với những yêu cầu đưa ra trong khuyến nghị:
Thuật toán: luận văn sử dụng chung thuật toán băm SHA1
cho cả client và server, SHA1 là thuật toán băm đưa ra trong khuyến
nghị.
Khuôn dạng đầu vào:
 Seed: đáp ứng được chiều dài theo khuyến nghị (từ
16 ký tự trở lên) tuy nhiên chưa đáp ứng được yêu
cầu loại bỏ dấu cách và chuyển sang dạng chữ
thường trước khi xử lý.
 Từ đố: cấu trúc từ đố tuân thủ cú pháp trong khuyến
nghị tuy nhiên để tăng độ an toàn của mã OTP luận
văn thêm mã PIN vào trong từ đố.

20
Khuôn dạng đầu ra: đầu ra được đưa ra dưới dạng hexa tuân
thủ theo khuyến nghị tuy nhiên luận văn chưa đưa được đầu ra về
dạng chuẩn 6 từ. Trong khuyến nghị sử dụng đầu ra là 64 bit còn đầu
ra sử dụng thuật toán SHA1 là 160 bit.
Thay đổi cụm mật khẩu: hệ thống được xây dựng không hỗ
trợ người dùng thay đổi cụm mật khẩu từ xa.



21
KẾT LUẬN

Ngày nay cùng với sự phát triển nhanh chóng của internet thì
những yêu cầu giao dịch trực tuyến cũng ngày càng tăng nhanh, do
vậy yêu cầu đặt ra là phải xây dựng được hệ thống đảm bảo an toàn.
Hiện nay hệ thống xác thực hai yếu tố dùng OTP đang được sử dụng
để tăng thêm độ an toàn cho hệ thống và đồng thời phải tiện dụng
cho người sử dụng. Xuất phát từ yêu cầu đó luận văn đã nghiên cứu
và trình bày một số vấn đề sau:
 Nghiên cứu tầm quan trọng và lý thuyết cơ bản của việc tạo
mã OTP.
 Nghiên cứu các mô hình sinh mã OTP.
 Nghiên cứu việc ứng dụng OTP vào thanh toán trực tuyến.
 Xây dựng chương trình thử nghiệm sử dụng điện thoại di
động cho việc xác thực mã OTP cho các thanh toán trực
tuyến.
 Đánh giá về hệ thống đã xây dựng.
Một số vấn đề tiếp tục nghiên cứu và đề xuất
 Mở rộng chức năng chứng thực, ngoài xác định tài khoản
còn xác định các quyền cho chủ sở hữu chứng thực như
quyền truy nhập tới một tài nguyên nào đó…
 Xây dựng mô hình sử dụng OTP theo cơ chế tự động kích
hoạt và trong suốt với người sử dụng.


22
TÀI LIỆU THAM KHẢO

TÀI LIỆU TIẾNG VIỆT

TÀI LIỆU TIẾNG ANH
[1]: F. Aloul, S. Zahidi, W. El-Hajj (2009), “Multi Factor
Authentication Using Mobile Phones”.
[2]: Alzomai, Mohammed, Audun and Josang (2010 September 31),
“The Mobile Phone as a Multi OTP Device Using Trusted
Computing”.
[3]: Chao-Wen Chan and Chih-Hao Lin (2008), “A New Credit Card
Payment Scheme Using Mobile Phones Based on Visual
Cryptography”.
[4]: Josh Benaloh, Trevor William Freeman, K John Biccum, Ttul
Kumar Shal (2010 October 14), “One time password key ring for
mobile computing device”.
[5]: Jan-Erik Ekberg, Markku Kylanpaa (2007 November 14),
“Mobile Trusted Module (MTM) - an introduction”.
[6]: Kjell Jorgen Hole, Lars Hopland Nestas, and Havard Raddum
(2010 January), “Security Analysis of Mobile Phones Used as OTP
Generators”.
[7]: Junrusu, Xiaomin Zhu, Xiaopu Shang, Chuanchen Wang (2010
November), “Study on an OTP Identity Authentication Scheme in
Mobile Commerce”.

23
[8]: Nicolai Kuntze, Gunther Diederich, Karsten Sohr, Kai-Oliver
Detken, “Secure mobile business information processing”.
[9]: FIPS 180-2 (2002 August 1), Secure Hash Standard.
[10]: Network Working Group (February 1998), RFC2289.
[11]: Network Working Group (December 2005), RFC4226.
WEBSITE
[12]:
[13]:

[14]:
[15]:


×