Topic 3B
Windows 2003 Authentication
Mặc dù được cải tiến và nâng cấp nhiều thành phần, Windows 2003 vẫn bắt buộc người dùng phải
xác thực trước khi được phép truy cập tài nguyên trong mạng. Điểm khác biệt của Windows 2003
so với các bản trước đó, như là Windows NT, là các phương thức xác thực. Phiên bản này có thể
sử dụng bất kì một trong số các phương pháp xác thực thông dụng như Kerberos, NTLM, NTLM2,
LM, RADIUS, SSL, Smart Cards…
Windows 2003 sử dụng cơ chế SSPI (Security support provider interface - giao diện cung cấp và
hỗ trợ các chức năng bảo mật) để cho phép sử dụng các phương thức xác thực nói trên. SSPI chịu
trách nhiệm giao tiếp giữa ứng dụng người dùng, như là web browser, và các phương thức xác
thực, như là NTLM hay Kerberos. Điều này có nghĩa là nhà phát triển ứng dụng không cần thiết
phải tạo ứng dụng giao tiếp với từng cơ chế xác thực, mà chỉ cần tạo một ứng dụng nhất để giao
tiếp với SSPI.
Mặc dù SSPI đóng vai trò quan trọng trong quá trình xác thực người dùng, quản trị viên không tốn
nhiều thời gian để cấu hình nó, bởi vì không có nhiều tùy chọn cấu hình hay quản lí liên quan tới
SSPI. Nó chỉ đơn giản đứng trung gian và chuyển tiếp các yêu cầu xác thực tới các dịch vụ cung
cấp xác thực tương ứng trên hệ thống.
Thành phần xác thực liên quan nhiều nhất tới quản trị viên là kiến trúc bảo mật (security
architecture) của Windows 2003. Kiến trúc này bao gồm hệ điều hành (OS) và Active Directory
(AD). Ví dụ, thông tin tài khoản và các thiết lập chính sách được lưu trữ trong AD, trong khi OS sẽ
quản lí việc hiện thực các process security cũng như lưu trữ các thông tin về mức độ tin cậy giữa
các phần trong network.
Nếu bạn đã cài đặt một domain Windows 2003, và tất cả các máy đều dùng Windows 2003, thì
phương thức xác thực mặc định là Kerberos (tất nhiên là bạn có thể thay đổi tùy chọn này).
Nếu hệ thống của bạn thuộc dạng mixed-mode (các domain controller sử dụng cả Windows 2003
và Windows NT 4.0 BDCs), hệ thống sẽ có khả năng giao tiếp tối đa trong mạng, nhưng sẽ không
phải là môi trường an toàn cao nhất, vì phải cung cấp các tùy chọn chứng thực cho cả 2 hệ điều
hành.
Authentication Methods
Trong các hệ điều hành trước Windows NT 4.0 SP4, chỉ có 2 phương thức được hỗ trợ trong cơ
chế xác thực dạng challenge/response là LAN Manager (LM) và Windows NT LanMan (NTLM).
19
. Việc phá vỡ password này
tương đương với bẻ khóa chuỗi 65 bits.
Tuy vậy, vấn đề thứ hai, về quá trình chia tách password thành 2 nửa, nhanh chóng bị phát hiện.
Trong ví dụ trước, password được chia thành 2 chuỗi là MYPASSW và ORDISLO. Hai nửa này có
thể bị tấn công cùng lúc. Do đó số khả năng có thể của password thực tế chỉ có 26
7
+ 26
7
, tức
khoảng 10
10
. Như vậy việc crack sẽ tương ứng với crack chuỗi 32bits.
Thông thường nửa sau của password sẽ bị tấn công trước, vì người dùng ít khi đặt password dài đủ
14 kí tự, do đó sẽ dễ tấn công phần này hơn. Sau đó, có thể dùng nửa thứ 2 này làm gợi ý để đoán
ra nửa đầu của password.
NTLM Authentication
Việc phát triển Windows NT đã tạo cơ hội cho MS tăng cường bảo mật cho cơ chế LM, và kết quả
là phương thức xác thực NTLM.
Điểm nâng cao chính trong cơ chế này đó là khả năng sử dụng password hỗ trợ toàn bộ tập kí tự
Unicode, đồng thời cũng phân biệt chữ hoa/thường. Hệ thống sẽ ghi nhận password là chuỗi 14 kí
tự Unicode, mỗi kí tự chiếm 16bit.
Sau đó 14 kí tự này sẽ được chuyển thành mã băm 128 bit bằng thuật toán MD4 ( phát triển bởi
Ron Rivest). Hình 3-6 thể hiện quá trình này.
Hình 3-6
@S0L1dP@s5W0rD
include Unicode password
MD4 Hash
4f913083a9d6cf1c15e8caf4faddb75d
Mặc dù có khả năng chống đỡ tấn công nhiều hơn nhờ tập kí tự mở rộng, vẫn có một vấn đề trong
password này.
The Challenge and Response
Tất cả các phương thức xác thực đã đề cập như LM, NTLM, và NTLMv2, đều sử dụng một cơ chế
gọi là Challenge/Response. Một cách tồng quát, có thể mô tả các bước trong cơ chế này như sau:
1. Client khởi đầu quá trình xác thực bằng cách vào logon screen và yêu cầu hệ thống cho
phép đăng nhập.
2. Server gửi một chuỗi kí tự ngẫu nhiên đến client. Chuỗi này gọi là chuỗi thách thức
(challenge).
3. . Client sẽ nhập username và password tương ứng. Sau đó hệ thống sẽ sử dụng mã băm của
password này làm khóa để mã hóa chuỗi thách thức ở trên. Giá trị này gọi là chuỗi trả lời
(response) và được gửi về server.
4. Server cũng tính toán giá trị mã hóa của chuỗi thách thức bằng cách sử dụng khóa là mã
băm của password của người dùng tương ứng đã được lưu trong database. Nếu giá trị tính
được bởi server trùng khớp với chuỗi trả lời của client gửi lên thì có nghĩa là client đã nhập
đúng password. Khi đó client được xác thực và đăng nhập vào hệ thống.
Windows 2003 Local Logon Process
Có 2 phương pháp để đăng nhập vào hệ thống Windows 2003 Server hoặc máy cục bộ. Hai
phương thức xác thực được sử dụng là Kerberos và NTLM, trong đó Kerberos là phương thức
chính. Trong trường hợp Windows không tìm thấy KDC (Key Distribution Center, trung tâm phân
phối khóa), thì chuyển sang sử dụng NTLM để xác thực trên máy cục bộ, với các thông tin được
lưu trong SAM (Security Accounts Manager) database.
Quá trình đăng nhập vào hệ thống cục bộ sử dụng NTLM như sau:
1. Người dùng nhập username và password, các giá trị này được thu thập bởi GINA
(Graphical Identification and Authentication, công cụ xác thực và định danh dựa trên giao
diện đồ họa) của Windows.
2. GINA chuyển thông tin trên cho LSA (Local Security Authority, dịch vụ nắm quyền bảo
mật cục bộ) để xác thực. LSA sẽ tạo các thẻ bài truy cập (access token), cung cấp môi
trường tương tác cho quá trình xác thực, kiểm soát các chính sách bảo mật cục bộ, và gửi
yêu cầu xác thực đến NTLM hoặc Kerberos tùy theo yêu cầu.
3. LSA sẽ gửi thông tin đến SSPI (Security Support Provider Interface), SSPI sẽ gửi đến