Найти в Дзене
Ольга Кузнецова

Защита данных. Продолжение

Оглавление

В первой части статьи мы говорили о том как спрятать содержимое ячейки, как защитить ячейки от изменений, как выборочно защитить диапазоны листа для разных пользователей. Ниже - продолжение этой темы.

Защита листа с сохранением группировки

При использовании стандартной процедуры защиты листа с вкладки "Рецензирование – Защитить лист (Review – Protect Sheet)" возникает одна небольшая, но неприятная проблема: если на листе была группировка строк или столбцов (кнопки плюс-минус), то она перестает работать и больше не сворачивает-разворачивает наборы данных:

К сожалению, встроенными средствами эту трудность не решить, но можно воспользоваться небольшим макросом для ее "обхода".

Щелкните правой кнопкой мыши по ярлычку листа, который необходимо защитить с сохранением функциональности группировки, и выберите в контекстном меню команду "Исходный текст (View Code)".

В открывшееся окно редактора Visual Basic введите следующий код:

Private Sub Worksheet_Activate() EnableOutlining = True Protect Password:="555", UserInterfaceOnly:=True End Sub

Пароль 555, естественно, замените на свой.

Теперь каждый раз при переходе на этот лист будет происходить включение его защиты с сохранением возможности группировки (параметр EnableOutlining).

Если нужно ставить защиту не при каждой активации листа, а один раз при открытии книги, то откройте двойным щелчком в редакторе Visual Basic модуль "ЭтаКнига (ThisWorkbook)":

-2

И вставьте в открывшееся окно слегка измененный вариант нашего прошлого макроса:

Private Sub Workbook_Open() Worksheets("Лист1").EnableOutlining = True Worksheets("Лист1").Protect Password:="555", UserInterfaceOnly:=True End Sub

Имя листа замените, само собой, на свое или добавьте еще строки для защиты других нужных вам листов подобным образом.

Защита листов книги

Если необходимо защититься от:

  • удаления, переименования, перемещения листов в книге,
  • изменения закрепленных областей (зафиксированной "шапки" таблиц и т.п.),
  • возможности сворачивать/перемещать/изменять размеры окна книги внутри окна Excel,

то вам необходима защита всех листов книги с помощью кнопки "Защитить книгу (Protect Workbook)" на вкладке "Рецензирование (Reveiw)":

-3

Флажок "Структуру (Structure)" нужен по умолчанию, т.к. именно он подразумевает базовый набор функций защиты листов от удаления, переименования, копирования.

Флажок "Окна (Windows)" не обязательный и нужен только для "тяжелых случаев", когда вы хотите запретить пользователю сворачивать и/или изменять размеры окна книги внутри окна Microsoft Excel или изменять закрепление областей.

После включения такой защиты вандализм с листами внутри книги Excel становится затрудненным – абсолютное большинство команд по работе с листами неактивно, пока вы не снимете защиту:

-4

Шифрование книги

При необходимости Excel предоставляет возможность зашифровать весь файл книги, используя весьма серьезный алгоритм шифрования AES 128-bit. Взломать его напрямую невозможно, а подбор пароля "в лоб" осложнен сравнительно низкой предельной скоростью перебора вариантов (примерно 1–3 тыс. вариантов в секунду, в зависимости от мощности ПК), что потребует больше года для подбора всего 6-значного пароля.

Такую защиту можно задать при сохранении книги, т.е. выбрать команды Файл – "Сохранить как (File – Save As)", а затем в окне сохранения найти и развернуть выпадающий список "Сервис – Общие параметры (Tools – General Options)":

-5

В появившемся окне мы можем ввести два различных пароля – на открытие файла (только чтение) и на изменение:

-6

Если задать первый пароль (для открытия), то при открытии файла пользователь получит следующее сообщение:

-7

Если пользователь не знает пароль, то не сможет даже открыть файл для просмотра.

Если же пользователь знает первый пароль, но мы задали и второй (для изменения), то следующим окном при открытии книги будет такое:

-8

И тут пользователю надо будет либо ввести пароль для изменения, либо ограничиться просмотром – кнопка "Только для чтения (Read Only)".

Само собой, не обязательно вводить при сохранении книги оба пароля – вполне можно ограничиться одним из вышеперечисленных в зависимости от ситуации.

Вскрытие защиты

К сожалению, защита листа и книги в Microsoft Excel вскрывается достаточно легко. Есть целый класс совершенно легально продаваемых "программ для подбора забытых паролей", которые пользуются тем, что Excel не отслеживает количество неправильных попыток ввода пароля при снятии защиты листа и книги. Эти программы используют всю вычислительную мощь процессоров и видеокарт современных компьютеров, чтобы с большой скоростью (около 3–5 млн вариантов в секунду!) перебирать всевозможные сочетания букв, цифр, знаков препинания и подставлять их в окно ввода пароля при снятии защиты. Общее время подбора 6–8 символьных паролей составляет от нескольких минут до часа.

Название конкретных программ подбора я здесь приводить не буду – любой желающий может найти их с помощью Яндекса или Google при необходимости. Стоимость таких программ редко превышает 1000 рублей.

А вот защиту файла шифрованием так легко уже не расколоть – там используются заметно более сложные алгоритмы (128-битный AES в последней версии Excel 2013, например). Скорость подбора в этом случае составляет всего 1–2 тыс. вариантов паролей в секунду, что дает общее время подбора до нескольких лет. Это уже серьезно.

Так что делаем выводы:

Не забывайте пароли на открытие файлов.
Не кладите под пароли листа или книги действительно важные или конфиденциальные данные, коммерческую тайну и т. д.