Thứ Hai, 10/08/2026, 17:00 (GMT+0)

Kerberos là gì? Cách giao thức Kerberos xác thực người dùng

Quay lại Trang chủ Blog
Trên trang này

Kerberos là một trong những giao thức xác thực phổ biến trong hệ thống mạng doanh nghiệp, đặc biệt ở các môi trường sử dụng Windows Server và Active Directory. Vậy Kerberos là gì, KDC, TGT và TGS đóng vai trò như thế nào? Nội dung dưới đây sẽ giải thích từng thành phần và toàn bộ quá trình xác thực Kerberos.

Kerberos là gì?

Kerberos là một giao thức xác thực mạng (network authentication protocol) cho phép người dùng, máy tính hoặc dịch vụ chứng minh danh tính với nhau trên một mạng không nhất thiết phải được coi là an toàn.

Kerberos hoạt động dựa trên một bên thứ ba đáng tin cậy gọi là Key Distribution Center (KDC) và sử dụng mật mã khóa bí mật để hỗ trợ quá trình xác thực. Phiên bản Kerberos V5 được đặc tả trong RFC 4120.

Điểm đặc biệt của Kerberos nằm ở cơ chế ticket-based authentication. Sau khi xác thực ban đầu, người dùng nhận được ticket và có thể sử dụng ticket đó để yêu cầu quyền truy cập các dịch vụ khác mà không cần liên tục gửi lại thông tin đăng nhập.

kerberos.jpg

Kerberos được sử dụng để làm gì?

  • Xác thực danh tính (Authentication): Đóng vai trò là giao thức xác thực mạng client-server, cho phép người dùng hoặc máy tính chứng minh danh tính với hệ thống qua kênh truyền không an toàn mà không cần gửi mật khẩu trực tiếp qua mạng.
  • Cung cấp đăng nhập một lần (Single Sign-On - SSO): Người dùng chỉ cần nhập thông tin đăng nhập một lần duy nhất vào đầu phiên làm việc; sau đó hệ thống tự động cấp quyền truy cập vào nhiều dịch vụ khác nhau mà không yêu cầu nhập lại mật khẩu.
  • Chống nghe lén và giả mạo (Replay Attack): Sử dụng cơ chế vé (tickets) được mã hóa đối xứng kết hợp với dấu thời gian (timestamps) để ngăn chặn kẻ xấu chặn bắt gói tin và gửi lại nhằm chiếm quyền truy cập.
  • Xác thực hai chiều (Mutual Authentication): Cả client và server đều xác minh danh tính của nhau trước khi thiết lập kết nối, ngăn chặn các cuộc tấn công dạng Man-in-the-Middle hoặc máy chủ giả mạo.
  • Quản trị định danh tập trung: Là giao thức cốt lõi trong hệ điều hành Windows Active Directory và các môi trường doanh nghiệp lớn để kiểm soát quyền truy cập tài nguyên mạng (như file server, máy in, database).

Các thành phần chính của Kerberos

Để hiểu Kerberos hoạt động như thế nào, trước tiên cần nắm một số thành phần quan trọng.

Thành phần

Vai trò

ClientNgười dùng, máy tính hoặc ứng dụng yêu cầu xác thực
KDCTrung tâm phân phối khóa và ticket
Authentication Service (AS)Xác thực ban đầu và cấp TGT
Ticket Granting Service (TGS)Cấp ticket cho từng dịch vụ
TGTTicket dùng để yêu cầu các Service Ticket
Service TicketTicket dùng để truy cập một dịch vụ cụ thể
PrincipalDanh tính trong hệ thống Kerberos
RealmPhạm vi quản lý các principal của Kerberos
Service ServerMáy chủ cung cấp tài nguyên mà client muốn truy cập

Key Distribution Center – KDC là gì?

Key Distribution Center (KDC) là thành phần trung tâm trong kiến trúc Kerberos.

Có thể hình dung KDC giống như một đơn vị phát hành giấy chứng nhận truy cập. Client không tự tuyên bố rằng mình là ai mà phải nhận ticket được KDC cấp và sử dụng ticket đó để chứng minh danh tính.

