Защищаем пересылаемые файлы

Protected Mail

Нашим клиентам, равно как и нам, часто приходится обмениваться друг с другом электронной корреспонденцией. Более того, очень часто мы добавляем вложения в письма: снимки экранов, диктофонные записи, небольшие программы. Для того, чтобы прикрепить к email сразу несколько документов большинство из нас привыкло пользоваться архивами. Для упрощения этой задачи Apple добавила в контекстное меню Finder’а возможность быстро и просто создать zip-архив — опция «сжать». Мы и наши клиенты постоянно ею пользуемся. Но что делать, когда электронная переписка не зашифрована, а обменяться нам необходимо конфиденциальными данными? Правильно, защитить файлы паролем. Но подобной очевидной опции нам, преследуемым манией преследования заботящихся о безопасности данных, разработчики из Купертино уже не предоставили. Ниже мы попробуем найти несколько интересных решений для нашей задачи.

Запароленный архив из Терминала

Password protected archieve opening

Несмотря на то, что опции «сжать и защитить паролем» в Finder нет, тем не менее работать с безопасными архивами стандартная, входящая в любую Mac OS Утилита архивирования умеет. А в командной строке можно ввести соответствующие команды:

    1. Запускаем из папки служебных программ (или утилит, переведённых так на русский язык в последних версиях операционных систем) Терминал (быстро открыть родительскую папку можно выбрав в строке меню Finder Переход → Утилиты).
    2. Вводим нижеследующую команду с сохранением пробелов:

      zip -erj ~/Desktop/archive.zip

    3. Хватаем и переносим в окно Терминала необходимую для сжатия и защиты паролем папку или файл. Команда в окне программы приобретёт примерно такой вид: 
zip -erj ~/Desktop/archive.zip /Path/to/folder
    4. Нажимаем ввод, вводим и повторяем назначаемый пароль. Не пугайтесь, в окне Терминала пароль никогда не демонстрируется, вы не будете видеть символы, которые вводите.

Terminal

Результатом успешного выполнения команды будет появление файла с названием archive.zip на вашем рабочем столе.

Зашифрованный образ диска в качестве службы Finder

Описанный выше способ кажется громоздким, и при необходимости отправлять защищённые файлы регулярно может быть неудобным. Более того, шифрование данных в архиве не самое удачное. Предпочитаемый Apple способ защиты данных в таких случаях — использование зашифрованного образа диска. Но стандартный метод создания таких «имиджев» тоже сложен и неочевиден, более того, минимальным размером создаваемого файла в специализированной программе, Дисковой утилите, составляет 10,5 МБ (!), а такое вложение пропустит не каждая электронная почта. Поэтому мы предлагаем создать простейшую службу с помощью программы Automator, которая добавит нам необходимую опцию в контекстное меню Finder’а.

    1. Запускаем программу Automator (найти её можно в папке «Программы» или вызвав в строке меню Finder Переход → Программы).
    2. В открывшемся диалоговом окне выбираем создание службы, значок большой шестерёнки.
    3. В поле «служба получает» выбираем «файлы и папки» и указываем Finder в качестве программы.
    4. В поле «Действия» Автоматора находим «Новый образ диска» и перетягиваем его из левой половины окна программы в правую (воспользуйтесь поиском, найти в списке возможных действий сходу будет нелегко).
    5. В качестве размера образа диска выбираем «По размеру содержимого» и отметьте галочкой чекбокс «Зашифровать». Вы можете указать фиксированное название для зашифрованного архива, удобнее оставить имя без изменений, в этом случае оно будет генерироваться на основании входящих данных, по имени шифруемых файлов. По умолчанию местом создания файла выбран ваш рабочий стол, его можно поменять на любую другую папку.
    6. В последнем поле «Выполнив» выбираем «Извлечь и вернуть образ файла». Это приведёт к нашей цели, файлы будут сложены в образ диска и в момент его извлечения зашифрованы вашим паролем

Encrypted Image

  1. Для удобства можно добавить последним действие «Показать объекты Finder» (действие ищется привычно справа и перетягивается в левую половину окна программы). Эта опция будет автоматически открывать в файловом менеджере папку, содержащую наш с вами шифрованный «имидж».
  2. Сохраняем службу. В качестве её названия можно указать «Сохранить в зашифрованном образе диска».

Созданная и сохранённая служба будет мгновенно доступна в контекстном меню Finder и вы можете сразу же проверить её работу, щелкнув по любому файлу или папке вспомогательной кнопкой мыши/трекпада и выбрав свежесозданную опцию.

