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áºt khẩu và cách các hash máºt khẩu đó bị crack như thế nà o.
Giới thiệu
Máºt khẩ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áº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 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ẩu như 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áºt khẩu LAN Manager (LM) Hash LAN Manager là má»™t trong những thuáºt toán hash máºt khẩ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áºt khẩ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áºt khẩu được bổ sung thêm các ký tá»± 0 và o cho tá»›i khi có đủ 14 ký tá»±. 3. Máºt khẩ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áºt khẩ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 Các máºt khẩ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áºt khẩ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áºt khẩ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áºt khẩu trở nên vô nghÄ©a, đó chÃnh là điá»u là m cho các máºt khẩ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áºt khẩ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áºt khẩu “PassWord123†sẽ có kết quả là “94354877D5B87105D7FEC0F3BF500B33†sau khi sá» dụng thuáºt toán MD4. MD4 được coi là mạnh hÆ¡n đáng kể so vá»›i DES vì nó cho phép máºt khẩu có 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áºt khẩ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áºt khẩu có 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áºt khẩu có 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áºt khẩ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áºt khẩ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áºt khẩ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).
Theo Windowsecurity |