Về logic, KDC cung cấp hai dịch vụ quan trọng là Authentication Service (AS) và Ticket Granting Service (TGS). AS chịu trách nhiệm cấp Ticket Granting Ticket, còn TGS sử dụng TGT để cấp các ticket dành cho từng dịch vụ cụ thể.

Trong Windows Active Directory, KDC hoạt động dưới dạng một dịch vụ trên Domain Controller.

Ticket Granting Ticket – TGT là gì?

Ticket Granting Ticket (TGT) là ticket được cấp sau khi người dùng hoàn tất quá trình xác thực ban đầu.

TGT không được sử dụng trực tiếp để truy cập file server, web server hoặc database. Thay vào đó, client sử dụng TGT để chứng minh với Ticket Granting Service rằng mình đã được xác thực và muốn lấy ticket cho một dịch vụ khác.

TGT có thời hạn sử dụng và có thể được lưu trong credential cache trên client. Thời hạn cụ thể phụ thuộc vào cấu hình của từng hệ thống.

Ticket Granting Service – TGS là gì?

Ticket Granting Service (TGS) là thành phần thuộc KDC chịu trách nhiệm phát hành Service Ticket.

Khi client muốn sử dụng một dịch vụ, chẳng hạn file server, client gửi yêu cầu tới TGS cùng TGT đã có.

TGS kiểm tra thông tin cần thiết và nếu hợp lệ sẽ cấp một Service Ticket dành cho dịch vụ tương ứng.

Điều này giúp client không phải nhập lại mật khẩu mỗi lần muốn sử dụng một tài nguyên mới.

Service Ticket là gì?

Service Ticket là ticket được thiết kế để client truy cập một dịch vụ cụ thể.

Ví dụ người dùng muốn truy cập một file server. Client sử dụng TGT để xin ticket dành cho file server đó. Sau khi nhận được Service Ticket, client gửi ticket tới file server để xác thực.

Nếu sau đó người dùng muốn sử dụng một dịch vụ khác, client có thể tiếp tục dùng TGT để xin một Service Ticket khác.

Principal và Realm

Trong Kerberos, principal là danh tính đại diện cho người dùng, máy tính hoặc dịch vụ.

Một principal có thể có dạng tương tự:

user@example.com

hoặc trong cách biểu diễn Kerberos thường gặp:

user@EXAMPLE.COM

Phần phía sau ký tự @ là realm. Realm đại diện cho phạm vi quản lý xác thực của hệ thống Kerberos và thường được viết bằng chữ in hoa.

Kerberos hoạt động như thế nào?

Kerberos sử dụng mật mã khóa đối xứng (symmetric key cryptography) và một Trung tâm Phân phối Khóa (Key Distribution Center - KDC) để xác thực và xác minh danh tính người dùng. KDC bao gồm ba thành phần:

  • Máy chủ cấp vé (Ticket-Granting Server - TGS): Kết nối người dùng với máy chủ dịch vụ (Service Server - SS).
  • Cơ sở dữ liệu Kerberos: Lưu trữ mật khẩu và thông tin định danh của tất cả người dùng đã được xác minh.
  • Máy chủ xác thực (Authentication Server - AS): Thực hiện bước xác thực ban đầu.

Trong quá trình xác thực, Kerberos sẽ lưu trữ một vé (ticket) cụ thể cho từng phiên làm việc trên thiết bị của người dùng cuối. Thay vì yêu cầu mật khẩu, một dịch vụ hỗ trợ Kerberos sẽ kiểm tra tấm vé này. Quá trình xác thực Kerberos diễn ra trong một Kerberos realm (vùng Kerberos) — môi trường mà tại đó KDC được ủy quyền để xác thực một dịch vụ, máy chủ hoặc người dùng.

