Đăng ký Đăng nhập
Trang chủ Nghiên cứu một số kỹ thuật bẻ khóa mật khẩu và thử nghiệm trên gpu...

Tài liệu Nghiên cứu một số kỹ thuật bẻ khóa mật khẩu và thử nghiệm trên gpu

.PDF
75
69
136

Mô tả:

EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC LỜI CẢM ƠN Những kiến thức căn bản trong luận văn này là kết quả của ba năm (2013-2016) tôi có may mắn được các thầy cô giáo trong trường Học viện Kỹ thuật Quân sự trực tiếp giảng dậy, đào tạo và dìu dắt. Tôi xin bày tỏ lời cảm ơn chân thành tới các thầy cô giáo trong khoa Công nghệ thông tin – Học viện Kỹ thuật Quân sự, Phòng đào tạo sau đại học – Học viện Kỹ thuật Quân sự đã tạo điều kiện thuận lợi cho tôi trong thời gian học tập tại trường. Tôi xin bày tỏ lòng biết ơn chân thành, lời cảm ơn sâu sắc nhất với thầy giáo PGS.TS Nguyễn Hiếu Minh đã trực tiếp hướng dẫn, định hướng cho tôi giải quyết các vấn đề trong luận văn. Tôi cũng xin cảm ơn các anh chị em đồng nghiệp ở trường Cao đẳng Thống kê đã ủng hộ giúp đỡ tôi trong quá trình thực hiện luận văn. Luân văn cũng xin được là lời chia vui với người thân, đồng nghiệp, bạn bè và các bạn đồng môn lớp Cao học K25A. Hà Nội, tháng 09 năm 2016 Học viên Phạm Văn Sỹ EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC MỤC LỤC Trang Trang phụ bìa....................................................................................................... Bản cam đoan...................................................................................................... Mục lục................................................................................................................ Tóm tắt luận văn.................................................................................................. Danh mục các bảng............................................................................................. Danh mục hình vẽ................................................................................................ EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC DANH MỤC VIẾT TẮT CUDA GPU NTLM SAM SIMT Compute Unified Device Architecture Graphics Processing Unit NT LAN Manager Security Accounts Manager Single-Instruction, Multiple-Thread EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC DANH MỤC HÌNH VẼ EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC DANH MỤC BẢNG BIỂU EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC TÓM TẮT LUẬN VĂN Họ và tên học viên: Phạm Văn Sỹ Chuyên ngành: Khoa học máy tính khóa: 25 Cán bộ hướng dẫn: PGS.TS Nguyễn Hiếu Minh Tên đề tài: Nghiên cứu một số kỹ thuật bẻ khóa mật khẩu và thử nghiệm trên GPU Tóm tắt: Luận văn nghiên cứu hai phần chính một là nghiên cứu tổng quan về mật khẩu trên Windows, một số phương pháp tấn công mật khẩu, cách thức phòng chống tấn công mật khẩu trên Windows. Hai là nghiên cứu về công nghệ GPU, lập trình CUDA. Từ những nghiên cứu trên tác giả luận văn áp dụng phương pháp vét cạn, sử dụng thuật toán song song tính giá trị băm chạy trên GPU để tìm mật khẩu Windows giúp giảm thiểu thời gian tìm mật khẩu. 7 MỞ ĐẦU Nhu cầu tính toán trong lĩnh vực khoa học, công nghệ ngày càng cao và trở thành một thách thức lớn. Từ đó các giải pháp nhằm tăng tốc độ tính toán đã được ra đời, từ năm 2001 đến năm 2003 tốc độ của Pentium 4 đă tăng gấp đôi từ 1.5GHz lên đến 3GHz. Tuy nhiên hiệu năng của CPU (Central Processing Unit) không tăng tương xứng như mức gia tăng xung của CPU và việc gia tăng tốc độ xung của CPU nhanh chóng chạm phải ngưỡng tối đa mà cụ thể trong khoảng thời gian 2 năm từ năm 2003 đến năm 2005 tốc độ của CPU chỉ tăng từ 3GHz lên 3.8GHz. Trong quá trình tăng tốc độ xung của CPU các nhà sản xuất đã gặp phải vấn đề về nhiệt độ của CPU. Các công nghệ làm mát có thể không đáp ứng được do bề mặt tiếp xúc của CPU ngày càng nhỏ. Trước tình hình này, các nhà nghiên cứu vi xử lý đã chuyển hướng sang phát triển công nghệ đa lõi, nhiều lõi, với cơ chế xử lý song song trong các máy tính nhằm tăng hiệu năng và tiết kiệm năng lượng. Một trong các công nghệ xử lý song song ra đời đó là GPU (Graphics Processing Unit - bộ xử lý đồ họa). Ban đầu, việc chế tạo GPU chỉ với những mục đích công việc phù hợp với khả năng là tăng tốc độ xử lý đồ họa, cũng như trong ngành trò chơi là chủ yếu. Tuy nhiên ngày nay với công nghệ CUDA được phát triển bởi hãng NVIDIA đã cho phép thực hiện các tính toán song song với các phép tính phức tạp như dấu chấm động. Với hiệu suất cả ngàn lệnh trong một thời điểm. Chính vì vậy một xu hướng nghiên cứu mới ra đời đó là phát triển các thuật toán song song thực hiện trên GPU. Với CUDA, các lập trình viên có thể nhanh chóng phát triển các ứng dụng song song trong rất nhiều lĩnh vực khác nhau như: Điện toán, sắp xếp, tìm kiếm, xử lý tín hiệu số, ảnh,… 8 CUDA là bộ công cụ phát triển phần mềm trên GPU được xây dựng bằng ngôn ngữ lập trình C. Với CUDA các lập trình viên dùng để điều khiển GPU để xử lý, tính toán song song các dữ liệu lớn. Mật khẩu là hàng phòng thủ đầu tiên chống lại tội phạm mạng, tội phạm hệ thống, thế nhưng hầu hết người dùng đều chọn mật khẩu dựa trên những thông tin có sẵn, dẫn đến một lượng lớn các tài khoản các tài khoản người dùng có nguy có bị chiếm đoạt dựa vào một số suy đoán đơn giản và logic điều này sẽ giúp cho kẻ tấn công mật khẩu sẽ giới hạn được số ký tự tạo mật khẩu và sẽ dễ dàng chiếm đoạt được tài khoản người dùng. Bên cạnh đó cũng có nhiều người dùng đặt mật khẩu chưa đủ mạnh. Kẻ tấn công sẽ lợi dụng những thói quen của người dùng như trên và kết hợp với những công cụ xử lý trên thiết bị có tốc độ tính toán cao như GPU để dò tìm mật khẩu. Xuất phát từ những ưu điểm của GPU và tầm quan trọng của mật khẩu tôi đã chọn đề tài: “Nghiên cứu một số kỹ thuật bẻ khóa mật khẩu và thử nghiệm trên GPU”. Luận văn gồm 3 chương: Chương 1: Tổng quan về bẻ khóa mật khẩu, chương này nghiên cứu các kiến thức tổng quan về mật khẩu, một số phương pháp tấn công mật khẩu trên Windows và cách thức phòng chống tấn công mật khẩu trên Windows. Chương 2: Nghiên cứu công nghệ GPU và lập trình CUDA, chương này nghiên cứu hai phần chính một là nghiên cứu các kiến thức cơ bản về công nghệ GPU, sự khác nhau giữa GPU và CPU. Hai là nghiên cứu về lập trình CUDA. Chương 3: Xây dựng ứng dụng bẻ khóa mật khẩu dựa trên lập trình song song trên GPU, trên cơ sở các kiến thức được trình bày ở hai chương trên, tác giả luận văn đã tiến hành cài đặt và thử nghiệm mô phỏng bài toán trên CPU và GPU. 9 Chương trình được tác giả luận văn xây dựng với mục đích nghiên cứu, học hỏi và mong muốn giúp người sử dụng lấy lại mật khẩu trong trường hợp người dùng bị quên mật khẩu, hoặc người dùng bị chiếm đoạt tài khoản và bị thay đổi mật khẩu đăng nhập vào Windows. Tác giải luận văn lên án mọi hành vi lợi dụng chương trình bẻ khóa mật khẩu Windows vào mục đích trái pháp luật. 10 Chương 1. TỔNG QUAN VỀ BẺ KHÓA MẬT KHẨU Nội dung chính trong chương 1sẽ nghiên cứu các kiến thức tổng quan về mật khẩu trên hệ điều hành Windows, các kỹ thuật và phương pháp tấn công mật khẩu trên Windows, cách thức phòng chống tấn công mật khẩu trên Windows. 1.1. Bẻ khóa mật khẩu Bẻ khóa mật khẩu là quá trình khôi phục mật khẩu từ các dữ liệu đã được truyền bởi một hệ thống máy tính hoặc lưu giữ trong nó. Mục đích của việc bẻ mật khẩu có thể giúp người dùng khôi phục mật khẩu bị quên hoặc bị mất, nó cũng có thể được sử dụng để truy cập trái phép vào hệ thống [5]. Mật khẩu là phần quan trọng của thông tin cần thiết để truy cập vào hệ thống. Do đó, hầu hết kẻ tấn công sử dụng các kỹ thuật bẻ mật khẩu để truy cập trái phép vào hệ thống và làm cho hệ thống dễ bị tổn thương, không hoạt động. Mật khẩu có thể bị bẻ khóa các công cụ tự động như một từ điển hoặc phương pháp vét cạn. Các chương trình bẻ khóa mật khẩu có chức năng kiểm tra số lượng mật khẩu trên mỗi giây. Thông thường người dùng trong khi tạo mật khẩu, chọn mật khẩu sẽ dễ mắc phải mật khẩu yếu như sử dụng tên của một con vật cưng hoặc lựa chọn mật khẩu đơn giản để dễ nhớ. Hầu hết các kỹ thuật bẻ mật khẩu thành công là do mật khẩu yếu hoặc dễ dàng đoán. Mật khẩu phức tạp đóng một vai trò quan trọng trong việc cải thiện an ninh chống lại các cuộc tấn công. Nó là yếu tố quan trọng mà người dùng nên đảm bảo trong khi tạo ra một mật khẩu. Mật khẩu không nên đơn giản vì mật khẩu đơn giản là dễ bị tấn công. Các mật khẩu khi chọn nên luôn luôn phức tạp, dài và khó nhớ. Các mật khẩu mà bạn thiết lập cho tài khoản phải đáp ứng các yêu cầu thiết lập phức tạp. Mật khẩu ký tự phải là một sự kết hợp của các ký tự chữ và số. Chữ và số ký tự bao gồm chữ cái, số, dấu chấm câu, các 11 ký hiệu toán học và các ký tự thông thường khác. Chúng ta có thể đặt theo quy tắc sau: Mật khẩu có chứa chữ cái, ký tự đặc biệt, và con số: apl@ 52 Mật khẩu chỉ chứa số: 23698217 • Mật khẩu chỉ chứa các ký tự đặc biệt: &*#@!(%) • Mật khẩu chỉ chứa các chữ cái và các chữ số: meetlt23 • Mật khẩu chỉ chứa các chữ cái: POTHMYDE • Mật khẩu mà chỉ chứa các chữ cái và ký tự đặc biệt: bob@&ba • Mật khẩu hứa các ký tự đặc biệt và các chữ số: 123@$4 1.2. Kỹ thuật bẻ khóa mật khẩu [5] Bẻ khóa mật khẩu là kỹ thuật được sử dụng để phát hiện ra mật khẩu. • • Đây là cách cổ điển để đạt được các đặc quyền cho một hệ thống máy tính hoặc mạng. Các phương pháp phổ biến để bẻ khóa mật khẩu là cố gắng đoán mật khẩu với các kết hợp khác nhau cho đến khi bạn có được mật khẩu chính xác. Có năm kỹ thuật để bẻ mật khẩu, như sau: 1.2.1. Tấn công Từ điển [5] Trong một cuộc tấn công từ điển, một tập tin từ điển được nạp vào các ứng dụng bẻ khóa để dò tài khoản người dùng. Chương trình sử dụng tất cả các từ có trong từ điển để tìm mật khẩu. Các cuộc tấn công từ điển có nhiều hữu ích hơn so với các cuộc tấn công vét cạn. Tấn công từ điển không thể dò tìm mật khẩu với hệ thống sử dụng cụm từ làm mật khẩu. Tấn công từ điển có thể áp dụng theo hai tình huống: - Trong phân tích mật mã, nó được sử dụng để tìm ra khóa giải mã để có được bản rõ từ bản mã. - Trong bảo mật máy tính, để tránh xác thực và truy cập vào máy tính bằng cách đoán mật khẩu. 1.2.2. Tấn công vét cạn [5] Các thuật toán mã hóa phải đủ mạnh để ngăn chặn một cuộc tấn công vét cạn. Tìm kiếm vét cạn, là những kỹ thuật cơ bản để dò lần lượt khóa cho đến khi khóa chính xác được xác định. 12 Khi kẻ tấn công cố tạo ra tất cả khóa mã đơn cho dữ liệu cho đến khi tìm ra mật khẩu, đây là thuật ngữ tấn công hàng loạt. Cho đến ngày này, kiểu tấn công này đã được thực hiện bởi những máy tính có khả năng xử lý mạnh mẽ. Việc tấn công bằng vét cạn luôn là: - Là quá trình tốn nhiều thời gian. - Mật khẩu cuối cùng cũng được tìm ra. 1.2.3. Tấn công lai [5] Là cấp độ tiếp theo của kẻ tấn công, một nỗ lực nếu mật khẩu không thể được tìm thấy bằng cách sử dụng tấn công bằng từ điển. Các cuộc tấn công lai bắt đầu với một tệp tin từ điển và thay thế các con số và các ký hiệu cho các ký tự trong mật khẩu. Ví dụ, nhiều người sử dụng thêm số 1 vào cuối mật khẩu của họ để đáp ứng yêu cầu mật khẩu mạnh. Tấn công lai được thiết kế để tìm những loại bất thường trong mật khẩu. 1.2.4. Tấn công âm tiết [5] Là sự kết hợp của tấn công vét cạn và tấn công từ điển. Kỹ thuật này được sử dụng khi mật khẩu không phải là một từ. Những kẻ tấn công sử dụng từ điển và các phương pháp khác để bẻ khóa và cũng có thể sử dụng sự kết hợp có thể có của mỗi từ có trong từ điển. 1.2.5. Tấn công theo quy tắc [5] Kiểu tấn công này được sử dụng khi những kẻ tấn công biết được một số thông tin về mật khẩu. Đây là kiểu tấn công mạnh mẽ nhất bởi vì kẻ tấn công biết rõ về mật khẩu. Ví dụ, nếu kẻ tấn công biết rằng mật khẩu có chứa một số hai, hoặc ba chữ số, sau đó chúng sẽ sử dụng một số kỹ thuật và trích xuất các mật khẩu trong thời gian ngắn. 1.3. Các loại tấn công mật khẩu Bẻ mật khẩu là một trong những giai đoạn quan trọng của một hệ thống tấn công. Bẻ mật khẩu sử dụng cho các mục đích hợp pháp khôi phục mật khẩu bị quên lãng của một người sử dụng; nếu nó được sử dụng bởi người dùng bất hợp pháp, thì chúng có thể có đặc quyền trái phép vào mạng hoặc hệ 13 thống. Các cuộc tấn công mật khẩu được phân loại dựa trên các hành động của kẻ tấn công để bẻ khóa mật khẩu. Thông thường có bốn loại như sau: 1.3.1. Tấn công thụ động trực tuyến Một cuộc tấn công thụ động trực tuyến là đánh hơi (sniffing) để tìm các dấu vết, các mật khẩu trên mạng. Mật khẩu bị bắt (capture) trong quá trình xác thực và sau đó có thể được so sánh với một từ điển (dictionary) hoặc là danh sách mật khẩu (word list). Tài khoản người dùng có mật khẩu thường được băm (hashed) hoặc mã hóa (encrypted) trước khi gửi lên mạng để ngăn chặn truy cập trái phép và sử dụng. Nếu mật khẩu được bảo vệ bằng cách trên, một số công cụ đặc biệt giúp kẻ tấn công có thể phá vỡ các thuật toán mã hóa mật khẩu. Có ba dạng tấn công thụ động trực tuyến là [5]: Đánh hơi (Wire sniffing). Người trung gian (Man-in-the-middle). Tấn công lặp lại (Replay).    1.3.2. Tấn công chủ động trực tuyến Một cuộc tấn công chủ động trực tuyến là cách dễ nhất để có được quyền quản trị truy cập vào hệ thống. Có bốn loại của tấn công chủ động trực tuyến là [5]:     Đoán mật khẩu (Password guessing). Trojan/spyware/key logger. Chích băm (Hash injection). Lừa đảo (Phishing). 1.3.3. Tấn công ngoại tuyến Các cuộc tấn công ngoại tuyến xảy ra khi kẻ đột nhập sẽ kiểm tra tính hợp lệ của các mật khẩu. Nếu tên người dùng và mật khẩu được lưu trữ trong một tệp tin có thể đọc được, nó sẽ trở nên dễ dàng cho kẻ xâm nhập để đạt được quyền truy cập vào hệ thống. Để bảo vệ danh sách các mật khẩu của người dùng, thì danh sách mật khẩu đó luôn luôn được mã hóa. 14 Cuộc tấn công ngoại tuyến thường tốn thời gian. Tấn công ngoại tuyến thành công là vì các hàm băm dễ bị phá vỡ. Để ngăn chặn tấn công ngoại tuyến ta có thể sử dụng các kỹ thuật sau:  Sử dụng mật khẩu phải mạnh.  Xóa hàm băm LM trên hệ thống.  Sử dụng phương pháp mã hóa an toàn cho các mật khẩu. Có ba dạng của tấn công ngoại tuyến:  Tấn công tính giá trị băm.  Tấn công mạng phân tán.  Bảng cầu vồng. 1.3.4. Tấn công phi điện tử Các cuộc tấn công phi điện tử được gọi là các cuộc tấn công phi kỹ thuật. Loại tấn công này không yêu cầu bất kỳ kiến thức kỹ thuật về các phương pháp xâm nhập vào một hệ thống. Do đó, nó được gọi là một cuộc tấn công phi điện tử. Có ba loại tấn công phi điện tử.  Thế vai (Shoulder surfing).  Kỹ thuật xã hội (Social engineering).  Tìm kiếm thùng rác (Dumpster diving). 1.4. Cơ sở lý thuyết xác thực Microsoft 1.4.1. Cơ sở dữ liệu SAM Cơ sở dữ liệu SAM (Security Accounts Manager) [5] được sử dụng bởi Windows để quản lý tài khoản người dùng và mật khẩu trong các định dạng băm (định dạng băm này là một chiều). Thông tin trong SAM được lưu trữ ở định dạng băm để bảo vệ khỏi các cuộc tấn công. Cơ sở dữ liệu SAM được thực hiện như một tệp tin Registry và Windows sẽ giữ một khóa hệ thống tệp tin độc quyền trên tệp tin SAM. Khi tệp tin này được cung cấp với một khóa tệp tin hệ thống, điều này cung cấp một số biện pháp bảo đảm cho việc lưu trữ các mật khẩu. Không thể sao chép tệp tin SAM đến một vị trí khác trong trường hợp là các cuộc tấn công trực tuyến. Khi tệp tin SAM được khóa với khóa hệ thống độc quyền thì nó không thể sao chép hay di chuyển trong khi Windows đang chạy. Các khóa này sẽ không được phát hành trừ khi lỗi màn 15 hình xanh ngoại lệ hoặc hệ điều hành đã tắt. Tuy nhiên, có thể tấn công ngoại tuyến giá trị băm của mật khẩu bằng phương pháp vét cạn, và việc sao chép tệp tin SAM có thể sử dụng các kỹ thuật khác nhau. Microsoft giới thiệu chương trình SYSKEY trong Windows NT 4.0 để cải thiện bảo mật cho cơ sở dữ liệu SAM chống lại các phần mềm bẻ khóa. Bản sao trên máy tính của tệp tin SAM được mã hóa khi SYSKEY được kích hoạt. Bằng cách này tất cả các giá trị băm của mật khẩu của các tài khoản người dùng cục bộ lưu trong SAM sẽ được mã hóa với một khóa. Ngay cả khi nội dung của nó đã được phát hiện thì khóa của nó được mã hóa với hàm băm một chiều, việc giải mã là vô cùng khó. 1.4.2. Xác thực NTLM NTLM (NT LAN Manager) [5] là một giao thức độc quyền được sử dụng bởi nhiều sản phẩm của Microsoft để thực hiện chứng thực thách thức/đáp ứng (challenge/response), và nó là cơ chế xác thực mặc định mà tường lửa và máy chủ proxy sử dụng. Việc xác thực NTLM bao gồm hai giao thức: giao thức xác thực NTLM và giao thức xác thực LM. Hai giao thức này dùng phương pháp băm khác nhau để lưu trữ mật khẩu của người dùng trong cơ sở dữ liệu SAM. 1.4.2.1. Giá trị băm LM Hàm băm LM (LAN Manager) [5] là băm chính mà Microsoft LAN Manager và Microsoft Windows sử dụng để lưu mật khẩu người dùng, và mật khẩu được tự động thêm vào cho tới 14 ký tự, và được sử dụng trong các phiên bản Microsoft Windows từ Windows NT trở về trước. Nó vẫn hỗ trợ cho các phiên bản Windows sau này cho tương thích nhưng được Micosoft khuyến cáo lên tắt nó. Microsoft Windows NT lưu hai dạng của mật khẩu [9]: mật khẩu LAN Manager và mật khẩu Windows NT. Ví dụ, chúng ta giả sử mật khẩu là ‘PassWord123’. Khi mật khẩu này được mã hóa bằng thuật toán LM, trước tiên phải được chuyển đổi thành chữ hoa: ‘PASSWORD123’. Nếu mật khẩu 16 có độ dài ngăn hơn độ dài của 14 ký tự thì mật khẩu sẽ được đệm thêm các ký tự 0 để mật khẩu có độ dài là 14 ký tự. Ở giai đoạn này mật khẩu trở thành ‘PASSWORD123000’. Trước khi mã hóa 14 ký tự của mật khẩu sẽ được chia làm hai phần 7 byte. Một chuỗi 7 byte với ‘PASSWOR’ và chuỗi 7 byte còn lại là ‘D123000’. Mỗi một phần 7 byte sẽ được mã hóa riêng. Nối hai chuỗi mã hóa riêng biệt ta sẽ thu được kết quả. Từ mỗi 7 byte đầu, 8 byte khóa DES được xây dựng, mỗi 8 byte khóa DES được mã hóa với một số ma thuật (magic number). Kết quả mã hóa số ma thuật được nối vào một giá trị băm một chiều mười sáu byte. Giá trị này là LAN Manager băm một chiều của mật khẩu. 8 byte đầu tiên được bắt đầu từ 7 ký tự đầu của mật khẩu, 8 byte thứ hai được bắt đầu từ ký tự thứ 8 của 14 ký tự mật khẩu. Kết hợp là một giá trị băm 16 byte được xây dựng từ mật khẩu có độ dài không quá 14 ký tự. Có thể tóm tắt quá trình sinh giá trị băm LM bằng một quá trình 6 bước như 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ị 16byte, giá trị này chính là một hash LM hoàn chỉnh. Vậy mật khẩu “PassWord123” sẽ được chuyển đổi như sau: 1. PASSWORD123 2. PASSWORD123000 3. PASSWOR and D123000 17 4. PASSWOR1 and D1230001 5. E52CAC67419A9A22 and 664345140A852F61 6. E52CAC67419A9A22664345140A852F61 Hình 1.1: Mật khẩu được biến đổi thành giá trị băm LM 1.4.2.2. Giá trị băm NTLM NT LAN Manager (NTLM) [9] là một giao thức thẩm định của Microsoft, giao thức này được tạo ra để kế vị giao thức LM. Có nhiều cải tiến, 18 NTLM đượ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 giá trị băm NTLM (hay còn gọi là băm NT) là một quá trình đơn giản, nó dựa vào thuật toán băm MD4 để tạo giá trị băm nhờ một loạt các tính toán toán học. Sau khi chuyển đổi mật khẩu sang ký tự Unicode, thuật toán MD4 được sử dụng để tính giá trị băm NT. Trong thực tế, mật khẩu “PassWord123” qua một lần chuyển đổi, sẽ có kết quả là: “67A54E1C9058FCA16498061B96863248”. Thuật toán MD4 được xem là mạnh hơn nhiều so với thuật toán DES vì nó cho phép mật khẩu có độ dài hơn, phân biệt giữa chữ hoa và chữ thường và không chia mật khẩu thành phần nhỏ hơn. Có lẽ phàn nàn lớn nhất với các hàm băm NTLM là Windows không sử dụng kỹ thuật mang tên salting (thêm giá trị phụ). Salting là một kỹ thuật mà trong đó một số ngẫu nhiên được tạo ra để tính toán giá trị băm cho mật khẩu. Điều này có nghĩa là cùng một mật khẩu có thể có hai giá trị giá trị băm khác nhau hoàn toàn, đây thực sự là điều lý tưởng. 1.4.3. Giao thức Kerberos Là một giao thức xác thực mạng [5]. Nó được thiết kế để cung cấp cơ chế xác thực mạnh cho các ứng dụng client/server bằng cách sử dụng mật khẩu khóa bí mật, điều này cung cấp việc xác thực lẫn nhau. Cả máy chủ và người dùng kiểm chứng nhận dạng của nhau. Bản tin được gửi thông qua giao thức Kerberos được bảo vệ chống lại các cuộc tấn công lặp lại và xem trộm. Kerberos sử dụng trung tâm phân phối khóa và cần một bên thứ ba mà cả hai phía tham gia giao dịch tin tưởng. Do đó việc xác thực sẽ bao gồm hai 19 phần riêng biệt: là máy chủ xác thực, và máy chủ cung cấp vé. Kerberos làm việc trên cơ sở của "vé" để chứng minh danh tính của người dùng. 1.5. Một số công cụ dùng để bẻ khóa mật khẩu 1.5.1. pwdump7 và fgdump Pwdump7 [5] là một ứng dụng lấy giá trị băm mật khẩu từ cơ sở dữ liệu SAM. Pwdump7 sẽ trích xuất giá trị băm LM và NTLM của tài khoản người dùng cục bộ từ cơ sở dữ liệu SAM. Một tính năng rất mạnh của pwdump7 là nó có thể vượt qua được chế độ bảo vệ tệp tin SAM. Hình 1.2: pwdump7 trích xuất băm mật khẩu trong Windows. Từ hình 1.2 ta thấy hệ thống đã tắt tính năng băm LM. Tài khoản Administrator có giá trị băm NTLM là: 3DBDE697D71690A769204BEB12283678 Tài khoản Admin có giá trị băm là: 20 704624CF8BBF37EE8B959CCC44AFBBA9 Tài khoản Guest đã bị hệ thống khóa nên không có giá trị băm. Fgdump hoạt động cơ bản là giống với pwdump. Fgdump có đầy đủ tính năng của pwdump và fgdump có khả năng lấy thông tin lưu trữ và cho phép thực hiện từ các mạng từ xa. Hình 1.3: fgdump trích xuất giá trị băm mật khẩu Windows ra tệp tin .txt. 1.5.2. L0phtCrack L0phtCrack [5] là một công cụ được thiết kế để kiểm toán mật khẩu và phục hồi các ứng dụng. Nó được sử dụng để phục hồi mật khẩu đã mất của Windows với từ điển, tấn công lai, bảng cầu vòng, vét cạn và nó cũng được sử dụng để đánh giá độ mạnh của mật khẩu. Các khiếm khuyết về bảo mật đang cố hữu trong hệ thống xác thực mật khẩu của Windows có thể được tiết lộ dễ dàng với công cụ L0phtCrack. Hệ điều hành Windows xác thực dựa trên giao thức mạng LAN Manager, sử dụng xác thực hệ thống gồm 8 byte thách thức (challenge) trả về 24 byte phản ứng (response) trên mạng từ máy khách đến máy chủ trong định dạng thách thức/phản ứng (challenge/response).
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất