Windows 2003 Authentication
Topic 3BWindows 2003 AuthenticationMặ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 MethodsTrong 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-5Take 14-character, all-upper-case, split into 7-characterMyPasswordIsLongMYPASSW ORDISLO0x4B47532 - 140233245DES Encryption ProcessDES EncryptionE5634B2AD3846E26 - 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ó 2614 khả năng của chuỗi password, tức cỡ khoảng 1019. 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ó 267 + 267, tức khoảng 1010. 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 AuthenticationViệ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@s5W0rDinclude Unicode passwordMD4 Hash4f913083a9d6cf1c15e8caf4faddb75d 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.NTLMv2NTLMv2 đượ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.SYSKEYWindows 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 ResponseTấ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 ProcessCó 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. Kerberos in Windows 2003Nếu bạn có một hệ thống domain Windows 2003 đang vận hành bình thường thì có nghĩa là Kerberos đã được tích hợp sẵn và được dùng làm cơ chế xác thực mặc định khi các máy khác (cũng dùng Windows 2003) đăng nhập vào domain.Kerberos là một chuẩn của IETF dùng cho quá trình xác thực, được phát triển bởi Viện công nghệ Massachusetts (MIT) những năm 1980s. Nó đã được áp dụng như một phương thức xác thực an toàn trước khi được sử dụng trong Windows 2003. Có một số điểm khác nhau giữa phương thúc Kerberos trong Windows 2003 và trong chuẩn MIT. Tuy nhiên, các máy không chạy Windows nhưng dùng Kerberos vẫn có thể phối hợp hoạt động được với dịch vụ Kerberos trên Windows 2003.Chi tiết cụ thể về Kerberos vượt quá tầm thảo luận của tài liệu này. Bạn nên nắm rõ một số đặc điểm tổng quát của nó để áp dụng cho quá trình xác thực.Khi một user bắt đầu quá trình đăng nhập bằng cách cung cấp đặc điểm chứng thực (credentials, bao gồm username/password, hoặc smartcard, hoặc đặc điểm sinh học) của họ, Windows sẽ liên lạc với bộ điều khiển Active Directory của domain và xác định vị trí của KDC (Kerberos Key Distribution Center). KDC sẽ trả về một TGT (Ticket Granting Ticket) cho người dùng đã được xác thực. TGT chứa các thông tin định danh của người dùng này và đuợc dùng để truy cập các thành phần khác của network.Sau khi người dùng đã được xác thực, TGT cũng được dùng để yêu cầu các ticket khác để truy cập các dịch vụ tương ứng trên network. Máy tính có chức năng cung cấp các ticket cho hệ thống được gọi là TGS (Ticket Granting Server).Tóm lại:• Một AS (authenticate server, máy chủ xác thực) được dùng để tiến hành các hoạt động xác thực thực sự của người dùng phía sau Kerberos. Trong hệ thống Windows 2000 trước đó, nó chỉ được cấu hình thành một dịch vụ gọi là Authenticate Services.• TGS là nơi tạo và cấp phát các ticket cho người dùng để truy cập tài nguyên. Trên Windows 2000, TGS được cấu hình như là một dịch vụ (Ticket Grant Service).• Trong Windows 2000, KDC bao gồm cả 2 dịch vụ là Authentication Service và Ticket Grant Service.Một điểm tiện lợi cho người dùng sử dụng mạng có áp dụng phương thức Kerberos đó là Single Sign On (SSO). Với SSO, người dùng không cần phải xác thực lại nhiều lần mỗi khi truy cập các dịch vụ khác nhau trên network. Họ chỉ cần đăng nhập vào một domain, các domain khác cũng sẽ chấp nhận xác thực được chuyển đi bởi domain đó. Một lợi điểm khác đó là Kerberos có các cơ chế để kiểm chứng định danh của người dùng chứ không chỉ là xác thực người dùng (Xác thực người dùng, hay authentication, nghĩa là kiểm tra người dùng đó là A hoặc có quyền của A, tức là chỉ cần username và password của A là được xác thực. Còn kiểm chứng định danh, hay identification, nghĩa là kiểm tra người dùng đó thực sự là A). Smart Cart in Windows 2003Bắt đầu từ Windows 2000, và nay là Windows 2003, MS đã tích hợp sẵn các cơ chế hỗ trợ smartcard, cung cấp thêm một phương thức xác thực sử dụng thêm các thành phần phần cứng, góp phần tăng độ an toàn của hệ thống.Trong Windos 2003, các Smart Cards sử dụng Kerberos và mật mã khóa công khai (public key cryptography). Mật mã khóa công khai, hay mật mã bất đối xứng, sử dụng một khóa để mã hóa và một khóa khác để giải mã. Chúng được gọi là cặp khóa private/public. Người dùng sẽ giữ bí mất khóa private của mình, và công khai khóa public cho người khác biết. Cả 2 khóa này đều được lưu trữ trên smartcard.TASK 3B-1Configuring NTLMv2 Authentication Cài Đặt: Đăng nhập vào Windows 2003 với Administrator và mở Custom_GPO1. Vào Windows settingSecurity Setting,mở Local Policies,và chọn Security Options2. Nhấp đôi vào Network Security LAN Manager Authentication Level.3. Từ Local Policy Setting kéo xuống,chọn Send NTLMv2 Response Only,và click OK4. Click Yes tại prompt nếu bạn muốn thay đổi5. Đóng Custom_GPO,lưu lại các thiết lập. Bạn có vấn đề chứng thực trong các nhiệm vụ sau,bạn có thể quay lại các câu trả lời để thiết lập LM và NTLM. . Topic 3BWindows 2003 AuthenticationMặ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. dụng trong Windows 2003. Có một số điểm khác nhau giữa phương thúc Kerberos trong Windows 2003 và trong chuẩn MIT. Tuy nhiên, các máy không chạy Windows nhưng