Khoá và mở khoá tập tin Excel Trần Thanh Phong (ttphong2007 – GPE) 1 Khoá và mở khoá tập tin Excel Vần đề bảo mật cho các tập tin Excel và các mã VBA đã được thảo luận nhiều trên GPE. Bài viết này mình xin tập hợp lại các thông tin từ GPE và nhiều nguồn khác về vấn đề này. Hy vọng bài viết sẽ giúp ích cho các bạn có cái nhìn khái quát hơn về vấn đề nhạy cảm “khoá” và “mở khoá” tập tin, rất mong nhận được sự góp ý và bổ sung của các bạn để tài liệu được hoàn chỉnh. Nội dung 1. Một số lưu ý chung ............................................................................................................................. 2 a. Những gì làm mật mã của bạn mạnh? ......................................................................................... 2 b. Cải thiện việc quản lý mật mã ....................................................................................................... 2 c. Loại bỏ các thông tin nhạy cảm ẩn trong Workbook (Excel 2007) ............................................... 2 2. Một số công cụ và tiện ích ................................................................................................................. 5 a. Tiện ích tạo và quản lý mật mã miễn phí ...................................................................................... 5 b. Free Hex Editor ............................................................................................................................. 7 c. WinHex (mạnh nhưng cần phải mua) ........................................................................................... 8 d. Protect VBA (có bản quyền).......................................................................................................... 9 e. Remove VBA Protection (có bản quyền) .................................................................................... 10 f. Advanced Office Password Recovery (có bản quyền) ............................................................... 10 g. Advanced Office Password Breaker (có bản quyền) .................................................................. 11 h. Advanced VBA Password Recovery (có bản quyền) .................................................................. 12 i. Office Key (có bản quyền)........................................................................................................... 13 j. Dịch vụ giải mã trực tuyến (có bản quyền) ................................................................................. 14 3. Khoá (Lock)........................................................................................................................................ 15 3.1. Đặt mật mã khi mở và hiệu chỉnh Workbook .............................................................................. 15 3.2. Bảo vệ sheet và các đối tượng trên sheet/ workbook................................................................. 18 a. Bảo vệ các thành phần của worksheet ....................................................................................... 18 b. Bảo vệ các thành phần của workbook ........................................................................................ 22 c. Bảo vệ các thành phần của Shared Workbook........................................................................... 24 d. Qui định các người dùng được phép nhập liệu/ hiệu chỉnh trên worksheet đang được bảo vệ 25 3.3. Đặt mật mã cho VBProject .......................................................................................................... 28 3.4. Tạo Project is unviewable ........................................................................................................... 30 a. Dùng phần mềm chuyên dụng .................................................................................................... 30 b. Sử dụng bug khi dùng tính năng Shared Workbook ................................................................... 31 c. Dùng công cụ Hex Editor ............................................................................................................ 36 4. Mở khoá (Unlock) .............................................................................................................................. 39 4.1. Mật mã mở/ hiệu chỉnh Workbook, Sheet, VBAProject .............................................................. 39 a. Dùng Advanced Office Password Recovery ............................................................................... 39 b. Dùng Office Key .......................................................................................................................... 41 c. Dùng Add-Ins miễn phí Erlandsen Data Consulting ................................................................... 43 4.2. Gỡ bỏ Project is unviewable ....................................................................................................... 45 a. Dùng phần mềm ngoài ................................................................................................................ 45 b. Đọc mã nguồn VBAProject đã Project is unviewable bằng OpenOffice ..................................... 46 c. Dùng công cụ Hex Editor ............................................................................................................ 48 5. Lời kết ................................................................................................................................................ 50
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 1
Khoá và mở khoá tập tin Excel
Vần đề bảo mật cho các tập tin Excel và các mã VBA đã được thảo luận nhiều trên GPE. Bài viết này mình xin tập hợp lại các thông tin từ GPE và nhiều nguồn khác về vấn đề này. Hy vọng bài viết sẽ giúp ích cho các bạn có cái nhìn khái quát hơn về vấn đề nhạy cảm “khoá” và “mở khoá” tập tin, rất mong nhận được sự góp ý và bổ sung của các bạn để tài liệu được hoàn chỉnh.
Nội dung 1. Một số lưu ý chung ............................................................................................................................. 2
a. Những gì làm mật mã của bạn mạnh? ......................................................................................... 2 b. Cải thiện việc quản lý mật mã ....................................................................................................... 2 c. Loại bỏ các thông tin nhạy cảm ẩn trong Workbook (Excel 2007) ............................................... 2
2. Một số công cụ và tiện ích ................................................................................................................. 5
a. Tiện ích tạo và quản lý mật mã miễn phí ...................................................................................... 5 b. Free Hex Editor ............................................................................................................................. 7 c. WinHex (mạnh nhưng cần phải mua) ........................................................................................... 8 d. Protect VBA (có bản quyền) .......................................................................................................... 9 e. Remove VBA Protection (có bản quyền) .................................................................................... 10 f. Advanced Office Password Recovery (có bản quyền) ............................................................... 10 g. Advanced Office Password Breaker (có bản quyền) .................................................................. 11 h. Advanced VBA Password Recovery (có bản quyền) .................................................................. 12 i. Office Key (có bản quyền) ........................................................................................................... 13 j. Dịch vụ giải mã trực tuyến (có bản quyền) ................................................................................. 14
3.1. Đặt mật mã khi mở và hiệu chỉnh Workbook .............................................................................. 15 3.2. Bảo vệ sheet và các đối tượng trên sheet/ workbook................................................................. 18
a. Bảo vệ các thành phần của worksheet ....................................................................................... 18 b. Bảo vệ các thành phần của workbook ........................................................................................ 22 c. Bảo vệ các thành phần của Shared Workbook ........................................................................... 24 d. Qui định các người dùng được phép nhập liệu/ hiệu chỉnh trên worksheet đang được bảo vệ 25
3.3. Đặt mật mã cho VBProject .......................................................................................................... 28 3.4. Tạo Project is unviewable ........................................................................................................... 30
a. Dùng phần mềm chuyên dụng .................................................................................................... 30 b. Sử dụng bug khi dùng tính năng Shared Workbook ................................................................... 31 c. Dùng công cụ Hex Editor ............................................................................................................ 36
4.1. Mật mã mở/ hiệu chỉnh Workbook, Sheet, VBAProject .............................................................. 39 a. Dùng Advanced Office Password Recovery ............................................................................... 39 b. Dùng Office Key .......................................................................................................................... 41 c. Dùng Add-Ins miễn phí Erlandsen Data Consulting ................................................................... 43
4.2. Gỡ bỏ Project is unviewable ....................................................................................................... 45 a. Dùng phần mềm ngoài ................................................................................................................ 45 b. Đọc mã nguồn VBAProject đã Project is unviewable bằng OpenOffice ..................................... 46 c. Dùng công cụ Hex Editor ............................................................................................................ 48
5. Lời kết ................................................................................................................................................ 50
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 2
1. Một số lưu ý chung
a. Những gì làm mật mã của bạn mạnh?
Tất nhiên, khó khăn là tạo một mật mã mà bạn có thể nhớ, nhưng bất kỳ người nào khác sẽ khó đoán. Dưới đây là một số nguyên tắc chung để giúp bạn xây dựng các mật mã tốt hơn:
Những điều nên làm khi tạo mật mã
Tạo các mật mã dài (ít nhất là tám ký tự) Bao gồm các chữ cái viết thường và viết hoa, các chữ số, và các ký hiệu Sử dụng ít nhất một ký hiệu trong vị trí thứ hai đến thứ sáu Sử dụng ít nhất bốn ký tự khác nhau (không nhắc lại cùng các ký tự) Sử dụng các chữ cái và chữ số ngẫu nhiên
Những điều không nên làm khi tạo mật mã
Không sử dụng tất cả hoặc một phần của tên đăng nhập Không sử dụng một từ có nghĩa trong bất kỳ ngôn ngữ nào Không sử dụng các chữ số thay thế các chữ cái tương tự để tạo ra một từ Không sử dụng các chữ cái hoặc chữ số liên tiếp (ví dụ, "abcdefg" hoặc "234567") Không sử dụng các phím cạnh nhau trên bàn phím của bạn (ví dụ, "qwerty")
b. Cải thiện việc quản lý mật mã
Bạn sẽ ngạc nhiên với việc một số người viết ra mật mã bí mật của họ, và dán nó lên màn hình hoặc cất nó vào trong ngăn kéo bàn cạnh máy tính của họ. Đây là một số nguyên tắc để giúp bạn quản lý các mật mã của bạn một cách an toàn hơn:
Những điều nên làm khi quản lý mật mã
Giữ bí mật mật mã của bạn Sử dụng các mật mã khác nhau cho các trang web khác nhau Thay đổi các mật mã của bạn ít nhất sáu tháng một lần
Những điều không nên làm khi quản lý mật mã
Không viết nó ra Không sử dụng các tính năng "remember my password" (nhớ mật mã của tôi) trên các trình
duyệt web
c. Loại bỏ các thông tin nhạy cảm ẩn trong Workbook (Excel 2007)
Khi bạn tạo một bảng tính mới thì Excel tự động ghi thêm một số thông tin có trong máy tính đang sử dụng và đôi khi bạn không muốn lộ các thông này khi gửi tập tin cho người khác. Trong Excel 2007 có sẵn tính năng để loại bỏ các thông tin nhạy cảm này: Trước khi lưu tập tin bạn chọn nút Office | Prepare | Inspect Document
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 3
Chọn nút Inspect
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 4
Nhấn các nút Remove All để loại bỏ các thông tin ẩn. Sau đó nhấn nút Close và lưu tập tin.
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 5
2. Một số công cụ và tiện ích
a. Tiện ích tạo và quản lý mật mã miễn phí
KeePass Password Safe - http://keepass.info/
KeePass là phần mềm quản lý và tạo mật mã an toàn miễn phí/ mã nguồn mở. Chúng ta có thể lưu trữ tất cả loại mật mã trong một CSDL và chỉ cần nhớ một khoá chủ để truy cập CSDL và xem tất cả các mật mã khác. CSDL được mã hoá bẳng giải thuật AES và Twofish. Một số tính nặng của phần mềm: - Khả năng bảo mật cao - Hỗ trợ nhiều người dùng - Portable và không cần cài đặt - Xuất danh sách mật mã ra tập tin dạng TXT, HTML, XML và CSV - Nhập danh sách mật mã từ nhiều loại tập tin khác - Dễ dàng chuyển đổi sang các CSDL - Hỗ trợ Password Groups - Cho phép qui định ngày hết hạn và đính kèm tập - Kiểm soát bộ nhớ Windows: khi chép dữ liệu vào bộ nhớ sẽ tự động xoá sau 1 thời gian qui
Free Hex Editor là công cụ miễn phí hỗ trợ chỉnh sửa tài liệu dưới dạng mã nhị phân (binary) và thập lục phân (hex) chạy trên nền Windows. Chương trình cho phép mở nhiều cửa sổ đồng thời, mở nhiều tập tin, multi, có chức năng tìm kiếm và thay thế.
WinHex là một phần mềm biên tập mã hex phổ dụng, đặc biệt hữu dụng cho máy tính của bạn, có khả năng phục hồi dữ liệu, xử lý dữ liệu cấp thấp, và bảo mật. Là một phần mềm cao cấp dùng cho hàng ngày và các trường hợp khẩn cấp: kiểm tra và biên tập tất cả các kiểu tập tin, phục hồi những tập tin bị xóa hay dữ liệu bị mất mát từ đĩa cứng với cả những hệ thống tập tin bị hư hại hay từ thẻ nhớ của máy quay phim kĩ thuật số. Những tính năng bao gồm:
- Biên tập đĩa dùng cho đĩa cứng, đĩa mềm, CD-ROM & DVD, ZIP, Smart Media, Compact Flash, ...
- Trình duyệt thư mục mạnh mẽ cho FAT, NTFS, Ext2/3, ReiserFS, CDFS, UDF - Trình biên tập RAM, cung cấp truy xuất đến những bộ nhớ ảo của những tiến trình khác - Thông dịch dữ liệu, nhận biết được 20 kiểu dữ liệu - Biên tập cấu trúc dữ liệu dùng mẫu có sẵn (vd: để sửa chữa bảng phân vùng/boot sector) - Kết nối và chia tập tin, hợp nhất và chia các byte/từ theo số lẻ và chẵn - Phân tích và so sánh các tập tin - Chức năng tìm kiếm và thay thế linh hoạt - Sao chép đĩa, với bản specialist, ngay cả dưới hệ điều hành DOS - Tạo tập tin ảnh và lưu dự phòng cho ổ đĩa (tùy chọn nén hay chia thành từng phần với dung
lượng 650MB) - Giao diện lập trình (API) và kịch bản (chỉ có trong bản professional & specialist)
- Mã hóa 128-bit, checksums, CRC32, hashes (MD5, SHA-1, ...) - Xóa tập tin một cách an toàn, làm sạch ổ đĩa cứng để bảo vệ sự riêng tư của bạn - Import tất cả các kiểu định dạng clipboard, bao gồm giá trị ASCII hex - Chuyển đổi giữa hệ nhị phân, hex ASCII, Intel Hex, và Motorola S - Hỗ trợ các tập kí tự: ANSI ASCII, IBM ASCII, EBCDIC, (Unicode) - Chuyển qua lại giữa những cửa sổ nhanh chóng. In ấn, phát sinh số ngẫu nhiên. - Hỗ trợ tập tin có dung lượng trên 4 GB. Rất nhanh. Dễ sử dụng và hơn thế nữa...
Giao diện chỉnh sửa dạng Hex
d. Protect VBA (có bản quyền)
http://www.eliansoft.com/
Chức năng bảo vệ VBA project bằng mật mã của Excel rất yếu và dễ dàng bị bẽ gãy bởi rất nhiều phần mềm bẽ khoá hiện nay. Công cụ Protect VBA này có thể giúp chúng ta nâng cao khả năng bảo vệ các mã nguồn trong VBA Project bằng cách làm cho Project is unviewable một cách dễ dàng mà phần lớn các công cụ bẽ khoá không mở ra được. Tất nhiên đây không phải là giải pháp bảo đảm an toàn cho VBA Project 100% nhưng cũng hạn chế được đa số các sự truy cập mã nguồn trái phép.
Bản dùng thử chỉ cho phép tạo Project is unviewable cho các tập tin có dung lượng <=30KB.
e. Remove VBA Protection (có bản quyền)
http://www.eliansoft.com/
Công cụ này giúp bạn phục hồi lại các tập tin bị Project is unviewable rất dễ dàng và nhanh chóng. Công cụ giúp loại bỏ các bảo vệ của VBA project trong các tập tin MS Excel, Word, Publisher, Outlook, FrontPage, PowerPoint và Project (MPP và MPT) và nhiều tính năng khác. Đặc biệt sẽ có phiên bản hỗ trợ đầy đủ cho MS Office 2007 sắp tới (version 1.3).
Giao diện chính rất đơn giản.
Bản dùng thử chỉ cho phép loại bỏ các bảo vệ VBA Project và Project is unviewable cho các tập tin có dung lượng <=30KB.
f. Advanced Office Password Recovery (có bản quyền)
http://www.elcomsoft.com/download/aopr.zip
Đây là công cụ được sử dụng rất phổ biến để tìm lại các mật mã bị quên trong các tập tin được tạo bởi Microsoft Office (tất cả phiên bản, kể cả Office 2007): Word, Excel, Access, Project, Money, PowerPoint, Publisher, Visio, OneNote, Backup, Schedule+, Mail, và đặc biệt là mở mật mã bảo vệ của VBA projects (được tạo bở bất kỳ ứng dụng nào) thông qua cửa hậu (backdoor). Hầu hết các mật mã được tìm thấy tức thời, tuy nhiên mật mã để mở tập tin Word/Excel
97/2000/XP/2007 chỉ có thể tìm bằng brute-force và dictionary attacks. Hiện có các phiên bản US $49 (Home Edition), US $99 (Standard Edition) hoặc US $199 (Professional Edition).
Giao diện chính của chương trình
g. Advanced Office Password Breaker (có bản quyền)
http://www.elcomsoft.com/download/aopb.zip
Đây là chương trình giúp giải mã các tập tin Word và Excel 97/2000 được bảo vệ mật mã mở tập tin, cũng như các tập tin Word và Excel XP/2003 dùng giải thuật mã hoá mặc định (tương thích Office 97/2000). Chương trình này bẽ gãy tức thì mật mã mở tập tin bất kể độ dài và độ phức tạp của mật mã. Giải thuật của chương trình là thử/ sai tất cả các khả năng của các khoá mã hoá. Hiện có các phiên bản US $99 (Standard Edition), US $199 (Professional Edition) hoặc US $399 (Enterprise Edition).
Chương trình giúp tìm lại hoặc xoá bỏ các mật mã bảo vệ mã nguồn VBA projects trong các tập tin Microsoft Office: Word, Excel, Outlook, Project, Access, PowerPoint, Visio. Chương trình cũng có thể mở khoá các Excel add-ins. Ngoài ra chương trình hỗ trợ mở VBA projects thông qua "backdoor". Hỗ trợ tất cả các phiên bản Microsoft Office (từ 97 đến 2007). Hiện có các phiên bản US $49 (personal license) hoặc US $99 (business license).
Office Key tìm lại tất cả các loại mật mã cho các tập tin MS Office: Access, Excel, Outlook, Word, PowerPoint và VBA Project. Tuy nhiên đối với mật mã mở tập tin vẫn phải dò tìm bằng Brute-Force, Xieve™ hoặc Dictionary attacks.
B2. Vào File | chọn Open… | chọn tập tin đang khoá VBAProject bằng mật mã hoặc Project is
unviewable và mở ra
B3. Khi tập tin đã mở lên, bạn nhấn tổ hợp phím ALT+F11, hộp thoại OpenOffice.org Basic Macros xuất
hiện như hình sau:
Trong khung Macro from bạn chọn tên tập tin đang mở (hình dưới là Project is unviewable Hex)
và nhấp chuột chọn hai lần, các thành phần của tập tin như Sheet, Module, ThisWorkbook… xuất
hiện
Chọn lên đối tượng nào đó, nếu có chứa Macro thì tên các macro hiện trong khung kế bên
Nhấn Edit để vào xem
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 48
c. Dùng công cụ Hex Editor
Phần này trình bày từng bước mở VBAProject đã khoá bằng Project is unviewable bằng cách sử dụng
Hex Editor. Lưu ý nên sao lưu lại một bản dự phòng trước khi thực hiện.
B1. Mở chương trình Free Hex Editor và chọn tập tin đang khoá VBAProject, sau đó tìm đến CMG, DPB
và GC. Lưu ý đôi khi nhóm mã này không liên tục nhau, các bạn phải cẩn thận khi sửa, như hình minh
hoạ bên dưới các nội dung trong CMG, DPB và GC không liên tục nhau và bị chia cách bởi một số thông
tin khác nếu các bạn xoá nhầm thì tập tin sẽ bị hỏng ngay.
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 49
B2. Chọn khu vực bôi đen như hình trên và nhập đè lên bằng mã 0d hoặc 0a như hình dưới đây
Nhấp chuột lên khu vực bên trái nơi bắt đầu CMG và bắt đầu nhập đè lên bằng 0a (hoặc 0d) cho đến hết
số cuối là 7, xem hình bên dưới.
Khoá và mở khoá tập tin Excel
Trần Thanh Phong (ttphong2007 – GPE) 50
Di chuyển xuống bên dưới, chúng ta thấy còn một đoạn mã thuộc GC chưa được thay đổi bắt đầu là số
0, nhấp trái chuột lên vị trí tương ứng bên cột bên trái và bấ đầu thay bằng 0a (hoặc 0d) đến dấu nháy
kép (thay cả nháy kép).
Lưu ý: Nếu các thông tin GMC, DPB và GC nằm liền nhau thì dễ thao tác và ít sai sót hơn.
B3. Sau khi hoàn thành nhấn nút Save và đóng chương trình lại, sau đó vào Excel kiểm tra lại kết quả
5. Lời kết Nhìn chung không có cách bảo vệ nào tuyệt đối an toàn, tuy nhiên những cách trình bày trên cũng tạo ra một ít khó khăn cho nhưng ai muốn xem nhưng thứ mà ta không muốn cho xem. Qua tài liệu này các bạn thấy rằng hiện có rất ít công cụ có khả năng tìm ra mật mã mở tập tin (Open password) một cách nhanh chóng, mà đa phần các chương trình sẽ tìm ra mật mã mât thời gian tới hàng tuần thậm chí hàng năm nếu mật mã dài và phức tạp. Ngoài ra, phiên bản Excel 2007 đã nâng cấp tính năng bảo mật rất tốt và hiện chưa có chương trình nào bẽ khoá hữu hiệu. Trước mắt nếu muốn bảo vệ thành quả của mình thì bạn có thể đặt mật mã mở tập tin để bảo vệ, tuy nhiên cách này sẽ hạn chế khả năng chia sẽ tập tin. Do vậy lựa chọn tốt nhất hiện nay là hãy chuyển sang phiên bản Excel 2007 hoặc nếu có thể thì nên viết chương trình bên ngoài Excel. Mọi thông tin góp ý xin gửi đến: Trần Thanh Phong [email protected]