(1 ) C → PKDC : (C, addr, S, n) (thực hiện trên SSL) (2 ) PKDC → KDC : ({auth(PKDC)}KPKDC,KDC ,{ticket(PKDC, KDC)}KKDC ,
{C, addr, role(C), S, n}KPKDC,KDC) (3 ) KDC →PKDC : {{KC,S , n, {ticket(C, S)}KS }KC }KPKDC
(4 ) PKDC → C : {KC,S , n, {ticket(C, S)}KS }KC
Trong đó: ticket(C, S) = (C, addr, role(C), S, t1 , t2 , tf , tn , KC,S)
Hình 2.4 – Minh hoạ giao thức con lấy vé dịch vụ
Muốn truy nhập một dịch vụ, một thành phần máy kháchtrớc hết cần phải có một vé dịch vụ Để lấy một vé dịch vụ, thành phần máy khách sử dụng định danh . C, mật khẩu của nó và vé giao tiếp với KDC. Tơng tự nh Kerberos, thành phần máy khách của hệ thống xác thực lu giữ mật khẩu trong bộ nhớ cục bộ và gửi một thông báo cho PKDC. Thông báo này chứa định danh, địa chỉ IP của thành phần máy khách và định danh của máy chủ dịch vụ. Sau khi thực thi kiểm soát truy nhập, PKDC lấy vai role(C) của thành phần máy khách C thông qua thành phần quản trị vai AdminRole rồi kích hoạt dịch vụ cấp phát vé của KDC.
Đến lợt mình, KDC nhận bộ dữ liệu (C, addr, S, role(C)) từ PKDC với addr là địa chỉ IP của C. PKDC yêu cầu dịch vụ cấp phát vé trong KDC bằng cách gửi một thông báo mã hoá chứa định danh, địa chỉ IP, vai role(C) của thành phần máy
1 4 2 3 Máy khách C Máy uỷ nhiệm PKDC Máy chủ cấp phát vé KDC Máy chủ dịch vụ S
khách C và định danh của máy chủdịch vụ. Thông báo này đợc mã hoá bằng khoá phiên KPKDC,KDC đợc gửi cho KDC cùng với bộ xác thực{auth(PKDC)}KPKDC,KDC và vé {ticket(PKDC, KDC)}KKDCgiao tiếp với KDC.
Sau khi giải mã và so sánh nội dung của bộ xác thực auth(PKDC) với nội dung của vé ticket(PKDC, KDC). Nếu kết quả hợp lệ thì KDC kiểm tra định danh của thành phần máy khách C và máy chủ dịch vụ S xem có tồn tại không. Nếu chúng tồn tại, KDC sản sinh một khoá phiên mới ngẫu nhiên KC,Sđể dùng cho việc mã hoá và giải mã giữa thành phần máy khách C và máy chủ dịch vụ S. Hơn nữa, nó xây dựng một vé dịch vụ {ticket(C, S)}KScho thành phần máy khách để truy nhập máy chủ dịch vụ. Vé này chứa định danh, địa chỉ IP của thành phần máy khách và định danh của máy chủ dịch vụ S, khoá phiên KC,S , thời gian phát hành vé t1 , thời gian hết hiệu lực của vé t2 , thời gian sống của vé tf , thời điểm làm mới vé tn
và vai role(C) của C. Cụ thể ticket(C, S): ( addr, S, t= C, 1 , t2 , tf , tn , KC,S ,role(C)) Vé đợc mã hoá bằng khoá riêng KS của máy chủ dịch vụ sao cho chỉ máy chủ dịch vụ đó mới giải mã đợc vé. Vé ticket(C, S) đợc lu giữ trong cơ sở dữ liệu vé của KDC để sử dụng lại trong phiên giao dịch lần sau giữa C và S. Tất nhiên nó đợc làm mới định kỳ và làm mới bất cứ khi nào có sự thay đổi vai của C trong AdminRole.
Khoá phiên KC,S và vé đã mã hoá gộp lại thành một thông báo. Thông báo này lại đợc mã hoá trớc tiên bằng khoá riêng KCcủa thành phần máy khách. Sau đó nó đợc mã hoá bằng khoá riêng KPKDC của PKDC. Bản thông báo mã hoá đợc gửi trở về cho PKDC. Tiếp theo, PKDC giải mã bản thông báo mã hoá khi dùng khoá riêng của nó. Nếu việc giải mã thành công thì PKDC gửi bản thông báo đã giải mã cho thành phần máy khách C yêu cầu lúc đầu mà chỉ có thành phần máy khách này mới có thể đọc đợc.
Khi thành phần máy khách có đợc đáp ứng về yêu cầu vé của mình, nó trích ra khoá phiên và vé dịch vụ khi dùng khoá riêng KC của mình.