Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh hệ thống mạng máy tính và các ứng dụng thương mại điện tử phát triển mạnh mẽ, việc chia sẻ thông tin và khai thác tài nguyên hệ thống trở nên phổ biến. Các nhà cung cấp dịch vụ công nghệ thông tin có xu hướng áp dụng mô hình phân tán, phân chia máy chủ theo vị trí địa lý nhằm nâng cao hiệu quả phục vụ các nhóm người dùng khác nhau. Tuy nhiên, kiến trúc phân tán đặt ra những thách thức lớn về an toàn thông tin và tính thuận tiện trong quản lý truy cập.

Thực tế quản trị cho thấy phương thức đăng ký và sử dụng cặp tên người dùng – mật khẩu riêng lẻ cho từng dịch vụ phát sinh nhiều hạn chế:

  • Người dùng phải ghi nhớ và quản lý quá nhiều thông tin bí mật, dẫn đến xu hướng đặt mật khẩu đơn giản, dễ đoán hoặc tái sử dụng mật khẩu trên nhiều hệ thống, làm gia tăng nguy cơ bị tấn công đánh cắp danh tính.
  • Làm phát sinh chi phí vận hành, kéo dài thời gian đăng nhập và gia tăng áp lực hỗ trợ kỹ thuật (như xử lý yêu cầu đặt lại mật khẩu).
  • Gây khó khăn cho quản trị viên trong việc kiểm soát tập trung vòng đời tài khoản khi nhân sự thay đổi vị trí công tác hoặc rời khỏi tổ chức.

Để giải quyết các vấn đề trên, cơ chế đăng nhập một lần (Single Sign-On - SSO) được áp dụng như một giải pháp cho phép người dùng hợp pháp chỉ cần xác thực một lần với một định danh duy nhất là có thể truy cập vào nhiều dịch vụ liên kết trong hệ thống phân tán. Đề tài "Nghiên cứu phương pháp xác thực một lần và ứng dụng trong thực tế" do sinh viên Trần Thanh Nhàn thực hiện dưới sự hướng dẫn của PGS. TS. Hoàng Xuân Dậu tại Học viện Công nghệ Bưu chính Viễn thông tập trung vào các nhiệm vụ nghiên cứu sau:

  1. Nghiên cứu tổng quan về cơ chế xác thực người dùng, các kỹ thuật xác thực phổ biến và nguyên lý của cơ chế xác thực một lần.
  2. Khảo sát, phân tích chi tiết cơ chế hoạt động, ưu nhược điểm của các giao thức xác thực SSO tiêu chuẩn (LDAP, Kerberos, CAS, OAuth, SAML, OpenID Connect) cùng một số giải pháp thương mại/đám mây (Microsoft Azure Active Directory, Okta).
  3. Thiết kế, cài đặt và thử nghiệm mô hình xác thực một lần sử dụng nền tảng mã nguồn mở Keycloak, tích hợp liên kết với các ứng dụng thực tế thông qua các giao thức chuẩn.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Các phương pháp, giao thức và giải pháp công nghệ xác thực một lần (SSO).
  • Phạm vi không gian/kỹ thuật: Khảo sát các giao thức chuẩn và triển khai thực nghiệm mô hình Identity Provider (IdP) tập trung bằng Keycloak kết nối tới hai hệ thống dịch vụ là Grafana (hệ thống giám sát dữ liệu) và Splunk (nền tảng quản lý và phân tích log).
  • Thời gian hoàn thành: Tháng 01 năm 2024.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và khái niệm cốt lõi

