Tải bản đầy đủ (.docx) (8 trang)

Windows 2003 Authentication

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (155.24 KB, 8 trang )

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).


Windows 2003 đã mở rộng và thêm vào NTLMv2 để tăng tính bảo mật cho hệ thống.
LM Authentication
Để đảm bảo tương thích tối đa với các hệ thống cũ, một yêu cầu nhất thiết là khả năng giao tiếp
giữa hệ thống mới và cũ. Nếu hệ thống cũ sử dụng phương thức xác thực LAN Manager, nó có thể
tạo điểm yếu cho hệ thống.
Cơ chế chứng thực LM sử dụng password dựa trên tập các chữ cái tiêu chuẩn, tức là không có các
kí tự đặc biệt, do đó độ mạnh của password không cao. Hơn nữa, cơ chế này không phân biệt chữ
hoa/thường trong password. Nngười dùng có thể sử dụng chữ hoa hoặc thường, nhưng hệ thống
luôn chuyển đổi về chữ hoa trước khi xử lí, càng góp phần làm suy yếu cơ chế bảo vệ.
Trong hệ thống Windows, password không được lưu trữ dưới dạng plain text, mà dưới dạng mã
băm (hash, sử dụng các hàm mã hóa một chiều). Cơ chế băm của LM cũng không đủ mạnh. Chiều
dài tối đa của password trong LM là 14 kí tự.
Hệ thống sẽ chuyển tất cả thành chữ hoa, sau đó tách thành 2 dãy, mỗi dãy 7 kí tự, mỗi kí tự chiếm
1 byte. Mỗi dãy sẽ được sử dụng làm khóa để mã hóa một hằng số 64 bit theo thuật toán DES, sau
đó đặt 2 giá trị đã mã hóa kề nhau để tạo nên mã băm. Hình 3-5 thể hiện quá trình này.
Hình 3-5
Take 14-character,
all-upper-case, split into
7-character
MyPasswordIsLong
MYPASSW ORDISLO
0x4B47532 - 140233245
DES Encryption Process
DES Encryption
E5634B2AD3846E26 - 537A9DBF26AB98E2
Khi mã băm đã được tạo, bạn có thể nghĩ nó đủ an toàn, dựa trên độ dài của nó. Nhưng thực tế cơ
chế này có nhiều điểm yếu. Thứ nhất là tập kí tự. Vì chỉ sử dụng các kí tự cơ bản gồm 26 chữ cái
nên sẽ chỉ có 26
14
khả năng của chuỗi password, tức cỡ khoảng 10

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

quá trình hiện thực NTLM. Đó là yêu cầu tương thích với các hệ thống cũ. Do đó Windows cũng
cung cấp một cơ chế tương ứng với LM hash, cho phép giao tiếp với các hệ thống trước đó.
Do Windows lưu trữ các giá trị NTLM và LM cho mỗi user, kẻ tấn công có thể tìm cách khai thác
giá trị LM hash trước. Sau khi đã giải mã được giá trị này, hắn có thể sử dụng một cơ chế brute-
force đơn giản để tìm ra chuỗi NTLM, vốn tương tự như LM, nhưng phân biệt chữ hoa/thường.
Windows lưu trữ các giá trị NTLM và LM trong Registry trong SAM.
NTLMv2
NTLMv2 được giới thiệu để tiếp tục quá trình nâng cao tính bảo mật của hệ thống. Cơ chế này cho
phép kiểm soát các giao tiếp sử dụng LM giữa client và server. Hơn nữa, NTLMv2 sử dụng MD5
để tạo mã băm. Phiên bản NTLMv2 128 bit còn cung cấp cơ chế đảm bảo toàn vẹn dữ liệu và
chứng thực theo phiên (session).
Việc kiểm soát các tính năng tương thích của LM là một bước nâng cao rõ rệt với độ an toàn của
hệ thống. Hình 3-7 thể hiện thiết lập tùy chọn cho quá trình xác thực.
SYSKEY
Windows lưu trữ cả mã băm của LM và NTLM trong Registry. Do đó, việc truy xuất registry cần
được kiểm soát. Tuy nhiên, SAM có thể được trích xuất ra khỏi máy tính bằng đĩa recovery, hoặc
có thể dump từ Registry, do vậy cần có các cơ chế bảo vệ tốt hơn.
MS đã giới thiệu một cơ chế mới để đảm bảo an toàn cho SAM, gọi là System Key, hay gọi tắt là
SYSKEY. Cơ chế này sử dụng một key 128 bit để mã hóa SAM database, góp phần ngăn cản quá
trình trích xuất các mã băm ra khỏi máy. SYSKEY có sẵn mặc định trong Windows 2003,
Windows NT cần phải cài đặt thêm để có thể sử dụng chức năng này.
Một câu hỏi thường được đặt ra là: “Giá trị SYSKEY nên lưu trữ ở đâu, và phải làm gì với chúng”.
Các khóa này phải sẵn sàng để sử dụng đồng thời phải được bảo vệ đúng đắn. Có 3 tùy chọn để
quản lí chúng trong hệ thống:
• Cho phép máy tính tự phát sinh một khóa ngẫu nhiên để sử dụng làm SystemKey và lưu
trữ nó đâu đó trong Registry. Sau đó khóa này sẽ được sử dụng khi hệ thống khởi động lại,
và người dùng không cần nhập thêm giá trị khác.
• Cho phép máy tính tự phát sinh khóa và lưu trữ vào đĩa mềm. Sau đó, mỗi lần khởi động,
hệ thống sẽ yêu cầu đĩa mềm đó.
• Tạo một password và ghi nhớ. Mỗi lần hệ thống khởi động sẽ yêu cầu người dùng nhập lại

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

NTLM driver (gọi là MSV1-0 SSP). Nếu không sử dụng NTLM mà dùng Kerberos thì
SSPI sẽ chuyển tiếp thông tin đến dịch vụ quản lí của Kerberos.
4. NTLM driver sử dụng dịch vụ Netlogon để đối chiều và xác thực người dùng dựa vào
SAM database.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×