Save in Encrypted Disk Image

Creating Encrypted Disk Image
Отметку «Запомнить пароль в связке ключей» для безопасности лучше снять

Запароленный архив в качестве службы Finder

— Стоп, стоп, стоп, полегче! А если мы пересылаем файлы по электронной почте пользователям операционной системы MS Windows, они смогут открыть зашифрованный образ диска?

— Нет. Они будут доступны только владельцам компьютеров Apple.

— Но как тогда быть? Первый способ громоздкий, второй элегантен, но нам не подходит…

— Ок. Создадим отдельную службу для запароленных архивов.

Собственно в сеансе разговора с самим собой мы всё уже решили, теперь попробуем реализовать и эту задачу:

    1. Запускаем программу Automator (найти её можно в папке «Программы» или вызвав в строке меню Finder Переход → Программы).
    2. В открывшемся диалоговом окне выбираем создание службы (значок большой шестерёнки).
    3. В поле «служба получает» выбираем «файлы и папки» и указываем Finder в качестве программы.
    4. В поле «Действия» находим «Запустить AppleScript» и перетягиваем его из левой половины окна программы в правую (воспользуйтесь поиском, найти в списке возможных действий сходу будет нелегко).
    5. Всё, что будет в окне вставленного действия стираем и заменяем следующим кодом:

      on run {input, parameters}
      set dialogResults to display dialog "Введите имя архива:" default answer "Архив" buttons {"OK", "Cancel"} default button "OK"
      if button returned of dialogResults is "OK" then
      set passwd to "x"
      set passwd_2 to "y"
      repeat while passwd ≠ passwd_2
      tell application "System Events"
      activate
      set passwd to text returned of (display dialog "Введите безопасный пароль:" default answer "" buttons {"OK", "Cancel"} default button "OK" with hidden answer)
      set passwd_2 to text returned of (display dialog "Пожалуйста, введите пароль повторно:" default answer "" buttons {"OK", "Cancel"} default button "OK" with hidden answer)
      end tell
      end repeat
      set archiveName to text returned of dialogResults
      tell application "Finder"
      set archiveFileName to archiveName & ".zip"
      -- Append on a number if file exists.
      set suffix to 1
      set theFileExists to true
      repeat while theFileExists
      try
      set archiveFile to ((container of (item 1 of input) as Unicode text) & archiveFileName)
      if exists file archiveFile then
      set archiveFileName to archiveName & suffix & ".zip"
      set suffix to suffix + 1
      else
      set theFileExists to false
      end if
      end try
      end repeat
      end tell
      set itemStr to ""
      repeat with thisItem in input
      set itemPath to quoted form of (POSIX path of thisItem)
      tell application "Finder"
      set parentFolder to POSIX path of (container of thisItem as alias)
      set itemName to name of thisItem
      set itemStr to itemStr & quoted form of itemName & " "
      end tell
      end repeat
      if (the last character of itemStr is " ") then set itemStr to characters 1 thru ((length of itemStr) - 1) of itemStr as string
      set zipFile to quoted form of POSIX path of (parentFolder & archiveFileName)
      set cmd to "cd " & quoted form of parentFolder & " ; zip -P " & passwd & " -r " & zipFile & " " & itemStr & " -x *.DS_Store"
      do shell script cmd
      end if
      return
      end run

Password protected archieve

  1. Для удобства можно добавить последним действие «Показать объекты Finder» (действие ищется привычно справа и перетягивается в левую половину окна программы). Эта опция будет автоматически открывать в файловом менеджере папку, содержащую наш с вами запароленный архив.
  2. Сохраняем службу. В качестве её названия можно указать «Сжать и защитить паролем».

Compress and Save with password

Также как и в прошлом случае служба станет моментально доступна в контекстном меню Finder и можно будет опробовать её работу. Обращаем ваше внимание, что если вы заботитесь о максимальной безопасности пересылаемых файлов, то предпочтительнее их упаковывать всё-таки в зашифрованный образ диск (рассмотренный чуть ранее вариант), а не в запароленный архив.

Благодарим Кристофера Кесслера, не оставляющего нас наедине с нашими вопросами и подсказавшего два первых рассмотреных нами решения задачи. Также благодарим пользователей ThomasMyers, chocky, jelockwood, чьими совместными усилиями был написан позаимстованный нами c Mac OS X Hints AppleScript.

О Дмитрий Кирьянов

Старший инженер технической поддержки одного из известных в Мак-сообществе авторизованного Apple сервис-центра.
Метки , , , , , , , . Закладка постоянная ссылка.