Khóa luận thiết lập nền tảng dựa trên các khái niệm và mô hình lý thuyết an toàn thông tin:

  • Phân biệt Xác thực (Authentication) và Ủy quyền (Authorization):

    • Xác thực: Là quá trình xác định danh tính của một thực thể tham gia giao dịch (diễn ra một chiều hoặc hai chiều), đảm bảo thực thể đó đúng là đối tượng được khai báo và ngăn chặn giả mạo.
    • Ủy quyền: Là quá trình quản lý quyền hạn, cho phép hoặc ngăn chặn việc truy cập tài nguyên/dịch vụ cụ thể của một bên sau khi đã được xác thực thành công.
  • Ba yếu tố xác thực cơ bản:

    • Yếu tố kế thừa (Inheritance factor): Các đặc điểm sinh học tự nhiên của người dùng (vân tay, mống mắt, võng mạc, giọng nói, khuôn mặt).
    • Yếu tố sở hữu (Possession factor): Các vật phẩm, thiết bị hoặc chứng chỉ người dùng nắm giữ (thẻ thông minh, OTP token, chứng minh thư, điện thoại di động).
    • Yếu tố tri thức (Knowledge factor): Thông tin người dùng biết và ghi nhớ (tên đăng nhập, mật khẩu, mã PIN).
  • Các kỹ thuật xác thực người dùng truyền thống:

    • Xác thực bằng thẻ: Dữ liệu trên thẻ được mã hóa bằng các thuật toán DES, 3DES, AES (độ dài khóa 128-bit, 192-bit, 256-bit), kết hợp mã PIN cá nhân.
    • Xác thực dựa trên mật khẩu: Phương thức phổ biến nhất nhưng đối mặt với nguy cơ tấn công từ điển (dictionary attack) và tấn công vét cạn (brute-force).
    • Xác thực sinh trắc học: Phân loại thành hình thái (vân tay, võng mạc, khuôn mặt), hành vi (dáng đi, chữ ký, động lực gõ phím) và sinh học (nhịp tim, DNA). Áp dụng hai kỹ thuật đối sánh: Đối sánh 1:1 (xác minh danh tính) và Đối sánh tra cứu 1:N (nhận dạng trong cơ sở dữ liệu lớn). Năm số đo vật lý được xếp theo hiệu suất giảm dần: Mẫu võng mạc $\rightarrow$ Dạng bàn tay $\rightarrow$ Mẫu giọng nói $\rightarrow$ Chữ ký $\rightarrow$ Dấu vân tay.
    • Xác thực bằng mật khẩu dùng một lần (OTP): Ngăn chặn tấn công phát lại (replay attack) và brute-force; gồm OTP đồng bộ hóa bộ đếm (chuỗi băm toán học) và OTP đồng bộ hóa thời gian (time-based OTP).
    • Xác thực bằng sóng vô tuyến RFID: Truyền số sê-ri không dây trong phạm vi hẹp, thường dùng làm yếu tố xác thực thứ hai kết hợp với mật khẩu.
  • Mô hình phân loại hệ thống Single Sign-On (SSO):

    • Theo môi trường triển khai: Intranet/Enterprise SSO (ESSO - triển khai qua agent/phần mềm trên máy tính người dùng), Extranet/Multi-domain SSO, Internet/Web SSO (dựa trên IdP và trình duyệt web).
    • Theo kiến trúc: Simple SSO (một cơ quan xác thực duy nhất) và Complex SSO (gồm Centralized SSO quản lý tập trung qua bên thứ ba và Federated SSO liên kết tin cậy giữa các miền độc lập).
    • Theo phương thức xử lý thông tin xác thực: Hệ thống SSO dựa trên Token (Token-based trong HTTP dùng Cookie), SSO dựa trên PKI (chữ ký số và khóa công khai/khóa riêng), Đồng bộ hóa thông tin xác thực (Credential Synchronization như PassGo), Lưu trữ thông tin xác thực phía Client (Client-side Credential Caching như Windows Credential Manager) và Lưu trữ phía Server (Server-side Credential Caching như CA Etrust SSO).

Phương pháp nghiên cứu

  • Phương pháp phân tích - tổng hợp tài liệu kỹ thuật: Nghiên cứu các tiêu chuẩn mạng và đặc tả giao thức quốc tế từ X.500, IETF, OASIS và OpenID Foundation (LDAP, Kerberos, CAS, OAuth 2.0, SAML 2.0, OpenID Connect).
  • Phương pháp so sánh, đối chiếu: Lập tiêu chí kỹ thuật để đánh giá ưu điểm, nhược điểm, phạm vi thích ứng của từng giao thức và giải pháp SSO trên thị trường.
  • Phương pháp thực nghiệm hệ thống: Cài đặt, cấu hình máy chủ Keycloak đóng vai trò Identity Provider (IdP); tích hợp Service Provider (SP) Grafana qua OpenID Connect và Splunk qua SAML 2.0; kiểm thử các kịch bản đăng nhập một lần và phân quyền truy cập người dùng theo vai trò.

