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

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

Đ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

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 (IDUsername) và mật khẩu (xem thêm tại http:www.trusteer.comsitesdefaultfilescrossloginsadvisory.pdf). Đ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à “twofactor” hoặc “ strong authentication” dựa trên các OTP (one time passwordmậ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 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 http://www.trusteer.com/sites/default/files/cross-logins-advisory.pdf). Đ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. [...]... 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 Mi chỉ ra một khối tin nhập vào 32bit, và Ki 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 232 Đâ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 . 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

Ngày đăng: 20/12/2014, 15:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan