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 HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TOÀN THÔNG TIN... Nội dungTỔ
Trang 1Tì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
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TOÀN THÔNG TIN
Trang 2Nội dung
TỔNG QUAN VỀ GIAO THỨC XÁC THỰC
1
2
3
GIAO THỨC XÁC 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 NHIỀU NHÓM
Trang 3Tổng quan về giao thức xác thực
1 Tổng quan về giao thức xác thực
Khái niệm về xác thực
Xác thực là hành vi xác nhận sự thật một thuộc tính của một dữ kiện hoặc tổ chức
Mục đích
Chứng minh định danh là hợp lệ và phù hợp với người dùng
Quyết định có cho phép người dùng truy cập vào tài nguyên của hệ thống hay không
Phân loại
- Xác thực thực thể
- Xác thực dữ liệu
Trang 4Tổng quan về giao thức xác thực
Phương pháp xác thực
• Những gì bạn biết?
Ví dụ: Password, mã pin,
• Những gì bạn có ?
Ví dụ: Smart card, địa chỉ MAC, địa chỉ IP,
• Những gì là chính bạn ?
Ví dụ : giọng nói, dấu vân tay,
Các giao thức xác thực
• Giao thức xác thực đơn giản
• Giao thức xác thực challenge-response
• Giao thức xác thực dùng khóa đối xứng
• Giao thức xác thực dùng khóa công khai
• Giao thức xác thực KERBEROS
Trang 5Giao thức xác thực KERBEROs
2.Giao thức xác thực KERBEROs
Khái niệm
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
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.
Giao thức được xây dựng dựa trên mật mã khóa đối xứng và cần đến một bên thứ ba gọi là “Trung tâm phân phối khóa’’
Trang 62.Giao thức xác thực KERBEROs
Nguyên lí hoạt động
Trang 7Giao thức xác thực KERBEROs
Ưu điểm
• Mật khẩu luôn được mã hóa khi truyền đi
• Không yêu cầu lặp đi lặp lại thao tác nhập mật khẩu hạn chế nguy
cơ ă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
Nhược điểm
• Độ bảo mật của hệ thống phụ thuộc vào sự an toàn của hệ thống KDC
• Đòi hỏi các máy tính trong hệ thống phải đồng bộ về thời gian vì có
gắn timestamp
• 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
Trang 8Xây dựng mô phỏ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
Xác thực người dùng thuộc nhiều nhóm
Về bản chất, mấu chốt của vấn đề là kích thước bộ nhớ (kích thước mặc định của token) mà người gọi kết thúc phân bổ cho bộ đệm đầu ra có thể không đủ để giữ token kết quả khi số lượng SID đủ lớn và điều này có thể
khiến yêu cầu xác thực thất bại, dẫn đến lỗi đăng nhập.
Trang 9Xây dựng mô phỏng
Giải pháp khắc phục vấn đề
Tăng kích thước thông qua khóa đăng ký MaxTokenSize
• Khuyến cáo của Microsoft về tính toán kích thước mã thông
báo
Token Size = 1200 + 40d + 8s
trong đó: d là số lượng nhóm domain local
s là sô lượng nhóm security global + universal
1200 là giá trị ước tính của vé vượt ngưỡng
Trang 10Xây dựng mô phỏng
Giải pháp khắc phục vấn đề
• Đặt kích thước tối đa cho bộ đệm mã thông báo Kerberos
Trong Windows Server 2012 và Windows 8, Microsoft đã giới thiệu GPO mới để giúp dễ dàng đặt khóa đăng ký này trên nhiều máy tính Cài đặt mới này nằm trong System > Kerberos và được gọi là “Set maximum Kerberos SSPI context token buffer size”
Trang 11Xây dựng mô phỏng
Kịch bản Kerberos Token Bloat
Kịch bản 1:
Bây giờ, hãy giả sử rằng người dùng là thành viên của
•10 nhóm Universal
•15 nhóm local
•25 nhóm local domain
Trong trường hợp này, PAC trong vé phiên này có tất cả 50 nhóm bảo mật và kích thước token Kerberos kết quả sẽ vào khoảng 1200 + (40 * 25) + (8 * (15 + 10)) byte = 2400 byte
Vì 2400 byte thấp hơn giới hạn MaxTokenSize là 12000 byte, người dùng không gặp phải bất kỳ vấn đề nào với đăng nhập.
Trang 12Xây dựng mô phỏng
Kịch bản Kerberos Token Bloat
Kịch bản 2:
Chúng ta giả định rằng người dùng là thành viên của:
•10 nhóm Universal
•15 nhóm Local
•25 nhóm Local domain từ tên miền người
Bây giờ, chúng ta cũng giả sử rằng người dùng này cũng là thành viên của 300 nhóm domain local security trong miền máy chủ
Trong trường hợp này, PAC trong vé phiên này sẽ chứa tất cả 325 nhóm security và kích thước token Kerberos sẽ có khoảng 1200 + (40 * 300) + (8 * (15 + 10)) byte = 13500 byte
Vì 13500 byte vượt quá giới hạn MaxTokenSize 12000 byte, nên người dùng thực sự sẽ không thể đăng nhập
Trang 13Xây dựng mô phỏng
Các công cụ tính toán mã thông báo
Gồm có 3 công cụ phổ biến
• Tokensz - Một công cụ dòng lệnh miễn phí được cung cấp
bởi Microsoft
• CheckMaxTokenSize - Tập lệnh miễn phí được nhân viên
Microsoft ghép lại
• Get-TokenSizeReport - Một tập lệnh miễn phí có nguồn
gốc từ CheckMaxTokenSize bởi một nhà tư vấn độc lập
Trang 14Xây dựng mô phỏng
Triển khai giao thức xác thực KERBEROS
• Cài đặt Active directory domain service trên Windows Server 2012
• Join domain trên máy Client với Server
• Kiểm tra kết nối giao thức
Domain Controller dùng giao thức Kerberos để xác thực User
Ta sử dụng wireshark để bắt gói tin quá trình xác thực giữa client và server
Ta thấy protocol là KBR, đó là kerberos
Trang 15Xây dựng mô phỏng
Triển khai xác thực kerberos khi người dùng thuộc nhiều nhóm
Bước 1 Tạo user trên windows server 2012
Bước 2 Tạo nhiều groups trên windows server 2012
Bước 3 Thử đăng nhập vào từ máy client và xem kết quả: Bước 4: Khắc phục lỗi đăng nhập bị giới hạn access token
Trang 16Xây dựng mô phỏng
Triển khai xác thực kerberos khi người dùng thuộc nhiều nhóm
Trang 17Xây dựng mô phỏng
Triển khai xác thực kerberos khi người dùng thuộc nhiều nhóm
Trang 18LOGO