Nguồn dữ liệu

  • Tài liệu lý thuyết, tài liệu đặc tả chuẩn kỹ thuật của các tổ chức tiêu chuẩn hóa và các nhà phát triển giải pháp (MIT, Jasig/Apereo, Microsoft, Okta, Keycloak).
  • Dữ liệu cấu hình hệ thống, bản tin trao đổi thực tế (XML SAML Assertion, JSON Web Token, OIDC configuration) và kết quả thử nghiệm trực tiếp trên môi trường máy chủ cục bộ.

Nội dung chính theo từng chương

Chương 1: Tổng quan về xác thực người dùng

Chương 1 trình bày cơ sở lý luận về xác thực, phân định ranh giới giữa xác thực và ủy quyền, đồng thời phân tích chi tiết 5 kỹ thuật xác thực người dùng cơ bản:

  1. Xác thực bằng thẻ: Đánh giá quy trình kết hợp thẻ vật lý với mã PIN, kỹ thuật mã hóa lưu trữ trường dữ liệu (DES, 3DES, AES), cơ chế khóa tài khoản tự động khi đăng nhập sai nhiều lần và hạn chế về chi phí thiết bị đọc thẻ.
  2. Xác thực dựa theo tri thức (Mật khẩu): Phân tích quy trình băm/mã hóa lưu trữ mật khẩu, sự tiện lợi về mặt chi phí cùng các lỗ hổng bảo mật cố hữu do thói quen đặt mật khẩu yếu của người dùng.
  3. Xác thực dựa theo sinh trắc học: Phân loại 3 nhóm đặc trưng (hình thái, hành vi, sinh học); so sánh hiệu năng của 5 loại chỉ số vật lý; phân tích kỹ thuật đối sánh 1:1 và 1:N; chỉ ra hạn chế về sai số vị trí ngón tay hoặc yêu cầu cao về hạ tầng thu nhận tín hiệu.
  4. Xác thực sử dụng mật khẩu một lần (OTP): Trình bày cơ chế sinh mã ngẫu nhiên có thời hạn, phân loại OTP đồng bộ bộ đếm và OTP đồng bộ thời gian (thay đổi sau 1-2 phút), vai trò của OTP tokens và màn hình LCD trong xác thực hai yếu tố.
  5. Xác thực bằng sóng vô tuyến RFID: Khái quát lịch sử từ thập niên 1950, cơ chế truyền nhận số sê-ri qua sóng vô tuyến tầm gần và sự cần thiết của việc kết hợp đa yếu tố để khắc phục nhược điểm cự ly truyền dẫn.

Tiếp đó, chương 1 giới thiệu khái niệm SSO và phân loại toàn diện hệ thống SSO theo 4 tiêu chí: nơi triển khai (ESSO, Multi-domain SSO, Web SSO), cách thức triển khai (Simple SSO, Complex SSO: Centralized và Federated), thông tin đăng nhập sử dụng (Token-based, PKI-based, Credential Synchronization, Client/Server-side Caching) và giao thức hỗ trợ (LDAP, Kerberos, CAS, OAuth, SAML, OpenID Connect).

Chương tổng kết các ưu điểm (tiết kiệm thời gian, tăng cường bảo mật, giảm chi phí quản trị, nâng cao trải nghiệm người dùng) và cảnh báo các nhược điểm nghiêm trọng của SSO:

  • Rủi ro lan truyền: Nếu tài khoản chính bị xâm phạm, toàn bộ dịch vụ liên kết đều bị đe dọa.
  • Điểm lỗi đơn (Single Point of Failure - SPOF): Sự cố tại máy chủ xác thực chính sẽ làm tê liệt khả năng truy cập vào toàn bộ các dịch vụ thành viên.
  • Độ phức tạp trong tích hợp: Yêu cầu hạ tầng đồng bộ và hiểu biết sâu về kiến trúc hệ thống.

Chương 2: Các giao thức và giải pháp xác thực một lần

Chương 2 phân tích chuyên sâu nguyên lý hoạt động, cấu trúc bản tin và ưu nhược điểm của 6 giao thức xác thực SSO, cùng các giải pháp thương mại phổ biến:

