Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
54
Dung lượng
2,28 MB
Nội dung
MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN LỜI CAM ĐOAN DANH MỤC HÌNH VẺ DANH MỤC TỪ VIẾT TẮT DANH MỤC HÌNH VẼ DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tên đầy đủ API Application Programming Interface CTSS Compatible Time Sharing System MIT Massachusetts Institute of Technology NOP No operation OTP One time password LỜI MỞ ĐẦU Trong thời đại công nghệ thông tin hiện nay ngoài sự phát triển của các công nghệ mới, các kỹ thuật tiên tiến hiện đại, các sản phẩm phần cứng .v.v. thì sự phát triển của sản phẩm phần mềm cũng không ngoại lệ nó phát triển sao cho phù hợp với nhu cầu của thời đại, sự cạnh tranh giữa các sản phẩm phần mềm. Đặc biệt là nhu cầu của người sử dụng với sự phát triển những tính năng mới, lẫn giao diện thì việc phát triển các mức độ bảo vệ cho phần mềm cũng rất quan trọng.Các mức độ bảo vệ này đảm bảo cho sự sử dụng hợp lệ của những sản phẩm phần mềm, lợi ích của người phát triển chúng. Bên cạnh đó thì có những người có những kỹ năng am hiểu hệ thống, và phát triển phần mềm thì họ tìm cách vượt qua những mức độ bảo vệ của nhà sản xuất phần mềm. Nó là một quá trình phát hiện ra các công nghệ cơ bản của một đối tượng hay một hệ thống thông qua việc phân tích cấu trúc ,chức năng và cách vận hành của chúng và kỹ thuật đó được gọi là kỹ thuật đảo ngược. Chính vì những lý do trên em đã chọn đề tài “TÌM HIỂU VỀ CRACK PASSWORD CHO SẢN PHẨM PHẦN MỀM” để nghiên cứu và thực hiện khóa luận tốt nghiệp lần này. Nội dung khóa luận tốt nghiệp bao gồm ba chương: • Chương 1: Giới thiệu tổng quan về bảo mật phần mềm qua password. • Chương 2: Giới thiệu khái quát về phần mềm và các phương thức bẻ khóa phần mềm. • Chương 3: Thử nghiệm Crack password với Ollydbg và demo một số chương trình đơn giản. CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ BẢO MẬT PHẦN MỀM QUA PASSWORD 1.1 CÁC VẤN ĐỀ VỀ PASSWORD 1.1.1 Khái niệm password Mật khẩu thường là một xâu, chuỗi, loạt các kí tự mà dịch vụ Internet, phần mềm, hệ thống máy tính yêu cầu người sử dụng nhập vào bằng bàn phím trước khi có thể tiếp tục sử dụng một số tính năng nhất định. Mật khẩu có thể đi cặp với tên truy nhập khi hệ thống cần phân biệt các người sử dụng khác nhau 1.1.2 Các dạng password 1.1.2.1 Mật khẩu truyền thống Công nghệ bảo mật bằng mật khẩu (password) đã được áp dụng từ những ngày đầu tiên khi máy tính xuất hiện.Năm 1961, viện công nghệ MIT cho ra mắt một trong những hệ thống chia sẻ đầu tiên trên thế giới – CTSS – cùng với hệ thống mật khẩu sơ khai bao gồm lệnh LOGIN, yêu cầu người dùng nhập vào mật khẩu.Sau khi nhập lệnh PASSWORD, người dùng sẽ phải nhập tiếp mật khẩu của mình để được hệ thống xác nhận. Cũng trong thập niên 1960, công nghệ bảo mật bằng mật khẩu dần được hoàn thiện thành dạng password được sử dụng phổ biến nhất cho đến ngày nay: alpha – numeric password, tức mật khẩu dưới dạng một chuỗi các chữ cái và chữ số. Bất kỳ chuỗi ký tự nào cũng có thể trở thành mật khẩu, nhưng người dùng được khuyến cáo nên đặt mật khẩu của mình phức tạp đủ để không bị người khác đoán ra.Mật khẩu càng phức tạp, khó đoán thì độ bảo mật càng cao.Tuy nhiên, độ phức tạp của mật khẩu cũng tỉ lệ nghịch với việc người dùng có thể nhớ chúng một cách dễ dàng. Ngoài việc khó có thể tự đặt ra một mật khẩu đủ khó để không bị người khác đoán ra nhưng cũng phải đủ dễ để chính bản thân người dùng có thể ghi nhớ, alpha – numberic password còn phải đối mặt với các cuộc tấn công chiếm password và các chương trình đánh cắp mật khẩu Dạng tấn công phổ biến nhất là tấn công tra cứu từ điển (dictionary attack) phương thức này hiểu đơn giản là kiểu đoán mật khẩu với các cụm từ có nghĩa thường được nhiều người chọn dùng làm mật khẩu (thay vì các chuỗi ký tự ngẫu nhiên như được khuyến cáo), kẻ tấn công sẽ dùng chương trình tự động thử tất cả các từ có nghĩa trong từ điển để bẻ khóa password. Ngoài ra còn có hàng trăm chương trình keylogger được sử dụng để ghi nhận quá trình nhập password của nạn nhân rồi tự động gửi thông tin về cho kẻ có ý muốn đánh cắp password đó.Hoặc kiểm tra cứu từng ký tự trong mật khẩu (brute-force attack), chương trình sẽ tự động dò tìm từng ký tự trong chuỗi mật khẩu. Tuy dạng brute-force attack có tỉ lệ phá mật khẩu cao nhưng nếu người dùng sử dụng các loại mật khẩu bao gồm nhiều ký tự chữ và số xen lẫn ký tự đặc biệt thì có thể phải mất nhiều năm mới có thể tìm ra chuỗi mật khẩu hoàn thiện (Ví dụ: n$W0k1J^57$h@k3R mật khẩu được cho là có tính bảo mật cao nhưng lại khó nhớ). Trước sự đe dọa của các chương trình đánh cắp mật khẩu, việc phát minh ra nhiều dạng password mới thay thế cho kiểu truyền thống là hết sức cần thiết, và mật khẩu hình ảnh cùng với mật khẩu một lần là 2 trong số những số ấy. 1.1.2.2 Mật khẩu dạng hình ảnh Về cơ bản, con người có xu hướng ghi nhớ các thông tin dưới dạng hình ảnh dễ dàng hơn thông tin dưới các dạng khác.Chúng ta có thể gặp khó khăn khi phải nhớ một chuỗi 50 ký tự, nhưng lại dễ dàng nhớ gương mặt của những người ta đã gặp, những nơi ta đã đến và những thứ ta đã thấy.Dựa vào đặc điểm này, người ta đã tạo ra mật khẩu hình ảnh (graphical password). Để đăng nhập vào một website hay hệ thống được bảo mật bằng graphical password, thay vì phải nhập một chuỗi ký tự như ở alpha – numberic password, người dùng sẽ được yêu cầu ấn chuột vào 4 điểm trên bức ảnh mà hệ thống đưa ra.Bốn điểm này chính là mật khẩu mà họ đã xác định và ghi nhớ trong quá trình tạo mật khẩu. Dĩ nhiên người dùng cũng có thể chọn số lượng điểm bí mật nhiều hơn 4 để tăng độ bảo mật. Hình 1.1 Nhập mật khẩu qua hình ảnh Ở một hình thức khác, người dùng sẽ chọn và ghi nhớ 4 hoặc nhiều hơn các biểu tượng trong quá trình tạo password và chọn lại chúng trong hàng loạt biểu tượng được sắp xếp ngẫu nhiên và thay đổi trong quá trình đăng nhập. Hình 1.2 Chọn mật khẩu qua hình ảnh Một thuật toán khác: khi đăng ký tài khoản, người dùng sẽ tạo password bằng cách chọn các biểu tượng do máy chủ cung cấp. Khi đăng nhập, những biểu tượng này sẽ được thu nhỏ và xoay theo các chiều khác nhau, người dùng lúc này sẽ phải nhận ra biểu tượng mà mình đã chọn, sau đó nhập vào ô password những ký tự hiện bên dưới biểu tượng đó. Giải pháp này khá mất thời gian nên vẫn còn đang trong giai đoạn thăm dò ý kiến người dùng. Hình 1.3 Chọn mật khẩu qua biểu tượng Điểm mạnh của graphical password là dễ nhớ mà mức độ bảo mật lại cao vì hacker không thể sự dụng cách tấn công từ điển để đánh cắp mật khẩu và các chương trình keylogger cũng trở nên vô dụng vì các biểu tượng được xáo trộn ngẫu nhiên mỗi lần đăng nhập.Tuy nhiên bạn cũng có thể bị lộ password nếu người khác quan sát và ghi nhớ các biểu tượng cũng như điểm ảnh bạn chọn mỗi lần đăng nhập. 1.1.2.3 Mật khẩu dùng một lần duy nhất Nguyên lý hoạt động của mật khẩu một lần (One time password - OTP) như sau: sau khi đã đăng ký dịch vụ, mỗi lần muốn đăng nhập, người dùng sẽ được cung cấp một mật khẩu tạo ra bởi đầu đọc và thẻ thông minh hay thiết bị tạo mật khẩu cầm tay (token) nhờ vào kết nối internet với máy chủ của dịch vụ cung cấp OTP hoặc cũng có thể thông qua thẻ OTP in sẵn hhay điện thoại di động mà không cần đến kết nối internet. Mật khẩu này sẽ tự mất hiệu lực sau khi người dùng đăng xuất (log out) ra khỏi hệ thống.Như vậy, nếu bạn bị lộ mật khẩu thì người có được mật khẩu đó cũng không thể dùng được, và do đó giải pháp OTP có tính bảo mật rất cao. Hình 1.4 Tạo mật khẩu mới trong quá trình đăng nhập Quá trình tạo mật khẩu mới sẽ lặp lại mỗi lần người dùng đăng nhập vào hệ thống được bảo mật bằng OTP.Công nghệ OTP được dùng nhiều trong chứng thực trực tuyến (thương mại trực tuyến).Hiện nay người dùng các thiết bị cầm tay như iPhone, Blackberry cũng có thể tự cài đặt cơ chế bảo mật OTP bằng các chương trình như VeriSign, RSA SecureID hay SafeNet MobilePASS. 1.1.3 Tầm quan trọng của password Có rất nhiều lý do để sử dụng mật khẩu. Dưới đây là một số lý do phổ biến: • Để ngăn chặn truy cập trái phép đến thông tin quan trọng. • Để đảm bảo an ninh thông tin cá nhân. • Để ngăn chặn nguy cơ trái phép truy cập vào tài khoản người dùng, chẳng hạn như máy tính và tài khoản email. • Để có thể sử dụng một số dịch vụ Internet khác nhau một cách an toàn. 1.2 CÁC LOẠI PROTECTION CƠ BẢN CỦA PHẦN MỀM Một Software sau khi được đưa vào mục đích thương mại thì luôn được xử lý nhằm tránh việc ăn cắp bản quyền (license) gây thiệt hại cho nhà sản xuất. Thế nhưng việc xử lý này được tiến hành như thế nào.Nó là 1 module nhỏ trong nhằm xác định tính chủ quyền những ai đã mua Software.Module này có rất nhiều hình thức biến hóa nhằm ngăn chặn đến mức tối đa việc xâm phạm bản quyền (bao gồm việc sử dụng softwares ở mức độ không được sự đồng ý của nhà sản xuất, hoặc ăn cắp các giải thuật để code lại một Software khác cạnh tranh, v v). 1.2.1 Registration Number (Serial-Number) Protection Những chương trình sử dụng loại này yêu cầu người sử dụng nhập vào một Registration-Number để đăng ký.Có nhiều loại Registration-Number bao gồm: • Registration-Number luôn luôn giống nhau. • Registration-Number thay đổi dựa vào các thông tin nhập vào như tên công ty,tên người sử dụng v.v • Registration-Number thay đổi dựa vào máy người dung. • Registration-Number được bảo vệ trong các chương trình được viết bằng Visual Basic hoặc Borland Delphi. • Registration-Number được kiểm tra online. 1.2.1.1 Registration Number không đổi Một chương trình được bảo vệ bằng phương pháp này yêu cầu người dung nhập vào một số đăng ký như hình trên: Hình 1.5 Registration-Number không đổi Tiện lợi của phương pháp bảo vệ này so với các kỹ thuật bảo vệ Registration-Number khác là correct Registration-Number không cần lưu trong bộ nhớ rồi đem so sánh với Registration-Number được nhập vào mà cả hai sẽ được XORed hoặc tính toán rồi lấy hai kết quả đó để so sánh với nhau.Dĩ nhiên là các lập trình viên có thể sử dụng các phép tính [...]... thải và rơi vào quyên lãng, ngược lại phần mềm nào chất lượng tốt sẽ được nhiều người sử dụng Khi một phần mềm đã nổi tiếng thì tất nhiên người viết ra nó sẽ tính đến việc kinh doanh Và cũng từ đây phần mềm được chia thành hai nhóm chính: • • Phần mềm miễn phí (Freeware) Phần mềm thu phí (Shareware, Trial) 2.1.1 Phần mềm miễn phí Đúng như tên gọi những gói phần mềm phí sau khi cài đặt người dùng sẽ... nào để được sử dụng lâu dài.Ngoài ra một số phần mềm miễn phí còn được công khai mã nguồn để cộng đồng cùng phát triển.Những phần mềm này được gọi là phần mềm mã nguồn mở (OpenSource) 2.1.2 Phần mềm thu phí Khác hẳn với trên, các phần mềm thu phí sau khi được cài đặt vào máy (hoặc sử dụng một thời gian) người dùng phải bỏ tiền để sử dụng Những lúc này, phần mềm được lập trình sẽ đòi bạn nhập một đoạn... (Serial) để xác minh là đã mua từ tác giả Nếu không nhập chính xác được mã đăng kí, phần mềm sẽ khóa một số chức năng lại, hay gây khó chịu khi sử dụng, hoặc tệ hơn nữa là phần mềm sẽ không chạy Để không muốn trả tiền một số người đã tìm cách bẻ khóa (biến phần mềm thu phí thành phần mềm miễn phí) 2.2 CÁCH THỨC BẺ KHÓA PHẦN MỀM Như đã nói ở trên module Protect license có nhiều loại biến khác nhau và... ra phần mềm này Vì đã biết được các tạo mã nên những phần mềm này có thể cung cấp cho bạn rất nhiều mã Serial khác nhau 2.2.2.2 Cách sử dụng Khởi chạy phần mềm, sau khi điền thông tin cần thiết ấn nút Generate (đa số là vậy) để phần mềm sinh mã Sử dụng đoạn mã vừa được sinh ra để đăng kí Hình 2.3 Keygen của chương trình tăng tốc download Ngoài ra có một số loại Keygen, khi tiến hành lấy mã, phần mềm. .. khác nhau nên vô khối các loại phần mềm được viết ra, chất lượng giữa chúng cũng hoàn toàn khác nhau Lấy một ví dụ như: Trong việc chơi nhạc có phần mềm chạy chậm chạp, chất lượng âm thanh không hay, nhưng lại có phần mềm chạy nhẹ máy, chất lượng âm thanh mượt Tuyệt hơn nữa có phần mềm ngoài chơi nhạc tốt lại có thêm nhiều chức năng khác như thu âm, xử lý nhạc… Phần mềm có chất lượng kém sẽ dần bị... File thì hãy trỏ đến File chạy của phần mềm cần bẻ khóa (thường là file thực thi của phần mềm exe) Hình 2.4 Tiến hành lấy mã của của một số loại keygen Riêng với KeyMaker, một số trường hợp bạn phải copy KeyMaker vào nơi cài đặt phần mềm, sau đó chạy file KeyMaker Nó sẽ sinh ra 1 file đuôi REG, hãy chạy file đuôi REG này để bẻ khóa phần mềm 2.2.2.3 Lưu ý Các phần mềm bẻ khóa dạng này tương đối an toàn... thể chứa codes cho việc giải mã các chức năng ngay trong memory.Hầu như không thể gỡ bỏ protection này mà không có key, đặc biệt nó được mã hóa tốt Tuy nhiên Hardware-Key chỉ được sử dụng để blocked hay được Unblocked thì các crackers sẽ dễ dàng gỡ bỏ protection này thậm chí không dùng tới Hardware-Key CHƯƠNG 2 CÁC PHƯƠNG THỨC BẺ KHÓA PHẦN MỀM 2.1 GIỚI THIỆU CHUNG VỀ PHẦN MỀM Phần mềm được khái quát... chẳng mấy chốc hàng nghìn, hàng vạn người biết Hình 2.1 Serial cho một phần mềm Để tìm những mã đăng kí này, chúng ta chỉ cần lên Internet, tìm kiếm trong vào các trang Web, Forum, Blog… chuyên cung cấp phần mềm bẻ khóa Bạn cũng nên chú ý đến những file Text (thường được đặt tên như: Serial.txt, Help.txt, Number.txt…) được kèm theo phần mềm để xem có mã đăng kí ở đó không Hình 2.2 Serial nằm trong những... download 2.2.5.2 Cách sử dụng Cách sử dụng thông thường của các phần mềm Patch là copy nó vào thư mục cài đặt phần mềm Sau đó chạy phần mềm Patch, chọn nút Patch (tùy vào chương trình) Kết quả sẽ hiện lên sau khi Patch xong Khi tiến hành Patch nếu hiện ra một cửa sổ chọn File, thì hãy chọn file chạy của phần mềm cần Patch Chú ý là phải tắt phần mềm trước khi sử dụng Patch vì không thể tác động vào 1 tập tin... và biến phần mềm thành đã được đăng kí Hình 2.5 File đăng ký của chương trình Ngoài ra cũng có tác giả không cần dùng file REG mà viết hẳn một phần mềm để thêm thông tin vào Regedit của Windows Hình 2.6 Phần mềm them thông tin vào Regedit 2.2.3.2 Cách sử dụng Đối với File REG bạn khởi chạy, chọn Yes khi có bảng thông báo là được Hình 2.7 Khi đăng ký một chương trình bằng file reg Đối với phần mềm, công . “TÌM HIỂU VỀ CRACK PASSWORD CHO SẢN PHẨM PHẦN MỀM” để nghiên cứu và thực hiện khóa luận tốt nghiệp lần này. Nội dung khóa luận tốt nghiệp bao gồm ba chương: • Chương 1: Giới thiệu tổng quan về. Giới thiệu tổng quan về bảo mật phần mềm qua password. • Chương 2: Giới thiệu khái quát về phần mềm và các phương thức bẻ khóa phần mềm. • Chương 3: Thử nghiệm Crack password với Ollydbg và demo. cứng .v.v. thì sự phát triển của sản phẩm phần mềm cũng không ngoại lệ nó phát triển sao cho phù hợp với nhu cầu của thời đại, sự cạnh tranh giữa các sản phẩm phần mềm. Đặc biệt là nhu cầu của