Xác thực Kerberos là một quy trình gồm nhiều bước bao gồm các thành phần sau:

  • Client (Máy khách): Nơi khởi tạo yêu cầu dịch vụ thay mặt cho người dùng.
  • Server (Máy chủ): Nơi lưu trữ dịch vụ mà người dùng cần truy cập.
  • AS (Máy chủ xác thực): Thực hiện xác thực máy khách. Nếu xác thực thành công, máy khách sẽ được cấp một Ticket-Granting Ticket (TGT) hay mã thông báo xác thực người dùng, đóng vai trò là bằng chứng cho thấy máy khách đã được xác thực.
  • KDC và ba thành phần cốt lõi: Bao gồm AS, TGS và cơ sở dữ liệu Kerberos.
  • Ứng dụng TGS: Đóng vai trò phát hành các vé dịch vụ (service tickets).
Kerberos-2.jpg

Tại sao Kerberos cần đồng bộ thời gian?

Thời gian là một yếu tố quan trọng trong cơ chế bảo mật của Kerberos.

Các thông điệp và authenticator của Kerberos sử dụng thông tin thời gian để hỗ trợ kiểm soát tính hợp lệ và hạn chế việc một thông điệp xác thực cũ bị sử dụng lại.

Vì vậy, nếu đồng hồ trên client, KDC và application server chênh lệch quá nhiều, quá trình xác thực có thể thất bại.

Các triển khai Kerberos thường cho phép một khoảng sai lệch thời gian nhất định. Chẳng hạn, cấu hình mặc định của MIT Kerberos cho clockskew là 300 giây, tương đương 5 phút, nhưng giá trị này có thể được cấu hình lại.

Trong môi trường doanh nghiệp, việc duy trì đồng bộ thời gian giữa Domain Controller, server và endpoint vì thế rất quan trọng.

Ưu điểm của Kerberos

  • Kiểm soát truy cập hiệu quả: Hỗ trợ quản lý tập trung các phiên đăng nhập và thực thi chính sách bảo mật.
  • Xác thực hai chiều: Người dùng và máy chủ có thể xác minh danh tính của nhau trong quá trình xác thực.
  • Ticket có thời hạn: Mỗi ticket chỉ có hiệu lực trong khoảng thời gian nhất định do quản trị viên kiểm soát.
  • Không cần xác thực lại nhiều lần: Sau lần xác thực đầu tiên, người dùng có thể tiếp tục truy cập các dịch vụ được cấp phép khi ticket còn hiệu lực.
  • Bảo mật cao: Mật khẩu không được truyền trực tiếp qua mạng; Kerberos sử dụng khóa bí mật và cơ chế mã hóa để hạn chế nguy cơ giả mạo.
kerberos.jpg

Nhược điểm của Kerberos

  • Có nguy cơ Single Point of Failure: Nếu KDC gặp sự cố và không có hệ thống dự phòng, các yêu cầu xác thực mới có thể bị gián đoạn.
  • Quản lý key phức tạp: Các dịch vụ sử dụng hostname khác nhau có thể cần bộ Kerberos key riêng, gây khó khăn trong môi trường cluster hoặc virtual hosting.
  • Yêu cầu đồng bộ thời gian: Thời gian giữa các hệ thống phải được đồng bộ chính xác; chênh lệch quá lớn có thể khiến ticket không hợp lệ và xác thực thất bại.

So sánh Kerberos và NTLM

Kerberos và NTLM đều có thể xuất hiện trong môi trường Windows nhưng sử dụng cơ chế xác thực khác nhau.

Tiêu chí

Kerberos

NTLM

Cơ chế chínhTicket-basedChallenge-response
Thành phần trung tâmKDCThường cần tương tác với hệ thống xác thực Windows
Mutual authenticationHỗ trợKhông cung cấp khả năng tương đương để client xác minh server
Single Sign-OnHỗ trợ tốt trong domainCó thể tham gia Windows SSO nhưng cơ chế khác
Môi trường phù hợpActive Directory Domain, hệ thống KerberosHệ thống cũ, trường hợp Kerberos không khả dụng
Service TicketKhông sử dụng cơ chế ticket tương tự
Khả năng delegationKerberos hỗ trợ cơ chế delegationHạn chế hơn đối với các kịch bản phân tán
Xu hướng sử dụngĐược ưu tiên trong Windows Domain hiện đạiChủ yếu phục vụ tương thích và một số trường hợp fallback

