В данном блоге мне хочется поделиться методикой шифрования и подписывания файлов с помощью средства шифрования и создания электронной цифровой подписи GnuPG. GnuPG (или GPG) является проектом, в рамках которого ведется разработка свободного программного обеспечения для шифрования и создания электронной подписи файлов. Проект находится под вниманием известных криптографов, использует известные сильные алгоритмы шифрования с открытым дизайном, соответствует спецификациям PGP и обеспечивает стойкую защиту ваших файлов. В заключении статьи рассказано, как можно удалять файлы с винчестера с помощью утилиты shred.
Шифрование симметричным алгоритмом
В данном случае вам не нужны ключи, используется только пароль, пароль для шифрования и расшифровки должен быть один и тот же:
Если после параметра -с вы поставите параметр -a (через пробел), то программа сделает зашифрованный файл в кодировке ASCII, расшифрование файла в этом случае производится той же командой, что и расшифрование файла name.gpg.
По умолчанию gpg использует качественный алгоритм CAST5. Если вы хотите для зашифровки иcпользовать другой алгоритм, то можете указать это параметром --cipher-algo. Список доступных алгоритмов вы можете посомтреть командой gpg --version. Например для того, что бы зашифровать файл алгоритмом AES256, можно воспользоваться командой:
Если вы шифруете файл, лежащий в текущем каталоге (например в домашнем), то операция шифрования совсем проста
Вычисление хеш-функций
Шифрование файла с помощью ключа
В данном случае нужно понимать, что вы можете зашифровать файл как для самого себя, так и для кого-либо, если укажете идентификатор (e-mail или ID ключа) другого человека. Вы можете одним разом зашифровать файлы для нескольких людей, в том числе и для себя.
Расшифрование файла, зашифрованного с помощью ключа
Программа попросит ввести пароль к вашему ключу и создаст файл с именем name
Создание электронной цифровой подписи
Для файлов удобнее всего использовать отделенную подпись
Проверка цифровой подписи
Зашифровывание файла с автоматической постановкой цифровой подписи
Расшифровка файла с автоматической проверкой цифровой подписи
Используется та же команда, что и для расшифровки файла, при этом подпись проверяется автоматически. Т.е. при расшифровке файла вы получите файл и автоматическую проверку цифровой подписи.
Зашифровывание файла с автоматической постановкой цифровой подписи в формате ASCII
Расшифровка с автоматической проверкой цифровой подписи
В данном случае удобно подписывать текстовые документы. При этом вы получите новый файл с добавленным расширением asc, цифровая подпись в формате ASCII будет добавлена в конец текста подписываемого текста файла.
При проверке подписи вы можете получить сообщение о том, что подпись не является достоверной и т.п. Это означает, что вы не произвели проверку достоверности ключа, его подписание, либо назначение ему степени вашего доверия.
Посмотреть подписи ключей вы можете командой
Генерирование пароля
Просмотр отпечатка одного из ключей, находящегося в вашей связке ключей
Обратите внимание, что при шифровании файлы автоматически сжимаются, поэтому нет необходимости предварительно их архивировать (если только вы не хотите зашифровать сразу большое количество файлов, что бы не шифровать каждый из них по отдельности).
Если вы не хотите использовать командную строку, то можете воспользоваться оболочкой Kgpg, в меню которой разобраться не очень сложно. В системе Ubuntu 8.10 (впрочем вполне возможно и в других системах, использующих ту же или более новую версию Gnome) вы можете добавить апплет шифрования на одну из панелей задач, производящую шифрование на лету вашего буфера обмена.
Уничтожение файлов
После шифрования файлов удалите оригинальные файлы с винчестера. Сделать это можно командой:
Дополнительные параметры команды можно посмотреть с помощью команды shred --help, но два из них я опишу здесь:
-nX сделать X количество проходов (вместо 25-ти проходов по умолчанию)
-v показывать прогресс (не имеет смысла задавать этот параметр в том случае, если вы удяляете файлы, перемещая их на иконку запуска, созданную на рабочем столе)
Например команда удаления файла name семью проходами может выглядеть так:
shred: name: проход 1/7 (random)...
shred: name: проход 2/7 (ffffff)...
shred: name: проход 3/7 (aaaaaa)...
shred: name: проход 4/7 (random)...
shred: name: проход 5/7 (000000)...
shred: name: проход 6/7 (555555)...
shred: name: проход 7/7 (random)...
shred: name: удаление
shred: name: переименован в 0000
shred: 0000: переименован в 000
shred: 000: переименован в 00
shred: 00: переименован в 0
shred: name: удален
Вы так же можете удалять несколько файлов к ряду, записав их через пробел. Если файл имеет пробелы в своем имени, то заключите имя файла в кавычки.
Не доверяйте шредеру от Kgpg (команда kgpg -X %U), к GPG он не имеет отношения и файлы с носителя по настоящему не удаляет.
Операции шифрования/подписания электронной почты можно полностью автоматизировать, используя почтовый клиент Thunderbird с установленным расширением Enigmail (есть русифицированный). При этом вам не нужно знать ни одной команды GnuPG, но одновременно вы получите мощный и удобный инструмент, обеспечивающий прозрачную и удобную работу с одновременным обеспечением приватности вашей почты как в пути, так и на вашем рабочем месте.
В следующей статье мы поговорим о том, как с помощью GPG закрыть для посторонних лиц ваш Jabber-канал общения, там же будут рассмотрены некоторые вопросы обмена и управления ключами.
вот это по-настоящему меня порадовало!
но есть засады :
«Enigmail» не может быть установлен, так как он не совместим с вашим типом сборки Thunderbird (Linux_x86_64-gcc3). Для разрешения данной проблемы свяжитесь с его автором.
А можно вывести содержание расшифрованного файла только на экран, без сохранения на диске?
Можно, для этого нужно отпустить из команды параметр -o, а так же не указывать путь и файл вывода. Команда при этом будет выглядеть так:
Либо, если зашифрованный файл лежит в текущем каталоге, можно дать следующую команду:
(параметр -d можно использовать вместо --decrypt, хотя не уверен, что всегда :bigsmile: )
То же самое касается файлов, зашифрованных с помощью симметричного алгоритма.
Здраствуйте, можно ли применить данную утилиту для шифрования фтографий на nokia n900. Чтобы если телефон попадет в чужие руки их не смогли посмотреть? Т.е. папка с фотографиями имела права для записи (когда делаю фотку), но не имела прав для просмотра.
Спасибо, весьма полезно.
А вы не знаете есть ли возможность шифрования файла только по ключу. Без ввода пароля.
Программа действительно неплохая. Но, все же лучше, когда у вас есть выбор. Если вам интересно, то ряд бесплатных аналогов можно найти в обзоре на тему шифрования файлов.
Срок жизни зеркала (домена) истек. Вот корректная ссылка на обзор программ для шифрования файлов и каталогов