Khái niệm - Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máy tính hoạt động trên những đường truyền không an toàn.. Hệ thống Bao gồm: - Người dùng dịch vụ Client - M
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN MÔN: AN NINH VÀ BẢO MẬT DỮ LIỆU
Đề bài : Tìm hiểu Giao Thức Kerberos
Cơ chế quản lí và phân phối khóa đồng bộ
Giảng viên hướng dẫn: Th.S Trần Duy Hùng
Sinh viên thực hiện: Hoàng Thị Phương Duyên - 2010A02
Nguyễn Tiến Dũng - 2010A02 Nguyễn Minh Đức - 2010A02
Hà Nội, năm 2022
Trang 2MỤC LỤC
A Tìm hiểu về giao thức Kerberos 1
I Khái niệm 1
II Lịch sử phát triển 1
III Cơ chế hoạt động 1
IV Một số phiên bản Kerberos 4
1 Các lãnh địa Kerberos 4
2 Kerberos phiên bản 4 4
3 Kerberos phiên bản 5 5
V Các yêu cầu và ứng dụng của thuật toán Kerberos 5
VI Ứng dụng trong đảm bảo an toàn thông tin của Kerberos 6
VII Ưu - nhược điểm bảo mật của Kerberos 6
B Cơ chế quản lý và phân phối khóa đồng bộ 7
I Trung tâm phân phối khóa 7
II Khóa Phiên (Session Keys) 9
III Các bước tạo khóa phiên 9
C Tài liệu tham khảo 11
Trang 3
BẢNG PHÂN CÔNG CÔNG VIỆC
Hoàng Thị
Phương Duyên
Tìm hiểu giao thức Kerberos
Làm slide
Nguyễn Tiến
Dũng Tìm hiểu cơ chế quản lý và phân phối khóa đồng bộ
Nguyễn Minh
Đức
Tìm hiểu giao thức Kerberos
Làm slide
Trang 4A.Tìm hiểu về giao thức Kerberos
I Khái niệm
- Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máy tính hoạt động trên những đường truyền không an toàn Giao thức Kerberos có khả năng chống lại việc nghe lén hay gửi lại các gói tin cũ và đảm bảo tính toàn vẹn của dữ liệu Mục tiêu khi thiết kế giao thức này là nhằm vào mô hình máy chủ-máy khách (client-server) và đảm bảo nhận thực cho cả hai chiều
- Kerberos được xây dựng dựa trên mô hình mã hóa khóa đối xứng và đbi hci
mô dt thành phần thứ ba tin câ dy (trusted third party) tham gia vào quá trình chứng thực
II Lịch sử phát triển
- Học viện kỹ thuật Massachusetts (MIT) phát triển Kerberos để bảo vệ các dịch
vụ mạng cung cấp bởi dự án Athena Giao thức đã được phát triển dưới nhiều phiên bản, trong đó các phiên bản từ 1 đến 3 chỉ dùng trong nội bộ MIT
Đã có hai phiên bản đang sử dụng là: Kerberos 4 và Kerberos 5
- Các tác giả chính của phiên bản 4, Steve Miller và Clifford Neuman, đã xuất bản giao thức ra công chúng vào cuối thập niên 1980, mặc dù mục đích chính của họ là chỉ phục vụ cho dự án Athena
- Phiên bản 5, do John Kohl và Clifford Neuman thiết kế, xuất hiện trong tài liệu RFC 1510 vào năm 1993 (được thay thế bởi RFC 4120 vào năm 2005) với mục đích sửa các lỗi của phiên bản 4
- Windows 2000, XP và 2003 Server sử dụng Kerberos như là mô dt phương pháp chứng thực mă dc định
Trang 5III Cơ chế hoạt động
Kerberos hoạt động theo mô hình máy trạm/ máy chủ và nó thực hiện quá trình xác thực 2 chiều - cả người dùng và dịch vụ xác thực lẫn nhau
1 Hệ thống
Bao gồm:
- Người dùng dịch vụ (Client)
- Máy chủ cung cấp khóa – KDC (Key Distribution Center)
Máy chủ xác thực – AS (Authentication Server)
Máy chủ cấp vé – TGS (Ticket Granting Server)
CSDL thông tin của client – server
- Máy chủ cung cấp dịch vụ - AP (Application Server)
2 Tổng quan về cách thức hoạt động
- Client xác thực với AS AS check trong CSDL sau đó cấp quyền cho Client đến TGS TGS cấp cho client vé để sử dụng dịch vụ trên SS Client mang vé đến SS để sử dụng dịch vụ
- Để dễ hiểu thì có thể hiểu là: Muốn sử dụng dịch vụ thì phải có vé, mà muốn có
vé phải đi mua vé ở quầy bán vé, muốn vào được quầy bán vé thì phải qua phbng bảo về để xác thực
Trang 63 Cụ thể cách thức hoạt động
Mô hình Kerberos tiêu biểu
Dưới đây là mô dt mô tả về quá trình hoạt đô dng của giao thức (AS = Authentication Server, TGS = Ticket Granting Server, C = Client, S = Service):
- Người dùng nhâ dp vào username và password ở phía client
- Client thực hiê dn thuâ dt toán băm mô dt chiều trên password được nhâ dp vào, và nó trở thành secret key của client
- Client gửi mô dt 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
- AS kiểm tra xem có tồn tại người dùng C trong cở sở dữ liê du của nó hay không Nếu có, nó gửi ngược lại cho client 2 messages:
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ô dt Client/TGS session key) được mã hóa sử dụng secret key của TGS
- Khi client nhâ dn đượ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
- 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
Trang 7- Khi nhâ dn đượ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ô dt 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
- Khi nhâ dn được Message E và F, Client sau đó gửi mô dt Authenticator mới và
mô dt 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ô dt Authenticator mới, chứa Client ID, Timestamp và được mã hóa sử dụng Client/Server session key
- Sau đó, Server giải mã Ticket sử dụng secret key của chính nó, và gửi mô dt message cho client để xác nhâ dn tính hợp lê d 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ô dng thêm 1, được mã hóa bởi Client/Server session key
- Client s~ giải mã sự xác nhâ dn 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â dp nhâ dt đú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
- Server cung cấp dịch vụ được yêu cầu đến client
IV Một số phiên bản Kerberos
1 Các lãnh địa Kerberos
Môi trường Kerberos bao gồm: máy chủ Kerberos, một số máy trạm đã được đăng ký với máy chủ, các máy chủ ứng dụng chia sẻ khoá với máy chủ Một hệ thống như vậy được gọi là một lãnh địa Kerberos Thông thường là một miền
Trang 8hành chính duy nhất Nếu có nhiều lãnh địa, thi các máy chủ Kerberos cần phải chia sẻ khoá và tin cậy nhau
2 Kerberos phiên bản 4
Là sơ đồ xác thực dùng bên thứ ba và có máy chủ xác thực (AS – Authentication Server) Người dùng thca thuận với AS về danh tính của mình, AS cung cấp sự tin cậy xác thực thông qua thẻ cấp thẻ TGT (Ticket Granting Ticket) Người sử dụng thường xuyên yêu cầu TGS cho truy cập đến các dịch vụ khác dựa trên thẻ cấp thẻ TGT của người sử dụng và máy chủ cung cấp thẻ (TGS – Ticket Granting Server) cung cấp các thẻ dịch vụ theo yêu cầu và thẩm quyền Người sử dụng nhận thẻ được cấp từ máy chủ xác thực AS, mỗi thẻ cho một phiên làm việc và cũng nhận thẻ cấp dùng dịch vụ (Service Granting Ticket) từ TGT Mỗi thẻ dùng cho một dịch vụ khác nhau được yêu cầu, thông qua việc trao đ{i giữa máy chủ/trạm để nhận được dịch vụ
3 Kerberos phiên bản 5
Kerberos 5 được phát triển vào giữa những năm 1990, được thiết kế theo chuẩn RFC 1510 Nó cung cấp những cải tiến so với phiên bản 4 cụ thể hướng tới các thiếu sót và môi trường thuật toán mã thủ tục mang thứ tự byte thời gian sử dụng thể truyền tiếp xác thực xác thực lãnh địa con Và các sự khác biệt về kỹ thuật như mã kép các dạng sử dụng không chuẩn khoá phiến chống tấn công mật khẩu
V Các yêu cầu và ứng dụng của thuật toán Kerberos
1 Yêu cầu của thuật toán Kerberos
An toàn
Tin cậy
Trong suốt
Có thể mở rộng
Trang 92 Ứng dụng của thuật toán Kerberos
Ngày nay dịch vụ xác thực Kerberos này được ứng dụng nhiều ở thực tiễn như: Tích hợp trong các ứng dụng mạng
OpenSSH (với Kerberos v5 hoặc cao hơn)
NFS (kể từ NFSv3)
PAM (với mô đun pam_krb5)
SOCKS (kể từ SOCKS5)
Apache (với mô đun mod_auth_kerb)
Dovecot IMAP4 và POP3
Một cách gián tiếp, tất cả phần mềm sử dụng SASL để nhận thức, chẳng hạn như penDAP Bộ Kerberos cbn đi kèm với các bộ phận mềm client/server của RSH, FTP và Telnet
Hệ thống X Window
Thẻ thông minh Smark Card
Được tích hợp để xác thực trong các hệ điều hành mạng
Xây dựng tích hợp trong các hệ thống xác thực của các ngân hàng Tích hợp Kerberos trong các hệ thống bastion host
VI Ứng dụng trong đảm bảo an toàn thông tin của Kerberos
Kerberos nhằm đối phó với các hiểm họa sau:
Người dùng giả danh người khác
Người dùng thay đ{i địa chỉ mạng của client
Trang 10Người dùng xem trộm thông tin trao đ{i và thực hiện kiểu tấn công lặp lại
Kerberos bao gồm 1 server tập trung có chức năng xác thực người dùng
và các server dịch vụ phân tán
Tin cậy server tập trung thay vì các client
Giải phóng chức năng xác thực khci các server dịch vụ và các client
VII Ưu - nhược điểm bảo mật của Kerberos
1 Ưu điểm
Cho đến nay, Kerberos vẫn được phân phối miễn phí từ MIT và một số nguồn khác Nó được tích hợp s}n trong các hệ điều hành như Windows, Mac OS, Unix… và một số sản phẩm khác Kerberos được đánh giá là giao thức xác thực
an toàn nhờ các đặc điểm sau:
Khi sử dụng Kerberos, mật khẩu không bao giờ truyền đi trong mạng dưới dạng rõ mà luôn được mã hóa
Kerberos không yêu cầu người dùng lặp đi lặp lại thao tác nhập mật khẩu trước khi truy cập vào các dịch vụ, hạn chế nguy cơ tấn công ăn c•p dữ liệu
Giao thức được mã hóa theo các chuẩn mã hóa cao cấp như Triple DES, RC4, AES nên rất an toàn
Tất cả các trao đ{i giữa các máy đều chứa timestamp nên vé bị đánh c•p không thể tái sử dụng, chống được tấn công dùng lại (replay attack)
2 Nhược điểm
Bên cạnh các ưu điểm, hệ thống Kerberos cũng tồn tại một số hạn chế nhất định
Độ bảo mật của hệ thống phụ thuộc vào sự an toàn của hệ thống KDC Nếu KDC bị tấn công thì toàn bộ các thành phần trong hệ thống cũng bị tê liệt
Do tất cả các trao đ{i đều g•n timestamp nên đbi hci các máy tính trong hệ thống phải đồng bộ về thời gian (không chênh lệch nhau quá 5 phút) Nếu
Trang 11không đảm bảo điều này, cơ chế xác thực dựa trên thời hạn sử dụng s~ không hoạt động
Với cơ chế đăng nhập một lần trên một máy tính, nếu máy tính đó rơi vào tay những kẻ tấn công mạng thì toàn bộ dữ liệu người dùng s~ bị đánh c•p
và gây nguy cơ cho toàn bộ hệ thống
Nếu máy chủ trung tâm ngừng hoạt động thì mọi hoạt động s~ ngừng lại Điểm yếu này có thể được hạn chế bằng cách sử dụng nhiều máy chủ Kerberos
Giao thức đbi hci đồng hồ của tất cả những máy tính liên quan phải được đồng bộ Nếu không đảm bảo điều này, cơ chế nhận thực giữa trên thời hạn sử dụng s~ không hoạt động Thiết lập mặc định đbi hci các đồng hồ không được sai lệch quá 10 phút Cơ chế thay đ{i mật khẩu không được tiêu chuẩn hóa
Kerberos thích hợp cho việc cung cấp các dịch vụ xác thực, phân quyền và bảo đảm tính mật của thông tin trao đ{i trong phạm vi một mạng hay một tập hợp nhc các mạng Tuy nhiên, nó không thật thích hợp cho một số chức năng khác, chẳng hạn như ký điện tử (yêu cầu đáp ứng cả hai nhu cầu xác thực và đảm bảo không chối cãi được) Một trong những giả thiết quan trọng của giao thức Kerberos là các máy chủ trên mạng cần phải tin cậy được Ngoài ra, nếu người dùng chọn những mật khẩu dễ đoán thì hệ thống dễ bị mất an toàn trước kiểu tấn công từ điển, tức là kẻ tấn công s~
sử dụng phương thức đơn giản là thử nhiều mật khẩu khác nhau cho đến khi tìm được giá trị đúng
Do hệ thống hoàn toàn dựa trên mật khẩu để xác thực người dùng, nếu bản thân các mật khẩu bị đánh c•p thì khả năng tấn công hệ thống là không có giới hạn Điều này dẫn đến một yêu cầu rất căn bản là Trung tâm phân phối khóa cần được bảo vệ nghiêm ngặt Nếu không thì toàn bộ hệ thống s~ trở nên mất an toàn
B.Cơ chế quản lý và phân phối khóa đồng bộ
I Trung tâm phân phối khóa
Kerberos sử dụng một bên thứ ba tham gia vào quá trình nhận thức gọi là trung tâm phân phối khóa KDC Key Distribution Center
Trang 12Trên lý thuyết KDC bao gồm 3 thành phần:
Database của tất cả các principal và các khóa đã mã hóa của nó để gia nhập
Authentication Server
Ticket Granting Server
KDC bao gồm hai chức năng: "máy chủ xác thực" (authentication server - AS)
và"máy chủ cung cấp vé" (Ticket Granting Server - TGS) "Vé" trong hệ thống Kerberos chính là các chứng thực chứng minh nhân dạng của người sử dụng Đối với người sử dụng, các khóa bí mật chính là băm thông tin đầu vào khi đăng
ký thường được lưu trong các trung tâm phân phối khóa trên serverKerberos Mỗi người sử dụng (cả máy chủ và máy khách) trong hệ thống chia sẻ một khóa chung với máy chủ Kerberos Việc sở hữu thông tin về khóa chính là bằng chứng
để chứng minh nhân dạng của một người sử dụng
Trong mỗi giao dịch giữa hai người sử dụng trong hệ thống, máy chủKerberos s~ tạo ra một khóa phiên dùng cho phiên giao dịch đó
Đối với một dịch vụ, chính là một chuỗi ngẫu nhiên tạo ra, hoạt động như một mật khẩu, nó cũng được lưu giữ trong Trung tâm phân phối khóa, và trong một tập tin gọi là keytab trên máy của bên dịch vụ
Đối với sơ đồ này để làm việc, khách hàng và dịch vụ phải tin tưởng một dịch vụ của bên thứ ba (các máy chủ Kerberos), cung cấp khóa xác thực phân phối chúng theo yêu cầu
Hoạt động Kerberos được dựa trên vé Vé là một chuỗi dữ liệu mã hóa được truyền qua mạng, và được lưu trữ trên máy của khách hàng Cách lưu trữ phụ thuộc vào hệ điều hành và cấu hình của khách hàng Theo cách thông thường, nó được lưu trữ như tập tin dạng text khả năng tương thích với nhiều hệ điều hành khác nhau
Mã hóa sử dụng khoá mật và bên thứ ba được tin cậy Thuật toán mã hoá điển hình được sử dụng trong Kerberos là DES (Data Encryption Standard - chuẩn
mã hoá dữ liệu) Tuy nhiên thiết kế kiểu mô đun của Kerberos cho phép sử dụng các phương pháp mã hoá khác DES là thuật toán tiêu chuẩn đối với phương thức
mã hoá dựa trên khoá mật Phương thức mã hoá sử dụng “khoá mật” (cbn gọi là khóa đối xứng) hoạt động theo nguyên t•c: mỗi cặp thực thể trao đ{i thông tin s~ chia sẻ một khóa duy nhất dùng cho cả hai công đoạn mã hóa và giải mã Đây là hướng tiếp cận đối lập với phương thức mã hoá sử dụng “khóa công khai” (hay
Trang 13khóa bất đối xứng) với các khóa dùng để mã hóa và giải mã là riêng biệt và rất khó có thể suy ra nhau, điều này cho phép một trong hai khóa được công bố rộng rãi Các hệ mã dựa trên khóa mật có ưu thế về tốc độ xử lý nhưng gặp phải khó khăn rất cơ bản trong việc truyền khóa giữa hai bên tham gia trao đ{i thông tin, trong khi hệ mã dựa trên khóa công khai có thể giải quyết tốt vấn đề này Chính
vì vậy nên khi áp dụng vào thực tế hai kỹ thuật này thường được sử dụng kết hợp với nhau Trong cả hai phương thức mã hóa sử dụng khóa mật và khóa công khai, mô hình triển khai ph{ biến là dựa vào bên thứ ba được tin cậy để chứng nhận danh tính
II Khóa Phiên (Session Keys)
KDC tạo khóa bí mật cho mỗi thành viên, khóa bí mật này có thể dùng giữa thành viên và KDC, chứ không dùng giữa hai thành viên
Nếu muốn dùng giữa hai thành viên, KDC tạo một session key giữa hai thành viên, sử dụng khóa của họ với trung tâm
Khóa phiên giữa hai thành viên chỉ được dùng một lần (Sau khi giao tiếp kết thúc thì khóa phiên cũng không cbn tác dụng)
III Các bước tạo khóa phiên
1 Bước 1
A gửi yêu cầu đến KDC để nhận được khóa phiên nhằm thực hiện truyền thông với B
Bản tin gồm định danh của A,B và một định danh duy nhất N1 cho phiên truyền gọi là nonce (nhãn thời gian, biến đếm, số ngẫu nhiên)]
Đối phương rất khó để xác định nonce
2 Bước 2
KDC trả lời yêu cầu bằng một tin tức, được mã hóa với việc sử dụng khóa Ka Người duy nhất có thể nhận và đọc được tin tức này đó chính là A và bởi vậy A
có thể tin tưởng rằng tin tức đã được gửi từ KDC
Tin tức có 2 thông tin được chờ đợi với A