1. Giao thức LDAP (Lightweight Directory Access Protocol)

  • Lịch sử & Bản chất: Ra đời năm 1993 từ nhóm OSI-DS (IETF), phát triển rút gọn từ giao thức DAP (chuẩn X.500) và các dự án DIXIE, DAS nhằm cung cấp giao thức truy cập dịch vụ thư mục nhẹ, phân tán trên nền TCP/IP.
  • Các nhóm thao tác:
    • Thao tác thẩm tra (Tìm kiếm): Yêu cầu 8 tham số cụ thể gồm: (1) Đối tượng cơ sở (Base DN); (2) Phạm vi tìm kiếm (base, onelevel, subtree); (3) derefAliases (nhận 1 trong 4 giá trị: neverDerefAliases, derefInsearching, derefFindingBaseObject, derefAlways); (4) Số lượng entry tối đa trả về; (5) Thời gian tìm kiếm tối đa; (6) attrOnly (kiểu boolean: true nếu chỉ lấy tên thuộc tính); (7) Bộ lọc tìm kiếm (search filter); (8) Danh sách thuộc tính cần giữ lại.
    • Thao tác cập nhật: Gồm 4 thao tác add (yêu cầu nút cha phải tồn tại, chưa trùng DN), delete (entry tồn tại và không chứa entry con), rename (modify DN), và modify (cập nhật thuộc tính hợp lệ).
    • Thao tác xác thực và điều khiển: bind (chứng thực danh tính), unbind (kết thúc phiên), và abandon (hủy bỏ yêu cầu).
  • Phương thức xác thực: Xác thực người dùng chưa xác định (anonymous - tên/mật khẩu rỗng), xác thực đơn giản (gửi DN và mật khẩu dạng clear text) và xác thực đơn giản qua kênh mã hóa SSL/TLS.

2. Giao thức Kerberos

  • Nguồn gốc & Thành phần: Phát triển trong dự án Athena (MIT), sử dụng mã hóa khóa đối xứng (DES, 3DES). Trung tâm phân phối khóa (Key Distribution Center - KDC) gồm 3 khối: Authentication Server (AS), Ticket Granting Server (TGS), và Cơ sở dữ liệu (Database).
  • Quy trình 6 bước trao đổi bản tin:
    1. AS_REQ: Client gửi yêu cầu cấp TGT (gồm $Principal_{Client}$, $Principal_{Service}$, danh sách IP, Lifetime).
    2. AS_REP: AS xác thực người dùng, sinh khóa phiên $SK_{TGS}$, tạo $TGT = {Principal_{Client}, Principal_{Service}, IP_list, Timestamp, Lifetime, SK_{TGS}}{K{TGS}}$ và gửi về cho Client gói tin mã hóa bằng $K_{User}$.
    3. TGS_REQ: Client dùng $SK_{TGS}$ tạo Authenticator, gửi kèm $TGT$ tới TGS để yêu cầu vé dịch vụ.
    4. TGS_REP: TGS giải mã $TGT$, kiểm tra Authenticator, sinh khóa phiên dịch vụ $SK_{Service}$, tạo $T_{Service} = {Principal_{Client}, Principal_{Service}, IP_list, Timestamp, Lifetime, SK_{Service}}{K{Service}}$ và gửi về cho Client.
    5. AP_REQ: Client gửi $T_{Service}$ cùng Authenticator mới (mã hóa bằng $SK_{Service}$) tới máy chủ ứng dụng (Application Server).
    6. AP_REP: (Tùy chọn) Máy chủ ứng dụng xác thực ngược lại với Client để hoàn tất xác thực hai chiều.

3. Giao thức CAS (Central Authentication Server)

  • Nguồn gốc & Thành phần: Do Đại học Yale phát triển, sau đó thuộc dự án Jasig (Apereo), phiên bản CAS 3. Gồm 3 thành phần: CAS Server (nơi duy nhất lưu mật khẩu người dùng), Web Browser (lưu trữ cookie, hỗ trợ chuyển hướng HTTP 30x), và CAS Client (trang bị thư viện Java, PHP, ASP, Perl hoặc Apache mod_cas, module PAM).
  • Cơ chế vé: Sử dụng TGC (Ticket Granting Cookie) làm hộ chiếu phiên giữa trình duyệt và CAS Server (cookie private có hiệu lực vài giờ) và Service Ticket (ST) làm vé truy cập ứng dụng (chỉ dùng một lần, hiệu lực ngắn vài giây).

