Tìm hiểu và nghiên cứu giao thức Kerberos, xây dựng mô phỏng quá trình xác thực kerberos khi người dùng thuộc về nhiều nhóm ,liên quan đến Kerberos,chứng thực điện tử,chứng thư số ,pki,các giao thức xác thực như PAP ,CHAP, khóa công khai,khóa bí mậtphân loại giao thức xác thực
Trang 1BAN CƠ YẾU CHÍNH PHỦ
Trang 2MỤC LỤC
MỤC LỤC i
DANH MỤC TỪ VIẾT TẮT iii
DANH MỤC BẢNG BIỂU HÌNH VẼ iv
MỞ ĐẦU vi
CHƯƠNG 1 TỔNG QUAN VỀ CÁC GIAO THỨC XÁC THỰC 1
1.1 Tổng quan về xác thực 1
1.1.1 Định nghĩa 1
1.1.2 Phân loại xác thực 2
1.2 Các phương pháp xác thực 2
1.2.1 Xác thực dựa trên những gì ta biết 3
1.2.2 Xác thực dựa trên những gì ta có 4
1.2.3 Xác thực dựa vào những gì là chính bạn 5
1.3 Các giao thức xác thực 6
1.3.1 Giao thức xác thực đơn giản 6
1.3.2 Giao thức xác thực challenge-response 7
1.3.3 Giao thức xác thực dùng khóa đối xứng 8
1.3.4 Giao thức xác thực khóa công khai 11
1.3.5 Giao thức xác thực kerberos 13
CHƯƠNG 2 GIAO THỨC XÁC THỰC KERBEROS 16
2.1 Tổng quan về giao thức xác thực kerberos 16
2.1.1 Tổng quan 16
2.1.2 Lịch sử phát triển 16
2.2 Một số khái niệm 17
2.2.1 KDC – Key Distribution Center 17
2.2.2 SS, AS, TGS 18
2.2.3 Ticket và Session key 18
2.2.4 Ticket cache 19
2.3 Nguyên lý hoạt động 20
2.3.1 Mô hình tiêu biểu 20
Trang 32.3.3 Nguyên lý hoạt động 21
2.3.4 Phân tích ưu nhược điểm 24
CHƯƠNG 3 XÂY DỰNG MÔ PHỎNG QUÁ TRÌNH XÁC THỰC KERBEROS KHI NGƯỜI DÙNG THUỘC NHIỀU NHÓM 26
3.1 Xác thực người dùng thuộc nhiều nhóm 26
3.1.1 Sự cố về Kerberos Access Token 26
3.1.2 Các dấu hiệu sự cố kích thước Access token 27
3.1.3 Kịch bản Kerberos Token Bloat 28
3.2 Giải pháp khắc phục vấn đề 33
3.2.1 Đặt kích thước tối đa cho bộ đệm token Kerberos 34
3.2.2 Khuyến cáo của Microsoft về tính toán kích thước Token 35
3.3 Triển khai giao thức xác thực kerberos 36
3.3.1 Triển khai Active directory domain service trên Windows Server 2012 36 3.3.2 Join domain trên máy Client với Server 41
3.3.3 Kiểm tra kết nối giao thức 43
3.4 Triển khai xác thực kerberos khi người dùng thuộc nhiều nhóm 45
KẾT LUẬN 48
DANH MỤC TÀI LIỆU THAM KHẢO 49
Trang 4DANH MỤC TỪ VIẾT TẮT
KDC Key Distribution Center
LDAP Lightweight Directory Access Protocol
AS Authentication Server
TGS Ticket Granting Server
SID Security Identifier
LSA Local Security Authority
SAM Security Accounts Manager
GPO Group Policy Object
Trang 5DANH MỤC BẢNG BIỂU HÌNH VẼ
Hình 3 1 Khắc phục lỗi kerberos 1 33
Hình 3 2 Khắc phục lỗi Kerberos 2 34
Hình 3 3 Check token size report 35
Hình 3 4 Triển khai giao thức kerberos 1 36
Hình 3 5 Triển khai giao thức kerberos 2 36
Hình 3 6 Triển khai giao thức kerberos 3 37
Hình 3 7 Triển khai giao thức kerberos 4 37
Hình 3 8 Triển khai giao thức kerberos 5 38
Hình 3 9 Triển khai giao thức kerberos 6 38
Hình 3 10 Triển khai giao thức kerberos 7 39
Hình 3 11 Triển khai giao thức kerberos 8 39
Hình 3 12 Triển khai giao thức kerberos 9 40
Hình 3 13 Triển khai giao thức kerberos 10 40
Hình 3 14 Triển khai giao thức kerberos 11 41
Hình 3 15 Triển khai giao thức kerberos 12 41
Hình 3 16 Triển khai giao thức kerberos 13 41
Hình 3 17 Triển khai giao thức kerberos 14 42
Hình 3 18 Triển khai giao thức kerberos 15 42
Hình 3 19 Triển khai giao thức kerberos 16 42
Hình 3 20 Triển khai giao thức kerberos 17 43
Hình 3 21 Triển khai giao thức kerberos 18 43
Hình 3 22 Tạo người dùng trên server 44
Hình 3 23 Đăng nhập từ máy client 44
Hình 3 24 Bắt gói tin Kerberos 44
Hình 3 25 Lấy user token 1 45
Hình 3 26 Lấy user token 2 45
Hình 3 27 Kiểm tra đăng nhập với tài khoản 1 46
Hình 3 28 Kiểm tra đăng nhập với tài khoản 2 46
Hình 3 29 Tạo MaxTokenSize 47
Hình 3 30 Cài giá trị cho MaxTokenSize 47
Trang 6Hình 3 31 Đăng nhập thành công sau khi sửa lỗi 47
Do việc áp dụng hệ thống máy tính ngày càng nhiều, thì mọi công việcđều được xử lý trên mạng và thông qua chúng Qua đó các thông tin quan trọngcũng được lưu trữ ngày một nhiều Đây là một trong những thứ đắt giá mà cáchacker luôn nhắm tới Cũng chính vì lý do đó mà dấy lên sự lo ngại đến an toàncủa máy chủ cho người quản trị hay các nhân viên an toàn khác Để ngăn chặnđiều này thì người quản trị cần có những biện pháp hay áp dụng các chính sáchthích hợp để đảm bảo hệ thống máy chủ của mình luôn trong tình trạng an toàn
và thông tin sẽ không bị đánh cắp
Trang 7Vì những lý do trên, nhóm đã chọn đề tài “Tìm hiểu và nghiên cứu giaothức Kerberos, xây dựng mô phỏng quá trình xác thực kerberos khi người dùngthuộc về nhiều nhóm”.
CHƯƠNG 1 TỔNG QUAN VỀ CÁC GIAO THỨC XÁC THỰC
1.1 Tổng quan về xác thực
1.1.1 Định nghĩa
Xác thực theo nghĩa thông thường:
Xác thực là một chứng thực một cái gì đó (hoặc một người nào đó) đángtin cậy, có nghĩa là những lời khai báo do người đó đưa ra hoặc về vật đó là sựthật Xác thực một đối tượng còn có nghĩa là công nhận nguồn gốc của đốitượng, trong khi xác thực một người thường bao gồm việc thẩm tra nhận dạng
họ Việc xác thực thường phụ thuộc vào một hoặc nhiều nhân tố xác thực(Authentication factors) để chứng minh cụ thể
Xác thực điện tử
Xác thực trong an ninh máy tính là một quy trình nhằm cố gắng xác minhnhận dạng số (digital iđentity) của phần truyền gửi thông tin (sender) trong giaothông liên lạc chẳng hạn như một yêu câu đăng nhập Phần gửi cần xác thực cóthể là một người dùng một máy tính, bản thân một máy tính hoặc một chươngtrình máy tính (computer program) Ngược lại sự tin cậy mù quáng hoàn toànkhông thiết lập sự đòi hỏi nhận dạng Song chỉ thiết lập quyền hoặc địa vị hẹphòi của người dùng hoặc của chương trinh ứng dụng mà thôi
Trang 8Trong một mạng lưới tín nhiệm, việc “xác thực” là một cách để đảm bảorằng người dùng chính là người mà họ nói họ là, và người dùng hiện đang thihành những chức năng trong một hệ thống, trên thực tế chính là người đã được
ủy quyền để làm những việc đó
Mục đích chính của việc xác thực là chứng minh danh định là hợp lệ vàphù hợp với người dùng Và quyết định có cho phép người dùng truy cập vào tàinguyên của hệ thống hay không
Trang 91.1.2 Phân loại xác thực
Xác thực dữ liệu:
Xác thực dữ liệu là một kiểu xác thực đảm bảo một thực thể được chứngthực là nguồn gốc thực sự tạo ra dữ liệu này ở một thời điểm nào đó, đảm bảotính toàn vẹn dữ liệu
- Xác thực dựa vào thực thể: biết cái gì ? (Something Known)
- Xác thực dựa vào thực thể: sở hữu cái gì ?(Something Possessed)
- Xác thực dựa vào thực thể: thừa hưởng cái gì?(Something Inherent)
1.2 Các phương pháp xác thực
Khi một đối tượng được ủy quyền, nguồn xác thực sẽ kiểm tra và xácnhận tính xác thực của đối tượng đó Có nhiều phương pháp cũng như côngnghệ khác nhau để tiến hành xác thực các đối tượng trong hệ thống Tuy nhiên,việc lựa chọn phương pháp và công nghệ xác thực nào còn phụ thuộc vào thờigian, giá thành, quy mô, thậm chí cả môi trường sử dụng của hệ thống xác thực
và đánh giá rủi ro Dưới đây là ba phương pháp xác thực phổ biến có thể lựachọn triển khai
Xác thực dựa trên những gì ta biết
Xác thực dựa vào những gì ta có
Xác thực dựa trên tính năng vật lý không đổi
Trang 101.2.1 Xác thực dựa trên những gì ta biết
Phương pháp xác thực cơ bản nhất là sử dụng Username và Password.Đây là giải pháp truyền thống hay được sử dụng nhất, là giải pháp sử dụng tàikhoản của hệ thống Mỗi tài khoản bao gồm tên truy nhập (username) và mậtkhâu (password) Tên truy nhập dùng đề phân biệt các người dùng khác nhau(thường là duy nhất trong hệ thống), còn mật khâu đề xác thực lại người sử dụngtên đó đúng là người sử đụng thật không Mật khẩu thường cho người sở hữu têntruy nhập tương ứng đặt và được giữ bí mật chỉ có người đó biết Khi ngườidùng muốn đăng nhập và sử dụng tài nguyên hệ thống thì phải đăng nhập bằngcách nhập tên và mật khẩu của mình Trước hết, hệ thống sẽ đối chiếu tên truynhập cầu người dùng đưa vào cơ sở dữ liệu tên người dùng, nếu tồn tại tênngười dùng thì hệ thống tiếp tục đối chiếu mật khẩu được đưa vào tương ứng vớitên truy nhập trong cơ sở dữ liệu Qua hai lần đối chiếu nếu thỏa mãn thì ngườiđăng nhập là người dùng hợp lệ của hệ thống
Thiết kế và sử dụng đơn giản, tốn ít tài nguyên Hệ thống chỉ gồm một cơ
sở dữ liệu người dùng với 2 thông tin chủ yếu là tên truy nhập và mật khẩu.Tương ứng với mỗi tên truy nhập là quyên sử dụng của người đó trong hệ thống
Do đó các thông tin này không chiếm nhiều tài nguyên Người dùng để hiểu và
để sử dụng.Và chi phí để thực hiện giải pháp này là rẻ so với các giải pháp khác
Nhưng giải pháp này có nhược điểm lớn nhất là không có được sự bảomật cao Vì người đùng thường có tên đăng nhập nhiêu người dùng có Mặtkhác, người dùng thường chọn mật khẩu để nhớ hoặc không cân thận khi gõ mậtkhẩu, do vậy để bị tấn công Kẻ tần công có nhiều phương pháp để đạt được mậtkhẩu như thâm nhập vào hệ thông đọc file mật khẩu, dự đoán mật khẩu, vét cạncác từ trong từ điển để tìm mật khẩu, hoặc có thể lừa người dùng đề lộ mật khẩu
Trang 11Một số biện pháp để tăng tính bảo mật cho giải pháp này:
- Đặt mật khẩu phức tạp: mật khẩu phải chưa tối thiểu 6 ký tự không trùngvới tên đăng nhập, chứa các loại ký tự là chữ cái, chữ số, ký tự đặc biệt Nếunhư vậy thì kẻ muốn tần công cũng sẽ rất khó đoán được mật khẩu
- Thay đổi mật khẩu: quy định sau một thời gian nhất định mật khẩu sẽkhông còn tác dụng đối với hệ thống và người dùng phải đặt lại mật khẩu khác.Mật khẩu sẽ được thay đổi nên khả năng kiểm soát tình trạng an toàn của mậtkhẩu cao hơn
- Mã hóa thông tin: Trong môi trường làm việc là mạng, những nhà thiết kếthường dùng biện pháp mã hóa thông tin đăng nhập từ một máy khách nào đótrước khi chúng được gửi vào máy chủ hệ thống
1.2.2 Xác thực dựa trên những gì ta có
Một vài hệ thống xác thực yêu cầu người dùng sử dụng một đối tượng vật
lý như thẻ khóa (key-card) hoặc thẻ bài (token) Đối tượng có thể liên kết đếnđịnh danh số hoặc chia sẻ thiết bị Dạng xác thực này được gọi là xác thực dựatrên những gì đã có
Ví dụ điển hình của hệ thống này là việc sử dụng các thể khóa để truy cậpvào các tòa nhà Trong nhiều hệ thống khóa, bất cứ ai sở hữu thẻ đều có thể truycập vào bất cứ đâu mà thẻ cho phép Giữa thẻ và người dùng không có mối ràngbuộc cụ thể nào Khi đó đòi hỏi người dùng phải sử dụng thêm một đối tượngvật lý xác thực khác nhằm hai mục đích Thứ nhất để giới hạn số người có thểxác thực Thứ hai là khiến người dùng phải có trách nghiệm giám sát độ an toàncủa thẻ Trong trường hợp mất thẻ hoặc thất lạc phải lập tức thông báo để vôhiệu hóa thẻ
Một trong những ưu điểm của kiểu xác thực này là người dùng không cầnphải nhớ mật khẩu.Khi cần xác thực, họ chỉ cần sử dụng các thiết bị vật ly đượccấp quyền Các thiết bị này được dùng để xác thực dựa trên ba phương diệnchính:
Trang 12 Giá trị mầm ngẫu nhiên
Ở phía máy khách, người dùng sử dụng một thiết bị đầu cuối có hỗ trợbiểu mẫu dùng cho việc đăng nhập vào hệ thống hoặc trong môi trường Internetthì sử dụng trình đuyệt để mở trang đăng nhập
Người dùng sẽ phải điển vào biểu mẫu mật khẩu hay một thông tin nhậndạng tương tự và cung cấp mẫu sinh trắc học như dấu vân tay, hình dạng lòngbàn tay, mắt, giọng nói, chữ ký Thông qua các thiết bị nhận dạng được tíchhợp trong đó Sau đó, các thông tin này sẽ được chuyển vẻ trung tâm xác thựccủa hệ thống để kiểm tra Trung tâm sẽ phân tích mẫu thu được và đối chiếuxem mẫu tương ứng với mật khẩu được lưu trong cơ sở dữ liệu có trùng haykhông, nếu trùng thì người dùng đăng nhập là hợp lệ Và hệ thống sẽ đưa cácquyền hạn, tài nguyên phù hợp chỉ người sử dụng
Kẻ tấn công khó tấn công vào hệ thống khi sử dụng phương pháp này,do:người dùng hầu như không đổi được các bộ phận như vân tay, mặt,… để dùngtrong xác thực; người dùng không thể đưa những đặc điểm này cho người khác
sử dụng như thẻ hay mật khấu và cuối cùng là không thể bị mất cắp
Trang 131.3 Các giao thức xác thực
1.3.1 Giao thức xác thực đơn giản
Giao thức xác thực mật khẩu PAP (Passwork Authentication Protocol) làmột giao thức bắt tay hai chiều; đó là, máy tính chủ tạo kết nối gửi nhận dạngngười dùng và mật khẩu kép (passwork pair) đến hệ thống đích mà nó cố gắngthiết lập một kết nối và sau đó hệ thống đích xác thực rằng máy tính đó được xácthực đúng và được chấp nhận cho việc truyền thông Xác thực PAP có thể đượcdùng khi bắt đầu của kết nối PPP, cũng như trong suốt một phiên làm việc củaPPP để xác thực kết nối
Khi một kết nối PPP được thiết lập, xác thực PAP có thể được diễn ratrong kết nối đó Điểm ngang hàng gửi một nhận dạng người dùng và mật khẩuđến bộ xác thực cho đến khi bộ xác thực chấp nhận kết nối hay kết nối bị hủy
bỏ PAP không bảo mật vì thông tin xác thực được truyền đi rõ rang và không cókhả năng bảo mật bởi chống lại tấn công trở lại hay lặp lại quá nhiều bởi nhữngngười tấn công nhằm cố gắng dò ra mật khẩu đúng hay một cặp nhận dạngngười dùng
Ví dụ: Giả sử là Alice muốn chứng minh với Bob là “Tôi chính là Alice”
Alice cũng cần biết người còn lại có đúng là Bob không
Malice là người xấu có ý muốn phá giao thức xác thực
Trang 14Hình 1 1 Giao thức xác thực đơn giản 1
Password để ở dạng văn bản rõ, Malice có thể quan sát được
Hình 1 2 Giao thức xác thực đơn giản 2 1.3.2 Giao thức xác thực challenge-response
Giao thức xác thực “challenge-response” cũng là mô hình xác thực dựa
trên tên người dùng/ mật khẩu Khi người dùng cố gắng đăng nhập, server đảmnhiệm vai trò thực sẽ gửi một thông điệp thử thách (Challenge message) trở lạimáy tính người dùng Lúc này máy tính người dùng sẽ phản hồi lại tên ngườidùng và mật khẩu được mã hóa Server xác thực sẽ so sánh phiên bản xác thựcngười dùng được lưu giữ với phiên bản mã hóa vừa nhận Nếu trùng khớp,
Trang 15người dùng sẽ được xác thực Bản thân mật khẩu không bao giờ được gửi quamạng
Giao thức xác thực “challenge-response” thường được sử dụng khi người
dùng đăng nhập vào các “remote servers” của công ty chằng hạn như RASserver Dữ liệu chứa mật khẩu được mã hóa gọi là mật khẩu băm (hashpassword)
Ví dụ:
N: số nonce (number used once)
Hình 1 3 Giao thức xác thực challenge-response
Tuy nhiên Bob phải biết trước Password của Alice
1.3.3 Giao thức xác thực dùng khóa đối xứng
Trọng mật mã học, là một lớp các thuật toán mật mã hóa trong đócác khóa dùng cho việc mật mã hóa và giải mã có quan hệ rõ ràng với nhau (cóthể dễ dàng tìm được một khóa nếu biết khóa kia) Mã khóa loại này không côngkhai
Khóa dùng để mã hóa có liên hệ một cách rõ ràng với khóa dùng để giải
mã có nghĩa chúng có thể hoàn toàn giống nhau, hoặc chỉ khác nhau nhờ mộtbiến đổi đơn giản giữa hai khóa Trên thực tế, các khóa này đại diện cho một bímật được phân hưởng bởi hai bên hoặc nhiều hơn và được sử dụng để giữ gìn sự
bí mật trong kênh truyền thông tin
Trang 16Nhiều thuật ngữ khác dành cho việc mã hóa dùng chìa khóa đối xứng baogồm các phương pháp mã hóa đơn khóa (single-key), phương pháp mã hóa mộtkhóa (one-key) và phương pháp mã hóa khóa cá nhân (private-key)
Cách sử dụng thuật ngữ sau cùng đôi khi gây xung đột với thuật ngữ khóa cánhân (private-key) dùng trong mật mã hóa khóa công khai (public keycryptography)
- K AB: Khoá chung giữa Alice và Bob
Hình 1 4 Giao thức xác thực dùng khóa đối xứng Khuyết điểm:
Chỉ có Bob xác thực được Alice
Alice không biết có đúng là Bob không
Giao thức xác thực lẫn nhau (mutual) dùng khóa đối xứng
Trang 17Hình 1 5 Giao thức xác thực lẫn nhau dùng khóa đối xứng
Thông điệp ở bước 3 lặp lại từ bước 2: không thể xác thực người gửi
Giao thức xác thực lẫn nhau cải tiến:
Hình 1 6 Giao thức xác thực lẫn nhau cải tiến
Những hạn chế
Hạn chế của các thuật toán khóa đối xứng bắt nguồn từ yêu cầu về sựphân hưởng chìa khóa bí mật, mỗi bên phải có một bản sao của chìa Do khảnăng các chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng thường phảiđược bảo an trong khi phân phối và trong khi dùng Hậu quả của yêu cầu vềviệc lựa chọn, phân phối và lưu trữ các chìa khóa một cách không có lỗi, không
bị mất mát là một việc làm khó khăn, khó có thể đạt được một cách đáng tin cậy
Trang 18Hiện nay người ta phổ biến dùng các thuật toán bất đối xứng có tốc độchậm hơn để phân phối chìa khóa đối xứng khi một phiên giao dịch bắt đầu, sau
đó các thuật toán khóa đối xứng tiếp quản phần còn lại (xem Bảo an tầng giaovận (Transport Layer Security)) Vấn đề về bảo quản sự phân phối chìa khóamột cách đáng tin cậy cũng tồn tại ở tầng đối xứng, song ở một điểm nào đấy,người ta có thể kiểm soát chúng dễ dàng hơn Tuy thế, các khóa đối xứng hầunhư đều được sinh tạo tại chỗ
Các thuật toán khóa đối xứng không thể dùng cho mục đích xácthực (authentication) hay mục đích chống thoái thác (non-repudiation) được
1.3.4 Giao thức xác thực khóa công khai
Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sửdụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bímật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan
hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật).Thuật ngữ mật mã hóa khóa bất đối xứng thường được dùng đồng nghĩa với mật
mã hóa khóa công khai mặc dù hai khái niệm không hoàn toàn tương đương Cónhững thuật toán mật mã khóa bất đối xứng không có tính chất khóa công khai
và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cầnphải giữ bí mật
Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mậttrong khi khóa công khai được phổ biến công khai Trong 2 khóa, một dùng để
mã hóa và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống làkhông thể tìm ra khóa bí mật nếu chỉ biết khóa công khai
Hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích:
Trang 19 Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được.
Tạo chữ ký số: cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật nào đó hay không
Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa 2 bên
Ứng dụng rõ ràng nhất của mật mã hóa khóa công khai là bảo mật: một văn bảnđược mã hóa bằng khóa công khai của một người sử dụng thì chỉ có thể giải
mã với khóa bí mật của người đó
Các thuật toán tạo chữ ký số khóa công khai có thể dùng để nhận thực Mộtngười sử dụng có thể mã hóa văn bản với khóa bí mật của mình Nếu một ngườikhác có thể giải mã với khóa công khai của người gửi thì có thể tin rằng văn bảnthực sự xuất phát từ người gắn với khóa công khai đó
Các đặc điểm trên còn có ích cho nhiều ứng dụng khác như: tiền điện tử, thỏathuận khóa
Ta có:
- C : ciphertext
- M: plaintext
- K A: cặp khóa bí mật và công khai của Alice
- C ={M}KA : mã hóa bằng khóa công khai của Alice
- M =[C] KA : giải mã bằng khóa bí mật của Alice
- S =[M] KA : ký lên M bằng khóa bí mật của Alice
- [ {M}KA]KA = M
- {[M ] KA}KA = M
Dùng mã hóa công khai:
Trang 20Hình 1 7 Giao thức xác thực dùng khóa công khai
Dùng chữ ký số:
Hình 1 8 Xác thực sử dụng chữ ký số
Trang 211.3.5 Giao thức xác thực kerberos
Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máytính theo mô hinh hình mô hình client-server hoạt động trên những đường truyềnkhông an toàn Giao thức Kerberos có khả năng chống lại việc nghe lén hay gửilạ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 và đảm bảo tính toàn vẹn và tính bảo mật cho thôngtin truyền đi cả hai chiều
Kerberos được sử dụng nhiều trong thực tế
- OpenSSH (với Kerberos v5 hoặc cao hơn)
- NFS (kể từ NFSv3)
- PAM (với modular pam_krb5)
- SOCKS (kể từ SOCKS5)
- Apache (với modular mod_auth_kerb)
- Dovecot IMAP4 và POP3
- Dùng mã hóa đối xứng Được thiết kế để dùng trong những hệ thống nhỏ như
là mạng nội bộ Dựa vào thành phần thứ 3 tin cậy là Trung tâm phân phối khóa(Key Distribution Center - KDC)
- Với N người dùng
- Giao thức dùng khóa công khai: 2N khóa
- Giao thức dùng khóa đối xứng: N2 khóa
- Giao thức Kerberos: N khóa
Trang 22Hình 1 9 Mô hình xác thực kerberos
Mục tiêu và các yêu cầu đặt ra cho một hệ thống Kerberos:
Mục tiêu mật khẩu của người dùng không bị thất lạc trên mạng
Đảm bảo mật khẩu của khách hàng không lưu trữ trực tiếp trên máy ngườidùng mà dược loại bỏ ngay sau khi sử dụng Mật khẩu của người dùng khôngbao giờ nên được cất giữ trong một hình thức không được mật mã ngay cả trong
cơ sở dữ liệu máy chủ dịch vụ
Người sử dụng có yêu cầu nhập mật khẩu duy nhất một lần mỗi phiên làmviệc Vì vậy người sử dụng có thể truy cập tất cả các dịch vụ mà họ được ủyuyền cho mà không cần phải nhập lại mật khẩu trong phiên này Đặc tính nàyđược gọi là Single Sign-On Quản lý thông tin xác thực là tập trung và cư trú trênmá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ùngcủa họ, điều này làm cho hệ thống có được các hệ quả:
Người Quản trị quản lý tập trung tài khoản người dùng trên các máy chủ
Trang 23 Khi người dùng thay đổi mật khẩu của mình, nó được thay đổi cho tất cảcác dịch vụ cùng một lúc
Không có sự xác thực thừa nhằm bảo vệ được mật khẩu
Không chỉ những người sử dụng phải chứng minh rằng họ là những người
họ nó mà các máy chủ ứng dụng phải xác thực lại của khách hàng của họ cóđúng không Đặc tính này được gọi là xác thực chéo
Sau khi hoàn thành xác nhận và uỷ quyền, Client và Server phải có khảnăng thiết lập một kết nối đã mã hóa, nếu được yêu cầu Đối với mục đích này,Kerberos cung cấp hỗ trợ cho các thế hệ và trao đổi của một khoá mật mã sẽđược sử dụng để mã hóa dữ liệu
Yêu cầu: Để Kerberos đạt được mục tiêu đã đặt ra, phải đảm bảo các yêu cầu
sau:
Bảo mật( security)
Tin cậy( reliability)
Minh bạch ( transparency)
Uyển chuyển ( scalability)
CHƯƠNG 2 GIAO THỨC XÁC THỰC KERBEROS 2.1 Tổng quan về giao thức xác thực kerberos
2.1.1 Tổng quan
Trang 24Kerberos là một giao thức chứng thực mạng, nó cho phép các cá nhângiao 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ùngnày với người dùng k hác theo một cơ chế bảo mật và an toàn Kerberos ngănchặn việc nghe trộm thông tin cũng như relay attacks, và đảm bảo tính toàn vẹncủ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à đòihỏi một thành phần thứ ba tin cậy (trusted third party) tham gia vào quá trìnhchứng thực
2.1.2 Lịch sử phát triển
Kerberos được phát triển bởi Học viện kỹ thuật Massachusetts (MIT)nhằm bảo vệ những dịch vụ được cung cấp bởi dự án Athena Kerberos trải quanhiều phiên bản, trong đó, các phiên bản từ 1 – 3 chỉ được sử dụng nội bộ bêntrong MIT
Giao thức được đặt tên dựa theo một nhân vật trong thần thoại Hy LạpKerberos (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ênbả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ínhcủ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ệntrong 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ươngpháp chứng thực mặc định Hệ điều hành Mac OS cũng sử dụng Kerberos trongcác phiên bản Clients và Server của mình
2.2 Một số khái niệm
2.2.1. KDC – Key Distribution Center
Trang 25Key Distribution Center – trung tâm phân phối khóa của Kerberos (KDC), làmột phần của hệ thống Kerberos Trên lý thuyết KDC bao gồm ba thành phần:
- Database của tất cả các principal và các khoá đã mã hoá của nó để gianhập
- Authentication Server
- Ticket Granting Server
Người ta thường gom chúng lại trong một chương trình duy nhất và chạycùng nhau trong một process duy nhất
Trong một realm của Kerberos phải có ít nhất một KDC Khi nhu cầu đòi hỏichạy KDC trên một máy bình thường, người ta khuyên rằng nên dung một KDCriêng biệt Vì nếu hệ thống mạng có nhiều KDC kết nối nhau thì tất cả các dữliệu quan trọng bao gồm các key của các principal trong realm của bạn đều cótrên mỗi KDC trong mạng Điều đó có nghĩa là có nhiều nguy cơ bị tấn ông hơn.Ngoài ra, để cho người dung xác thực thành công đến Kerberos kishc hoạt dịch
vụ ít nhất một KDC phải được hoạt động mọi lúc
Mỗi KDC chứa một database của tất cả các principal có trong realm này,cũng như các bí mật liên quan của nó Phần mềm KDC chứa hầu hết các thôngtin bổ sung của các principal trong database này, chẳng hạn như thời gian sốngcủa mật khẩu, mật khẩu thay đổi lần cuối cùng là gì và nhiều thứ khác nữa.Window 2000 và 2003 giữ cơ sở dữ liệu này trong Active Directory (chứa trongLDAP)
Trong một realm có thể chứa nhiều Kerberos KDC, database trên mỗi KDCphải được đồng bộ hoá để đảm bảo thống nhất xác thực Nếu một máy chủ có dữliệu để lâu dài thì sẽ rất dễ thất bại khi tìm cách hợp pháp để xác thực với máychủ đó, vì nó không update bản sao của các cơ sở dữ liệu của Kerberos Không
có phương pháp tiêu chuẩn đồng bộ hoá được xác định bằng giao thức Kerberos,
do đó các nhà cung cấp đã tạo ra các giao thức bản sao riêng của họ
2.2.2 SS, AS, TGS
SS - Service Server:
Trang 26 Máy chủ dịch vụ - Mail Server, File Server, Application Server
Bất kì một Server cung cấp dịch vụ nào đều có thể là Service Server
AS - Authentication Server: Máy chủ xác thực
Khi một user muốn tham gia vào 1 realm của Kerberos thì thay vìuser phải xác thực với KDC thì phải xác thực với AS
Khi nhận yêu cầu tham gia hệ thông Kerberos của một client, ASkiểm tra nhân dạng của người yêu cầu có nằm trong cơ sở dữ liệucủa mình hay không Nếu có thì AS gửi 2 gói tin sau tới ngườidung
Gói tin A: “Khoá phiên TGS/máy khách” được mật mã hoá vớikhoá bí mật của người dung
Gói tin B: ” Vé chấp thuận” (bao gồm chỉ danh người dùng (ID),địa chỉ mạng của người sử dụng, thời hạn của vé và “Khoá phiênTGS/máy khác”) được mật mã hoá với khoá bí mật của TGS
TGS - Máy chủ cấp phát vé:
TGS là bộ phận nhận vé chấp thuật TGT (Ticket Granting Ticket) từuser TGS có nhiệm vụ kiểm tra các vé TGT có giá trị không bằngcách kiểm tra xem nó có được mã hoá bởi key với key của TGTserver Kerberos không Nếu đúng thì gửi cho user vé dịch vụ mà usermuốn sử dụng TGS xác nhận việc sử dụng vé cho một mục đích cụthể chẳng hạn như truy cập dịch vụ mạng
2.2.3 Ticket và Session key
Các trường chính mà mọi vé của Kerberos đều có là:
Trang 27 Yêu cầu tên của principal
Dịch vụ của principal có tên này là gì
Khi nào thì vé có hiệu lực, khi nào thì vé hết hiệu lực (Timestamp, Lifetime)
Danh sách IP mà vé có thẻ được dung từ đó
Chia sẻ khoá bí mật (session key) của user/ ứng dụng truyển thôngMột vé được tạo bởi KDC được mã hoá để đảm bảo rằng những người không
có khoá không mở được nó để chính sửa, như là tăng lifetime của nó lên hoặctên định danh của client principal
Bởi vì Kerberos chỉ xác thực một lần khi đăng nhập nên sau khi đăng nhậpthì bất kỳ ai ngồi trên máy đó có thể tham gia vào hệ thông Kerberos Vì vậy, vétrong Kerberos có lifetime ngắn, khoảng từ 10-24h Điều này thuận tiện cho việcđăng nhập một lần trong ngày làm việc của user, hạn chế việc tấn công lấy mất
Ví dụ:
$klist
Ticket cache: FILE:/tmp/krb5cc_502_auJKaJ
Default principal: jgarman@WEDGIE.ORG
Valid starting: Expires Service principal
09/10/02 01:48:12 09/10/02 11:48:12 Krbtgt/WEDGIE.ORG@WEDGIE.ORG
09/10/02 01:48:14 09/10/02 11:48:12 host/cfs.wedgie.org@WEDGIE.ORG
09/10/02 04:20:42 09/10/02 11:48:12 host/cfs.wedgie.org@WEDGIE.ORG
Trang 28Trong ví dụ này, bộ nhớ cache cho user principal củajgarman@WEDGIE.ORG được lưu trong tập tin /tmp/krb5cc_502_auJKaJ.Credential cache chỉ có thể được kết hợp với một user principal tại một thờigian, nếu ta muốn truy cập các dịch vụ với một principal củajgraman/admin@WEDGIE.ORG , ta đã có thể phá huỷ vé hiện tại của mình vàtái đăng nhập để Kerberos theo jgarman/admin@WEDGIE.ORG
2.3 Nguyên lý hoạt động
2.3.1 Mô hình tiêu biểu
Dưới đây là mô hình hệ thống Kerberos tiêu biểu mà chúng ta thường thấy hiệnnay, 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 2 1 Mô hình kerberos tiêu biểu