Tải bản đầy đủ (.doc) (12 trang)

TIỂU LUẬN CHỨNG THỰC SỐ Tìm Hiểu MOTP

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 (192.34 KB, 12 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
………… o0o…………
Đề Tài:
Tìm Hiểu MOTP
(Mobile One Time Password)
Ngày 17 tháng 12 năm 2010
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
………… o0o…………
Đề Tài:
Tìm Hiểu MOTP
(Mobile One Time Password)
Group:
Trần Thạch Thảo 07520322
Hồ Thị Bé 07520024
Ngày 17 tháng 12 năm 2010
Giới thiệu:
Một phân tích về hành vi truy cập Internet cho thấy rất nhiều người vẫn sử dụng một tài khoản
để đăng nhập vào các trang web khác nhau. Theo Trusteer, nhà cung cấp bảo mật, 73% người
dùng dùng mật khẩu dịch vụ ngân hàng trực tuyến của mình để đăng nhập vào ít nhất một
trang web khác, 47% dùng cả tên (ID/Username) và mật khẩu (xem thêm tại
Điều này cho thấy,
nhiều người dùng vẫn chưa chú trọng đến vần đề an toàn thông tin.
Việc sử dụng mật khẩu tĩnh để xác thực cho các giao dịch từ xa rất phổ biến, nhưng có 1 số
hạn chế như mật khẩu có thể được đoán hoặc quên, viết lại, bị đánh cắp, nghe lén hoặc bị nói
cho người khác nghe
Một số công ty áp dụng chính sách thay đổi password thường xuyên và sử dụng password
phức tạp để tăng độ an toàn, nhưng đây không phải là giải pháp tốt và cũng không thật hiệu
quả.
Một phương pháp chứng thực tốt hơn, bảo mật hơn được gọi là “two-factor” hoặc “ strong


authentication” dựa trên các OTP (one time password-mật khẩu 1 lần). Thay vì chứng
thực với 1 mật khẩu đơn giản, mỗi người dùng sẽ mang theo 1 thiết bị như máy tính bỏ túi
với màn hình và bàn phím. Để tạo OTP, người dùng nhập PIN cá nhân vào thiết bị. và việc
chứng thực dựa trên 2 nhân tố: token device và mã PIN . Điều này hiển nhiên bảo mật hơn
chỉ 1 mật khẩu, vì 1 kẻ tấn công cần phải nắm được cả mã PIN lẫn token device. Thêm vào
đó, việc nghe lén mật khẩu chỉ có tác dụng tại 1 thời điểm, không có ích cho người kẻ tấn
công.
Mặt khác, trở ngại của của “strong authentication” là mỗi người dùng phải được cung cấp
1 thiết bị cơ (token device). Nó có thể rất đắt. May mắn thay là điện thoại di động có thể
chạy các ứng dụng Java đang ngày càng được sử dụng rộng rãi. Điều này giải thích tại sao
lại sử dụng điện thoại như 1 authentication token…
I. Các kiểu tấn công của hacker:
Tấn công thụ động
Là loại tấn công mà thông tin tài khoản bị đánh cắp được lưu lại để sử dụng sau. Loại tấn
công này lại có 2 dạng: trực tuyến (online) và ngoại tuyến (offline).Tấn công offline có
mục tiêu cụ thể, thực hiện bởi thủ phạm truy cập trực tiếp đến tài sản của nạn nhân.
Ví dụ, thủ phạm có quyền truy cập máy tính của người dùng dễ dàng cài đặt trình “key
logger” hay trình gián điệp để thu thập dữ liệu của người dùng. Tấn công offline có phạm
vi hạn chế và hiệu suất thấp. Đây là dạng đánh cắp tài khoản đơn giản nhất, không yêu cầu
“tay nghề” cao và cũng không tốn bất kỳ chi phí nào.
Người dùng có thể trở thành nạn nhân của kiểu tấn công này đơn giản chỉ vì họ để lộ
password hay lưu ở dạng không mã hóa trong tập tin có tên dễ đoán trên đĩa cứng. Một
nghiên cứu gần đây cho thấy 50% vụ đánh cắp tài khoản do người gần gũi với nạn nhân
thực hiện. Tấn công online không có mục tiêu cụ thể. Kẻ tấn công nhắm đến số đông người
dùng trên Intrenet, hy vọng khai thác những hệ thống “lỏng lẻo” hay lợi dụng sự cả tin của
người dùng để đánh cắp tài khoản. Dạng tấn công này có hiệu suất khá cao, lên đến 3%
(theo một báo cáo của ComputerWorld). Hình thức phổ biến nhất của tấn công online là
phishing. Chi phí cho tấn công online chủ yếu dùng để mua danh sách email, danh sách
máy tính “yếu” có thể đặt website giả mạo hay đặt hàng viết chương trình phá hoại. Tấn
công dạng này thường do tin tặc có “tay nghề” thực hiện.

Tấn công chủ động
Là dạng tấn công tinh vi đánh cắp và sử dụng tài khoản trong thời gian thực. Tấn công chủ
động khá tốn kém và yêu cầu trình độ kỹ thuật cao. Kiểu tấn công "man-in-the middle" tạo
website giả mạo đứng giữa người dùng và website thực là một ví dụ của tấn công chủ
động. Kiểu tấn công chủ động không phải là vấn đề bảo mật hiện nay nhưng chúng sẽ là
vấn đề trong tương lai gần. Khi việc xác thực hai khóa trở nên phổ biến và kiểu tấn công
thụ động không còn tác dụng, bọn tội phạm sẽ phải dùng đến kiểu tấn công chủ động tinh
vi hơn. Các công ty, đặc biệt là các tổ chức tài chính, cần chuẩn bị cho người dùng đối phó
với làn sóng tấn công thứ hai này. Biện pháp phòng vệ tốt nhất chống lại kiểu tấn công chủ
động là bảo mật máy tính phía người dùng: đảm bảo hệ điều hành và tất cả ứng dụng được
cập nhật và vá đầy đủ, cập nhật cơ sở dữ liệu nhận dạng virus và malware, dùng firewall
cho các kết nối Internet, dùng công cụ chống spyware và malware nhằm đảm bảo máy tính
không cài đặt những chương trình không cần thiết Bộ lọc chống phishing cũng giúp giảm
khả năng người dùng "đi lạc" sang các website lừa đảo.
II. OTP và Mobile OTP
a. OTP (One –time password):
Mật khẩu dùng một lần hay còn được gọi là mật khẩu động với đặc điểm không lặp lại
(mật khẩu dùng lần này sẽ không giống lần sau) và chỉ có giá trị 1 lần. Phương pháp này an
toàn hơn để chứng thực dữ liệu, gọi là Two-factors. Mục đích làm cho mật khẩu lúc nào
cũng thay đổi, tránh việc Hacker hoặc ai đó đánh cắp tài khoản và mật khẩu nhằm đáp ứng
cho việc bảo mật thông tin. Mỗi người dùng sẽ mang theo thiết bị “Token” để sinh ra mật
khẩu có giá trị 1 lần.
Dựa trên thuật toán sinh password, thiết bị OTP cứng có 2 dạng: Đồng bộ thời gian và
Dùng bộ đếm
• Loại đồng bộ thời gian: Tạo ra mã số khó đoán (mật mã hay khóa) dựa vào đồng hồ
trong và mã số này được xác thực với điều kiện đồng hồ trong của thiết bị OTP
đồng bộ với máy chủ xác thực. Do sự xê dịch của đồng hồ, việc đồng bộ tuyệt đối
chính xác là không thể nên máy chủ xác thực phải chấp nhận các khóa có sự sai
lệch đôi chút. Điều quan trọng đó là thu hẹp hết mức “khung cửa” này để giảm
thiểu khả năng bị tấn công. Đa phần các nhà cung cấp thiết bị OTP áp dụng phương

thức cộng dồn thời gian xê dịch để điều chỉnh với mỗi xác thực thành công. Thiết
bị OTP đồng bộ thời gian có thể phải cân chỉnh lại nếu không được sử dụng một
thời gian dài.
• Loại dùng bộ đếm tăng bộ đếm trong mỗi khi sinh ra một khóa mới và khóa này
được xác thực với điều kiện bộ đếm trong của thiết bị OTP đồng bộ với máy chủ
xác thực. Khác với bộ đếm trong của thiết bị OTP, bộ đếm của máy chủ được điều
chỉnh với mỗi xác thực thành công. Với loại này, thiết bị OTP và máy chủ xác thực
dễ bị “mất đồng bộ”.
So với thiết bị OTP đồng bộ thời gian, thiết bị OTP dùng bộ đếm kém an toàn hơn trong
việc chống đỡ kiểu tấn công thụ động online và offline. Tin tặc có thể thực hiện tấn công
kiểu giả mạo (phishing) và thu thập nhiều khóa để dùng sau đó, hay ai đó lấy được thiết bị
này có thể tạo sẵn các khóa mà không hành động ngay. Một số thiết bị OTP được bảo vệ
bằng mã PIN (tương tự password), phương thức này chống được kiểu tấn công offline
nhưng không chống được kiểu tấn công online. Cũng có một số thiết bị OTP có khả năng
sinh chữ ký số và đây là công cụ hiệu quả để chống lại các cuộc tấn công chủ động.
Cả hai loại thiết bị OTP trên đều dùng pin và phải thay sau vài năm. Mỗi thiết bị được tạo
duy nhất với mã số riêng do vậy người dùng phải lập lại quy trình đăng ký mỗi khi thay thế
thiết bị OTP.
b. Mobile OTP(Mobile One Time Password):
Một biến thể của thiết bị OTP đó là dùng phần mềm giả lập thiết bị phần cứng, cài trên
thiết bị di động như PDA hay điện thoại di động (ĐTDĐ). Đây là giải pháp hiệu quả và ít
tốn kém, ít nhất cho đến khi các thiết bị di động trở nên dễ bị can thiệp như máy tính và
người ta cũng phải cài đặt firewall, trình chống virus, công cụ lọc spam trên các thiết bị
này. Thiết bị OTP "mềm" thường là mục tiêu nhân sao và người dùng có thể bị mất quyền
kiểm soát khóa mềm của mình mà không biết.
Thiết bị OTP mềm trên thiết bị di động có thêm mã PIN bảo vệ gần đạt như thiết bị OTP
cứng. Tuy không có chi phí phần cứng (thiết bị di động có sẵn) và chi phí phân phối trực
tiếp nhưng khi triển khai đại trà có thể phải đối mặt với khó khăn trong việc cài đặt và vận
hành phần mềm trên danh mục ĐTDĐ mở rộng không ngừng và cũng phải cân nhắc đến số
người dùng, tuy nhỏ, không có ĐTDĐ tương thích hay không có ĐTDĐ.

Là một giải pháp chứng thực mạnh mẽ miễn phí. Nó có thể tạo ra mật khẩu dùng dùng 1
lần bằng cách dùng 1 thiết bị di động (ví dụ điện thoại, PDA …), Ổ USB, Thẻ hoặc Token
(phần cứng tạo mật khẩu chứng thực thay đổi liên tục theo thời gian) kết nối đến router,
firewall, máy chủ mạng hoặc tạo kênh VPN dựa trên việc đồng bộ thời gian để tạo mật
khẩu dùng một lần mà không cần dùng thiết bị Token.
Mobile-OTP là 1 giải pháp “strong authentication” miễn phí cho các thiết bị hỗ trợ java
như điện thoại hoặc PDA
Trong Mobile OTP bao gồm 1 thành phần khách(ứng dụng J2ME) và một thành phần máy
chủ(mã shell Unix)
III. Cách tạo ra OTP trên mobile-OTP
Mobile OTP được giới thiệu vào năm 2003. Năm 2010 có hơn 30 cách thực thi độc lập giải
thuật Mobile OTP khiến nó trở thành 1 nhân tố chuẩn cho việc “strong mobile
authentication.
Cách thực hiện:
Ứng dụng java tạo các OTP bằng cách băm các dữ liệu sau với MD5:
Chu kỳ hiện hành trong 10 giây
1. 4 số PIN mà người dùng nhập vào
2. 16 số Hex bí mật được tạo khi thiết bị được cài đặt.
Khi nhập mã PIN, ứng dụng sẽ hiển thị 6 số đầu tiên của MD5-hash. Đây là 1 OTP. Mật
khẩu có thể được xác minh bởi máy chủ, vì máy chủ cũng biết thời điểm hiện thời,Init-
Secret và Pin của người dùng. Để bù trừ cho khác biệt thời gian, máy chú sẽ chấp nhận các
mật khẩu từ trước 3 phút và sau đó 3 phút. Thêm vào đó các chỉ số thời gian khác nhau sẽ
được chỉ rõ cho mỗi người dùng trên token và/hoặc máy chủ. Mỗi mật khẩu sẽ được chấp
nhận 1 lần. Sau 8 lần chứng thực không thành công người dùng sẽ bị khóa. Việc chứng
thực dựa trên 2 yếu tố: mã Pin của người dùng và Init-Secret trên thiết bị.
IV. Cài đặt các thiết bị khách và chủ:
 Cách đặt trên thiết bị khách (Client-Installation)
Tải MIDlet vào thiết bị sẽ sử dụng. Khi ứng dụng đã được cài đặt, chạy nó. Và bạn có thể
nhập mã PIN để tạo OTP, nhưng để dùng nó, bạn cần phải khởi tạo thiết bị trước tiên, và
viết Init-Secret vào trong bảng ghi người dùng tương ứng trên máy chủ thực hiện chứng

thực.
Khởi tạo thiết bị, nhấn 000. Nhập 1 chuỗi tùy tiện như là random seed. Init-Secret có thể
được hiện ra nhưng không được viết ra bất cứ đâu ngoại trừ trên máy chủ. Bạn không thể
hiển thị nó 1 lần nữa. Việc khởi tạo của thiết bị thường được hoàn thành bởi người quản trị
của máy chủ chứng thực, không phải bởi người dùng, Người dùng không cần phải biết Init-
Secret.
 Cài đặt máy chủ (Authentication server)
Mục này miêu tả cách cài đặt XTRadius với otpverify.sh .Để cài đặt và cấu hình cho
authentication server của bạn, hãy làm theo các bước sau:
1. Chép otpverify.sh-script vào /usr/local/bin và chạy nó
2. Script cần phải có quyền đọc ghi trên /var/motp.
3. Thử chạy nó. Nó sẽ báo USAGE: otpverify.sh Username, OTP, Init-Secret, PIN,
Offset
4. Chạy lần nữa, lần này sẽ thấy 5 đối số otpverify.sh 1 2 3 4 5 nó trả vể FAIL
5. Khởi tạo token. Viết Init-Secret. Tạo 1 OTP bằng cách nhập 5555 trên token. Thử xác
minh mật khẩu này bằng các chạy “otpverify.sh testuser {password}{Init-Secret}5555 0”
6. Script sẽ trả về “ACCEPT”. Nếu nó trả về “FAIL”, đồng hồ máy chủ và token khác
nhau.
7. Ngay sau khi bạn chứng thực thành công 1 người dùng, bạn hãy tiếp tục cài đặt máy
chủ XTRadius
8. Su khi cài đặt xong máy chủ XTRadius, có 4 tập tin cấu hình cần chỉnh sửa trong
/eetc/raddb
9. Thêm từ điển mới vào etc/raddb. Nó được gọi là dictionary.motp và chứa 3 thuộc tính
RADIUS mới: Secret, PIN và Offset.
10. Thêm 1 dòng “$INCLUDE dictionary.motp” vào /etc/raddb/dictionary, để tập tin mới
có thể được tải khi máy chú khởi động
11. Thêm 3 macro vào /etc/raddb/execparams hoặc thay thế nó.
12. Tạo tập tinh /etc/raddb/users chứa người dùng, dán nó vào tập tin users. Dĩ nhiên bạn
có thể thêm nhiều thuộc tính RADIUS vào mỗi người dùng nhiều hơn nữa.
13. Bạn có thể chạy máy chủ ở chế độ debug và kiểm tra việc chứng thực với user

“radtest” được cung cấp bởi server RADIUS.
V. Thuật toán MD5 trong việc mã hóa:
a. Định nghĩa:
MD5 (Message-Digest algorithm 5) là một hàm băm để mã hóa với giá trị băm là 128bit. Là một
chuẩn Internet (RFC 1321), MD5 đã được dùng trong nhiều ứng dụng bảo mật, và cũng được
dùng phổ biến để kiểm tra tính toàn vẹn của tập tin. Một bảng băm MD5 thường được diễn tả
bằng một số hệ thập lục phân 32 ký tự.
MD5 chuyển một đoạn thông tin chiều dài tùy ý thành một kết quả chiều dài không đổi 128 bit.
b. Thuật toán:
MD5 biến đổi một thông điệp có chiều dài bất kì thành một khối có kích thước cố định 128 bits.
Giả sử chúng ta có thông điệp b bit ở đầu vào, và ta muốn tìm mã số của thông điệp. Ở đây b là
số không âm bất kỳ; b có thể bằng 0 và không cần chia hết cho 8, độ lớn có thể bất kỳ. Tưởng
tượng rằng các bit của thông điệp được viết như sau :
m_0 m_1 m_2 … m_{b-1}
Mã số thông điệp được tính qua 5 bước sau:
Bước 1 : Các bit gắn thêm
Thông điệp đưa vào sẽ được cắt thành các khối 512 bits. Thông điệp được đưa vào bộ đệm để
chiều dài của nó sẽ chia hết cho 512. Bộ đệm hoạt động như sau:
- Trước tiên nó sẽ chèn bit 1 vào cuối thông điệp.
- Tiếp đó là hàng loạt bit Zero cho tới khi chiều dài của nó nhỏ hơn bội số của 512 một khoảng
64 bit .
Trong tất cả các trường hợp, có ít nhất 1 và nhiều nhất 512 bit được thêm vào.
Bước 2 : Gắn thêm độ dài
Dạng biểu diễn 64 bit độ dài b của chuỗi ban đầu được thêm vào phía sau kết quả của bước 1.
Trong trường hợp b lớn hơn 2^64 thì chỉ có 64 bit thấp của b được sử dụng. ( Các bit này được
thêm vào phía sau dưới dạng 2 word 32 bit, gắn word thấp trước theo quy ước ở trên ).
Vào lúc này độ dài của chuỗi kết quả sau bước 1 và bước 2 là 1 bội số của 512 bits. Như thế nó
có độ dài là bội số của 16 words (1 word có 32 bits). Ta đặt M[0 N-1] là mảng các word của
chuỗi kết quả ở trên, rõ ràng N là bội số của 16.
Bước 3 : Khởi tạo bộ đệm MD

Một bộ đệm 4 word (A,B,C,D) được dùng để tính mã số thông điệp. Ở đây mỗi A,B,C,D là một
thanh ghi 32 bit. Những thanh ghi này được khởi tạo theo những giá trị hex sau ( các byte thấp
trước ) :
Bước 4 : Xử lý thông điệp theo từng khối 16 word:
Trước hết ta định nghĩa các hàm phụ, các hàm này nhận đầu vào là 3 word 32 bit và tạo ra một
word 32 bit.
F(X,Y,Z) = XY v not(X) Z
G(X,Y,Z)= XZ v Y not(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X v not(Z))
Với mỗi bit, F hoạt động như một điều kiện : nếu X thì Y nếu không thì Z. Hàm F có thể định
nghĩa bằng phép + thay vì v bởi vì XY và not(X)Z không bao giờ có “1” ở cùng 1 vị trí bit. Các
hàm G, H và I tương tự như F, ở chỗ chúng tác động theo từng bit tương ứng để tạo ra kết quả từ
các bit của X,Y và Z.
Thuật toán chính của MD5 hoạt động trên một bộ 128 bit. Chia nhỏ nó ra thành 4 từ 32 bit, kí
hiệu là A,B,C và D. Các giá trị này là các hằng số cố định. Sau đó thuật toán chính sẽ luân phiên
hoạt động trên các khối 512 bit. Mỗi khối sẽ phối hợp với một bộ. Quá trình xử lý khối tin bao
gồm bốn giai đoạn giống nhau, gọi là vòng; mỗi vòng gồm có 16 tác vụ giống nhau dựa trên hàm
phi tuyến F, cộng mô đun, và dịch trái. Hình dưới mô tả một tác vụ trong một vòng. Có 4 khả
năng cho hàm F – 4 hm ph đưc đnh ngha  trên; mỗi cái được dùng khác nhau cho mỗi
vòng.
Một thao tác MD5 bao gồm 64 tác vụ thế này, nhóm trong 4 vòng 16 tác vụ. F là một
hàm phi tuyến; một hàm được dùng trong mỗi vòng. M
i
chỉ ra một khối tin nhập vào 32-
bit, và K
i
chỉ một hằng số 32-bit, khác nhau cho mỗi tác vụ.
s
chỉ sự xoay bit về bên

trái s đơn vị; s thay đổi tùy theo từng tác vụ. chỉ cộng thêm với modulo 2
32
.
Đây là quá trình thực hiện xử lý của 4 hàm F, G, H, I ở trên:
/* Process each 16-word block. */
For i = 0 to N/16-1 do
/* Copy block i into X. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end /* of loop on j */
/* Save A as AA, B as BB, C as CC, and D as DD. */
AA = A
BB = B
CC = C
DD = D

×