4. Giao thức OAuth (Open Authorization)

  • Đặc điểm: Giao thức ủy quyền mở. Phiên bản OAuth 2.0 thay thế OAuth 1.0, loại bỏ yêu cầu chứng chỉ phức tạp, chỉ yêu cầu bảo mật trên tầng vận chuyển SSL/TLS.
  • Thành phần & Định danh: Resource Owner, OAuth Client, Resource Server, Authorization Server. Sử dụng Client ID, Client Secret, Access Token (truy cập tài nguyên) và Refresh Token (lấy Access Token mới mà không cần đăng nhập lại).
  • Mô hình hoạt động:
    • 3-legged OAuth: Quy trình 10 bước có sự tương tác và chấp thuận quyền trực tiếp của Resource Owner thông qua Authorization Grant Code.
    • 2-legged OAuth: Quy trình 2 bước tương tác trực tiếp dạng Client-Server mà không cần sự tham gia của Resource Owner.

5. Giao thức SAML (Security Assertion Markup Language)

  • Cấu trúc: Chuẩn hóa bởi OASIS (phiên bản SAML 2.0 phổ biến trong môi trường doanh nghiệp, chính phủ). Sử dụng định dạng XML Token để đóng gói các khẳng định bảo mật (SAML Assertions).
  • Cơ chế Bindings: Hỗ trợ HTTP Redirect Binding (dành cho thông điệp SAML ngắn) và HTTP POST Binding (dành cho thông điệp dài có kèm chữ ký số).

6. Giao thức OpenID Connect (OIDC)

  • Bản chất: Ra đời tháng 02/2014, là lớp xác thực (Authentication Layer) xây dựng trực tiếp trên nền giao thức ủy quyền OAuth 2.0, khắc phục hạn chế của OpenID 2.0.
  • Thành phần: Relying Party (RP / Consumer - ứng dụng cần xác nhận danh tính), Identity Provider (IdP / OpenID Server - hệ thống quản lý danh tính), User-Agent (trình duyệt). Cơ chế giao tiếp sử dụng URL checkid_setup và trao đổi mã ủy quyền.

Bảng tổng hợp so sánh các giao thức xác thực SSO

Dưới đây là bảng tổng hợp các đặc tính kỹ thuật của 6 giao thức xác thực được trình bày trong chương 2:

Giao thức Mục đích chính Định dạng Token / Dữ liệu Cơ chế bảo mật chính Phạm vi ứng dụng điển hình
LDAP Truy cập dịch vụ thư mục, xác thực Thuộc tính thư mục (DN) SSL/TLS, SASL, Bind Mạng nội bộ doanh nghiệp, hệ thống Active Directory
Kerberos Xác thực mạng tập trung Vé mã hóa (TGT, Service Ticket) Khóa đối xứng, KDC, Timestamps Hệ điều hành mạng LAN, Windows Domain
CAS Đăng nhập một lần trên Web Cookie (TGC), Vé dịch vụ (ST) HTTPS, Redirect, Cookie bảo mật Ứng dụng web trường đại học, tổ chức giáo dục
OAuth 2.0 Ủy quyền truy cập tài nguyên Access Token / Refresh Token (JSON) SSL/TLS, Bearer Token Ứng dụng Web, Mobile, RESTful API
SAML 2.0 Xác thực và ủy quyền liên kết XML Assertions (Ký số) XML Signature, XML Encryption Ứng dụng doanh nghiệp, Federated SSO đa miền
OpenID Connect Xác thực người dùng trên Web/App JSON Web Token (ID Token) Ký số JWT, OAuth 2.0 framework Đăng nhập mạng xã hội, Ứng dụng di động & Web hiện đại

Chương 2 cũng khảo sát các giải pháp đám mây thương mại: Microsoft Azure Active Directory (dịch vụ quản lý danh tính và truy cập dựa trên đám mây của Microsoft) và Okta (với mạng lưới tích hợp Okta Integration Network - OIN).


Chương 3: Cài đặt và triển khai

