Chương 1: Giới thiệu tổng quan đề tài - Giới thiệu khái quát về lý do lựa chọn đề tài, mục tiêu, ý nghĩa khoa học và ý nghĩa thực tiễn của đề tài nghiên cứu, đối tượng và phạm vi nghiên cứu, cũng như các phương pháp sẽ áp dụng để hiện thực hóa đề tài. Chương 2: Cơ sở lý thuyết – Cung cấp kiến thức tổng quan về giải pháp kỹ thuật FIDO và thư viện đồ họa WebGL. Chương 3: Phân tích hiện trạng vấn đề nghiên cứu – Khảo sát các đề tài nghiên cứu có liên quan, phân tích hiện trạng vấn đề nghiên cứu và trình bày nội dung và quy trình chi tiết sẽ thực hiện cho hệ thống mô phỏng. Chương 4: Phát triển hệ thống mô phỏng – Trình bày kiến trúc và công nghệ thực hiện, các chức năng và giao diện từng chức năng.
Chương 5: Khảo sát đánh giá hệ thống – Nêu phương pháp xây dựng bảng khảo sát và kết quả khảo sát hệ thống. Chương 6: Kết luận và hướng phát triển – Nêu kết luận về kết quả khảo sát hệ thống, những điểm còn hạn chế của hệ thống và hướng phát triển của đề tài trong tương lai. Tổng quan giải pháp kỹ thuật FIDO 2. Giới thiệu FIDO là từ viết tắt của Fast IDentity Online, có thể hiểu là xác thực nhanh trực tuyến.
Giải pháp FIDO được tạo ra bởi Liên minh FIDO (FIDO Alliance) với phiên bản đầu tiên vào ngày 09 tháng 12 năm 2014 nhằm mục đích mang đến một chuẩn xác thực mới đơn giản hơn và mạnh mẽ hơn. FIDO cung cấp hai loại trải nghiệm cho người sử dụng để giải quyết hàng loạt các trường hợp sử dụng và các kịch bản triển khai khác nhau đó là FIDO UAF và FIDO U2F. Giao thức của FIDO dựa trên mã hóa khóa công khai và nó có khả năng chống lại hoàn toàn kiểu tấn công bằng cách tạo ra các trang web giả mạo (phishing attack). Một kiểu tấn công đang rất phổ biến hiện nay để lấy cắp thông tin tài khoản giao dịch trực tuyến của người dùng cuối nhằm thực hiện các ý đồ xấu.
Lịch sử hình thành Liên minh FIDO được tuyên bố thành lập vào tháng 02/2013 bởi 6 thành viên ban đầu là PayPal, Lenovo, Nok Nok Labs, Validity Sensors, Infineon và Agnitio với mục đích là đưa ra một tiêu chuẩn chung cho việc ứng dụng sinh trắc học vào xác thực trực tuyến thay cho việc dùng mật khẩu truyền thống. Đến tháng 04/2013, Liên minh chào đón thêm 3 thành viên mới là Google, Yubico và NXP, nhóm đã mang đến một tiêu chuẩn xác thực mới là công nghệ xác thực hai bước dựa trên thiết bị cứng (xác thực hai yếu tố) nhằm chống lại các dạng tấn công lấy cắp thông tin tài khoản đăng nhập vào hệ thống của người dùng cuối bằng các website giả mạo. Đến tháng 12/2013 Liên minh đã được mở rộng lên 59 thành viên và các ứng dụng cho giải pháp FIDO đã sẵn sàng. Liên minh đã có tổng cộng 84 thành viên vào tháng 02/2014 và bản nháp về đặc tả kỹ thuật của FIDO cũng được đưa ra xem xét vào thời điểm này.
Đến ngày 09/12/2014, bộ tài liệu kỹ thuật phiên bản đầu tiên về FIDO 1.0 đã được công bố với 152 thành viên trong Liên minh FIDO. Tháng 05/2015, Liên minh đưa ra chương trình chứng nhận các sản phẩm đạt chuẩn của FIDO và được công bố công khai trong cộng đồng. Tháng 06/2015, FIDO chính thức hỗ trợ hai giao thức giao tiếp mới là Bluetooth và Near Field Communication 7 (NFC). Đến tháng 02/2016, W3C đã tạo ra một nhóm xác thực Web để định nghĩa ra một API (Application Program Interface) cung cấp các chức năng xác thực mạnh trên các ứng dụng Web dựa trên chuẩn FIDO 2.
Hiện nay, Liên minh FIDO đã có hơn 260 thành viên tham gia với nhiều lĩnh vực ứng dụng khác nhau từ các ứng dụng cho người dùng cuối (Client) và các ứng dụng trên hệ thống máy chủ (Server) theo chuẩn UAF, U2F cho đến cung cấp thiết bị FIDO U2F [1]. FIDO hoạt động như thế nào? Các giao thức của FIDO sử dụng tiêu chuẩn kỹ thuật mã hóa khóa công khai để cung cấp giải pháp xác thực mạnh mẽ hơn. Trong suốt quá trình đăng ký với một dịch vụ trực tuyến, thiết bị của người dùng cuối sẽ tạo ra một cặp khóa mới. Giữ lại khóa bí mật trong các thiết bị này và đăng ký khóa công khai với các dịch vụ trực tuyến.
Việc xác thực được thực hiện bằng cách người dùng cuối sử dụng thiết bị lưu giữ khóa riêng để ký vào các chuỗi yêu cầu được gửi đến từ hệ thống máy chủ của các dịch vụ trực tuyến. Các khóa riêng này chỉ được sử dụng khi các thiết bị lưu giữ khóa đã được mở khóa bởi chính chủ nhân sở hữu nó. Việc mở khóa này được thực hiện một cách dễ dàng và an toàn bằng cách quét dấu vân tay, nhập một mã PIN, nói vào micro, chèn một thiết bị xác thực hai yếu tố hoặc nhấn một nút trên thiết bị. Các giao thức FIDO được thiết kế từ mức độ nền tảng cho đến giao tiếp ở mức độ cao để đảm bảo tính riêng tư của người dùng.
Giao thức không cung cấp các thông tin mà nó có thể được sử dụng bởi các dịch vụ trực tuyến và theo dõi người dùng thông qua các dịch vụ. Thông tin sinh trắc học sẽ không bao giờ rời khỏi thiết bị của người dùng nếu chúng được sử dụng trong các dịch vụ trực tuyến. Quá trình đăng ký tài khoản: 8 Hình 2-1. Quá trình đăng ký tài khoản (Nguồn: FIDO Alliance) • Người sử dụng sẽ chọn cách xác thực được cung cấp tùy theo từng dịch vụ.
• Người dùng mở khóa bộ xác thực FIDO sử dụng đầu đọc dấu vân tay, nhấn vào nút trên thiết bị xác thực hai yếu tố, nhập mã PIN an toàn hoặc các phương pháp khác. • Thiết bị của người sử dụng sẽ tạo ra một cặp khóa (khóa bí mật và khóa công khai) mới và duy nhất tương ứng với từng thiết bị, dịch vụ trực tuyến và tài khoản người dùng. • Khóa công khai sẽ được gửi đến máy chủ của dịch vụ trực tuyến và được gắn liên kết với tài khoản của người dùng. Khóa bí mật và bất kỳ thông tin về phương pháp xác thực (như các phép đo sinh trắc học và các mẫu) sẽ không bao giờ được tiết lộ ra bên ngoài thiết bị của người dùng.
9 Quá trình xác thực tài khoản: Hình 2-2. Quá trình xác thực tài khoản (Nguồn: FIDO Alliance) • Dịch vụ kiểm tra trực tuyến người dùng đăng nhập với một thiết bị đã được đăng ký trước đó với dịch vụ. • Người dùng mở khóa bộ xác thực FIDO sử dụng phương pháp tương tự như lúc đăng ký. • Thiết bị sử dụng tài khoản nhận dạng của người sử dụng được cung cấp bởi dịch vụ để lựa chọn đúng khóa và ký vào chuỗi yêu cầu của dịch vụ.
• Thiết bị sẽ gửi chuỗi yêu cầu đã được ký đến hệ thống máy chủ dịch vụ, sau đó hệ thống dịch vụ sẽ kiểm tra chuỗi yêu cầu đã ký với khóa công khai đã được lưu trữ trong quá trình đăng ký với dịch vụ. Giới thiệu FIDO UAF UAF là từ viết tắt của Universal Authentication Framework,các giao thức FIDO UAF cho phép các dịch vụ trực tuyến sử dụng cơ chế bảo mật không sử dụng mật khẩu (password-less) và bảo mật đa yếu tố. Người dùng có thể đăng ký tài khoản của mình một cách trực tuyến với những thông tin đi kèm thông qua việc quét vân 10 tay, quét võng mạc bằng camera, nói vào micro hoặc thậm chí đơn giản là cung cấp một mã PIN. Giao thức UAF cho phép người dùng được lựa chọn phương pháp xác thực nào tiện lợi và tối ưu nhất dựa vào tính năng xác thực mà thiết bị của người dùng đang sở hữu.
Chỉ bằng một lần đăng ký, người dùng đơn giản là thực hiện lại hành động kiểm tra sinh trắc học hoặc nhập PIN để có thể xác thực cho các dịch vụ trực tuyến này mà không cần nhớ đến những chuỗi mật khẩu dài dòng nữa. Bên cạnh đó, UAF còn cho phép cơ chế xác thực nhiều lớp kết hợp chẳng hạn như kết hợp vân tay + PIN. Chuẩn mô hình sử dụng FIDO UAF 2. Mô hình kiến trúc UAF Hình 2-4.
Mô hình kiến trúc FIDO UAF (Nguồn: FIDO UAF Architectural Overview) 11 • FIDO Client: thực hiện các giao thức FIDO UAF ở phía người dùng cuối (client) và có nhiệm vụ: o Tương tác với bộ xác thực FIDO Authenticator thông qua lớp thư viện giao tiếp ASM – Authenticator Specific Module một bộ thư viện chuẩn giao tiếp với bộ thiết bị xác thực (Authenticator) tương ứng. o Thông qua tương tác với một User agent trên thiết bị như các ứng dụng di động, trình duyệt để giao tiếp với hệ thống máy chủ FIDO Server. • FIDO Server: thực hiện các giao thức FIDO UAF ở phía máy chủ (server) và có nhiệm vụ: o Tương tác với máy chủ web để giao tiếp giữa giao thức của FIDO UAF với client FIDO UAF. o Xác nhận các bộ chứng thực FIDO UAF đã được đăng ký sử dụng.
o Quản lý sự liên kết giữa tài khoản người dùng với bộ xác thực. o Kiểm tra xác thực người dùng và gửi đáp ứng xác nhận giao dịch để xác minh tính hợp lệ của chúng. • FIDO UAF Protocols: mang thông điệp giao tiếp giữa thiết bị của người sử dụng với Relaying party. Gói tin giao thức có các loại như sau: o Đăng ký bộ xác thực.
o Xác thực người dùng. o Xác nhận giao dịch an toàn. o Xóa đăng ký bộ xác thực. • FIDO UAF Authenticator Abstraction Layer: lớp mô tả bộ xác thực UAF cung cấp thông tin về các API để các FIDO Client sử dụng.
• FIDO UAF Authenticator: bộ xác thực FIDO UAF là một thực thể an toàn, kết nối hoặc được tích hợp trong chính thiết bị FIDO UAF, có thể tạo ra các dữ liệu rất quan trọng để gửi đến Relying party. • FIDO UAF Authenticator Metadata Validation: siêu dữ liệu xác minh bộ phận xác thực, khóa bí mật trong bộ phận xác thực tạo ra chữ ký và FIDO Server sẽ xác minh chữ ký này sử dụng khóa công khai đã được lưu trữ trong hệ thống máy chủ. Siêu dữ liệu chứa các giấy chứng nhận này chia sẽ dữ liệu với hệ thống máy chủ [2]. Cấu trúc tập lệnh của FIDO UAF Tập lệnh của FIDO UAF định nghĩa giao thức giao tiếp giữa ASM và bộ thiết bị xác thực thông qua giao tiếp APDU (Application Programming Data Units) và tuân theo chuẩn ISOIEC-7816-4-2013.