CHƯƠNG I TGS (Ticket Granting Service) là vé mà người dùng có thé sử dung dé xác thực một dịch vụ và được mã hóa bằng khóa dịch vụ TGT (Ticket Granting Ticket) là vé được xuất trình cho KDC dé yêu cầu TGS và được mã hóa bằng khóa KDC + PAC (Privilege Attribute Certificate) PAC là phần mở rộng cua vé kerberos chứa thông tin hữu ich về đặc quyền của người dùng. Đó là câu trúc được bao gôm trong các vé được ký bởi bộ điêu khiên miên khi người dùng xác thực vào vùng Active Directory. Khi người dùng sử dụng vé Kerberos đê xác thực với các hệ thông khác, PAC có thê được đọc và sử dụng đê xác định mức đặc quyên mà không cân liên hệ với bộ điêu khiên miên đê yêu câu thông tin đó. + Thông điệp Kerberos sử dụng nhiều loại thông điệp khác nhau: KRB_ AS REQ: Được sử dung để yêu cau TGT tới KDC KRB_AS_REP: Được sử dụng dé phân phối TGT bởi KDC KRB TGS REG: Được sử dụng để yêu cầu TGS tới KDC bang cách sử dụng TGT KRB_ TGS REP: Được sử dung dé phan phối TGS bởi KDC KRB_AP REQ: Được sử dung dé xác thực người dùng đối với một dịch vụ bằng cách sử dụng TGS KRB_AP REP: Được dịch vụ sử dụng dé nhận dạng chính nó đối với người dùng (Tuy chọn) KRB_ERROR: Thông báo lỗi - Quá trình xác thực Các bước của giao thức Kerberos có thể được nhóm lại thành 3 giai đoạn: Trao đổi với Authentication Server (AD), giữa máy khách và AD (bước 1 va 2) Trao đôi với Ticket Granting Server (TGS), giữa máy khách và TGS (bước 3 và 4) Trao đổi với Application Server (AP), giữa máy khách và máy chủ (các bước còn lại) Tran Tuấn Minh B19DCAT127 10 Đồ án tốt nghiệp đại học CHƯƠNG I |[KERB6_VI]FYPAC @- Aa[suWod/yn] > ine) Hình 1.9 Qua trình xác thực Kerberos Bước 1.
Máy khách gửi thông điệp KRB_ AS REQ tới máy chủ xác thực AS, là một phan của máy chủ KDC dé nhận vé TGT KRB_AS_REQ Timestamp | [| (@ ) User hash = 4 Username —e— SPN krbtgt = = User KDC (DC) User nonce Hình 1.10 Các thông tin trong AS_REQ KRB_AS REQ gồm các trường: e Timestamp (dấu thời gian) được mã hóa bằng băm mật khẩu của người dùng, dé xác thực người dùng và ngăn chặn tan công relay ® Username của người dùng được xác thực e Dich vụ SPN được liên kết với tài khoản krbtgt ® Một Nonce được tạo bởi user Khi máy chủ xác thực AS nhận được yêu cầu AS-REQ, với tên người dùng, tên dịch vụ và dấu thời gian được mã hóa, nó sẽ thực hiện các hành động sau: Tìm tải khoản yêu cầu xác thực trong cơ sở dit liệu (NTDS.dit), trích xuất khóa người dùng và giải mã dấu thời gian với khóa người dùng vừa trích xuất. Dấu thời gian được xác thực nếu nó có định dang hợp lệ và sự khác biệt về thời gian giữa dấu thời gian được giải mã và cái được tạo trên bộ điều khiến miền không lớn hơn 5 phút. AS tạo ra một khóa phiên được sử dụng dé liên lạc thêm giữa máy khách và bộ điều khiển miền thay vì khóa người dùng. Trần Tuan Minh B19DCAT127 11 Đồ án tốt nghiệp đại học CHƯƠNG I Bước 2.
Nếu thông tin xác thực chính xác thì AS sẽ phản hồi bằng một thông điệp KRB AS REP. Thông điệp nay cho phép máy khách có một TGT cũng như khóa phiên (session key) KRB_AS_REP Username _ Username zz ị Session key | | Session key | TGT expiration time 7 TGT expiration time —:—] ° | i | User nonce | PAC | By <2 ~ ~ User | < i = KDC (DC) oe @ ) User hash = { é ) krbtgt hash nN `" .11 Các thông tin trong AS_REP KRB_AS REP bao gồm các thông tin: ® Username e TGT, bao gồm: o Username: Ticket này đại diện cho user nào o Session key o Ngày hết hạn của TGT o_ PAC với quyền của user, được ký bởi KDC © Một số dữ liệu được mã hóa bang User hash: o Session key o Ngày hết hạn của TGT o User nonce, dé ngăn chặn relay attack Sau khi máy khách nhận được TGT, nó có thé yêu cầu vé TGS cho phép truy cập vào các dịch vụ cụ thể trên một máy chủ cụ thể. TGT đóng vai trò là băng chứng về tính hợp lệ của thông tin xác thực. Máy khách khởi tạo yêu cầu KRB_TGS_REQ tới bộ điều khiển miền.
Yêu cầu KRB TGS REQ là một thông điệp đặc biệt được sử dụng để yêu cầu vé TGS từ KDC Trần Tuan Minh B19DCAT127 12 Đồ án tốt nghiệp đại học CHƯƠNG I KRB_TGS_REQ Username | Timestamp | = | | —— | —. L Sessionkey |——— mm | TGT | —s— User KDC (DC) SPN User nonce Hình 1.12 Các thông tin trong TGS_REQ KRB_TGS_REQ bao gồm: ¢ Dir liệu được mã hóa bang Session key: o Username o Timestamp se TGT e SPN cua dịch vu được yêu cau e Nonce được tao bởi user Sau khi KDC nhận được KRB_TGS_ REQ, nó thực hiện các hành động sau: Giải mã TGT bằng khóa KDC, nó trích xuất khóa phiên từ TGT, xác thực dấu thời gian bang cách sử dụng khóa phiên vừa được trích xuất và nó tạo ra một khóa phiên TGS (TGS session key), sẽ được sử dung dé liên lạc thêm giữa máy khách và máy chủ mục tiêu. Một khóa mới, khóa phiên TGS sẽ được sử dụng dé xác thực lẫn nhau. Nếu việc xác thực dấu thời gian thành công, KDC sẽ bắt đầu quá trình tạo thông điệp KRB_TGS_REP.
KRB_TGS_REP Username Service session key re [Ƒ——————— | | = Service session key HỊ Username — TGS expiration time TGS expiration time = User nonce PAC | Ey cs ~ ~ User ⁄Z2~——— es KDC (DC) (6 ) Session key Ht (@ ) service owner hash ! a = Hình 1.13 Các thông tin trong TGS_REP KRB TGS REP bao gồm: ® Username e TGS, chứa: o Service session key o Username Trần Tuan Minh B19DCAT127 13 Đồ án tốt nghiệp đại học CHƯƠNG I o_ Ngày hết hạn của TGS o PAC với quyền của user, được ký bởi KDC © Dir liệu được mã hóa bang session key: o Service session key o Ngày hết han TGS o User nonce, dé ngăn chặn tan công relay Sau khi may khách nhận được KRB_TGS_REP, nó thực hiện hành động sau: Xác thực dấu thời gian trong KRB_TGS_REP bằng khóa phiên (session key) và trích xuất khóa phiên TGS (service session key). Máy khách không thê giải mã các trường dữ liệu của máy chủ TGS vì nó không biết khóa máy chủ. Sau đó, máy khách sẽ gửi thông điệp KRB_AP_REQ tới máy chủ. KRB_AP_REQ - TGS Username —s—] Timestamp User — AP (DC) (@ ) Service session key = Hình 1.14 Các thông tin trong AP_REQ KRB_AP REQ bao gồm: ® TGS s Dir liệu được mã hóa bang service session key: o Username o Timestamp, dé ngăn chặn relay attacks Máy chủ nhận được thông điệp KRB_AP REQ và thực hiện các hành động sau: Giải mã TGS bằng khóa máy chủ (service owner hash), xác thực dấu thời gian bằng khóa phiên TGS (service session key).
Nếu dấu thời gian được xác thực thành công, máy chủ sẽ xác thực thành công tài khoản. Sau đó nếu quyền của người dùng chính xác thì giờ đây người dùng có thể truy cập dịch vụ. Nếu được cấu hình, AP sẽ xác minh với KDC PAC. Và trong trường hợp nó yêu cầu xác thực lẫn nhau, nó sẽ phản hồi bằng thông điệp KRB_AP_REP tới người dùng [4].
Phân quyền trong Active Directory Qui trình ủy quyền AD được sử dụng để bảo vệ tài nguyên AD khỏi bị truy cập trái phép. Sau khi người dùng được xác thực bằng qui trình xác thực AD, các tài nguyên mà người dùng có thê truy cập cũng được xác định. Định nghĩa này được thực hiện bằng cách sử dụng danh sách kiểm soát truy cập (ACL) và kiểm soát truy cập mục Trần Tuấn Minh _B19DCATI27 14 Đồ án tốt nghiệp đại học CHƯƠNG I (ACE). Mỗi đối tượng trong AD có một ACL được liên kết với nó dé xác định người dùng có thé truy cập vào đối tượng.
Kiêm soát truy cập và kiêm soát truy cập mục: ACL là các bảng hoặc danh sách đơn giản, xác định những người được ủy thác có quyền truy cập vào đối tượng được đề cập cũng như loại quyền truy cập mà những người được ủy thác này có. Người được ủy thác có thể là bất kỳ nguyên tắc bảo mật nào như tài khoản người dùng, tài khoản nhóm hoặc phiên đăng nhập. Mỗi ACL có một danh sách các ACE và mỗi ACE đặt tên cho một người được ủy thác và xác định loại quyền truy cập mà người được ủy thác có đối với đối tượng được đề cập. Có hai loại ACL: ¢ - Danh sách kiểm soát truy cập tùy ý (DACL) - DACL thực hiện chức năng xác định quyền truy cập của người được ủy thác đối với đối tượng được đề cập.
DACL chứa các ACE chỉ định xem người được ủy thác được cấp hay từ chối quyên truy cập vào đối tượng. e Danh sách kiểm soát truy cập hệ thống (SACL) - SACL thực hiện chức năng tạo nhật ký kiểm tra dé xác định liệu người được ủy thác có đang cố gắng giành quyền truy cập vào một đối tượng hay không. Nó cũng chỉ định xem quyên truy cập được cấp hay bị từ chối và nếu được cấp, loại quyền truy cập nào là trao cho người được ủy thác. Khi người dùng cố gắng truy cập vào một đối tượng trong mạng AD, qui trình ủy quyền AD sẽ kiểm tra DACL để xem liệu người dùng có được đề cập hay không và nếu có thì người dùng có được cấp quyền hay không và loại quyền nào được cấp.
Được cấp quyền thì hệ thống sẽ ủy quyền cho người dùng truy cập tài nguyên. Đây là cách ủy quyền người dùng hoạt động trong môi trường AD. SACL được sử dụng dé theo đõi tính bao mật của đối tượng dựa trên cách người dùng hoặc nhóm truy cập vào đối tượng. Ví dụ: có thé kiểm tra xem người dùng có thé truy cập vào đối tượng bằng quyền cụ thê hay không (chăng hạn như Đọc, Viết hoặc Kiểm soát hoàn toàn).
Thông tin về những gì cần kiểm tra được lưu giữ trong ACE (ACE được lưu trữ trong SACL). Các mục này kiểm soát những gì được kiểm tra và chứa thông tin về các sự kiện cần ghi lại. Khi thực hiện việc này, các hồ sơ có thé được lưu giữ về tính bảo mật của các đối tượng và liệu người dùng hoặc nhóm cụ thể có thể truy cập chúng thành công. DACL là danh sách các ACE dành cho người ding và nhóm, đồng thời bao gồm thông tin về các quyền mà người dùng hoặc nhóm có đối với một tệp.