Chương 3 trình bày việc xây dựng mô hình thực nghiệm xác thực một lần tập trung sử dụng phần mềm mã nguồn mở Keycloak, liên kết với hai nền tảng ứng dụng khác nhau:

  1. Công cụ và nền tảng sử dụng:

    • Keycloak: Máy chủ Identity Provider (IdP) mã nguồn mở chịu trách nhiệm quản lý danh tính, cung cấp giao thức OpenID Connect và SAML 2.0.
    • Grafana: Nền tảng phân tích và giám sát dữ liệu mã nguồn mở, đóng vai trò là Service Provider kết nối qua giao thức OpenID Connect.
    • Splunk: Nền tảng phân tích và giám sát dữ liệu log quy mô lớn, đóng vai trò là Service Provider kết nối qua giao thức SAML 2.0.
  2. Quy trình triển khai kỹ thuật:

    • Cài đặt và thiết lập máy chủ Keycloak; tạo Realm, cấu hình Client cho các ứng dụng.
    • Tích hợp Grafana qua OpenID Connect: Trích xuất tệp cấu hình OpenID do Keycloak cung cấp (Endpoint, Client ID, Client Secret); chỉnh sửa tệp cấu hình của Grafana (grafana.ini / file authentication) để bật xác thực OIDC và trỏ tới Keycloak.
    • Tích hợp Splunk qua SAML: Xuất tệp siêu dữ liệu (metadata XML) của giao thức SAML từ Keycloak; cấu hình thông số SAML (Entity ID, IdP SSO URL, chứng chỉ X.509) trực tiếp trên giao diện quản trị của Splunk; chỉnh sửa cấu hình xác thực authentication.
  3. Thử nghiệm và đánh giá phân quyền:

    • Thực nghiệm quy trình đăng nhập: Người dùng truy cập Grafana hoặc Splunk $\rightarrow$ Hệ thống tự động chuyển hướng sang giao diện đăng nhập tập trung của Keycloak $\rightarrow$ Người dùng nhập thông tin xác thực một lần $\rightarrow$ Keycloak cấp token/assertion $\rightarrow$ Chuyển hướng người dùng đăng nhập thành công vào ứng dụng tương ứng.
    • Thực nghiệm phân quyền theo vai trò (Role-based access control): Cấu hình gán vai trò Viewer và Admin trên Keycloak/Grafana; kiểm tra giao diện hồ sơ (Profile) của User trên Grafana để xác nhận quyền hạn hiển thị chính xác theo vai trò được cấp phát.

Thiết kế và triển khai

Hệ thống thử nghiệm được thiết kế theo mô hình xác thực liên kết (Federated Identity Architecture) với các thành phần công nghệ cụ thể:

[ Trình duyệt Người dùng ]
  • Kiến trúc luồng xác thực thực nghiệm:

    • Luồng Grafana (OpenID Connect): Khi truy cập Grafana, người dùng được chuyển hướng (HTTP 302) đến cổng xác thực Keycloak. Sau khi xác thực danh tính tại Keycloak, trình duyệt nhận mã ủy quyền (Authorization Code) và chuyển về Grafana; Grafana trao đổi mã này với Keycloak qua kênh backend để lấy ID Token và Access Token (định dạng JWT), từ đó thiết lập phiên làm việc.
    • Luồng Splunk (SAML 2.0): Người dùng truy cập Splunk được chuyển hướng đến Keycloak với SAML AuthnRequest. Keycloak kiểm tra thông tin đăng nhập, tạo SAML Response chứa SAML Assertion đã ký số, sau đó gửi trả lại Splunk qua HTTP POST binding để mở quyền truy cập tài nguyên.
  • Kết quả kiểm thử chức năng:

    • Cài đặt thành công Keycloak, Grafana và Splunk trên môi trường máy chủ thử nghiệm.
    • Tích hợp thành công Client OpenID Connect cho Grafana và Client SAML cho Splunk trên Keycloak.
    • Kiểm thử thành công kịch bản Single Sign-On: Người dùng chỉ cần đăng nhập một lần tại giao diện Keycloak là có thể truy cập liền mạch giữa Grafana và Splunk mà không bị yêu cầu nhập lại mật khẩu.
    • Kiểm thử thành công kịch bản phân quyền: Phân định rõ quyền Viewer (chỉ xem dashboard) và Admin (toàn quyền quản trị) hiển thị đúng trong Profile của người dùng trên giao diện Grafana.

Kết quả và đóng góp

Kết quả chính

  • Tổng hợp lý thuyết toàn diện: Khóa luận đã hệ thống hóa đầy đủ cơ sở lý luận về 5 công nghệ xác thực người dùng (Thẻ, Mật khẩu, Sinh trắc học, OTP, RFID) và 6 giao thức xác thực một lần (LDAP, Kerberos, CAS, OAuth 2.0, SAML 2.0, OpenID Connect).
  • Phân tích kỹ thuật chi tiết: Trình bày rõ ràng cấu trúc gói tin, quy trình bản tin từng bước của giao thức Kerberos (6 bước bản tin), giao thức LDAP (8 tham số tìm kiếm, 4 thao tác cập nhật) và giao thức CAS (cơ chế TGC và ST).
  • Hiện thực hóa mô hình thực nghiệm: Xây dựng thành công hệ thống SSO thử nghiệm hoạt động ổn định trên nền tảng Keycloak, chứng minh khả năng tích hợp đồng thời hai giao thức hiện đại là OpenID Connect (với Grafana) và SAML 2.0 (với Splunk).
  • Kiểm chứng cơ chế phân quyền: Thực nghiệm thành công việc đồng bộ thông tin định danh và phân quyền người dùng theo vai trò (Viewer, Admin) từ Identity Provider sang các Service Provider.

