- AxCrypt — Шифрование файлов и папок
- Microsoft Windows Совместимость
- Возможности программы шифрования
- Как защитить файлы от злоумышленников: осваиваем шифрование
- Хеш-функции
- Симметричные криптоалгоритмы
- Асимметричные алгоритмы шифрования
- Хеш-функции
- Симметричные криптоалгоритмы
- Асимметричные алгоритмы шифрования
AxCrypt — Шифрование файлов и папок
AxCrypt — Защита паролем файлов при помощи надежного шифрования.
AxCrypt является ведущим программным обеспечением c открытым исходным кодом для осуществления шифрования файловой системы на платформе Windows. Программа интегрируется с Windows, для осуществления сжатия и шифрования, дешифрования, удаления, отправки, работы с конкретными файлами.
Мы получили 2823841 регистраций, поэтому оно опробованных и зарекомендовавших себя!
Программа является хорошим дополнением к услугам, такого рода, как Dropbox и SkyDrive.
Внимание , из-за того, что новые версии AxCrypt имеют закрытый код и множество ограничений по использованию, рекомендуется обратить внимание на активно разрабатываемый инструмент для шифрования файлов и папок с интеграцией в Проводник Windows — CrococryptFile.
Особенности шифрования файлов
Защитить паролем любой количество объектов при помощи стойкого шифрования файлов.
Щелкните правую кнопку мыши, интеграция с проводника Windows дает AxCrypt самый простой и удобный способ для осуществления шифрования отдельно взятых файлов в Windows.
Дважды щелкните, интеграции делает это такой легкой задачей, что не составит труда открывать, редактировать и сохранять файлы, защищенные, как это должно работать с незащищенные файлы.
Множество дополнительных возможностей, но без дополнительных настроек не требуется. Достаточно установить программу, и начать использовать.
AxCrypt шифрует файлы, посланные другими пользователями, безопасно, легко, используя электронную почту, или другое. Само расшифровывающихся файлы также поддерживаются, что избавляет от нужды в установке AxCrypt для дешифровки.
Программа переведена на русский, английский, немецкий, французский, испанский, голландский, венгерский, итальянский, норвежский, польский, датский и шведский так что скорее всего это говорит нужный язык.
Microsoft Windows Совместимость
AxCrypt успешно завершил испытания платформы Microsoft ISV решения на VeriTest. Проверка проводилась независимо VeriTest, проверка службы Lionbridge Technologies.
AxCrypt является свободной программой.
AxCrypt является программой с открытым исходным кодом, поэтому вы можете распространять, изменять программу в соответствии с лицензией GNU General Public License, которая опубликована Free Software Foundation.
Возможности программы шифрования
Ниже приведены функции, которые действительно отличают его от всех других инструментов шифрования файлов, коммерческих, а также бесплатных:
- Дважды щелкните, чтобы просматривать / редактировать с любым приложением.
- Автоматическое повторное шифрование после модификации.
- Абсолютно никакой пользовательской конфигурации необходимо или возможно перед использованием.
- Открытый исходный код под лицензией GNU GPL.
- 12 языков в одном исполняемом распределения.
- Интерфейс командной строки, для написания сценариев и программирование.
Другие особенности:
- Окна 2003/XP/Vista/2008/7 32 — и 64-бит, совместимая.
- Шифрования AES с 128-битным ключом.
- Редактировать зашифрованный документ непосредственно с помощью двойного щелчка.
- Дополнительный кэш парольной фразы — типа фраз-паролей После одного сеанса и / или перезагрузки.
- Автоматическая проверка фразу проходят перед расшифровки или редактирования.
- Файл-ключ поколения и поддержке.
- Каких-либо опций пользовательский интерфейс — прост в установке и использовании.
- Относительно легкие, менее 1 Мб
- Интерфейс командной строки.
- Варианты режиме сервера.
- Поддержка файлов размером более 4 Гб (за исключением самостоятельно расшифровки файлов).
- Динамический грубую силу контрмеры — итеративный ключевых упаковки.
- Хорошо интегрируется с веб-услуг обмена файлами.
- Выборочное сжатие перед шифрованием — быстрой загрузки / закачки.
- Сохранение оригинального имени файла и информации из зашифрованного файла.
- Комплексная шредер.
- Уничтожение всех временных и зашифрованных текстовых файлах.
- Безопасная работа с памятью — нет ключей или данных в файл подкачки.
- Алгоритмы отраслевым стандартом.
- Данные проверки целостности — не незамеченными модификации.
- Уникальная ключей шифрования данных используется для каждого файла и (пере-) шифрования.
- Легко добавить больше языков — свяжитесь со мной (я особенно ищет скандинавских языков)!
- Открытый исходный код — отсутствие закладок.
- Поддержка со стороны частного брендинга для коммерческих или корпоративных версий.
- Программа бесплатна!
Язык: Русский
Лицензия: GNU GPL + EULA (Разрешено использование в организации)
Протестировано на ОС: Windows 7 x64, Windows 10 x64
Как защитить файлы от злоумышленников: осваиваем шифрование
Вы наверняка слышали об опасностях обмена файлами через интернет. В них тайком «подселяют» вредоносный код, который с определёнными правами может натворить на устройстве чёрт-те что. А если речь идёт об обмене важными рабочими файлами, опасность выходит на новый уровень: корпоративные данные сольют, текст договоров подменят — в общем, караул.
Для защиты на этом уровне используются криптографические алгоритмы. Базовая информация о них неплохо изложена в википедии. Если отбросить всю теорию, то обычно рассматривают симметричные, асимметричные и бесключевые криптографические алгоритмы. В первых для шифрования и дешифрования используется один и тот же ключ, во вторых — разные ключи, а в третьих ключи не используются вовсе. Каждый из типов алгоритмов применяется по-своему.
Хеш-функции
Беcключевые алгоритмы обычно используются для вычисления хеш-функций, или функций свёртки. Хеш-функция преобразовывает массив входных данных произвольной длины в выходную битовую строку установленной длины. Прелесть такого преобразования в том, что если объект изменился, то скорректируется и его хеш-функция.
Рассмотрим это на примере утилиты openssl, установленной в Linux. К примеру, у нас есть текстовый файл, содержащий «this is simple text»:
Вычислим от этого файла хеш-функцию при помощи алгоритма md5:
А теперь изменим содержимое файла:
Обратите внимание: мы добавили в файл новую строку («but changed»), вычислили заново хеш от файла, и он стал другим. То есть при любом изменении содержимого файла хеш-функция не останется прежней. Это можно использовать для контроля целостности критических файлов: если их хеш изменится — системному администратору придёт оповещение. Или для проверки, загрузился ли файл полностью: если это так, на сайте опубликуется его хеш.
В Windows для вычисления хеша я рекомендую утилиту Sigcheck из пакета Sysinternals. Для примера вычислим значение хеша md5 от файла PsExec.exe:
Другой вариант — использовать утилиту certutil, предустановленную в Windows. Вычислим с её помощью значение хеша md5 от файла PsExec.exe:
Также можно загрузить пакет openssl для ОС Windows. Качаем архив под нужную архитектуру процессора отсюда, распаковываем его и переходим в консоли в каталог bin. Нам нужен файл openssl.exe:
Теперь нам доступны почти все возможности пакета openssl в Windows. Например, вычислить хеш, как делали в предыдущих примерах для Linux (не забываем про абсолютные и относительные пути к файлам):
Пакет лучше переместить в каталог C:/OpenSSL, а конфигурационный файл openssl.cnf — из каталога bin в каталог OpenSSL. Избежим ошибки, как на скрине выше:
Теперь рассмотрим реализацию криптографических алгоритмов.
Симметричные криптоалгоритмы
Если говорить упрощённо, то симметричные алгоритмы шифрования применяют один ключ для шифрования и дешифрования. Таких алгоритмов много, и на практике обычно применяют те, которые имеют достаточную длину ключа и ещё не были скомпрометированы. Симметричные алгоритмы делятся на блочные (DES, RC2, Blowfish, AES, «Кузнечик» и т. д.) и потоковые (RC4, SEAL, CryptMT и другие).
Стойкость к взлому у всех блочных криптографических алгоритмов во многом определяется длиной ключа. Если она составляет 128 бит и более, шифрование считается сильным, так как для расшифровки информации без ключа потребуются годы работы на мощных компьютерах. Кому любопытно — об алгоритмах шифрования с точки зрения длины ключа можно прочитать в посте на Хабре.
Попрактикуемся: при помощи пакета openssl зашифруем созданный нами ранее текстовый файл. Для этого используем команду:
openssl enc -e -aes256 -in simpletext.txt -out simple_enc_text.txt
- enc — указывает модуль для шифрования;
- -e — указывает, что файлы нужно шифровать;
- -aes256 — алгоритм шифрования;
- -in — указывает на исходный файл;
- -out — указывает на зашифрованный файл.
Выглядит это так:
Для расшифровки нужно указать введённый при шифровании ключ и используемый алгоритм. Команда примерно следующая:
openssl enc -d-aes256 -in simple_enc_text.txt -out simpletext.txt
- enc — указывает модуль для шифрования;
- -d — указывает, что файлы нужно расшифровать;
- -aes256 — алгоритм шифрования;
- -in — указывает на исходный файл;
- -out — указывает на расшифрованный файл.
При шифровании симметричными алгоритмами есть несколько интересных проблем.
- Длина ключа. Как уже упоминали, желательно не менее 128 бит
- Сложность использования при большом количестве шифруемых объектов — приходится запоминать много параметров.
- Сложность обмена параметрами шифрования (паролями, алгоритмами и подобным) — необходимо обеспечить их надёжную передачу адресату.
Такие проблемы обычно решают при помощи асимметричных алгоритмов шифрования.
Асимметричные алгоритмы шифрования
Главное преимущество асимметричного шифрования по сравнению с симметричным — возможность сторон обмениваться данными друг с другом, не используя секретные каналы связи.
Криптографическая система на основе асимметричного шифрования использует открытые (public key) и закрытые (private key) ключи для шифрования и расшифровки данных. Эти ключи образуют ключевую пару, компоненты которой связаны зависимостью, но отличаются друг от друга. Идея в том, что, зная открытый ключ, нельзя из него получить закрытый, хотя алгоритм генерации известен.
Открытый ключ передаётся по незащищённым каналам связи и известен всем. Его можно использовать для шифрования файлов и не только. Для расшифровки применяется закрытый ключ, который хранится в тайне.
У многих асимметричных алгоритмов, особенно тех, что основаны на проблемах теории чисел, минимальная длина ключа для надёжного шифрования — 1024 бит. Это сильно ограничивает их применение — симметричные алгоритмы позволяют с меньшей длиной ключа надёжно зашифровать файлы.
При практической реализации асимметричных алгоритмов обычно используют сертификат. Это файл, хранящий ключ (открытый и закрытый) в определённом формате. Подробнее об этом можно почитать в статье «Формат SSL-сертификата».
Рассмотрим два основных стандарта для реализации сертификатов шифрования.
X.509 — стандарт ITU-T для инфраструктуры открытых ключей. Определяет стандартные форматы данных и процедуры распределения открытых ключей с помощью соответствующих сертификатов с цифровыми подписями. Именно он обычно используется для электронной цифровой подписи (ЭЦП) и шифрования, например, в openssl.
OpenPGP — стандарт, выросший из программы PGP (к середине 90-х годов она распространилась в интернете как надёжное средство шифрования электронной почты). Став стандартом де-факто, PGP начал встраиваться во множество приложений и систем. С особенностями можно ознакомиться на специализированном ресурсе об OpenPGP.
Посмотрим, как это выглядит на практике. Начнём с асимметричных алгоритмов в openssl — для этого в Windows командную строку надо запустить с правами администратора.
Создадим закрытый ключ в виде сертификата. Команда следующая:
openssl genrsa -aes256 -out private.pem 8912
- genrsa — указывает, что мы используем модуль для генерации закрытого ключа на основе алгоритма RSA;
- -aes256 — указывает на алгоритм AES для шифрования сертификата;
- -out private.pem — файл для сохранения сертификата;
- 8912 — размер ключа.
Теперь надо извлечь из полученного закрытого ключа публичный. Сделать это можно командой:
openssl rsa -in private.pem -pubout -out public.pem
- rsa — модуль для работы с RSA;
- -in private.pem — задаёт путь к закрытому ключу, из которого извлечём открытый;
- -pubout — извлекает публичный ключ;
- -out public.pem — имя файла для полученного открытого ключа.
Ключ мы получили в виде сертификата в формате pem (ASCII-файл в кодировке base64). Это не единственный формат хранения сертификатов — с другими можно ознакомиться в материале, который уже рекомендовался выше.
Стоит учесть, что таким сертификатом мы не сможем зашифровать объект, превосходящий по размеру сам сертификат. Поэтому поступим хитрее: зашифруем файл симметричным алгоритмом, а ключ шифрования от этого алгоритма зашифруем при помощи сертификата. По шагам:
- Генерируем сертификаты (пару из открытого и закрытого ключа).
- Шифруем текст симметричным алгоритмом AES (его вроде бы ещё не взломали). Предположим, получим файл enc.1.
- Далее выбранный для шифрования пароль шифруем публичным ключом (предположим, получим файл enc.2).
- Теперь можно передать зашифрованный файл enc.1 и файл enc.2 по незащищённому каналу связи.
- На другом конце у получателя должна быть вторая часть ключа (закрытый ключ). Ей он вначале расшифровывает файл enc.2 и извлекает оттуда пароль для дешифровки файла enc.1.
- …
- Profit!
Вот как это выглядит на практике. Вначале шифруем текстовый файл алгоритмом AES (пароль 123456):
Теперь сохраним наш пароль (123456) в файл pass.txt. И зашифруем файл при помощи сертификата. Команда:
openssl rsautl -encrypt -inkey public.pem -pubin -in pass.txt -out pass.ssl
- rsautl — включаем модуль для шифрования, дешифрования и подписывания данных алгоритмом RSA;
- -inkey public.pem — указывает путь к открытому ключу;
- -pubin — указывает, что файл ключа является публичным ключом;
- -in pass.txt — файл для шифрования;
- -out pass.ssl — выходной зашифрованный файл.
Теперь можем переслать этот файл по открытому каналу связи. Перехват такой информации мало что даст злоумышленнику, если у него нет закрытого ключа. Попробуем расшифровать файл закрытым ключом и извлечь пароль для расшифровки:
Мы получили пароль — теперь с его помощью можно расшифровать файл, который мы с ним зашифровали при помощи алгоритма AES:
Как видим, всё расшифровывается. На практике в такой схеме есть особенность: именно получатель должен генерировать открытый и закрытый ключи. А затем потенциальный получатель должен выслать будущему отправителю свой открытый ключ, которым тот будет шифровать передаваемые данные. Поэтому публичный ключ делают доступным всем. Например, можно использовать серверы хранения ключей в интернете или отправить ключ по почте. Чтобы усилить безопасность, рекомендуется вычислять хеш у передаваемых файлов: так получатель сможет проверить, тот ли файл ему отправили.
В этой статье я показал, как работать с шифрованием файлов. В следующей мы подробнее остановимся на стандарте OpenPGP и научимся использовать шифрование в электронной почте.
Работа с криптографическими алгоритмами — это лишь малая часть одного из курсов факультета информационной безопасности Geek University. Ближайший поток стартует 28 декабря — неплохой подарок на Новый год 😉 Кроме того, до 29 декабря вы сможете выбрать ещё один факультет Geek University для себя или в подарок и получить его бесплатно.
Вы наверняка слышали об опасностях обмена файлами через интернет. В них тайком «подселяют» вредоносный код, который с определёнными правами может натворить на устройстве чёрт-те что. А если речь идёт об обмене важными рабочими файлами, опасность выходит на новый уровень: корпоративные данные сольют, текст договоров подменят — в общем, караул.
Для защиты на этом уровне используются криптографические алгоритмы. Базовая информация о них неплохо изложена в википедии. Если отбросить всю теорию, то обычно рассматривают симметричные, асимметричные и бесключевые криптографические алгоритмы. В первых для шифрования и дешифрования используется один и тот же ключ, во вторых — разные ключи, а в третьих ключи не используются вовсе. Каждый из типов алгоритмов применяется по-своему.
Хеш-функции
Беcключевые алгоритмы обычно используются для вычисления хеш-функций, или функций свёртки. Хеш-функция преобразовывает массив входных данных произвольной длины в выходную битовую строку установленной длины. Прелесть такого преобразования в том, что если объект изменился, то скорректируется и его хеш-функция.
Рассмотрим это на примере утилиты openssl, установленной в Linux. К примеру, у нас есть текстовый файл, содержащий «this is simple text»:
Вычислим от этого файла хеш-функцию при помощи алгоритма md5:
А теперь изменим содержимое файла:
Обратите внимание: мы добавили в файл новую строку («but changed»), вычислили заново хеш от файла, и он стал другим. То есть при любом изменении содержимого файла хеш-функция не останется прежней. Это можно использовать для контроля целостности критических файлов: если их хеш изменится — системному администратору придёт оповещение. Или для проверки, загрузился ли файл полностью: если это так, на сайте опубликуется его хеш.
В Windows для вычисления хеша я рекомендую утилиту Sigcheck из пакета Sysinternals. Для примера вычислим значение хеша md5 от файла PsExec.exe:
Другой вариант — использовать утилиту certutil, предустановленную в Windows. Вычислим с её помощью значение хеша md5 от файла PsExec.exe:
Также можно загрузить пакет openssl для ОС Windows. Качаем архив под нужную архитектуру процессора отсюда, распаковываем его и переходим в консоли в каталог bin. Нам нужен файл openssl.exe:
Теперь нам доступны почти все возможности пакета openssl в Windows. Например, вычислить хеш, как делали в предыдущих примерах для Linux (не забываем про абсолютные и относительные пути к файлам):
Пакет лучше переместить в каталог C:/OpenSSL, а конфигурационный файл openssl.cnf — из каталога bin в каталог OpenSSL. Избежим ошибки, как на скрине выше:
Теперь рассмотрим реализацию криптографических алгоритмов.
Симметричные криптоалгоритмы
Если говорить упрощённо, то симметричные алгоритмы шифрования применяют один ключ для шифрования и дешифрования. Таких алгоритмов много, и на практике обычно применяют те, которые имеют достаточную длину ключа и ещё не были скомпрометированы. Симметричные алгоритмы делятся на блочные (DES, RC2, Blowfish, AES, «Кузнечик» и т. д.) и потоковые (RC4, SEAL, CryptMT и другие).
Стойкость к взлому у всех блочных криптографических алгоритмов во многом определяется длиной ключа. Если она составляет 128 бит и более, шифрование считается сильным, так как для расшифровки информации без ключа потребуются годы работы на мощных компьютерах. Кому любопытно — об алгоритмах шифрования с точки зрения длины ключа можно прочитать в посте на Хабре.
Попрактикуемся: при помощи пакета openssl зашифруем созданный нами ранее текстовый файл. Для этого используем команду:
openssl enc -e -aes256 -in simpletext.txt -out simple_enc_text.txt
- enc — указывает модуль для шифрования;
- -e — указывает, что файлы нужно шифровать;
- -aes256 — алгоритм шифрования;
- -in — указывает на исходный файл;
- -out — указывает на зашифрованный файл.
Выглядит это так:
Для расшифровки нужно указать введённый при шифровании ключ и используемый алгоритм. Команда примерно следующая:
openssl enc -d-aes256 -in simple_enc_text.txt -out simpletext.txt
- enc — указывает модуль для шифрования;
- -d — указывает, что файлы нужно расшифровать;
- -aes256 — алгоритм шифрования;
- -in — указывает на исходный файл;
- -out — указывает на расшифрованный файл.
При шифровании симметричными алгоритмами есть несколько интересных проблем.
- Длина ключа. Как уже упоминали, желательно не менее 128 бит
- Сложность использования при большом количестве шифруемых объектов — приходится запоминать много параметров.
- Сложность обмена параметрами шифрования (паролями, алгоритмами и подобным) — необходимо обеспечить их надёжную передачу адресату.
Такие проблемы обычно решают при помощи асимметричных алгоритмов шифрования.
Асимметричные алгоритмы шифрования
Главное преимущество асимметричного шифрования по сравнению с симметричным — возможность сторон обмениваться данными друг с другом, не используя секретные каналы связи.
Криптографическая система на основе асимметричного шифрования использует открытые (public key) и закрытые (private key) ключи для шифрования и расшифровки данных. Эти ключи образуют ключевую пару, компоненты которой связаны зависимостью, но отличаются друг от друга. Идея в том, что, зная открытый ключ, нельзя из него получить закрытый, хотя алгоритм генерации известен.
Открытый ключ передаётся по незащищённым каналам связи и известен всем. Его можно использовать для шифрования файлов и не только. Для расшифровки применяется закрытый ключ, который хранится в тайне.
У многих асимметричных алгоритмов, особенно тех, что основаны на проблемах теории чисел, минимальная длина ключа для надёжного шифрования — 1024 бит. Это сильно ограничивает их применение — симметричные алгоритмы позволяют с меньшей длиной ключа надёжно зашифровать файлы.
При практической реализации асимметричных алгоритмов обычно используют сертификат. Это файл, хранящий ключ (открытый и закрытый) в определённом формате. Подробнее об этом можно почитать в статье «Формат SSL-сертификата».
Рассмотрим два основных стандарта для реализации сертификатов шифрования.
X.509 — стандарт ITU-T для инфраструктуры открытых ключей. Определяет стандартные форматы данных и процедуры распределения открытых ключей с помощью соответствующих сертификатов с цифровыми подписями. Именно он обычно используется для электронной цифровой подписи (ЭЦП) и шифрования, например, в openssl.
OpenPGP — стандарт, выросший из программы PGP (к середине 90-х годов она распространилась в интернете как надёжное средство шифрования электронной почты). Став стандартом де-факто, PGP начал встраиваться во множество приложений и систем. С особенностями можно ознакомиться на специализированном ресурсе об OpenPGP.
Посмотрим, как это выглядит на практике. Начнём с асимметричных алгоритмов в openssl — для этого в Windows командную строку надо запустить с правами администратора.
Создадим закрытый ключ в виде сертификата. Команда следующая:
openssl genrsa -aes256 -out private.pem 8912
- genrsa — указывает, что мы используем модуль для генерации закрытого ключа на основе алгоритма RSA;
- -aes256 — указывает на алгоритм AES для шифрования сертификата;
- -out private.pem — файл для сохранения сертификата;
- 8912 — размер ключа.
Теперь надо извлечь из полученного закрытого ключа публичный. Сделать это можно командой:
openssl rsa -in private.pem -pubout -out public.pem
- rsa — модуль для работы с RSA;
- -in private.pem — задаёт путь к закрытому ключу, из которого извлечём открытый;
- -pubout — извлекает публичный ключ;
- -out public.pem — имя файла для полученного открытого ключа.
Ключ мы получили в виде сертификата в формате pem (ASCII-файл в кодировке base64). Это не единственный формат хранения сертификатов — с другими можно ознакомиться в материале, который уже рекомендовался выше.
Стоит учесть, что таким сертификатом мы не сможем зашифровать объект, превосходящий по размеру сам сертификат. Поэтому поступим хитрее: зашифруем файл симметричным алгоритмом, а ключ шифрования от этого алгоритма зашифруем при помощи сертификата. По шагам:
- Генерируем сертификаты (пару из открытого и закрытого ключа).
- Шифруем текст симметричным алгоритмом AES (его вроде бы ещё не взломали). Предположим, получим файл enc.1.
- Далее выбранный для шифрования пароль шифруем публичным ключом (предположим, получим файл enc.2).
- Теперь можно передать зашифрованный файл enc.1 и файл enc.2 по незащищённому каналу связи.
- На другом конце у получателя должна быть вторая часть ключа (закрытый ключ). Ей он вначале расшифровывает файл enc.2 и извлекает оттуда пароль для дешифровки файла enc.1.
- …
- Profit!
Вот как это выглядит на практике. Вначале шифруем текстовый файл алгоритмом AES (пароль 123456):
Теперь сохраним наш пароль (123456) в файл pass.txt. И зашифруем файл при помощи сертификата. Команда:
openssl rsautl -encrypt -inkey public.pem -pubin -in pass.txt -out pass.ssl
- rsautl — включаем модуль для шифрования, дешифрования и подписывания данных алгоритмом RSA;
- -inkey public.pem — указывает путь к открытому ключу;
- -pubin — указывает, что файл ключа является публичным ключом;
- -in pass.txt — файл для шифрования;
- -out pass.ssl — выходной зашифрованный файл.
Теперь можем переслать этот файл по открытому каналу связи. Перехват такой информации мало что даст злоумышленнику, если у него нет закрытого ключа. Попробуем расшифровать файл закрытым ключом и извлечь пароль для расшифровки:
Мы получили пароль — теперь с его помощью можно расшифровать файл, который мы с ним зашифровали при помощи алгоритма AES:
Как видим, всё расшифровывается. На практике в такой схеме есть особенность: именно получатель должен генерировать открытый и закрытый ключи. А затем потенциальный получатель должен выслать будущему отправителю свой открытый ключ, которым тот будет шифровать передаваемые данные. Поэтому публичный ключ делают доступным всем. Например, можно использовать серверы хранения ключей в интернете или отправить ключ по почте. Чтобы усилить безопасность, рекомендуется вычислять хеш у передаваемых файлов: так получатель сможет проверить, тот ли файл ему отправили.
В этой статье я показал, как работать с шифрованием файлов. В следующей мы подробнее остановимся на стандарте OpenPGP и научимся использовать шифрование в электронной почте.
Работа с криптографическими алгоритмами — это лишь малая часть одного из курсов факультета информационной безопасности Geek University. Ближайший поток стартует 28 декабря — неплохой подарок на Новый год 😉 Кроме того, до 29 декабря вы сможете выбрать ещё один факультет Geek University для себя или в подарок и получить его бесплатно.