Mô tả Kerberos sử dụng một đối tác tin cậy thứ ba để thực hiện quá trình chứng thực, được gọi là Trung tâm phân phối khóa Key Distribution Center – KDC, bao gồm 2
Trang 1GIAO THỨC XÁC THỰC KERBEROS
Sinh viên thực hiện: Giáo viên hướng dẫn:
Đoàn Lê Minh Châu Th.s Văn Thiên Hoàng
Đào Duy Đạt
Huỳnh Quốc Trưởng
Phan Đình Qui
Thành phố Hồ Chí Minh – năm 2012
Trang 2GiỚI THIỆU VỀ KERBEROS
Kerberos là một giao thức chứng thực mạng, nó cho phép
các cá nhân giao tiếp với nhau trên một mạng không an toàn bằng cách xác thực người dùng này với người dùng khác
theo một cơ chế bảo mật và an toàn Kerberos ngăn chặn
việc nghe trộm thông tin cũng như relay attacks, và đảm bảo tính toàn vẹn của dữ liệu Kerberos hoạt động theo mô hình client/server và nó thực hiện quá trình chứng thực 2 chiều – cả người dùng và dịch vụ xác thực lẫn nhau.
Kerberos được xây dựng dựa trên mô hình mã hóa khóa đối xứng và đòi hỏi một thành phần thứ ba tin cậy (trusted third party) tham gia vào quá trình chứng thực.
Trang 3Lịch sử và phát triển
Kerberos được phát triển bởi MIT nhằm bảo vệ những dịch vụ được cung cấp bởi dự án Athena Kerberos trải qua nhiều phiên bản, trong đó, các phiên bản từ 1 – 3 chỉ được sử dụng nội bộ bên trong MIT
Giao thức được đặt tên dựa theo một nhân vật trong thần thoại Hy
Lạp Kerberos (hay Cerberus), đó là một con chó săn 3 đầu khổng lồ
dưới âm phủ
Steve Miller và Clifford Neuman, những thiết kế gia chính của
Kerberos phiên bản 4, đã công bố phiên bản này vào cuối thập niên 80, mặc dù mục đích chính của họ vẫn là dùng để phục vụ cho dự án
Athena
Phiên bản 5, được phát triển bởi John Kohl và Clifford Neuman, xuất hiện trong RFC 1510 vào 1993, với mục đích khắc phục những giới hạn và các vấn đề liên quan đến bảo mật trong phiên bản 4
Windows 2000, XP và 2003 Server sử dụng Kerberos như là một
phương pháp chứng thực mặc định
Trang 4Mô tả
Kerberos sử dụng một đối tác tin cậy thứ ba để thực hiện quá
trình chứng thực, được gọi là Trung tâm phân phối khóa (Key
Distribution Center – KDC), bao gồm 2 phần riêng biệt: một
server chứng thực (Authentication Server – AS) và một server cấp ticket (Ticket Granting Server – TGS) Kerberos làm việc dựa trên các ticket để thực hiện quá trình chứng thực người dùng.
Kerberos duy trì một cơ sở dữ liệu chứa các secret key; mỗi thực thể trên mạng – client hoặc server – đều chia sẽ một secret key chỉ giữa bản thân nó với Kerberos Để thực hiện quá trình giao tiếp giữa 2 thực thể, Kerberos tạo ra một session key Khóa này dùng để bảo mật quá trình tương tác giữa các thực thể với nhau.
Trang 5Mô hình hoạt động của Kerberos
Trang 6Hoạt động của Kerberos
Dưới đây là một mô tả về quá trình hoạt động của giao thức (AS =
Authentication Server, TGS = Ticket Granting Server, C = Client, S = Service):
1 Người dùng nhập vào username và password ở phía client
2.Client thực hiện thuật toán băm một chiều trên password được nhập vào, và nó trở thành secret key của client
3.Client gởi một message dưới dạng clear-text đến AS để yêu cầu dịch vụ Chú ý: không có secret key cũng như password nào được gởi đến AS
4.AS kiểm tra xem có tồn tại người dùng C trong cở sở dữ liệu của nó hay không Nếu có, nó gởi ngược lại cho client 2 message:
Message A: chứa Client/TGS session key được mã hóa bởi secret key của người dùng (client).
Message B: chứa Ticket Granting Ticket (bao gồm Client ID, Client
Network Address, Ticket Validity Period, và một Client/TGS session key) được mã hóa sử dụng secret key của TGS.
Trang 75.Khi client nhận được Message A và B, nó giải mã Message A để lấy Client/TGS session key Session key này được sử dụng cho quá trình giao đổi tiếp theo với TGS Chú ý: client không thể giải mã Message B, bởi vì nó được mã hóa bởi secret key của TGS.
6.Khi yêu cầu dịch vụ (S), client gởi 2 message sau đến TGS:
Message C: bao gồm Message B và ID của dịch vụ được yêu cầu
Message D: chứa Authenticator (gồm client ID và timestamp), được mã hóa bởi Client/TGS session key
7.Khi nhận được Message C và D, TGS giải mã Message D sử dụng Client/TGS session key và gởi 2 message ngược lại cho client:
Message E: chứa Client-to-Server Ticket (bao gồm Client ID, Client Network Address, Ticket Validity Period, và một Client/Service
session key) được mã hóa bởi secret key của Service
Message F: chứa Client/Server session key được mã hóa bởi
Client/TGS session key
Trang 88.Khi nhận được Message E và F, Client sau đó gởi một Authenticator mới và một Client-to-Server ticket đến Server chứa dịch vụ được yêu cầu
Message G: chứa Client-to-Server ticket được mã hóa sử dụng secret key của Server.
Message H: một Authenticator mới, chứa Client ID, Timestamp và được mã hóa sử dụng Client/Server session key.
9.Sau đó, Server giải mã Ticket sử dụng secret key của chính nó, và gởi một message cho client để xác nhận tính hợp lệ thực sự của client và sự sẵn sàng cung cấp dịch vụ cho client
Message I: chứa giá trị Timestamp trong Authenticator được gởi bởi
client sẽ được cộng thêm 1, được mã hóa bởi Client/Server session key.
10.Client sẽ giải mã sự xác nhận này sử dụng khóa chia sẽ giữa nó với server, và kiểm tra xem giá trị timestamp có được cập nhật đúng hay không Nếu đúng, Client có thể tin tưởng Server và bắt đầu đưa ra các yêu cầu dịch vụ gởi đến Server
11.Server cung cấp dịch vụ được yêu cầu đến client
Trang 9THIẾT KẾ GIAO DIỆN
Giao diện phía Client
Trang 10Màn hình sau khi kêt nối vào TGS
Trang 11Client sử dụng dich vụ
Trang 12Giao diện Server
AS phản hồi gói tin cho Client
Trang 13TGS phản hồi gói tin cho Client
Trang 14 Kết Luận:
-Kerberos là giao công đoạn đầu tiên và quan trọng nhất trong dịch vụ AAA (Authentication,Authorization,Accounting).
1.Xác thực (Authentication)
Xác thực dùng để nhận dạng (identify) người dùng Trong suốt quá trình xác thực, username và password của người dùng được kiểm tra và đối chiếu với
cơ sở dữ liệu lưu trong AAA Server Tất nhiên, tùy thuộc vào giao thức mà AAA hỗ trợ mã hóa đến đâu, ít nhất thì cũng mã hóa username và password.
2.Thẩm quyền (Authorization)
Authorization cho phép nhà quản trị điều khiển việc cấp quyền trong một
khoảng thời gian, hay trên từng thiết bị, từng nhóm, từng người dùng cụ thể hay trên từng giao thức AAA cho phép nhà quản trị tạo ra các thuộc tính mô tả các chức năng của người dùng được phép làm Do đó, người dùng phải
được xác thực trước khi cấp quyền cho người đó.
3.Tính cước (Accounting)
Accounting cho phép nhà quản trị có thể thu thập thông tin như thời gian bắt đầu, thời gian kết thúc người dùng truy cập vào hệ thống, các câu lệnh đã
thực thi, thống kê lưu lượng, việc sử dụng tài nguyên và sau đó lưu trữ thông tin trong hệ thống cơ sở dữ liệu quan hệ Nói cách khác, accounting cho phép giám sát dịch vụ và tài nguyên được người dùng sử dụng.
Trang 15 Như đã nêu ở trên ,Kerberos là giao thức xác thực người dùng nên thường được sử dụng để xác thực :
+Cơ sở dữ liệu
+Sharepoint
+Các ứng dụng Web và Share Service Provider (SSP)
+Tài khoản computer và user
Kết Thúc