Giải pháp và kiến nghị của tác giả

  • Khuyến nghị các tổ chức, doanh nghiệp chuyển dịch sang sử dụng các giao thức xác thực mở, hiện đại như OpenID Connect và SAML 2.0 thay cho các giao thức cũ (như CAS) nhằm đảm bảo tính tương thích và khả năng mở rộng.
  • Đề xuất ứng dụng giải pháp nguồn mở Keycloak làm máy chủ xác thực tập trung để tối ưu hóa chi phí đầu tư bản quyền phần mềm, đồng thời đảm bảo khả năng quản lý danh tính linh hoạt, an toàn cho hệ thống phân tán.

Đóng góp của đề tài

Đề tài cung cấp tài liệu nghiên cứu có tính hệ thống từ phân tích lý thuyết giao thức mạng đến hướng dẫn cấu hình thực tế trên các phần mềm công nghiệp phổ biến (Grafana, Splunk), tạo tiền đề ứng dụng trực tiếp cơ chế xác thực một lần vào hạ tầng công nghệ thông tin thực tế.


Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Quy mô thử nghiệm: Mô hình thực nghiệm chỉ mới triển khai trong môi trường thử nghiệm cục bộ với số lượng ứng dụng kết nối hạn chế (Grafana và Splunk), chưa đánh giá trên môi trường phân tán đa miền phức tạp qua mạng diện rộng Internet.
  • Đánh giá hiệu năng và an ninh: Đồ án tập trung vào việc cài đặt cấu hình chức năng và phân quyền, chưa thực hiện các bài đo định lượng về độ trễ xác thực, năng lực chịu tải (load testing) khi có lượng lớn người dùng đồng thời, cũng như chưa kiểm thử chuyên sâu khả năng chống chịu các cuộc tấn công nhắm vào hạ tầng SSO (như tấn công điểm lỗi đơn SPOF, tấn công MitM hay chiếm đoạt token).

Hướng nghiên cứu tiếp

  • Mở rộng kết nối máy chủ Keycloak với nhiều ứng dụng doanh nghiệp và dịch vụ đám mây khác nhau (ERP, CRM, Web Application).
  • Nghiên cứu và triển khai mô hình cụm máy chủ Keycloak (High Availability / Clustering) nhằm loại bỏ rủi ro điểm lỗi đơn (Single Point of Failure).
  • Tích hợp thêm các phương thức xác thực nâng cao như xác thực đa yếu tố (MFA / OTP) hoặc xác thực sinh trắc học vào cổng đăng nhập tập trung Keycloak để tăng cường an toàn thông tin.

Giá trị tham khảo

  • Đối tượng thụ hưởng:
    • Sinh viên, học viên các ngành An toàn thông tin, Công nghệ thông tin, Mạng máy tính và Truyền thông dữ liệu đang nghiên cứu về quản lý định danh và kiểm soát truy cập (IAM).
    • Quản trị viên hệ thống (SysAdmin), kỹ sư an toàn thông tin (SecOps / DevOps) cần tài liệu tham khảo để thiết lập máy chủ xác thực tập trung Keycloak và tích hợp với các hệ thống giám sát, phân tích log.
  • Nội dung có giá trị tham khảo cao:
    • Mục phân tích quy trình bản tin chi tiết của Kerberos (AS_REQ, AS_REP, TGS_REQ, TGS_REP, AP_REQ, AP_REP) và các tham số tìm kiếm trong LDAP.
    • Bảng tổng hợp so sánh các giao thức xác thực SSO.
    • Hướng dẫn các bước cấu hình kết nối OpenID Connect trên Grafana và SAML trên Splunk với Keycloak.

Câu hỏi thường gặp

1. Trong giao thức Kerberos, quy trình 6 bước trao đổi bản tin diễn ra như thế nào và vai trò của các loại vé là gì?

