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ỹ 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 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 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 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 LỜI CẢM ƠN Những kiến thức luận văn kết ba năm (2013-2016) tơi có may mắn thầy cô giáo trường Học viện Kỹ thuật Quân trực tiếp giảng dậy, đào tạo dìu dắt Tơi xin bày tỏ lời cảm ơn chân thành tới thầy cô giáo 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 tạo điều kiện thuận lợi cho thời gian học tập 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 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 giải vấn đề luận văn Tôi xin cảm ơn anh chị em đồng nghiệp trường Cao đẳng Thống kê ủng hộ giúp đỡ tơi q trình thực luận văn Ln văn xin lời chia vui với người thân, đồng nghiệp, bạn bè 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 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ọ tên học viên: Phạm Văn Sỹ Chun ngành: Khoa học máy tính khóa: 25 Cán hướng dẫn: PGS.TS Nguyễn Hiếu Minh Tên đề tài: Nghiên cứu số kỹ thuật bẻ khóa mật thử nghiệm GPU Tóm tắt: Luận văn nghiên cứu hai phần nghiên cứu tổng quan mật Windows, số phương pháp cơng mật khẩu, cách thức phòng chống cơng mật Windows Hai nghiên cứu công nghệ GPU, lập trình CUDA Từ nghiên cứu tác giả luận văn áp dụng phương pháp vét cạn, sử dụng thuật tốn song song tính giá trị băm chạy GPU để tìm mật Windows giúp giảm thiểu thời gian tìm mật MỞ ĐẦU Nhu cầu tính tốn lĩnh vực khoa học, cơng nghệ ngày cao trở thành thách thức lớn Từ giải pháp nhằm tăng tốc độ tính toán đời, từ năm 2001 đến năm 2003 tốc độ Pentium đă tăng gấp đôi từ 1.5GHz lên đến 3GHz Tuy nhiên hiệu CPU (Central Processing Unit) không tăng tương xứng mức gia tăng xung CPU việc gia tăng tốc độ xung CPU nhanh chóng chạm phải ngưỡng tối đa mà cụ thể khoảng thời gian năm từ năm 2003 đến năm 2005 tốc độ CPU tăng từ 3GHz lên 3.8GHz Trong trình tăng tốc độ xung CPU nhà sản xuất gặp phải vấn đề nhiệt độ CPU Các cơng nghệ làm mát khơng đáp ứng bề mặt tiếp xúc CPU ngày nhỏ Trước tình hình này, 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 chế xử lý song song máy tính nhằm tăng hiệu tiết kiệm lượng Một công nghệ xử lý song song đời GPU (Graphics Processing Unit - xử lý đồ họa) Ban đầu, việc chế tạo GPU với mục đích cơng việc phù hợp với khả tăng tốc độ xử lý đồ họa, ngành trò chơi chủ yếu Tuy nhiên ngày với công nghệ CUDA phát triển hãng NVIDIA cho phép thực tính tốn song song với phép tính phức tạp dấu chấm động Với hiệu suất ngàn lệnh thời điểm Chính xu hướng nghiên cứu đời phát triển thuật toán song song thực GPU Với CUDA, lập trình viên nhanh chóng phát triển ứng dụng song song nhiều lĩnh vực khác như: Điện tốn, xếp, tìm kiếm, xử lý tín hiệu số, ảnh,… CUDA công cụ phát triển phần mềm GPU xây dựng ngơn ngữ lập trình C Với CUDA lập trình viên dùng để điều khiển GPU để xử lý, tính tốn song song liệu lớn Mật hàng phòng thủ chống lại tội phạm mạng, tội phạm hệ thống, hầu hết người dùng chọn mật dựa thông tin có sẵn, dẫn đến lượng lớn tài khoản tài khoản người dùng có nguy có bị chiếm đoạt dựa vào số suy đoán đơn giản logic điều giúp cho kẻ công mật giới hạn số ký tự tạo mật dễ dàng chiếm đoạt tài khoản người dùng Bên cạnh có nhiều người dùng đặt mật chưa đủ mạnh Kẻ công lợi dụng thói quen người dùng kết hợp với công cụ xử lý thiết bị có tốc độ tính tốn cao GPU để dò tìm mật Xuất phát từ ưu điểm GPU tầm quan trọng mật chọn đề tài: “Nghiên cứu số kỹ thuật bẻ khóa mật thử nghiệm GPU” Luận văn gồm chương: Chương 1: Tổng quan bẻ khóa mật khẩu, chương nghiên cứu kiến thức tổng quan mật khẩu, số phương pháp công mật Windows cách thức phòng chống cơng mật Windows Chương 2: Nghiên cứu cơng nghệ GPU lập trình CUDA, chương nghiên cứu hai phần nghiên cứu kiến thức công nghệ GPU, khác GPU CPU Hai nghiên cứu lập trình CUDA Chương 3: Xây dựng ứng dụng bẻ khóa mật dựa lập trình song song GPU, sở kiến thức trình bày hai chương trên, tác giả luận văn tiến hành cài đặt thử nghiệm mô tốn CPU GPU Chương trình tác giả luận văn xây dựng với mục đích nghiên cứu, học hỏi mong muốn giúp người sử dụng lấy lại mật trường hợp người dùng bị quên mật khẩu, người dùng bị chiếm đoạt tài khoản bị thay đổi mật đăng nhập vào Windows Tác giải luận văn lên án hành vi lợi dụng chương trình bẻ khóa mật Windows vào mục đích trái pháp luật 10 Chương TỔNG QUAN VỀ BẺ KHĨA MẬT KHẨU Nội dung chương 1sẽ nghiên cứu kiến thức tổng quan mật hệ điều hành Windows, kỹ thuật phương pháp công mật Windows, cách thức phòng chống cơng mật Windows 1.1 Bẻ khóa mật Bẻ khóa mật trình khơi phục mật từ liệu truyền hệ thống máy tính lưu giữ Mục đích việc bẻ mật giúp người dùng khơi phục mật bị quên bị mất, sử dụng để truy cập trái phép vào hệ thống [5] Mật phần quan trọng thông tin cần thiết để truy cập vào hệ thống Do đó, hầu hết kẻ công sử dụng kỹ thuật bẻ mật để truy cập trái phép vào hệ thống làm cho hệ thống dễ bị tổn thương, không hoạt động Mật bị bẻ khóa công cụ tự động từ điển phương pháp vét cạn Các chương trình bẻ khóa mật có chức kiểm tra số lượng mật giây Thông thường người dùng tạo mật khẩu, chọn mật dễ mắc phải mật yếu sử dụng tên vật cưng lựa chọn mật đơn giản để dễ nhớ Hầu hết kỹ thuật bẻ mật thành công mật yếu dễ dàng đoán Mật phức tạp đóng vai trò quan trọng việc cải thiện an ninh chống lại cơng Nó yếu tố quan trọng mà người dùng nên đảm bảo tạo mật Mật khơng nên đơn giản mật đơn giản dễ bị công Các mật chọn nên ln ln phức tạp, dài khó nhớ Các mật mà bạn thiết lập cho tài khoản phải đáp ứng yêu cầu thiết lập phức tạp Mật ký tự phải kết hợp ký tự chữ số Chữ số ký tự bao gồm chữ cái, số, dấu chấm câu, 61 Từ hạn chế thời gian sử dụng phương pháp vét cạn chạy để tìm mật Windows Chính để rút ngắn thời gian tìm mật khẩu, tác giả luận văn chuyển hướng sang nghiên cứu sử dụng phương pháp vét cạn tìm mật Windows xử lý song song GPU Ý tưởng đưa thay sinh mật tính giá trị băm NTLM so sánh với chuỗi giá trị băm trích xuất từ tệp tin SAM ta tính giá trị băm NTLM đồng loạt nhóm gồm n mật khẩu, thu nhóm n giá trị băm so sánh đồng loạt n giá trị băm tính với giá trị băm trích xuất từ tệp tin SAM để tìm mật Do thời gian tìm mật so với chương trình giảm nhiều Lúc vòng thuật tốn MD4 sử dụng để tính giá trị băm NTLM thành: Với 0=< i