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 (clientserver) và đảm bảo nhận thực cho cả hai chiều.
Học viện Cơng Nghệ Bưu Chính Viễn Thơng TIỂU LUẬN Tìm hiểu, nghiên cứu giao thức Kerberos Ứng Dụng Hà Nội - 2021 Phân công nhiệm vụ: Đồn Văn Thìn: Giới thiệu giao thức kerberos Nguyễn Văn Trung: Một số khái niệm(KDC, SS, AS, TGS) Nguyễn Đình Quyết: Nguyên lý hoạt động Trịnh Phúc Bình : Ưu nhược điểm kerberos,demo Nguyễn Văn Kiên: Kerberos attack Vũ Mạnh Phương: Vấn đề giao thức bảo mật Đặng Đoàn Huy: demo Nguyễn Thanh Tùng: demo Mục lục 1.1 Giới thiệu giao thức xác thực kerberos 1.1.1 Tổng quan 1.1.2 Lịch sử phát triển 1.1.3 Mục tiêu yêu cầu Kerberos 1.1.3.1 Mục tiêu: 1.1.3.2 Yêu cầu: 1.2 Một số khái niệm 1.2.1 KDC – Key Distribution Center 1.2.2 SS, AS, TGS 1.2.3 Ticket Session key 10 1.2.4 Ticket cache 11 1.3 Nguyên lý hoạt động 12 1.3.1 Mơ hình tiêu biểu 12 1.3.2 Mơ tả giao thức 12 1.3.3 Kiến trúc 13 1.3.3.1 Hình thức mã hóa 13 1.3.3.2 Mã hóa Kerberos 13 1.3.3.3 Cơ sở liệu Kerberos 14 1.3.3.4 Nguyên lý hoạt động: 14 1.3.4 Phân tích ưu nhược điểm 17 1.4 Các dạng công Kerberos 18 1.4.1 Kerberos Attack 19 1.4.2 Other Attack 20 1.4.3 Vấn đề giao thức bảo mật 20 1.5 Kết luận 24 1.6 Demo 24 DANH MỤC TÀI LIỆU THAM KHẢO 28 1.1 Giới thiệu giao thức xác thực kerberos 1.1.1 Tổng quan Kerberos giao thức mật mã dùng để xác thực mạng máy tính hoạt động đường truyền khơng an tồn Giao thức Kerberos có khả chống lại việc nghe hay gửi lại gói tin cũ đảm bảo tính tồn vẹn liệu Mục tiêu thiết kế giao thức nhằm vào mơ hình máy chủ-máy khách (client-server) đảm bảo nhận thực cho hai chiều Giao thức xây dựng dựa mật mã hóa khóa đối xứng cần đến bên thứ ba mà hai phía tham gia giao dịch tin tưởng 1.1.2 Lịch sử phát triển Kerberos phát triển Học viện kỹ thuật Massachusetts (MIT) nhằm bảo vệ dịch vụ cung cấp dự án Athena Kerberos trải qua nhiều phiên bản, đó, phiên từ – sử dụng nội bên MIT Giao thức đặt tên dựa theo nhân vật thần thoại Hy Lạp Kerberos (hay Cerberus), chó săn đầu khổng lồ âm phủ Steve Miller Clifford Neuman, thiết kế gia Kerberos phiên 4, cơng bố phiên vào cuối thập niên 80, mục đích họ dùng để phục vụ cho dự án Athena Phiên 5, phát triển John Kohl Clifford Neuman, xuất RFC 1510 vào 1993, với mục đích khắc phục giới hạn vấn đề liên quan đến bảo mật phiên Windows 2000, XP 2003 Server sử dụng Kerberos phương pháp chứng thực mặc định Hệ điều hành Mac OS sử dụng Kerberos phiên Clients Server 1.1.3 Mục tiêu yêu cầu Kerberos 1.1.3.1 Mục tiêu: - Mật người dùng không bị thất lạc mạng - Đảm bảo mật khách hàng không lưu trữ trực tiếp máy người dùng mà loại bỏ sau sử dụng - Mật người dùng không nên cất giữ hình thức khơng mật mã sở liệu máy chủ dịch vụ - Người sử dụng có yêu cầu nhập mật lần phiên làm việc Vì người sử dụng truy cập tất dịch vụ mà họ ủy uyền cho mà không cần phải nhập lại mật phiên Đặc tính gọi Single Sign-On - Quản lý thông tin xác thực tập trung cư trú máy chủ xác thực - Các máy chủ ứng dụng không trực tiếp xác thực thông tin cho người dùng họ, điều làm cho hệ thống có hệ quả: + Người Quản trị quản lý tập trung tài khoản người dùng máy chủ xác thực mà không cần thao tác máy chủ dịch vụ + Khi người dùng thay đổi mật mình, thay đổi cho tất dịch vụ lúc + Không có xác thực thừa nhằm bảo vệ mật - Không người sử dụng phải chứng minh họ người họ mà máy chủ ứng dụng phải xác thực lại khách hàng họ có khơng Đặc tính gọi xác thực chéo - Sau hoàn thành xác nhận uỷ quyền, Client Server phải có khả thiết lập kết nối mã hóa, yêu cầu Đối với mục đích này, Kerberos cung cấp hỗ trợ cho hệ trao đổi khoá mật mã sử dụng để mã hóa liệu 1.1.3.2 Yêu cầu: ● Để Kerberos đạt mục tiêu đặt ra, phải đảm bảo yêu cầu sau: - Bảo mật(security) - Tin cậy(reliability) - Minh bạch (transparency) - Uyển chuyển (scalability) 1.2 Một số khái niệm 1.2.1 KDC – Key Distribution Center Key Distribution Center – trung tâm phân phối khóa Kerberos (KDC), phần hệ thống Kerberos Trên lý thuyết KDC bao gồm ba thành phần: - Database tất principal khoá mã hố để gia nhập - Authentication Server - Ticket Granting Server Người ta thường gom chúng lại chương trình chạy process 1.2.2 SS, AS, TGS SS - Service Server: • Máy chủ dịch vụ • Service Server nơi cung cấp dịch vụ AS - Authentication Server: Máy chủ xác thực • Khi user muốn tham gia vào realm Kerberos thay user phải xác thực với KDC phải xác thực với AS • Các khách hàng gửi dạng cleartext thông điệp ID người dùng đến AS (Authentication Server) yêu cầu dịch vụ thay mặt người sử dụng (Lưu ý: Cả khóa bí mật mật khơng gửi tới AS.) • AS kiểm tra xem máy khách có sở liệu hay khơng Nếu vậy, AS tạo khóa bí mật cách băm mật người dùng tìm thấy sở liệu (ví dụ: Active Directory Windows Server) gửi lại hai thơng báo sau cho máy khách: Thơng báo A: Khóa phiên ứng dụng khách / TGS mã hóa khóa bí mật ứng dụng khách / người dùng Thông điệp B: Ticket-Grant-Ticket (TGT, bao gồm ID khách hàng, địa mạng khách hàng , thời hạn hiệu lực vé Khóa phiên ứng dụng khách / TGS ) mã hóa khóa bí mật TGS • Khi máy khách nhận thông điệp A B, cố gắng giải mã thơng báo A khóa bí mật tạo từ mật người dùng nhập Nếu người dùng nhập mật không khớp với mật sở liệu AS, khóa bí mật máy khách khác khơng thể giải mã thơng điệp A Với mật hợp lệ khóa bí mật, máy khách giải mã thơng báo A để lấy Khóa phiên máy khách / TGS Khóa phiên sử dụng để liên lạc thêm với TGS (Lưu ý: Máy khách khơng thể giải mã Thơng điệp B, mã hóa khóa bí mật TGS.) Tại thời điểm này, máy khách có đủ thơng tin để tự xác thực với TGS TGS - Máy chủ cấp phát vé: • TGS phận nhận vé chấp thuật TGT (Ticket Granting Ticket) từ user TGS có nhiệm vụ kiểm tra vé TGT có giá trị khơng cách kiểm tra xem có mã hố key với key TGT server Kerberos khơng Nếu gửi cho user vé dịch vụ mà user muốn sử dụng TGS xác nhận việc sử dụng vé cho mục đích cụ thể chẳng hạn truy cập dịch vụ mạng *Realm: Tên vùng phát thẻ KDC phát thẻ cho server miền nó, trường tên vùng server *Principal: Đó định danh cho dịch vụ cụ thể cung cấp máy chủ cụ thể miền xác thực 1.2.3 Ticket Session key Ticket: Ticker(vé) hệ thống Kerberos chứng thực chứng minh tính hợp lệ người sử dụng.Mỗi người sử dụng (cả máy chủ máy khách) hệ thống chia sẻ khóa chung với máy chủ Kerberos Việc sở hữu thơng tin khóa chứng để chứng minh tính hợp lệ người sử dụng Trong giao dịch hai người sử dụng hệ thống, máy chủ Kerberos tạo khóa phiên dùng cho phiên giao dịch Vé tạo có mục đích: xác nhận danh tính người tham gia khởi tạo khóa ngắn hạn để hai bên giao tiếp an tồn (gọi khố phiên) Các trường mà vé Kerberos có là: • IP • ID • Khi vé có hiệu lực, vé hết hiệu lực (Timestamp, Lifetime) • Khóa phiên Một vé tạo KDC mã hố để đảm bảo người khơng có khố khơng mở để sửa, tăng lifetime lên tên định danh client principal Bởi Kerberos xác thực lần đăng nhập nên sau đăng nhập ngồi máy tham gia vào hệ thống Kerberos Vì vậy, vé Kerberos có lifetime ngắn, khoảng từ 10-24h Điều thuận tiện cho việc đăng nhập lần ngày làm việc user, hạn chế việc công lấy liệu quan trọng Session key: Được sử dụng cho phiên làm việc client server 1.2.4 Ticket cache Tất vé Kerberos lưu file nằm nhớ cache gọi Credential cache Microsoft Apple lựa chọn phương án Khi đăng nhập vào hệ thống Kerberos vé lưu nhớ cache đăng xuất thứ xố hết Các thơng tin chứa cache gồm: user principal, vé mà user có suốt phiên đăng nhập họ 1.3 Nguyên lý hoạt động 1.3.1 Mơ hình tiêu biểu Dưới mơ hình hệ thống Kerberos tiêu biểu mà thường thấy nay, bao gồm: - Client hay user - Thiết bị truyền thông: router, switch, hub, - Kerberos System: AS, TGS, database - Server cung cấp dịch vụ: Mail server, máy in, Hình Mơ hình kerberos tiêu biểu 1.3.2 Mô tả giao thức Theo hệ thống ký hiệu giao thức mật mã, Kerberos mô tả sau (trong Alice(A) sử dụng máy chủ (S) để nhận thực với Bob (B)): An ninh giao thức phụ thuộc nhiều vào trường T (đánh dấu thời điểm) L (thời hạn) gói tin Đây thị tính chất gói tin chống lại cơng gửi lại gói tin cũ Trong tin trên, máy chủ S bao gồm dịch vụ nhận thực cung cấp vé Trong gói tin , khóa phiên A B; vé gửi từ máy khách tới máy chủ; phần để nhận thực A với B; để khẳng định lại nhân dạng B thơng qua chấp nhận A Điều cần thiết để hai bên nhận dạng lẫn 1.3.3 Kiến trúc 1.3.3.1 Hình thức mã hóa ● Kerberos dựa mơ hình mã hóa đối xứng ( khóa sử dụng để mã hóa giải mã) E mã hóa, D giải mã, ta có: ciphertext = E_key (plaintext) plaintext = D_key (ciphertext ) (HÌNH ẢNH) 1.3.3.2 Mã hóa Kerberos - Kerberos sử dụng mã hóa đối xứng - Sử dụng hàm băm string2key(password, principals) - Thuật toán băm : MD5, CRC32, SHA1 - Hoạt động : def string2key(passwd, principals): return algorithm.hash(“passwd” + “principals”) key = string2key(password, principals) ● Lợi sử dụng mã hóa Kerberos - Các service khác người dùng sử dụng chung password để đồng - principals có user,realm password khác lĩnh vực làm việc mã hóa key khác (qua hàm hash), dễ dàng việc quản lý công việc khác 1.3.3.3 Cơ sở liệu Kerberos - Principal - Encryption key & related kvno - Thời hạn tối đa ticket liên quan đến principal - Thời hạn tối đa ticket liên quan đến principal gia hạn (chỉ kerberos 5) - Attributes flag đặc trưng vé tickets - Hạn sử dụng password 10 secret key Service Message F: chứa Client/Server session key mã hóa Client/TGS session key Khi nhận Message E F, Client sau gửi Authenticator Client-to-Server ticket đến Server chứa dịch vụ yêu cầu Message G: chứa Client-to-Server ticket mã hóa sử dụng secret key Server Message H: Authenticator mới, chứa Client ID, Timestamp mã hóa sử dụng Client/Server session key Sau đó, Server giải mã Ticket sử dụng secret key nó, gởi message cho client để xác nhận tính hợp lệ thực client sẵn sàng cung cấp dịch vụ cho client Message I: chứa giá trị Timestamp Authenticator gởi client cộng thêm 1, mã hóa Client/Server session key 10 Client giải mã xác nhận sử dụng khóa chia với server, kiểm tra xem giá trị timestamp có cập nhật hay khơng Nếu đúng, Client tin tưởng Server bắt đầu đưa yêu cầu dịch vụ gởi đến Server 11 Server cung cấp dịch vụ yêu cầu đến client 1.3.4 Phân tích ưu nhược điểm a Ưu điểm Cho đến nay, Kerberos phân phối miễn phí từ MIT số nguồn khác Nó tích hợp sẵn hệ điều hành Windows, Mac OS, Unix… số sản phẩm khác Kerberos đánh giá giao thức xác thực an toàn nhờ đặc điểm sau: • Khi sử dụng Kerberos, mật không truyền mạng dạng rõ mà mã hóa • Xác thực nhanh • Hỗ trợ việc xác thực qua lại 13 • Hỗ trợ việc uỷ quyền xác thực • Hỗ trợ tính đăng nhập thẻ thơng minh • Kerberos khơng u cầu người dùng lặp lặp lại thao tác nhập mật trước truy cập vào dịch vụ, hạn chế nguy cơng ăn cắp liệu • Giao thức mã hóa theo chuẩn mã hóa cao cấp Triple DES, RC4, AES nên an tồn • Tất trao đổi máy chứa timestamp nên vé bị đánh cắp tái sử dụng, chống công dùng lại (replay attack) b Nhược điểm (Lỗ hổng Kerberos) Lỗ hổng Kerberos nguy hiểm Kerberos giao thức định danh sử dụng phổ biến mạng Internet Giao thức sử dụng nhiều sản phẩm thương mại hệ điều hành, router • Độ bảo mật hệ thống phụ thuộc vào an toàn hệ thống KDC Nếu KDC bị cơng tồn thành phần hệ thống bị tê liệt Các nhà phát triển hệ thống xác thực Kerberos MIT vừa công bố vá lỗi dành cho số lỗ hổng bảo mật nghiêm trọng hệ thống này, cho phép kẻ công từ xa đánh cắp thơng tin nhạy cảm, shutdown trái phép hệ thống, thực thi mã độc hại • Do tất trao đổi gắn timestamp nên địi hỏi máy tính hệ thống phải đồng thời gian (không chênh lệch phút) Nếu không đảm bảo điều này, chế xác thực dựa thời hạn sử dụng không hoạt động • Với chế đăng nhập lần máy tính, máy tính rơi vào tay kẻ cơng mạng tồn liệu người dùng bị đánh cắp gây nguy cho tồn hệ thống 1.4 Các dạng cơng Kerberos Điều quan nhận Kerberos thực mạng bạn không đảm bảo an ninh hoàn hảo Trong Kerberos an toàn ý thức lý thuyết, có nhiều vấn đề an ninh thực tế để xem xét Ngoài ra, điều quan 14 nhớ Kerberos cung cấp dịch vụ chứng thực, khơng ngăn cản thỏa hiệp gây lỗi phần mềm máy chủ, quản trị viên cấp giấy phép cho người sử dụng trái phép, mật chọn Có nhiều đánh giá Kerberos an tồn có thể, nhiên, vấn đề an ninh cần ý: 1.4.1 Kerberos Attack Việc hacker cơng hệ thống Kerberos KDC khơng dễ dàng Nhưng có số cơng điện tử thỏa hiệp bảo mật hệ thống Kerberos bạn Dưới số thỏa hiệp hiệu tiềm độ an toàn hệ thống Kerberos: - Root Compromise of a Kerberos KDC machine: Một thỏa hiệp gốc máy chủ KDC cho phép kẻ cơng tồn quyền kiểm sốt tồn hệ thống xác thực Kerberos Mặc dù sở liệu Kerberos mã hóa ổ cứng với khóa kerberos master, khóa master giữ ổ cứng KDC khơng có can thiệp tay yêu cầu (nhập password master) server KDC bắt đầu - Compromise of a Kerberos administrator's credentials: Nếu hacker lấy mật người quản trị, hacker hồn thành cơng tồn database kerberos - Root compromise of a server machine: Để giao thức Kerberos làm việc, dịch vụ phải có truy cập đến dịch vụ Các dịch vụ nằm hệ thống tập tin máy chủ, nằm keytab thực thi Unix Nếu kẻ công lấy quyền truy cập vào máy chủ, tất dịch vụ Kerberized chạy máy bị tổn hại - Root compromise of a client machine: Một thỏa hiệp gốc máy client cung cấp cho kẻ công với tất vé lưu máy Khi vé có giới hạn thời gian, khơng phải thỏa hiệp quan trọng kẻ công lấy mật người dùng Tuy nhiên, với truy cập gốc đến máy client, kẻ cơng bí mật cài đặt sniffer để nắm bắt mật người dùng đăng nhập vào máy tính họ - Compromise of user credentials: Có khả kịch này: nhớ lưu vé người dùng bị lộ, mật người dùng bị thỏa hiệp Nếu hacker lấy nhớ vé chưa mã hóa, vé chứa nhớ cache mà có hiệu lực khoảng thời gian quy định vé Mặt khác, kẻ công sử dụng lại mật người dùng, kẻ cơng mạo danh người dùng người dùng thay đổi mật Từ danh sách trên, thực tế tảng tất kịch có tầm quan trọng việc giữ tất máy mạng bạn an tồn Cài đặt Kerberos mạng bạn khơng làm giảm tầm quan trọng việc giữ tất 15 máy móc, máy tính người dùng an tồn từ cơng bên ngồi Những thỏa hiệp máy mạng có số hiệu ứng bất lợi bảo mật hệ thống xác thực Kerberos bạn 1.4.2 Other Attack - Denial of service (từ chối dịch vụ) - The "insider" (người cuộc) - Social engineering and password exposure (kỹ thuật cộng đồng tiếp xúc với mật -khẩu) - Security holes in the Kerberos software itself (các lỗ hổng bảo mật phần mềm Kerberos) 1.4.3 Vấn đề giao thức bảo mật ● Dictionary and Brute – Force attacks (buộc công) Trong giao thức Kerberos gốc KDC tạo TGT mã hóa cho khách hàng có y/c TGT mã hóa với khóa bí mật người dùng An ninh tồn hệ thống phụ thuộc vào việc giải mã thơng điệp này, kẻ cơng lấy chìa khóa sử dụng để mã hóa tin nhắn, có mật người dùng mạo danh người dùng theo ý thích Do kẻ cơng muốn có mật người dùng, yêu cầu KDC cho TGT hợp lệ với tên người dùng nạn nhân Trong khơng có cách để phá vỡ phương pháp mã hóa sử dụng Kerberos vé trực tiếp, kẻ công sau tiếp tục brute-force giải mã TGT cách tung công từ điển ngoại tuyến Trong công từ điển, kẻ cơng có nguồn cấp liệu danh sách mật thường sử dụng, từ điển, với chương trình bẻ Đối với mục từ điển, chương trình cố gắng giải mã thông điệp cách sử dụng mật Nếu thực hiện, chương trình báo cáo lại cho kẻ công người sử dụng mật Khi chuyển đổi từ mật người dùng sang khóa mật mã biết đến, tầm thường cho kẻ cơng để xây dựng chương trình mà dịch mật thường thành khố mật mã Kerberos Sau đó, kẻ cơng thu thập số lượng lớn TGTs hợp lệ từ KDC tiếp tục công việc bẻ TGTs off-line; với cố gắng giải mã, khơng có liên hệ với KDC Thay vào đó, TGTs yêu cầu từ KDC, không giao tiếp cần thiết để công mật Phương pháp thực có rõ biết đưa vào TGT, cụ thể thân chuỗi “tgt” Tên Dịch vụ cấp vé Kerberos “krbtgt” tên tín hiệu cho biết giải mã thành công Vào thời điểm kẻ 16 công xác định thành công mật khẩu, vé không mã hóa hết hạn; nhiên, kẻ cơng có tổ hợp tên người dùng / mật hợp lệ cho máy chủ Kerberos lấy vé tên người dùng mật hợp lệ Một cơng từ điển tạo thành giới hạn thấp tính bảo mật hệ thống xác thực dựa mật Cho dù sử dụng phương thức mã hóa lạ mắt nào, mật người dùng từ đơn giản, dễ đốn nhanh chóng chống chọi với cơng từ điển Một công khác, công vũ phu , tạo thành giới hạn bảo mật Kerberos Thay cố gắng giải mã tin nhắn cách lặp lại từ từ điển xác định trước, công brute-force thử khóa mã hóa, khóa một, tìm thấy khóa phù hợp Các hệ thống mật mã thiết kế với khơng gian khóa lớn để làm cho công bạo lực trở nên không thực tế Tuy nhiên, với tốc độ phát triển nhanh công nghệ, không gian quan trọng bị coi khơng thể tìm kiếm nằm tầm tay kẻ công có động vừa phải Các mã hóa sử dụng Kerberos v4, loại mã hóa phổ biến Kerberos v5, DES Single DES, thiết kế vào cuối năm 1970, có chiều dài 56-bit Khi Kerberos thiết kế (trong cuối năm 1980), brute-forcing khóa 56-bit khơng thực tốc độ vi xử lý có sẵn Theo tiêu chuẩn nay, với 56-bit, khơng gian DES xem tương đối khơng an tồn Năm 1998, Electronic Frontier Foundation chứng minh với vốn đầu tư $ 200.000, kẻ cơng xác dựng " DES cracker" mà brute-force khoá mật mã từ tin nhắn DES vịng ngày Với xử lí (năm 2002), thời gian để giải mã thông điệp mã hóa cách sử dụng DES phạm vi vài Rất may, Kerberos v5, số tính giao thức giới thiệu để giảm thiểu nguy Đầu tiên hỗ trợ loại mã hóa mở rộng, cho phép việc bổ sung kỹ thuật mã hóa mạnh Ngồi ra, giai đoạn tiền xác thực bổ sung, client phải chứng thực danh tính trước KDC cung cấp vé cho client Tiền xác thực hạn chế vấn đề công offline brute-force, hay cơng từ điển Thay vào đó, hacker từ xa phải liên lạc với KDC hacker cố gắng tìm mật Tuy nhiên, phương pháp mã hóa Kerberos v5 đặc tính tiền xác thực khơng hồn tồn chống lại cơng từ điển hay brute-force Các phương pháp mã hóa chắn khiến cho công brute force khả thi cách gia tăng khó khăn brute-forcing tin nhắn mã hóa Tuy nhiên, tất máy chủ, client, KDCs mạng phải hỗ trợ loại mã hóa Việc phát hành phiên 1,3 tới MIT Kerberos hỗ trợ thuật tốn mã hóa RC4 sử dụng Windows, tăng cường mã hóa sử dụng cho truyền thông hai thực thi 17 Với giao thức tiền xác thực, hacker khơng cịn nhiều khả vé mã hóa theo yêu cầu từ KDC Tuy nhiên, kẻ cơng sử dụng mạng lưới "sniffer" để có KDC responses chúng gửi đến client Những responses bao gồm vé mã hóa với khóa người dùng Trong cơng trở nên khó khăn việc tăng cường độ bảo mật, vấn đề tiềm Ngoài ra, hầu hết thực thi Kerberos không bắt buộc sử dụng tiền xác thực mặc định, phủ định khả bảo mật tiến xác thực ● Replay Attacks Vì tất giao thức trao đổi tin nhắn gửi qua mạng máy tính, kẻ cơng lắng nghe tin nhắn mạng lưới trao đổi xác thực thành công, tạo tin nhắn, phát lại chúng lần sau Những kẻ cơng khơng cần phải đốn mật người dùng giải mã thông điệp công Kể từ công replay yêu cầu truy cập để nghe tất tin nhắn mạng khả gửi tin nhắn giả, công replay công chủ động Chúng thấy Alice thành công lấy vé để xác thực tới máy chủ thư Bob, kẻ cơng, bí mật nghe tất lưu lượng mạng Alice, máy chủ thư, KDC Kerberos Bob trực tiếp sử dụng TGT mà Alice yêu cầu bước trước, TGT phải giải mã với mật Alice, Bob mật Tuy nhiên, Alice gửi vé mã hóa nhận thực, Bob chặn thư phát lại để mạo danh Alice đến máy chủ thư (vd) Vé mã hóa với khóa máy chủ thư, nhận thực mã hóa với khóa phiên chia sẻ Alice máy chủ thư Khi máy chủ thư nhận vé nhận thực, giải mã vé khóa mình, lấy khóa từ phiên giao vé, sử dụng khóa phiên để giải mã nhận thực Nếu tất việc giải mã thành cơng, xác thực thành cơng Kerberos thiết lập bảo vệ chống lại công replay attacks Là quản trị, bạn lo lắng kích hoạt bảo vệ này; chúng thiết lập thực thi Kerberos mà bạn sử dụng Những bảo vệ là: - Address field in tickets: client yêu cầu vé từ KDC, liệt kê địa mạng có vé hợp lệ Ví dụ, địa IP máy trạm 192.168.1.1, máy trạm điền địa vào trường địa vé yêu cầu, KDC chép vào vé trả lại cho máy trạm bảo vệ giải vấn đề hacker cố gắng gửi lại vé hợp lệ máy trạm không liệt kê trường địa vé Tuy nhiên, bảo vệ không đủ để ngăn chặn replay attacks; trường địa để trống, vé có giá trị cho tất địa Hoặc, kẻ cơng có quyền truy cập vào máy liệt kê trường địa chỉ, đăng nhập phát lại vé từ - Time-based authenticators: việc an ninh địa hoàn hảo, Kerberos sử dụng đề án để ngăn chặn replay attacks Mỗi khách hàng muốn 18 sử dụng dịch vụ Kerberized, cô tạo nhận thực, gửi với vé vào dịch vụ để xác thực Nhận thực chứa timestamp, mã hóa với khóa phiên tạo KDC cho việc thực trao đổi vé Khi dịch vụ nhận nhận thực, kiểm tra dấu thời gian với đồng hồ hệ thống Nếu có chênh lệch phút, dịch vụ từ cấp bán vé từ chối xác thực người dùng Khoảng thời gian phút thiết kế cho phép vài biến đổi khác đồng hồ mạng Tuy nhiên, phút nhiều để hacker gửi lại vé hợp lệ, đặc biệt hacker sử dụng chương trình tự động để bắt phát lại vé - Replay caches: cách cuối phòng thủ mà Kerberos chống lại replay attack Replay caches Cả Kerberos v4 v5 bao gồm giao thức dựa thời gian nhận thực Kerberos v5 sử dụng nhớ replay caches để tránh kẻ công sử dụng lại vé khoảng thời gian ngắn mà nhận thực cho hợp lệ Mỗi dịch vụ Kerberized trì nhớ cache nhận thực mà vừa nhận Khi dịch vụ nhận nhận thực, kiểm tra nhớ replay caches Nếu dịch vụ tìm thấy nhận thực có nhớ cache, từ chối u cầu Nếu khơng, dịch vụ chấp nhận yêu cầu bổ sung xác thực vào nhớ replay caches cho yêu cầu hợp lệ lần sau ● Man-in-the-Middle Attacks: Cuối cùng, công man-in-the-middle ảnh hưởng đến hầu hết giao thức cố gắng xác minh danh tính điểm cuối kết nối (trong trường hợp người dùng máy mà họ muốn tiếp cận) Một công man-in-the-middle công chủ động , nghĩa kẻ cơng phải có khả đọc tất tin nhắn mạng gửi tin nhắn tùy ý thiết kế Mục tiêu công man-in-the-middle mạo danh máy chủ, dẫn đến việc người dùng nghĩ kết nối với máy chủ hợp pháp, thực tế nói chuyện với kẻ cơng Khi kẻ cơng có quyền kiểm sốt phiên, ta hoạt động người chuyển qua đơn giản (chuyển thông báo người dùng máy chủ hợp pháp, mà không cần sửa đổi) ta chủ động chèn, sửa đổi xóa thơng báo người dùng máy chủ Kẻ công phần trò chuyện người dùng máy chủ hợp pháp sửa đổi tin nhắn qua ấy, có tên “man-in-the-middle” Tin tốt Giao thức Kerberos tích hợp tính bảo vệ chống lại cơng kẻ trung gian Vì Kerberos thực xác thực lẫn nhau, cách xác nhận khơng danh tính người dùng cuối mà cịn danh tính máy chủ, công man-in-the-middle bị cản trở 19 Để ngăn chặn công kẻ trung gian, số chế để xác thực khóa mã hóa máy chủ phải tồn Các giao thức khác sử dụng xác minh thủ công (chẳng hạn Secure Shell, nơi "dấu vân tay" khóa cơng khai máy chủ in hình người dùng kết nối lần đầu) quan ký tên (trong trường hợp trang web hỗ trợ SSL) Kerberos sử dụng thực tế tất khóa cho dịch vụ người dùng lưu trữ KDC để đảm bảo bảo vệ khỏi công kẻ trung gian Vì khóa phiên tạo KDC sau gửi đến dịch vụ mã hóa khóa dịch vụ, kẻ công khôi phục khóa phiên mà khơng có khóa bí mật dịch vụ Sau đó, khách hàng phát xem máy chủ mà nói chuyện có phải hãng hay khơng cách u cầu xác thực lẫn nhau, máy chủ phải chứng minh danh tính cách khơi phục khóa phiên, mã hóa phản hồi gửi lại cho máy khách Nếu máy chủ khơng phải hãng khơng có khóa dịch vụ, máy chủ khơng thể gửi lại tin nhắn mã hóa hợp lệ máy khách ngắt kết nối Trong Kerberos cung cấp khả thực xác thực lẫn nhau, ứng dụng phải có mã để kích hoạt tính bảo vệ Ngồi ra, số ứng dụng, chẳng hạn mơ-đun PAM có sẵn để xác thực mật Kerberos, khơng sử dụng quy trình xác thực dựa vé Thay vào đó, họ lấy mật qua mạng (hy vọng mã hóa) xác minh phía máy chủ cách yêu cầu KDC cung cấp TGT sau giải mã TGT Đây nơi mà công trung gian thực tế thực để chống lại Kerberos Trong trường hợp này, kẻ công muốn đặt vào máy chủ KDC, để ta giả mạo máy chủ ứng dụng để nghĩ ta KDC thực Vì yêu cầu phản hồi KDC thông điệp UDP đơn giản, kẻ công dễ dàng gửi thơng điệp giả mạo có chủ đích từ địa IP thực KDC Do đó, cơng thực theo quy trình sau: - Những kẻ công tạo mật để sử dụng cho tài khoản mà chúng mong muốn truy cập vào - Những kẻ cơng sau thiết lập chương trình để lắng nghe yêu cầu mạng, để xem client yêu cầu TGT cho người sử dụng A Khi nhận TGT, chương trình gửi TGT-responses trả lại cho yêu cầu mã hóa với password chọn 20 - Sau đó, kẻ cơng truy nhập vào server, tạo username A pass chọn Vào thời điểm đó, chương trình gửi tới máy chủ TGT mã hóa với mật mà kẻ cơng chọn thay mật thực - Nếu máy chủ nhận responses giả trước, giải mã thành công TGT từ mật phù hợp Để ngăn chặn cơng này, máy chủ phải lấy khóa dịch vụ máy chủ từ keytab, sau u cầu khóa dịch vụ từ KDC dùng TGT tồn đại diện cho người sử dụng Chỉ máy chủ KDC biết khóa dịch vụ máy chủ, kẻ cơng từ bên ngồi khơng thể tạo thông điệp giả mạo tài khoản bị từ chối truy cập Để ngăn chặn công này, máy chủ phải truy xuất khóa dịch vụ máy chủ từ keytab nó, sau yêu cầu khóa dịch vụ từ KDC TGT mà vừa lấy thay mặt cho người dùng Vì máy chủ KDC biết khóa dịch vụ máy chủ, kẻ cơng bên ngồi khơng thể tạo thơng báo giả mạo tài khoản bị từ chối truy cập 1.5 Kết luận Kerberos giao thức mật mã dùng để xác thực mạng máy tính hoạt động đường truyền khơng an tồn Giao thức Kerberos có khả chống lại việc nghe hay gửi lại gói tin cũ đảm bảo tính tồn vẹn liệu Mục tiêu thiết kế giao thức nhằm vào mơ hình máy chủ-máy khách (client-server) đảm bảo nhận thực cho hai chiều 1.6 Demo 21 Máy client chưa join vào domain 22 Chưa có gói tin kerberos 23 Máy client join vào domain 24 25 DANH MỤC TÀI LIỆU THAM KHẢO 26 1.[Online] Available: https://support.microsoft.com/enhk/help/327825/problems-with-kerberos-authentication-when-a-userbelongs-to-manygrou Đ h B K T HCM, "Giao thức xác thực kerberos" J Sprenger, "Kerberos and Access Token Limitations" https://quantrimang.com/giao-thuc-bao-mat-kerberos-phat-sinh-lo-hong-nghiem-trong12945 https://ictvietnam.vn/an-toan-hon-voi-giao-thuc-xac-thuc-kerberos-14904.htm? fbclid=IwAR2Xlto0uH7hgmlQORIcFWO4KqyZKiIZ4ZQ_kAlu8XYfVzCISITpNp3mVU#:~:text=Kerberos %20%C4%91%C6%B0%E1%BB%A3c%20H%E1%BB%8Dc%20vi%E1%BB%87n%20k %E1%BB%B9,th%E1%BA%A7n%20tho%E1%BA%A1i%20c%E1%BB%A7a%20Hy %20L%E1%BA%A1p Kerberos: The Definitive Guide (Jason Garman/O'Reilly) http://www.amazon.co.uk/Kerberos-DefinitiveGuideJasonGarman/dp/0596004036/ref=sr_1_1/202-91732581666237? ie=UTF8&s=books&qid=1182273864&sr=8-1 Microsoft: http://www.microsoft.com/technet/prodtechnol/windows2000serv/howto/kerbstep.mspx https://www.slideshare.net/quangvu42/khi-qut-kerberos 27 ... công Kerberos 18 1.4.1 Kerberos Attack 19 1.4.2 Other Attack 20 1.4.3 Vấn đề giao thức bảo mật 20 1.5 Kết luận 24 1.6 Demo 24 DANH MỤC TÀI LIỆU THAM KHẢO 28 1.1 Giới thiệu giao thức xác thực kerberos. .. https://support.microsoft.com/enhk/help/327825/problems-with -kerberos- authentication-when-a-userbelongs-to-manygrou Đ h B K T HCM, "Giao thức xác thực kerberos" J Sprenger, "Kerberos and Access Token Limitations" https://quantrimang.com /giao- thuc-bao-mat -kerberos- phat-sinh-lo-hong-nghiem-trong12945... giao thức xác thực kerberos 1.1.1 Tổng quan Kerberos giao thức mật mã dùng để xác thực mạng máy tính hoạt động đường truyền khơng an tồn Giao thức Kerberos có khả chống lại việc nghe hay gửi