Đă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

.DOCX
81
63
131

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ẽ................................................................................................ MỞ ĐẦU...........................................................................................................1 Chương 1. TỔNG QUAN VỀ BẺ KHÓA MẬT KHẨU..............................4 1.1. Bẻ khóa mật khẩu....................................................................................4 1.2. Kỹ thuật bẻ khóa mật khẩu......................................................................5 1.2.1. Tấn công Từ điển..............................................................................5 1.2.2. Tấn công vét cạn...............................................................................6 1.2.3. Tấn công lai.......................................................................................6 1.2.4. Tấn công âm tiết................................................................................6 1.2.5. Tấn công theo quy tắc.......................................................................6 1.3. Các loại tấn công mật khẩu.....................................................................7 1.3.1. Tấn công thụ động trực tuyến...........................................................7 1.3.2. Tấn công chủ động trực tuyến...........................................................7 1.3.3. Tấn công ngoại tuyến........................................................................8 1.3.4. Tấn công phi điện tử.........................................................................8 1.4. Cơ sở lý thuyết xác thực Microsoft.........................................................9 1.4.1. Cơ sở dữ liệu SAM...........................................................................9 EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC 1.4.2. Xác thực NTLM................................................................................9 1.4.2.1. Giá trị băm LM............................................................................10 1.4.2.2. Giá trị băm NTLM........................................................................12 1.4.3. Giao thức Kerberos.........................................................................13 1.5. Một số công cụ dùng để bẻ khóa mật khẩu...........................................13 1.5.1. pwdump7 và fgdump......................................................................13 1.5.2. L0phtCrack......................................................................................15 1.5.3. Ophcrack.........................................................................................16 1.5.4. Cain & Abel....................................................................................17 1.6. Phòng chống tấn công mật khẩu...........................................................18 Chương 2. NGHIÊN CỨU CÔNG NGHỆ GPU VÀ LẬP TRÌNH CUDA......................................................................................22 2.1. Giới thiệu công nghệ GPU....................................................................22 2.1.2. Kiến trúc GPU....................................................................................22 2.1.2.1. Đường ống dẫn đồ họa....................................................................22 2.1.2.2. Tiến hóa của kiến trúc GPU............................................................24 2.1.2.3. Kiến trúc GPU hiện đại...................................................................25 2.1.3. So sánh GPU và CPU.........................................................................27 2.2. Lập trình CUDA....................................................................................29 2.2.1. Giới thiệu về môi trường phát triển CUDA....................................29 2.2.2. Mô hình lập trình.............................................................................31 2.2.2.1. Bộ đồng xử lý đa luồng mức cao..................................................31 2.2.2.2. Gom lô các luồng.........................................................................32 EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC 2.2.2.3. Mô hình bộ nhớ............................................................................33 2.2.2.4. Lập trình không đồng nhất...........................................................34 2.2.3. Thiết lập phần cứng.........................................................................35 2.2.3.1. Kiến trúc SIMT.............................................................................36 2.2.3.2. Phần cứng đa luồng.....................................................................38 2.3. Hướng dẫn thực thi................................................................................39 2.3.1. Chiến lược tối ưu hóa hiệu suất tổng thể........................................39 2.3.2. Tối ưu hóa sử dụng.........................................................................40 2.3.2.1. Mức ứng dụng..............................................................................40 2.3.2.2. Mức thiết bị..................................................................................40 2.3.2.3. Mức bộ đa xử lý...........................................................................41 2.3.3. Tối ưu thông lượng bộ nhớ.............................................................44 2.3.3.1. Truyền dữ liệu giữa máy chủ và thiết bị......................................44 2.3.3.2. Truy cập bộ nhớ thiết bị...............................................................45 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.........................................49 3.1. Bài toán vét cạn tìm mật khẩu Windows..............................................49 3.1.1. Bài toán vét cạn chạy tuần tự..........................................................53 3.1.1.1. Ý tưởng.........................................................................................53 3.1.1.2. Xây dựng bài toán........................................................................53 3.1.2. Bài toán vét cạn chạy trên GPU......................................................55 3.1.2.1. Ý tưởng.........................................................................................55 3.1.2.2. Xây dựng bài toán........................................................................58 EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC 3.2. Mô tả chương trình................................................................................60 3.2.1. Chương trình tuần tự.......................................................................61 3.2.1.1. Mô tả chương trình.......................................................................61 3.2.1.2. Sử dụng chương trình...................................................................62 3.2.2. Chương trình chạy trên GPU..........................................................63 3.2.2.1. Mô tả chương trình......................................................................63 3.2.2.2. Sử dụng chương trình...................................................................63 3.2.3. Một số kết quả chạy thử nghiệm giữa tuần tự và song song...........64 3.2.3.1. Kết quả.........................................................................................64 3.2.3.2. Đồ thị............................................................................................66 KẾT LUẬN VÀ KHUYẾN NGHỊ...............................................................69 1. Kết luận....................................................................................................69 2. Khuyến nghị.............................................................................................69 TÀI LIỆU THAM KHẢO............................................................................70 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 Hình 1.1: Mật khẩu được biến đổi thành giá trị băm LM...............................12 Hình 1.3: pwdump7 trích xuất băm mật khẩu trong Windows.......................14 Hình 1.4: fgdump trích xuất giá trị băm mật khẩu Windows ra tệp tin .txt.. . .14 Hình 1.5: L0phtCrack trích xuất giá trị băm trong tệp tin SAM.....................16 Hình 1.6: Trích xuất giá trị băm từ tệp tin SAM.............................................17 Hình 1.7: Bật hộp thoại Syskey.......................................................................18 Hình 1.8: Các chính sách bảo mật của hệ thống Windows..........................19Y Hình 2.1: So sánh kiến trúc CPU và GPU.......................................................28 Hình 2.2: So sánh floating-point GPU và CPU...............................................28 Hình 2.3: Kiến trúc bộ phần mềm CUDA.......................................................29 Hình 2.4: Các thao tác thu hồi cấp phát bộ nhớ..............................................30 Hình 2.5: Vùng nhớ dùng chung mang dữ liệu gần ALU...............................31 Hình 2.6: Lưới của khối luồng........................................................................33 Hình 2.7: Mô hình bộ nhớ...............................................................................34 Hình 2.8: Lập trình không đồng nhất..............................................................35 Hình 2.9: Luồng SIMD và SIMT....................................................................38 Hình 2.10: 3 warp, 32x3 luồng phần cứng......................................................39 Hình 3.1: Sơ đồ khối chương trình tuần tự......................................................54 Hình 3.2: Sơ đồ khối bài toán trên GPU..........................................................59 Hình 3.3: Chương trình SAMinside để mở tệp tin SAM................................60 Hình 3.4: Kết quả chạy chương trình tuần tự..................................................62 Hình 3.5: Kết quả chương trình chạy trên GPU..............................................63 EBOOKBKMT.COM - CỘNG ĐỒNG KỸ THUẬT CƠ ĐIỆN VMTC DANH MỤC BẢNG BIỂU Bảng 3.1: Kết quả chạy trên GPU và CPU.....................................................64 Bảng 3.2: Kết quả chạy thử nghiệm với số luồng khác nhau trên GPU..........65 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. 1 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,… 2 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 3 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. 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. 4 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 5 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. 6 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. 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ố 7 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ệ 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). 8  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. 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). 9 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 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à 10 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 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ừ 11 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ị 16-byte, 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 4. PASSWOR1 and D1230001 5. E52CAC67419A9A22 and 664345140A852F61 6. E52CAC67419A9A22664345140A852F61
- Xem thêm -

Tài liệu liên quan