Một khác biệt đáng chú ý là mutual authentication. Kerberos cho phép hai đầu của kết nối xác minh danh tính của nhau, trong khi NTLM không cung cấp cho client khả năng xác minh danh tính server theo cùng cơ chế.

NTLM do đó vẫn có thể xuất hiện trong một số hệ thống legacy hoặc trường hợp Kerberos không thể được sử dụng, nhưng trong môi trường Active Directory phù hợp, Kerberos thường là lựa chọn ưu tiên.

Kerberos sử dụng cổng nào?

Dịch vụ Kerberos được đăng ký với port 88 cho cả TCP và UDP.

Trong hệ thống thực tế, Kerberos còn phụ thuộc vào các thành phần hạ tầng khác như DNS, đồng bộ thời gian và trong môi trường Active Directory có thể liên quan tới nhiều dịch vụ của Domain Controller.

Vì vậy, khi xử lý lỗi Kerberos, quản trị viên không nên chỉ kiểm tra port 88 mà còn cần đánh giá DNS, đồng bộ thời gian, SPN, trạng thái Domain Controller và khả năng kết nối giữa các hệ thống.

Kerberos có thể bị hack không?

Kerberos cũng như bất kỳ mô hình bảo mật nào khác, không thể đảm bảo an toàn 100%. Do Kerberos là giao thức xác thực được sử dụng rộng rãi, kẻ tấn công đã phát triển nhiều phương thức nhằm vượt qua hoặc lợi dụng cơ chế xác thực này.

Các hình thức tấn công Kerberos phổ biến gồm:

Pass the Ticket

Với phương thức này, kẻ tấn công sử dụng ticket hoặc thông tin xác thực Kerberos bị đánh cắp/giả mạo để truy cập tài nguyên mà không cần biết mật khẩu của người dùng.

Một số kỹ thuật liên quan có thể sử dụng Golden Ticket hoặc Silver Ticket nhằm giành quyền truy cập domain hoặc một dịch vụ cụ thể.

Credential Stuffing hoặc Brute Force

Kẻ tấn công thực hiện các lần thử tự động và liên tục nhằm đoán mật khẩu của người dùng.

Các cuộc tấn công này có thể nhắm vào quá trình xác thực ban đầu và dịch vụ cấp ticket của Kerberos để tìm kiếm thông tin xác thực hợp lệ.

Encryption Downgrade

Kẻ tấn công có thể tìm cách làm suy yếu hoặc vượt qua cơ chế bảo vệ xác thực. Nội dung nguồn đề cập đến Skeleton Key malware, một loại mã độc có thể can thiệp vào quá trình xác thực khi attacker đã có quyền quản trị trên hệ thống.

DC Shadow Attack

Cuộc tấn công này xảy ra khi kẻ tấn công đã có đủ đặc quyền để đăng ký hoặc giả lập một Domain Controller (DC) trong môi trường Active Directory.

DC giả mạo sau đó có thể được lợi dụng để đưa các thay đổi trái phép vào hệ thống và phục vụ cho những bước xâm nhập tiếp theo.

Kerberos có phải giao thức mã hóa không?

Không.

Kerberos là giao thức xác thực, không phải một giao thức chỉ dùng để mã hóa dữ liệu.

Kerberos sử dụng các kỹ thuật mật mã và khóa bí mật để bảo vệ thông tin xác thực, ticket và các thành phần của quá trình trao đổi. RFC 4120 mô tả Kerberos như một dịch vụ xác thực bên thứ ba đáng tin cậy sử dụng mật mã khóa bí mật.

Sau khi xác thực hoàn tất, việc mã hóa toàn bộ dữ liệu của ứng dụng còn phụ thuộc vào giao thức và cách hệ thống được triển khai.

Kerberos có gửi mật khẩu qua mạng không?

