MậtkhẩuWindowscóthểbịcracknhưthếnào – Phần1 Cập nhật lúc 17h00' ngày 04/04/2010 • Bản in • Gửi cho bạn bè • Phản hồi Xem thêm: windows, hash, mật khẩu, password, lm, ntlmv2 Quản trị mạng – Trong bài này chúng tôi sẽ giới thiệu cho các bạn cách Windows tạo và lưu các hash mậtkhẩu và cách các hash mậtkhẩu đó bịcracknhưthế nào. Giới thiệu Mậtkhẩu (Password) thường là con đường chủ đạo trong việc phòng chống sự xâm nhập bừa bãi. Tuy vậy dù một kẻ tấn công không có truy cập vật lý (trực tiếp) đến máy tính, chúng vẫn cóthể truy vập vào máy chủ thông qua giao thức máy trạm từ xa (remote desktop) hoặc xác thực một dịch vụ thông qua một ứng dụng web bên ngoài. Mục đích của bài viết này nhằm giới thiệu cho các bạn cách Windows tạo và lưu các hash mậtkhẩu và cách các hash mậtkhẩu đó bịcracknhưthế nào. Sau khi giới thiệu cách crackmậtkhẩu Windows, chúng tôi sẽ cung cấp cho các bạn một số mẹo để bảo vệ bạn tránh được các lỗ hổng trong các kiểu tấn công này. Windows lưu mật khẩunhưthếnào Windows sử dụng hai phương pháp hash mật khẩu người dùng, cả hai đều có những điểm mạnh và điểm yếu riêng. Đó là LAN Manager (LM) và NT LAN Manager version 2 (NTLMv2). Hàm hash (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra. Hash mậtkhẩu LAN Manager (LM) Hash LAN Manager là một trong những thuật toán hash mậtkhẩu đầu tiên được sử dụng bởi các hệ điều hành Windows, chỉ có một phiên bản duy nhất được hỗ trợ cho tới khi xuất hiện NTLMv2 sử dụng trong Windows 2000, XP, Vista và Windows 7. Các hệ điều hành mới này vẫn hỗ trợ sử dụng các hash LM để có khả năng tương thích. Mặc dù vậy, nó đã bị vô hiệu hóa mặc định trong Windows Vista và Windows 7. Hash mậtkhẩu loại này được tính bằng một quá trình 6 bước sau: 1. Mật khẩu người dùng được chuyển đổi thành tất cả các ký tự in hoa. 2. Mậtkhẩu được bổ sung thêm các ký tự 0 vào cho tới khi có đủ 14 ký tự. 3. Mậtkhẩu mới được chia thành hai hash có 7 ký tự. 4. Các giá trị này được sử dụng để tạo hai khóa mã hóa DES, mỗi nửa đều được thêm vào một bit chẵn lẻ để tạo các khóa 64 bit. 5. Mỗi khóa DES sẽ được sử dụng để mã hóa một chuỗi ASCII định sẵn (KGS!@#$ %), cho kết quả ra trong hai chuỗi văn bản mật 8-byte. 6. Hai chuỗi văn bản mật 8-byte này sẽ được kết hợp để tạo thành một giá trị 16-byte, giá trị này chính là một hash LM hoàn chỉnh. Trong thực tế, mậtkhẩu “PassWord123” sẽ được chuyển đổi như sau: 1. PASSWORD123 2. PASSWORD123000 3. PASSWOR and D123000 4. PASSWOR1 and D1230001 5. E52CAC67419A9A22 and 664345140A852F61 6. E52CAC67419A9A22664345140A852F61 Hình 1: Một mậtkhẩu được biến đổi thành một LM hash Các mậtkhẩu tuân theo phương pháp LM hash có một số nhược điểm. Nhược điểm đầu tiên cần kể đến là sự mã hóa ở đây dựa vào Data Encyrption Standard (DES). DES khởi đầu từ một dự án của IBM vào những năm 70, dự án sau đó bị sửa đổi bởi NIST, được bảo trợ bởi NSA và được phát hành như một chuẩn ANSI vào năm 1981. DES được cho là khá an toàn trong nhiều năm sau những nghiên cứu kỹ lưỡng trong những năm 90 nhờ kích thước key 56-bit của nó. Tuy nhiên đến đầu năm 1998, Electronic Frontier Foundation thông báo là đã cóthểcrack DES trong khoảng thời gian 23 giờ. Từ đó, DES được xem như đã lỗi thời và cũng từ đó nó được thay thế bằng Triple-DES và AES. Tuy nhiên đây cũng là các chuẩn mã hóa đã có nạn nhân thiệt mạng với sức mạnh tính toán hiện đại và cóthểbịcrack một cách dễ dàng. Có lẽ điểm mạnh lớn nhất trong LM hash chính là trong quá trình tạo các khóa (key) DES. Trong quá trình này, một mậtkhẩu được cấp bởi người dùng sẽ tự động chuyển đổi tất cả thành in hoa, sau đó được chèn thêm thành chuỗi có độ dài 14 ký tự (đây là chiều dài tối đa cho mậtkhẩu theo phương pháp LM hash), tiếp đó được chia thành hai hash 7 ký tự. Đây là một điểm yếu khi bạn chuỗi mật mã bị chia nhỏ và chỉ được phép sử dụng các ký tự ASCII in hoa. Xét về bản chất, thuật toán này làm cho việc sử dụng các ký tự khác cũng như tăng chiều dài mậtkhẩu trở nên vô nghĩa, đó chính là điều làm cho các mậtkhẩu LM trở nên hổng đối với các cố gắng crack lặp lại nhiều lần (brute-force). Hash mậtkhẩu NTLMv2 NT LAN Manager (NTLM) là một giao thức thẩm định của Microsoft, giao thức này được tạo ra để kế vị LM. Có nhiều tải tiến, NTLMv2 được chấp nhận như một phương pháp thẩm định mới đáng để lựa chọn và được thực thi trong Windows NT 4. Quá trình tạo một NTLMv2 hash (từ lúc này trở về sau chúng ta viết tắt là NT hash) là một quá trình đơn giản hơn nhiều với những gì mà hệ điều hành thực hiện, nó dựa vào thuật toán hash MD4 để tạo hash nhờ một loạt các tính toán toán học. Thuật toán MD4 được sử dụng ba lần để tạo NT hash. Trong thực tế, mậtkhẩu “PassWord123” sẽ có kết quả là “94354877D5B87105D7FEC0F3BF500B33” sau khi sử dụng thuật toán MD4. Hình 2: Mậtkhẩu được chuyển đổi thành một NTLMv2 hash MD4 được coi là mạnh hơn đáng kể so với DES vì nó cho phép mậtkhẩucó chiều dài dài hơn, có sự phân biệt giữa các ký tự in thường và in hoa, không chia mậtkhẩu thành các phần nhỏ hơn (điều tạo sự dễ dàng trong việc crack). Có lẽ phàn nàn lớn nhất với các NTLMv2 hash là rằng Windows không sử dụng kỹ thuật mang tên salting (tạm được dịch là ướp muối). Salting là một kỹ thuật mà trong đó một số ngẫu nhiên được tạo ra để tính toán hash cho mật khẩu. Điều này có nghĩa rằng cùng một mậtkhẩucóthểcó hai giá trị hash khác nhau hoàn toàn, đây thực sự là điều lý tưởng. Trong trường hợp này, người dùng có khả năng tạo những gì được gọi là các “bảng cầu vồng” (rainbow table). Các bảng cầu vồng này không phải là các bảng được trang điểm rực rỡ; mà chúng thực sự là các bảng có chứa các giá trị hash cho số lượng mậtkhẩucóthể đối với một số lượng ký tự nào đó. Sử dụng bảng cầu vồng, bạn cóthể lấy một cách đơn giản giá trị hash được trích rút được từ máy tính mục tiêu và thực hiện một tìm kiếm. Khi giá trị hash được tìm thấy trong bảng, bạn sẽ cómật khẩu. Như những gì bạn cóthể hình dung, một bảng cầu vòng thậm chí chỉ với một số lượng nhỏ các ký tự cũng cóthể trở thành rất lớn, có nghĩa rằng sự sinh sôi, lưu trữ và đánh chỉ số cho chúng sẽ là một nhiệm vụ khó khăn. Kết luận Trong phần đầu tiên của loạt bài này, chúng tôi đã giải thích cho các bạn về các hash mậtkhẩu và các cơ chế Windows sử dụng để tạo và lưu trữ các giá trị đó. Chúng tôi cũng đã giới thiệu những điểm yếu của mỗi phương pháp và những đại lộ cóthể được sử dụng để crack các mậtkhẩu đó. Trong phần tiếp theo của loạt bài này chúng tôi sẽ giới thiệu cho các bạn về quá trình trích rút và crack các hash này để minh chứng cho những điểm yếu của nó. Khi đã minh chứng xong, chúng tôi sẽ cung cấp cho các bạn một số lớp bảo mật bổ sung và tạo một mậtkhẩu mạnh thực sự. HÀM HASH Hàm hash (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra. Ví dụ, từ "Illuminatus" đi qua hàm SHA-1 cho kết quả E783A3AE2ACDD7DBA5E1FA0269CBC58D. Ta chỉ cần đổi "Illuminatus" thành "Illuminati" (chuyển "us" thành "i") kết quả sẽ trở nên hoàn toàn khác (nhưng vẫn có độ dài cố định là 160 bit) A766F44DDEA5CACC3323CE3E7D73AE82. Hai tính chất quan trọng của hàm này là: • Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả, điều này tương tự như việc bạn không thể chỉ dựa vào một dấu vân tay lạ mà suy ra ai là chủ của nó được. • Tính duy nhất: xác suất để có một vụ va chạm (hash collision), tức là hai thông điệp khác nhau có cùng một kết quả hash, là cực kì nhỏ. Một số ứng dụng của hàm hash: • Chống và phát hiện xâm nhập: chương trình chống xâm nhập so sánh giá trị hash của một file với giá trị trước đó để kiểm tra xem file đó cóbị ai đó thay đổi hay không. • Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng bằng cách kiểm tra giá trị hash của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho dù là nhỏ nhất. • Tạo chìa khóa từ mật khẩu. • Tạo chữ kí điện tử. SHA-1 và MD5 là hai hàm hash thông dụng nhất và được sử dụng trong rất nhiều hệ thống bảo mật. Vào tháng 8 năm 2004, tại hội nghị Crypto 2004, người ta đã tìm thấy va chạm đối với MD5 và SHA-0, một phiên bản yếu hơn của hàm hash SHA-1. Không bao lâu sau đó, vào khoảng giữa tháng 2 năm 2005, một nhóm ba nhà mật mã học người Trung Quốc đã phát hiện ra một phương pháp cóthể tìm thấy va chạm đối với SHA-1 chỉ trong vòng 269 bước tính toán (tức là cóthể nhanh hơn brute-force vài nghìn lần). Văn Linh (Theo Windowsecurity) . Mật khẩu Windows có thể bị crack như thế nào – Phần 1 Cập nhật lúc 17 h00' ngày 04/04/2 010 • Bản in • Gửi cho bạn bè • Phản hồi Xem thêm: windows, . các bạn cách Windows tạo và lưu các hash mật khẩu và cách các hash mật khẩu đó bị crack như thế nào. Sau khi giới thiệu cách crack mật khẩu Windows, chúng