LOGO
HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA: AN TOÀN THÔNG TIN
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
Nội dung
1
TỔNG
TỔNGQUAN
QUANVỀ
VỀGIAO
GIAOTHỨC
THỨCXÁC
XÁCTHỰC
THỰC
2
GIAO THỨC XÁC THỰC KERBEROS
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
Tổ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
Tổ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
Giao 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’’
2.Giao
thức
Nguyên
lí hoạt
độngxác
thực KERBEROs
ƯuGiao
điểm
•
•
•
•
thức xác thực KERBEROs
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
Xâ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.
Xâ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
Xâ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”
Xâ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.
Xâ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
Xâ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
Xâ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
Xâ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
Xâ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
Xâ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
LOGO