Народная мудрость гласит, что правильно сделать шифрование в своем приложении крайне непросто. Свой велосипед почти наверняка будет содержать крайне неочевидные простому смертному дефекты, которые последние 20 лет исправлялись в существующих криптографических пакетах. Поэтому в любой непонятной ситуации нужно использовать готовые наработки, такие, как OpenSSL, LibreSSL, GPG или OTR. Но что делать, если для вашей конкретной задачи нет готового решения? Например, вы реализуете шифрование на уровне страниц для вашей СУБД, или вам нужно шифровать короткие сообщения, передаваемые с помощью NRF24L01 в самопальном IoT-проекте. В данном случае у вас действительно может не быть большого выбора. Но, по крайней мере, вы можете уменьшить шанс появления существенных дефектов в вашем приложении, используя проверенные временем алгоритмы и режимы шифрования.
В последнее время наблюдается повышенный интерес к теме безопасных мессенджеров. Поскольку наиболее популярные из современных мессенджеров, претендующих на безопасность, являются закрытыми, требуют обязательного указания мобильного телефона или, например, работают в браузере, мне лично большого доверия они не внушают. Поэтому сегодня речь пойдет о полностью открытом, бесплатном, кроссплатформенном и внушающем какое-то доверие варианте, заключающемся в использовании Jabber (он же XMPP) с OTR-плагином.
После перехода на Arch Linux у меня возникла проблема выбора решения для шифрования домашнего каталога. Отсутствие шифрования — не вариант, потому что как минимум ноутбук могут украсть. Мне не хочется потом в панике бегать менять пароли и сбрасывать сессии на всех сайтах, от которых утекли куки. Сначала я попробовал encfs. Но это решение быстро потеряло все мои данные (не говоря уже про известную проблему с длинными именами файлов), поэтому от него пришлось отказаться. На Reddit многие посоветовали dm-crypt, на нем я в итоге и остановился.
Данная статья представляет собой краткое руководство по использованию GnuPG (он же GPG). В ней вы найдете основные команды, примеры использования, а также инструкции по прикручиванию GPG к почтовым клиентам. Далее предполагается, что вы знакомы с принципом работы GPG и объяснять, например, что такое ассиметричная криптография, открытый и закрытый ключ, цифровая подпись и так далее, не требуется. За несколько десятилетий существования GPG никто особо не преуспел в его взломе, что как бы намекает нам, что это довольно надежное решение как для обмена зашифрованными сообщениями, так и просто шифрования файлов.
В наше время шифровать нужно все. Перед тем, как залить бэкапы в облако Amazon’а, они должны быть зашифрованы. Ваш домашний каталог в системе должен быть зашифрован на случай кражи ноутбука. Даже базу данных нередко имеет смысл хранить в зашифрованном разделе на случай, если вы не доверяете вашему ДЦ, или допускаете, что кто-то может прийти и забрать из стойки ваш сервер. Сегодня мы рассмотрим одно из возможных решений подобных проблем во FreeBSD.
Сегодня благодаря радушному приглашению добрейшего хозяина этого блога я спешу поделиться с уважаемыми читателями знаниями о квантовой криптографии. Дело это достаточно простое, хоть и немного контринтуитивное, поэтому далее постараюсь описать этот вопрос так, чтобы любой прочитавший мог уяснить суть и смысл новой технологии, находящейся на стыке квантовых вычислений, криптографии и теории информации.
На этих выходных я решил, что что-то больно давно не ставил апдейтов. Ну и решил поставить. Помимо прочего apt-get закачал новую версию JVM. Что интересно, непосредственная установка происходит где-то в недрах пакета oracle-java8-installer, в postinst или вроде того. Поэтому apt-get неправильно определяет объем трафика, необходимый для скачивания апдейтов. Однако поведать я хотел не об этом.
Если вдруг вы все пропустили, сообщаю, что в октябрьском конкурсе по ФП была занятная задачка про генерацию криптографических ключей. На сам конкурс я забил, а вот описанный метод шифрования показался мне очень интересным. Почему-то ранее мне не доводилось о нем слышать.
Решил поделиться своей старенькой наработкой — библиотекой для работы с большими целыми числами и эллиптическими кривыми, а также привести пример ее использования в криптографических целях. Глубокого погружения в математические основы не будет. За более подробной информации, касающейся работы с большими числами и эллиптическими кривыми, обращайтесь к соответствующей литературе и интернету.
Данный пост представляет собой что-то вроде конспекта, составленного по книге Брюса Шнайера и Нильса Фергюсона «Практическая криптография». Книга эта невероятно интересная! Если вы интересуетесь криптографией, то просто обязаны держать ее на полке (в крайнем случае — скачать электронную версию), ровно как и любую другую книгу этих авторов, которую сможете найти.