Quy trình gồm 6 bước:

  1. AS_REQ: Client gửi yêu cầu cấp vé tới Authentication Server (AS).
  2. AS_REP: AS xác thực người dùng và trả về Ticket Granting Ticket (TGT) được mã hóa bằng khóa bí mật của TGS ($K_{TGS}$), cùng khóa phiên $SK_{TGS}$ mã hóa bằng mật khẩu người dùng ($K_{User}$).
  3. TGS_REQ: Client gửi TGT kèm Authenticator (mã hóa bằng $SK_{TGS}$) tới Ticket Granting Server (TGS).
  4. TGS_REP: TGS kiểm tra tính hợp lệ và trả về vé dịch vụ ($T_{Service}$) mã hóa bằng khóa bí mật của dịch vụ ($K_{Service}$) cùng khóa phiên dịch vụ $SK_{Service}$.
  5. AP_REQ: Client gửi $T_{Service}$ và Authenticator mới tới máy chủ ứng dụng để yêu cầu cấp quyền truy cập.
  6. AP_REP: (Tùy chọn) Máy chủ ứng dụng xác thực ngược lại với Client để hoàn tất xác thực hai chiều.

2. Thao tác tìm kiếm trong giao thức LDAP yêu cầu những tham số nào và hỗ trợ các phạm vi tìm kiếm nào?

Thao tác tìm kiếm trong LDAP yêu cầu 8 tham số: (1) Đối tượng cơ sở (Base DN); (2) Phạm vi tìm kiếm; (3) derefAliases (nhận giá trị neverDerefAliases, derefInsearching, derefFindingBaseObject, derefAlways); (4) Số lượng entry tối đa trả về; (5) Thời gian tìm kiếm tối đa; (6) attrOnly (boolean); (7) Bộ lọc tìm kiếm (search filter); (8) Danh sách thuộc tính cần lấy. Giao thức hỗ trợ 3 phạm vi tìm kiếm: base (chỉ tại nút gốc chỉ định), onelevel (các nút con trực tiếp dưới nút gốc) và subtree (toàn bộ cây thư mục dưới nút gốc).

3. Giao thức CAS sử dụng những loại vé/cookie nào để duy trì và chuyển hướng phiên đăng nhập một lần?

Giao thức CAS sử dụng hai loại vé chính:

  • TGC (Ticket Granting Cookie): Cookie riêng tư (private cookie) được lưu trữ tại trình duyệt của người dùng sau khi xác thực thành công tại CAS Server; có thời hạn vài giờ, đóng vai trò chứng minh người dùng đã đăng nhập để không phải nhập lại mật khẩu.
  • Service Ticket (ST): Vé sử dụng một lần do CAS Server cấp khi người dùng có TGC hợp lệ; được gửi kèm trong URL chuyển hướng đến CAS Client (dịch vụ đích), có thời hạn rất ngắn (vài giây) và chỉ có giá trị đối với dịch vụ được chỉ định.

4. Trong phần thực nghiệm, tác giả đã tích hợp Keycloak với những ứng dụng nào và thông qua các giao thức nào?

Tác giả đã triển khai thực nghiệm tích hợp Keycloak với hai ứng dụng:

  • Grafana: Tích hợp thông qua giao thức OpenID Connect (OIDC) bằng cách sử dụng Client ID, Client Secret và tệp cấu hình OpenID do Keycloak cung cấp.
  • Splunk: Tích hợp thông qua giao thức SAML 2.0 bằng cách sử dụng tệp siêu dữ liệu XML (metadata), Entity ID và URL Single Sign-On do Keycloak tạo ra.

Kết luận

Đồ án tốt nghiệp của sinh viên Trần Thanh Nhàn đã hệ thống hóa toàn diện cơ sở lý thuyết về các công nghệ xác thực người dùng và phân tích chuyên sâu 6 giao thức xác thực một lần (SSO) tiêu chuẩn. Tác giả đã thiết kế và triển khai thành công mô hình thực nghiệm Identity Provider tập trung sử dụng phần mềm nguồn mở Keycloak, tích hợp liên kết xác thực đồng thời với Grafana qua OpenID Connect và Splunk qua SAML 2.0. Kết quả thử nghiệm đã chứng minh tính khả thi của việc quản lý danh tính tập trung và phân quyền truy cập người dùng theo vai trò, cung cấp tài liệu kỹ thuật có giá trị tham khảo thực tiễn cho ngành An toàn thông tin.