Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

7 126 3
Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

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

Thông tin tài liệu

Một trong những yêu cầu quan trọng của an toàn thông tin là xác thực danh tính của đối tượng được cấp quyền sử dụng các tài nguyên điện toán của hệ thống như truy nhập tài khoản, đọc và chỉnh sửa tài liệu đối với hệ thống thông tin của cơ quan nhà nước, hay thực hiện các giao dịch trực tuyến trong các hệ thống thương mại điện tử. Bài viết này sẽ giới thiệu một phương pháp xây dựng hệ thống xác thực đa nhân tố cho một website.

ISSN: 1859-2171 e-ISSN: 2615-9562 TNU Journal of Science and Technology 225(06): 479 - 485 NGHIÊN CỨU XÂY DỰNG HỆ THỐNG XÁC THỰC ĐA NHÂN TỐ CHO WEBSITE Đặng Xuân Bảo*, Trần Thị Xuyên, Hoàng Thu Phương, Nguyễn Thị Hồng Hà Học viện Kỹ thuật Mật mã TÓM TẮT Một u cầu quan trọng an tồn thơng tin xác thực danh tính đối tượng cấp quyền sử dụng tài nguyên điện toán hệ thống truy nhập tài khoản, đọc chỉnh sửa tài liệu hệ thống thông tin quan nhà nước, hay thực giao dịch trực tuyến hệ thống thương mại điện tử Phương thức xác thực trực tuyến phổ biến sử dụng mật Tuy nhiên, bối cảnh tính an tồn phương pháp khơng cao Để tăng tính an tồn q trình xác thực cần sử dụng mật với yếu tố khác, hay xác thực đa nhân tố Bài báo giới thiệu phương pháp xây dựng hệ thống xác thực đa nhân tố cho website Từ khóa: Xác thực; xác thực đa nhân tố; mã OTP; mã HOTP; mã TOTP; mã QR Ngày nhận bài: 14/4/2020; Ngày hoàn thiện: 30/5/2020; Ngày đăng: 31/5/2020 RESEARCH AND BUILDING MULTI FACTOR AUTHENTICATION SYSTEM FOR WEBSITE Dang Xuan Bao*, Tran Thi Xuyen, Hoang Thu Phuong, Nguyen Thi Hong Ha Academy of Cryptography Techniques ABSTRACT One of the most important requirements of information security is to authenticate the identity of the object, who authorized to use the system computing resources such as account access, read and edit documents for the information system of state agencies, or conduct online transactions in ecommerce systems The most popular online authentication method is to use a password However, in the current context, the safety of this method is not high To increase the security for authentication process, the password should be used with other factors, or called multi-factor authentication This article will introduce a method to build multi- factors authentication system for a website Keywords: Authentication; multi-factor authentication; OTP code; HOTP code; TOTP code; QR code Received: 14/4/2020; Revised: 30/5/2020; Published: 31/5/2020 * Corresponding author Email: dangxuanbao.attt@gmail.com http://jst.tnu.edu.vn; Email: jst@tnu.edu.vn 479 Đặng Xuân Bảo Đtg Tạp chí KHOA HỌC & CƠNG NGHỆ ĐHTN 225(06): 479 - 485 Giới thiệu Xác thực việc xác lập chứng thực thực thể đáng tin cậy, có nghĩa thơng tin người đưa đắn Xác thực đối tượng cịn có nghĩa cơng nhận nguồn gốc đối tượng, xác thực người thường bao gồm việc thẩm tra nhận dạng cá nhân họ Xác thực khâu đặc biệt quan trọng để bảo đảm an toàn cho hoạt động hệ thống thơng tin Đó quy trình nhằm xác minh nhận dạng số bên gửi thông tin liên lạc trao đổi, xử lý thông tin, chẳng hạn yêu cầu đăng nhập [1] Mật đăng nhập dạng xác thực danh tính người dùng Người dùng sử dụng để đăng nhập vào website, ứng dụng liệu Nhưng kiểu xác thực danh tính truyền thống dễ dàng bị hacker bẻ khóa Để tăng tính an tồn cho q trình xác thực, giải pháp xác thực đa nhân tố sử dụng Xác thực đa nhân tố kết hợp tối thiểu nhân tố sau [2]: - Something that you have: Những mà bạn có Chẳng hạn thẻ thông minh, thiết bị token ngân hàng - Something that you are: Những thuộc sinh trắc bạn Ví dụ đồng tử, trịng mắt, dấu vân tay hay giọng nói bạn - Something that you know: Những mà bạn biết Là thơng tin mà bạn tạo như: tên đăng nhập, mật đăng nhập, tên người thân bạn, trường cấp bạn, Xác thực đa nhân tố thường hay sử dụng lĩnh vực kinh doanh online, ngân hàng, mạng xã hội Hiện nay, xác thực đa nhân tố, nhân tố sử dụng thường mật người dùng cài đặt, nhân tố thứ hai thường mật sử dụng lần (OTP) Đối với mật sử dụng lần, mã OTP (hình 1) Token vật lý (hình 2) hai lựa chọn sử dụng nhiều [3] 480 Hình Mã OTP gửi qua tin nhắn thực giao dịch ngân hàng điện tử Techcombank Hình Token key sinh mã OTP thực giao dịch ngân hàng điện tử Techcombank Tuy nhiên, chi phí sử dụng mã OTP lớn (phí tin nhắn, phí thiết bị) Vì vậy, báo chúng tơi trình bày giải pháp xây dựng xác thực đa nhân tố sử dụng hệ thống phần mềm, giúp tiết kiệm chi phí cho q trình xác thực đa nhân tố Thực nghiệm tiến hành website giả định Giải pháp công nghệ thực Hiện có hai cách sinh mã OTP sinh theo phương pháp đồng bộ đếm (RFC4226) sinh theo phương pháp đồng thời gian (RFC-6238) Theo RFC-4226, thuật toán sinh OTP dựa đồng bộ đếm gọi HMAC-Based One-Time Password Algorithm (HOTP), với HOTP (K,C) =Truncate (HMAC_SHA-1(K,C)) (1) Trong đó: - K: Giá trị chia sẻ bí mật Client Server - C: Bộ đếm đồng Client Server, C có độ dài bytes - Truncate(): Hàm tách chuỗi, thực việc trích xuất kết từ hàm băm Hash để có mật OTP http://jst.tnu.edu.vn; Email: jst@tnu.edu.vn Đặng Xuân Bảo Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN - HMAC_SHA-1(K,C) hàm tính tốn dựa thuật tốn HMAC kết hợp với hàm băm SHA-1 giá trị K đếm C HMAC_SHA-1(K,C)=SHA-1(K⊕C1… ∥ SHA-1(K⊕ C2… ∥ C)) (2) với: 225(06): 479 - 485 - T kết tính (đã lấy phần ngun) từ cơng thức tính tốn Thuật toán TOTP dựa thuật toán HOTP (RFC-4226) thay giá trị đếm (C) giá trị thời gian (T): TOTP = HOTP(K, T) - C1 = 0x36 (36 hệ thập lục phân) Đối với thuật toán TOTP độ dài mật OTP tính sau: - C2 = 0x5c (5C hệ thập lục phân) Giá trị mật tính theo cơng thức: d HOTP = HOTP(K,C) mod 10 TOTP = TOTP(K, T) mod10d (3) Trong đó: d số chữ số OTP, thơng thường mật OTP sinh có độ dài từ đến chữ số Hình Sơ đồ mơ tả thuật toán HOTP sinh mật OTP Tiêu chuẩn RFC 6238 dựa vào thuật toán Time-based One Time Password (TOTP) Nó có phương thức hoạt động tương tự HOTP trình bày mục TOTP có hai nhân tố khoá chia sẻ đếm (giống giá trị K C HOTP), đếm TOTP hoạt động khác so với HOTP Cụ thể thuật toán TOTP sinh mật OTP dựa theo thời gian giá trị T thời gian tính sau: T = (Tcurrent_unix_time − T0) / X (4) Trong công thức (4) trên: - Tcurrent_unix_time giá trị thời gian tính theo thời gian Unix (được tính từ thời điểm Unix Epoch ngày 01/01/1970 theo UTC (giờ chuẩn quốc tế) - T0: Là giá trị thời gian ban đầu (thường chọn T0=0) - X: Là bước thời gian, tham số định thời gian hợp lệ mật OTP http://jst.tnu.edu.vn; Email: jst@tnu.edu.vn (5) (6) Trong công thức (6): d số chữ số mật OTP Cũng giống với HOTP, TOTP thơng thường có độ dài từ đến ký tự So sánh hai phương pháp này, phương pháp sinh mã OTP theo đồng thời gian an tồn đảm bảo việc mã OTP sinh có tác dụng thời gian ngắn chọn trước, mã OTP sinh theo phương pháp đồng đếm thời gian tác dụng phụ thuộc vào số kiện đăng nhập tồn khoảng thời gian dài, dẫn đến việc bị tìm [4] Vì vậy, nghiên cứu lựa chọn phương pháp sinh mã OTP theo đồng thời gian (RFC-6238) Với phương pháp đồng thời gian, mã OTP sinh theo thuật toán Time-based One Time Password [5] Trong thuật toán Time-based One Time Password việc lựa chọn tham số X quan trọng, ảnh hưởng đến hoạt động hệ thống Nếu X lớn giúp kẻ cơng dị mã OTP, X bé gây khó khăn cho người dùng Trong RFC-6238 thời gian X mặc định 30 giây Để đảm bảo tính bí mật khóa chia sẻ, việc gửi khóa chia sẻ thực thơng qua mã QR [6] Thiết kế xây dựng hệ thống Cấu trúc hệ thống Như vậy, hệ thống xác thực đa nhân tố cho website bao gồm thành phần sau đây: máy chủ sinh mã QR; máy chủ web; máy chủ sở liệu; ứng dụng đọc mã QR sinh mã OTP điện thoại người dùng (hình 4) 481 Đặng Xn Bảo Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN - Máy chủ sinh mã QR làm nhiệm vụ sinh khóa chia sẻ, đóng gói khóa chia vào mã QR gửi tới ứng dụng đọc mã QR máy người dùng thông qua giao diện máy chủ web - Ứng dụng đọc mã QR máy người dùng đọc mã QR từ máy chủ gửi đến, lấy khóa chia sẻ sinh mã OTP theo RFC-6238 Mã OTP sinh sử dụng trình đăng nhập người dùng - Máy chủ web tiến hành xác thực người dùng mật mã OTP - Máy chủ sở liệu lưu liệu người dùng tên đăng nhập, mật khẩu, mã QR Hình Hệ thống xác thực đa nhân tố cho website Tích hợp hệ thống token mềm trình xác thực người dùng Modul xác thực xây dựng dựa kết hợp đăng nhập username mật cộng với việc xác thực mã OPT Người dùng phải đăng kí tài khoản với hệ thống thương mại điện tử Sau người dùng tùy chỉnh bật tắt tính xác thực hai lớp phần cài đặt Khi bật tính xác thực hai lớp phía server tạo mã QR có dạng sau: optauth://totp/%3A?secret= &digits=&issuer= (7) 482 225(06): 479 - 485 Trong - Host: tên miền hệ thống - Username: tên đăng nhập người dùng - serect: khóa bí mật hệ thống tạo Để thực việc xác thực mã QR, người dùng cần bật tính Sau bật thành cơng máy chủ sinh mã QR có dạng (7) khác cho người dùng Người dùng sử dụng phần mềm đọc mã QR điện thoại để nhận khóa bí mật làm tham số đầu vào cho trình sinh mã OTP Trong phạm vi báo phần mềm đọc mã QR sử dụng Google Autheticator [7] Sau người dùng sử dụng mật mã OTP sinh để tiến hành xác thực đăng nhập Trình tự hành động người dùng nêu hình Với lần đăng nhập vào website, người dùng sử dụng mật Trong lần đăng nhập người dùng gửi yêu cầu bật tính xác thực hai lớp Khi tính xác thực hai lớp bật website, người dùng nhận mã QR máy chủ sinh mã QR sinh qua giao diện website Người dùng sử dụng ứng dụng quét mã QR để đọc mã sinh mã OTP theo RFC6235 sử dụng cho lần đăng nhập Từ lần đăng nhập thứ hai người dùng cần sử dụng mật mã OTP sinh ứng dụng Google Autheticator để tiến hành xác thực Về phía máy chủ website, nhận yêu cầu sử dụng tính xác thực từ phía người dùng, gửi yêu cầu đến máy chủ sinh mã QR Máy chủ sinh mã QR tiến hành sinh mã QR cho người dùng theo RFC-623(xóa phần chữ đỏ này) Mã QR gửi tới giao diện website lưu vào sở liệu Khi người dùng đăng nhập lại tiến hành kiểm tra mật mã OTP người dùng (hình 6) http://jst.tnu.edu.vn; Email: jst@tnu.edu.vn Đặng Xuân Bảo Đtg Tạp chí KHOA HỌC & CƠNG NGHỆ ĐHTN 225(06): 479 - 485 4.1 Thiết kế chức máy chủ sinh mã QR Để tạo mã QR nghiên cứu sử dụng framework mã nguồn mở Django (thư viện django otp) [8] Đoạn code tạo mã QR gửi trả cho client sau: Hình Sơ đồ thuật toán hoạt động người dùng đăng nhập def get(self, request, *args, **kwargs): # Get the data from the session try: key = self.request.session[self.session_key_name] except KeyError: raise Http404() # Get data for qrcode image_factory_string = getattr(settings, 'TWO_FACTOR_QR_FACTORY', self.default_qr_factory) image_factory = import_string(image_factory_string) content_type = self.image_content_types[image_factory.kind ] try: username = self.request.user.get_username() except AttributeError: username = self.request.user.username otpauth_url = get_otpauth_url(accountname=username, issuer=self.get_issuer(),secret=key, digits=totp_digits()) # Make and return QR code img = qrcode.make(otpauth_url, image_factory=image_factory) resp = HttpResponse(content_type=con tent_type) img.save(resp) return resp 4.2 Tính tạo mã OTP Google Authenticator Hình Sơ đồ thuật toán hoạt động máy chủ xác thực http://jst.tnu.edu.vn; Email: jst@tnu.edu.vn Người dùng sử dụng ứng dụng Google Authenticator cài điện thoại để quét mã QR Hai tham số shared secret key thời gian thực kết nối với 483 Đặng Xuân Bảo Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN đưa qua hàm băm SHA-1 Đầu mã TOTP chuyển dạng dễ sử dụng cho người dùng gồm ký tự Tiến hành nhập mã OTP gửi lên phía server, mã OTP vừa nhập trùng với mã OTP sinh server server tiến hành lưu trạng thái xác thực hai lớp tài khoản bật sở liệu Đoạn code mẫu tạo mã OTP Google Autheticator: original_secret = xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx secret = BASE32_DECODE(TO_UPPERCASE(REM OVE_SPACES(original_secret))) 225(06): 479 - 485 Hình Bật tính xác thực hai lớp Sau bật tính xác thực hai yếu tố, máy chủ sinh mã QR sinh mã QR cho người dùng (hình 9) Sau người dùng sử dụng Google Authenticator để đọc mã QR sinh mã OTP Kết sinh mã OTP hình 10 Tiến hành đăng nhập sử dụng mật (hình 11) mã OTP (hình 12) input = CURRENT_UNIX_TIME() / 30 hmac = SHA1(secret + SHA1(secret + input)) four_bytes = hmac[LAST_BYTE(hmac):LAST_BYTE(hm ac) + 4] large_integer = INT(four_bytes) small_integer 1,000,000 = large_integer % Kết thử nghiệm Hình Mã QR sinh Mơi trường u cầu để cài đặt triển khai hệ thống là: Hệ điều hành Linux, cài đặt Python 3.6, Django 1.11, sở liệu SQLite Yêu cầu phần cứng: ổ cứng trống 50Mb, RAM từ 4Gb Đầu tiên, cần khởi chạy máy chủ sinh mã QR (hình 7) Hình Hệ thống token mềm Tiếp theo, người dùng yêu cầu bật tính xác thực hai yếu tố (hình 8) 484 Hình 10 Mã OTP tạo http://jst.tnu.edu.vn; Email: jst@tnu.edu.vn Đặng Xuân Bảo Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ĐHTN 225(06): 479 - 485 ngân hàng để xác thực giao dịch trực tuyến, nhiên cần xây dựng ứng dụng sinh mã OTP thay cho Google Authenticator để đảm bảo chuẩn an tồn riêng lĩnh vực tốn điện tử TÀI LIỆU THAM KHẢO/ REFERENCES Hình 11 Giao diện đăng nhập Hình 12 Sử dụng mã OTP để xác thực Kết luận Nghiên cứu trình bày cần thiết vấn đề xác thực đa nhân tố đảm bảo an tồn thơng tin Trong xác thực đa nhân tố sử dụng mã OTP phổ biến Kết nghiên cứu phân tích, thiết kế xây dựng thành công hệ thống xác thực đa nhân tố sử dụng mã OTP cho website cụ thể Hệ thống chạy ổn định, có đáp ứng nhu cầu bình thường người dùng Hệ thống đề xuất tích hợp vào trang web, ứng dụng thương mại điện tử shopee, lazada để thực chức xác thực nguời dùng xác thực hành động người dùng (đặt hàng, đăng sản phẩm, hủy đơn hàng ) Hệ thống đề xuất tích hợp vào hệ thống máy chủ http://jst.tnu.edu.vn; Email: jst@tnu.edu.vn [1] M S Merkow, and J Breithaupt, Information Security Principles and Practices NJ, Prentice Hall, 2005 [2] E Gilman, and D Barth, Zero Trust Networks: Building Secure Systems in Untrusted Networks, 1st edition, Califonia: O'Reilly Media, 2017 [3] Le Phuong, “The bank has simultaneously changed the way to receive OTP codes from today”, Jul 01, 2019 [Online] Available: https://bnews.vn/ngan-hang-dong-loat-doicach-nhan-ma-otp-tu-hom-nay/126768.html [Accessed Jan 11, 2020] [4] C J Wu, and J D Irwin, Introduction to Computer Networks and Cybersecurity Florida: CRC Press, 2017 [5] Internet Engineering Task Force, “TOTP: Time-Based One-Time Password Algorithm” Internet Engineering Task Force, RFC6238, 2011 [Online] Available: https://tools.ietf.org/html/rfc6238 [Accessed Jan 11, 2020] [6] J R Vacca, Computer and Information Security Handbook Massachusetts: Morgan Kaufmann, 2017 [7] Google, “Google Authenticator OpenSource”, Dec 06, 2018 [Online] Available: https://github.com/google/googleauthenticator [Accessed Jan 11, 2020] [8] P Sagerson, “Django-otp”, Aug 24, 2019 [Online] Available: https://django-otpofficial.readthedocs.io/en/ stable [Accessed Jan 11, 2020] 485 ... bày giải pháp xây dựng xác thực đa nhân tố sử dụng hệ thống phần mềm, giúp tiết kiệm chi phí cho trình xác thực đa nhân tố Thực nghiệm tiến hành website giả định Giải pháp cơng nghệ thực Hiện có... xác thực Kết luận Nghiên cứu trình bày cần thiết vấn đề xác thực đa nhân tố đảm bảo an tồn thơng tin Trong xác thực đa nhân tố sử dụng mã OTP phổ biến Kết nghiên cứu phân tích, thiết kế xây dựng. .. việc gửi khóa chia sẻ thực thông qua mã QR [6] Thiết kế xây dựng hệ thống Cấu trúc hệ thống Như vậy, hệ thống xác thực đa nhân tố cho website bao gồm thành phần sau đây: máy chủ sinh mã QR; máy