Trong quy trình Kerberos dựa trên mật khẩu thông thường, mật khẩu không cần được gửi trực tiếp tới từng server mà người dùng muốn truy cập.

Client sử dụng thông tin mật mã liên quan đến credentials để thực hiện quá trình xác thực với KDC. Sau đó, việc truy cập các dịch vụ dựa chủ yếu vào ticket và session key.

Cách tiếp cận này giúp giảm việc phân phối mật khẩu người dùng tới nhiều dịch vụ khác nhau.

Kerberos và LDAP có giống nhau không?

Không. Đây là hai công nghệ giải quyết các bài toán khác nhau.

Kerberos chủ yếu đảm nhiệm xác thực danh tính.

LDAP – Lightweight Directory Access Protocol là giao thức dùng để truy cập và quản lý thông tin trong dịch vụ thư mục.

Trong hệ thống Active Directory, cả hai có thể cùng xuất hiện. Kerberos có thể được sử dụng để xác thực người dùng, trong khi LDAP được sử dụng để truy vấn các thông tin như user, group, computer hoặc các object khác trong directory.

Vì vậy, Kerberos và LDAP thường bổ trợ cho nhau thay vì thay thế nhau.

Khi nào Kerberos được sử dụng?

  • Xác thực người dùng (User Authentication): Kerberos xác thực người dùng chỉ qua một lần đăng nhập duy nhất. Sau khi xác minh thông tin đăng nhập thành công, hệ thống sẽ cấp một Vé Cấp Vé (Ticket Granting Ticket - TGT) để cho phép truy cập an toàn.
  • Đăng nhập một lần (Single Sign-On - SSO): Người dùng chỉ cần đăng nhập một lần là có thể truy cập vào nhiều dịch vụ mạng được cấp phép mà không phải nhập lại thông tin xác thực, giúp tăng cường tính tiện lợi và trải nghiệm sử dụng.
  • Xác thực hai chiều (Mutual Authentication): Cả máy khách (client) và máy chủ (server) đều xác minh danh tính của nhau trước khi tiến hành giao tiếp thông qua các khóa bí mật dùng chung, đảm bảo kết nối luôn an toàn và đáng tin cậy.
  • Ủy quyền (Authorization): Sau bước xác thực, Kerberos sẽ phát hành các vé dịch vụ (service tickets) nhằm xác định quyền hạn của người dùng, chỉ cho phép truy cập vào các tài nguyên được cấp phép tương ứng.
  • Bảo mật mạng (Network Security): Kerberos sử dụng một máy chủ xác thực tập trung để quản lý thông tin xác thực và kiểm soát quyền truy cập, ngăn chặn việc sử dụng trái phép các tài nguyên trong mạng.

Kết luận

Kerberos là giao thức xác thực mạng dựa trên cơ chế ticket, sử dụng KDC làm bên thứ ba đáng tin cậy để xác minh danh tính người dùng, máy tính và dịch vụ.

Quá trình cốt lõi có thể hiểu đơn giản là client xác thực để nhận TGT, sử dụng TGT xin Service Ticket rồi đưa Service Ticket cho server cần truy cập.

Với khả năng Single Sign-On, mutual authentication và tích hợp sâu với Active Directory, Kerberos vẫn là một thành phần quan trọng trong nhiều hệ thống xác thực doanh nghiệp hiện nay. Để vận hành Kerberos ổn định, tổ chức đồng thời cần quản lý tốt Domain Controller/KDC, DNS, SPN, tài khoản dịch vụ và đồng bộ thời gian.

#Network
#Network
Sovereign Cloud không chỉ là đặt máy chủ trong nước. Với bối cảnh pháp lý dữ liệu mới tại Việt Nam, đây đang trở thành bài toán hạ tầng quan trọng cho doanh nghiệp Việt và doanh nghiệp nước ngoài hoạt động tại Việt Nam
Sovereign Cloud - Đám mây chủ quyền là gì? Và vì sao doanh nghiệp hoạt động tại Việt Nam nên quan tâm từ bây giờ?
Tiếp tục đọc