Ngày đăng: 10/07/2020, 09:50

Hình ảnh liên quan

Hình 1. Mã OTP được gửi qua tin nhắn khi thực hiện giao dịch ngân hàng điện tử Techcombank  - Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

Hình 1..

Mã OTP được gửi qua tin nhắn khi thực hiện giao dịch ngân hàng điện tử Techcombank Xem tại trang 2 của tài liệu.
Hình 3. Sơ đồ mô tả thuật toán HOTP sinh mật kh ẩu OTP - Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

Hình 3..

Sơ đồ mô tả thuật toán HOTP sinh mật kh ẩu OTP Xem tại trang 3 của tài liệu.
Hình 4. Hệ thống xác thực đa nhân tố cho website - Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

Hình 4..

Hệ thống xác thực đa nhân tố cho website Xem tại trang 4 của tài liệu.
Hình 5. Sơ đồ thuật toán hoạt động người dùng khi đăng nhập  - Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

Hình 5..

Sơ đồ thuật toán hoạt động người dùng khi đăng nhập Xem tại trang 5 của tài liệu.
Hình 6. Sơ đồ thuật toán hoạt động của máy chủ khi xác thực  - Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

Hình 6..

Sơ đồ thuật toán hoạt động của máy chủ khi xác thực Xem tại trang 5 của tài liệu.
Hình 7. Hệ thống token mềm - Nghiên cứu xây dựng hệ thống xác thực đa nhân tố cho website

Hình 7..

Hệ thống token mềm Xem tại trang 6 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan