Какие рабочие данные нужно шифровать и как правильно это делать

Криптоанализ


Основная статья: Криптоанализ

Как и все шифры, алгоритмы которых известны, блочные шифры подвергаются криптографическим атакам. Цель атаки — разработать алгоритм взлома более эффективный, чем полный перебор всех возможных ключей. В случае нахождения подобного решения, атака считается успешной. При этом шифр является взломанным, если существуют атака, позволяющая провести взлом за время, в течение которого информация сохраняет актуальность, и проведение подобной атаки выгодно злоумышленнику.

Атака полным перебором

Основная статья: Полный перебор

англ. Вrute force attack. Благодаря такой характеристике блочного шифра, как обратимость функции, его вывод становится отличимым от истинной случайной последовательности вследствие парадокса дней рождения

Эта особенность приводит к снижению безопасности шифра и необходимости брать во внимание размер блока. Таким образом, существует компромисс между большими, снижающими производительность шифра, и ненадежными маленькими блоками.

Не менее важную роль играет размер ключа. Ранний шифр DES характеризовался размером ключа в 56 бит, что, как показала практика, явно не достаточно для надежной пересылки данных. Именно атакой полным перебором впервые был вскрыт DES. Более современные алгоритмы, такие как AES и ГОСТ 28147-89 имеют размер ключа в 128 бит и 256 бит соответственно, что делает бессмысленным подобные атаки.

Дифференциальный криптоанализ

Рис.1 Схема взлома дифференциальным криптоанализом

Основная статья: Дифференциальный криптоанализ

англ. Differential cryptanalysis. В 1990 году Эли Бихам (Eli Biham) и Ади Шамир (Adi Shamir) определили идею дифференциального криптоанализа. С помощью этого метода удалось взломать шифр DES. Подобной атаке подвержены шифры с постоянным S-блоком и шифрование в . Данный метод работает с парами шифротекстов, для которых известно различие соответствующих открытых текстов, и рассматривает эволюцию этих различий. Наряду с линейным является самым распространенным при атаках на блочный шифр.

Линейный криптоанализ

Основная статья: Линейный криптоанализ

англ. Linear cryptanalysis. Линейный криптоанализ — метод вскрытия шифра, основанный на поиске аффинных приближений для работы алгоритма. Разработан японским математиком , первым применивший эту технику для атаки на DES и FEAL. Метод основан на применении операции «Исключающее ИЛИ» (XOR) к блокам открытого текста, шифротекста и к их результату, что позволяет получить результат применения XOR для битов ключа. Структура S-блока оказывает сильное влияние на стойкость к линейным атакам. Когда метод был разработан, оказалось, что DES имеет слабость к нему, так как никто не предполагал подобных атак при его разработке.

Интегральный криптоанализ

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

англ. Intergal cryptanalysis. Интегральный криптоанализ — вид атак, особенно применимый к блочный шифрам, построенным на SP-сети. В отличие от дифференциального криптоанализа, использующего пару выбранного открытого текста с фиксированным разницей, вычисленной при помощи операции XOR, интегральный криптоанализ использует множества открытых текстов, в которых одни части удерживаются постоянными, в то время как другие варьируются среди всевозможных значений. Подобное множество с необходимостью имеет сумму по модулю 2 (XOR), равной 0, в то время, как соответствующая сумма шифротекста содержит информацию об операциях шифра.

Другие типы атак

Помимо описанных выше, существуют другие типы атак:

  • ,
  • Атака скольжением или сдвигом (англ. Slide attack),
  • Атака бумерангом (англ. Boomerang attack),
  • XSL-атака (англ. XSL attack, алгебраическая атака),
  • и так далее.

Любой новый шифр должен продемонстрировать стойкость ко всем известным видам атак.

Проблемы

Атака «человек посередине»

Сквозное шифрование предусматривает, что контроль за перепиской осуществляется непосредственно пользователями. Одним из вариантов обхода сквозного шифрования для злоумышленника является захват под свой контроль канала связи между конечными точками, после этого он может попытаться выдать себя за получателя сообщения, чтобы, например, подменить открытый ключ. Чтобы не дать себя обнаружить, злоумышленник после дешифровки сообщения может зашифровать его ключом, который он разделяет с фактическим получателем, или его открытым ключом (в случае асимметричных систем) и снова отправить сообщение. Атаки такого типа принято называть атаками «человек посередине».

Для предотвращения MITM-атак большинство криптографических протоколов используют аутентификацию. Для этого могут использоваться, например, центры сертификации. Альтернативным методом является создание отпечатков открытого ключа на основе общедоступных открытых ключей пользователей или общих секретных ключей. Прежде чем начать разговор, стороны сравнивают свои отпечатки открытых ключей с использованием внешнего канала связи, который гарантирует целостность и аутентичность связи, при этом он не обязательно должен быть секретным. Если отпечатки ключей совпадают, значит атака «человек посередине» не была произведена.

Безопасность конечных точек

Другим способом обхода сквозного шифрования является атака непосредственно на конечные точки доступа. Каждое устройство пользователя может быть взломано, с целью украсть криптографический ключ (для создания атаки «человек посередине») или просто прочитать дешифрованные сообщения пользователей. Для избежания такого рода попыток взлома, необходимо обеспечить соответствующую защиту пользовательских устройств с помощью программных или иных методов. Основными попытками повысить безопасность конечных точек были выделение ключевых операций генерации, хранения и криптографии на смарт-карту, например, в Project Vault Google. Тем не менее, так как ввод и вывод открытого текста видны в системе, то эти подходы не способны защитить от клавиатурных шпионов и вредоносного программного обеспечения, которое может отслеживать разговоры в режиме реального времени. Более надежный подход заключается в физической изоляции устройства.

Бэкдоры

Компании могут также (самостоятельно или по принуждению) внедрять в свое программное обеспечение бэкдоры, которые помогают нарушить согласование ключа или обойти шифрование. Согласно информации, раскрытой Эдвардом Сноуденом в 2013 году, Skype содержал бэкдор, который позволял Microsoft передавать в АНБ сообщения пользователей, несмотря на то, что официально эти сообщения подвергались сквозному шифрованию.

Folder Lock – эффективное шифрование для физических лиц

  • Платформы: Windows, Android, iOS
  • Охватываемые ресурсы: шифрование, защита паролем, предотвращение взлома
  • Облачные функции: Да
  • Интеграция: нет
  • Бесплатная пробная версия: n/a

Хотя важно защитить активы на компьютерах компании, также важно добавить защиту любому устройству, которое хранит важные данные. Например, большинство сотрудников имеют доступ к электронной почте своей компании и другим учетным записям на своих смартфонах, и они должны быть защищены. Folder Lock является хорошим вариантом, когда речь идёт о добавлении шифрования на ваших мобильных устройствах. Приложение может защитить ваши личные файлы, фотографии, видео, контакты, заметки и аудиозаписи, хранящиеся в телефоне. 

Folder Lock является хорошим вариантом, когда речь идёт о добавлении шифрования на ваших мобильных устройствах. Приложение может защитить ваши личные файлы, фотографии, видео, контакты, заметки и аудиозаписи, хранящиеся в телефоне. 

Есть и некоторые другие скрытые функции безопасности. Помимо шифрования, вы также можете установить «пароль-приманку», средства защиты от хакерских атак, регистрировать несанкционированные попытки входа в систему, создать резервную копию всех ваших паролей и получать уведомления о потенциальных атаках методом перебора. Базовое приложение можно загрузить бесплатно, с профессиональной версией вы получите ещё больше функций.


Особенности Folder Lock:

  • Бесплатная базовая версия
  • Эффективное личное шифрование
  • Ориентирован на мобильные устройства

Немного истории

Слова «криптология» и «криптография» в современной литературе часто используются как взаимозаменяемые термины, но между ними есть семантическая разница. У слов различные значения, которые проще всего объяснить так:

  • Криптология — учение об искусстве секретности и/или наука о работе криптосистем;
  • Криптография — практический способ применения методов проектирования криптосистем, чтобы сделать что-то секретное или скрытое;
  • Криптоанализ — поиск уязвимостей, которые позволят восстановить исходное сообщение из шифротекста без знания ключа или алгоритма.

Большая часть статьи посвящена «криптографии», как это принято сегодня, и хотелось бы, чтобы вы знали различия и значения обоих слов.

Само по себе изучение криптологии как науки существует уже много лет. Первый известный случай использования криптографии был обнаружен в надписи, высеченной в 1900 году до нашей эры, в главной гробнице дворянина Хнумхотепа II, в Египте. Писец (да) то тут, то там использовал некоторые странные иероглифы вместо обычных. Целью было скорее не спрятать сообщение, а изменить его форму, чтобы оно выглядело более величавым.

Во время расцвета Римской Империи (100-й год до нашей эры) Юлий Цезарь, как известно, использовал форму шифрования для передачи секретных сообщений своим армейским генералам во время войны. Этот шифр подстановки (шифр Цезаря), вероятно, самый упоминаемый в литературе исторический шифр (шифр — алгоритм, используемый для шифровки или дешифровки сообщений). В шифрах подстановки каждая буква исходного сообщения (исходное сообщение — текст, который будет зашифрован) заменяется на другую букву, находящуюся правее или левее исходной по алфавиту, для получения шифротекста (шифротекст — зашифрованное сообщение). В шифре Цезаря используется сдвиг вправо на 3 позиции, так что «A» становится «D», «B» — «E» и т. д. Алфавит в данном случае будет замкнут и после «X» следует «A».

Во время Второй мировой войны морские пехотинцы США завербовали и обучили людей из племени индейцев навахо, свободно владеющих языком навахо. Это был привлекательный способ использования кодирования, мало людей не из племени знали этот язык, а также не было никаких опубликованных книг на языке навахо. Речевой язык навахо был не очень сложен по криптографическим стандартам и, вероятно, был бы быстро взломан при взаимном сотрудничестве носителя языка и обученных криптографов. У японцев была возможность сделать это, когда в 1942 году на Филлипинах они пленили Джо Кийомию во время Марша смерти в Батаане. После попадания в плен Кийомия, навахо-сержант в армии США, но не носитель кода, получил приказ расшифровать перехваченное радиосообщение. Однако, так как Кийомия не был обучен коду, используемому военными службами США, то слова ему показались ничего не значащими. Когда он доложил, что не может понять перехваченные сообщения, его начали пытать. Японская Имперская Армия и ВМС так и не взломали устный код.

В начале 1970-х компания IBM осознала, что их пользователи требуют какой-нибудь вид шифрования, и сформировала «криптогруппу», возглавляемую Хорстом Фейстелем. Они спроектировали шифр под названием Lucifer. В 1973 году Национальное бюро стандартов США (сейчас NIST — Национальный институт стандартов и технологий США) объявило конкурс на блочный шифр, который должен был стать национальным стандартом. Видимо, они наконец-то осознали, что покупают множество коммерческого ПО без хорошей криптографической поддержки. В конце концов, Lucifer приняли и переименовали в DES (Data Encryption Standard). DES был взломан методом полного перебора в 1997 году. Главной уязвимостью DES была маленькая длина ключа. Когда вычислительная мощность компьютеров увеличилась, то метод полного перебора стал возможен для получения исходного сообщения. И если в 1980-х годах DES был единственным вариантом, то сейчас это изменилось. Сегодня у нас есть широкий выбор более сильных, быстрых и улучшенных алгоритмов. Сейчас проблематично выбрать среди них нужный.

В 1997 году NIST объявил конкурс на новый блочный шифр и получил 50 заявок. В 2000 году был принят Rijndael и назван AES (Advanced Encryption Standard).

Зашифрованный чат

Все ваши диалоги, групповые чаты и сообщества, в которых вы состоите, защищены сквозным шифрованием. Это проверяется следующим образом:

  • Откройте любой чат или группу.
  • Нажмите на три точки в правом верхнем углу.
  • Перейдите из развернутого списка на вкладку “Информация”.
  • Ищите значок щита и уведомление “Сообщения, которые вы отправляете в этот чат, защищены сквозным шифрованием в Viber”.

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


Для пущей секретности можно создать скрытый чат с любым контактом телефонной книги. Такие диалоги доступны лишь после введения PIN-кода. Нормальному общению они не препятствуют. Эту опцию легко убрать.

Технология «End-To-End encryption» для iOS/Android.

Управление ключами

Основная статья: Управление ключами

Основные угрозы ключам

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

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

Цели управления ключами

  • Сохранение конфиденциальности закрытых ключей и передаваемой информации.
  • Обеспечение надёжности сгенерированных ключей.
  • Предотвращение несанкционированного использования закрытых или открытых ключей, например использование ключа, срок действия которого истек.

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

Система генерации ключей обеспечивает составление криптоустойчивых ключей. Сам алгоритм генерации должен быть безопасным, так как значительная часть безопасности, предоставляемой шифрованием, заключена в защищённости ключа. Если выбор ключей доверить пользователям, то они с большей вероятностью выбирают ключи типа «Barney», нежели «*9(hH/A», просто потому что «Barney» проще запомнить. А такого рода ключи очень быстро подбираются методом вскрытия со словарём, и тут даже самый безопасный алгоритм не поможет. Кроме того, алгоритм генерации обеспечивает создание статистически независимых ключей нужной длины, используя наиболее криптоустойчивый алфавит.

Система контроля ключей служит для наиболее безопасной передачи ключей между собеседниками. Если передавать ключ шифрования по открытому каналу, который могут прослушивать, то злоумышленник легко перехватит ключ, и всё дальнейшее шифрование будет бессмысленным. Методы асимметричного шифрования решают эту проблему, используя разные ключи для зашифровывания и расшифровывания. Однако при таком подходе количество ключей растет с увеличением количества собеседников (каждый вынужден хранить свои закрытый и открытый ключи и открытые ключи всех собеседников). Кроме того, методы асимметричного шифрования не всегда доступны и осуществимы. В таких ситуациях используются разные методы по обеспечению безопасной доставки ключей: одни основаны на использовании для доставки ключей альтернативных каналов, считающихся безопасными. Другие, в согласии со стандартом X9.17, используют два типа ключей: ключи шифрования ключей и ключи шифрования данных. Третьи разбивают передаваемый ключ на составные части и передают их по различным каналам. Также существуют различные комбинации перечисленных выше методов.

Кроме того, система управления ключами при возникновении большого количества используемых ключей выступает в роли центрального сервера ключей, хранящего и распределяющего их. В том числе она занимается своевременной заменой скомпрометированных ключей. В некоторых системах в целях быстрой коммуникации могут использоваться сеансовые ключи. Сеансовый ключ — ключ шифрования, который используется только для одного сеанса связи. При обрыве сеанса или его завершении сеансовый ключ уничтожается. Также используемые ключи обычно имеют срок действия, то есть срок, в течение которого они являются аутентичными для использования. После истечения данного срока ключ изымается системой управления и, если необходимо, генерируется новый.

Современное использование

Общие принципы

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

Шифрование и дешифрование происходит на конечных устройствах пользователей. Кроме того, данные остаются зашифрованными, пока не будут доставлены к месту назначения. Поэтому часто сквозное шифрование также называют «нулевой доступ» или «шифрование на стороне клиента». Однако, следует различать оконечное шифрование при передаче данных и шифрование на стороне клиента при хранении данных.

Электронная почта

Одним из первых стандартов для асинхронного обмена сообщениями является протокол SMTP. Этот протокол, изначально используемый только для передачи электронной почты, в первоначальной своей реализации не обеспечивал конфиденциальности переписки при помощи сквозного шифрования. В 1991 году Филиппом Циммерманом был создан пакет программного обеспечения для шифрования электронной почты PGP. Библиотека получила широкое распространение по всему миру, поэтому у многих компаний возникло желание создавать собственное ПО, совместимое с PGP. После этого в 1997 году IETF окончательно определила набор стандартов для сквозного шифрования электронной почты, который назвали OpenPGP. OpenPGP реализован в программном обеспечении систем с открытым исходным кодом, таких как Enigmail для Thunderbird, а также в мобильных приложениях, таких как IPGMail для iOS и в системе управления ключами Openkeychain для Android и других.

В 1999 году Фондом свободного программного обеспечения была разработана реализация OpenPGP, которая получила название GnuPG. Она соответствует стандартам спецификации OpenPGP, выступая в качестве основы свободного программного обеспечения для большинства современных приложений с поддержкой PGP.

Мессенджеры и чаты

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

В 1998 году Джереми Миллером началась разработка проекта Jabber, который впоследствии получил название XMPP. XMPP предоставляет технологию для асинхронного обмена структурированными данными в распределенной сети с участием клиентов и серверов, поддерживающую уведомления о присутствии. Чтобы повысить уровень безопасности, в новых спецификациях протокола будет добавлена поддержка сквозного шифрования, так как сейчас информация, переданная посредством XMPP, по умолчанию не шифруется, хотя в нем и используются встроенные протоколы SASL и TLS Первоначально именно открытый стандарт протокола XMPP, разработанный IETF, использовался в большинстве систем мгновенного обмена сообщениями, таких как Google Talk..

Протокол OTR, выпущенный в 2004 году, является расширением XMPP с целью обеспечить сквозное шифрование. Он также обеспечивает оповещение пользователей, в отличие от PGP, которое впоследствии может быть использовано в качестве записи об установке соединения и идентификации участников. OTR в каком-то смысле можно считать обновлением безопасности по PGP, так как он не хранит долгосрочных открытых ключей, которые могут быть скомпрометированы. К недостаткам OTR можно отнести отсутствие поддержки групповых чатов и асинхронного обмена сообщений, так как он предназначен для синхронного обмена сообщениями между двумя людьми.

Несколько современных мессенджеров используют для шифрования Signal Protocol.

Шифрование файловой системы

Важно отметить, что традиционные методы шифрования баз данных обычно шифруют и дешифруют содержимое БД, администрирование которой обеспечивается системой управления базами данных, работающей поверх операционной системы. Это уменьшает защищенность информации, так как зашифрованная БД может быть запущена на открытой или потенциально уязвимой операционной системе

Например, Microsoft использует технологию шифрования файловой системы (англ. Encrypting File System, EFS), которая обеспечивает шифрование на уровне файлов. Каждый объект шифруется с помощью уникального ключа шифрования файлов (англ. File Encryption Key), защищенного сертификатом пользователя. Этот сертификат может быть составным, что дает возможность получить доступ к файлу больше чем одному пользователю. Из-за расширения сферы шифрования, использование EFS может снизить производительность и усложнить администрирование, так как системному администратору требуется доступ к операционной системе для использования EFS.

2 основных типа алгоритмов асимметричного шифрования

1. Алгоритм асимметричного шифрования RSA

В 1977 году алгоритм изобрели трое ученых из Массачусетского технологического института Рон Ривест, Ади Шамир и Леонард Адлеман (Ron Rivest, Adi Shamir, and Leonard Adleman отсюда «RSA»). На сегодняшний день является наиболее используемым алгоритмом асимметричного шифрования. Его эффективность заключается в методе «первичной факторизации». По сути, выбираются два различных случайных простых числа заданного размера (например, 1024 бита каждое) и умножаются, чтобы создать еще одно гигантское число. Задача состоит в том, чтобы определить исходные простые числа из умноженного гигантского. Оказывается, эта головоломка практически невозможна для современных суперкомпьютеров, не говоря уже о людях. 

В 2010 году группа добровольцев провела исследование, и им потребовалось более 1500 лет вычислительного времени (распределенного по сотням компьютеров), чтобы взломать 768-битный ключ RSA, что намного ниже стандартного 2048-битного, который используется сегодня.

Преимущество использования алгоритма шифрования RSA

Большим преимуществом RSA является его масштабируемость, ключи могут быть разной длины шифрования: 768-битный, 1024-битный, 2048-битный, 4096-битный и т. д. 


RSA основан на простом математическом подходе, поэтому его реализация в инфраструктуре открытых ключей (PKI) становится легкой. Адаптивность и безопасность сделали RSA наиболее используемым алгоритмом асимметричного шифрования для различных приложений, включая сертификаты SSL / TLS, криптовалюты и шифрование электронной почты.

2. Алгоритм асимметричного шифрования ECC

В 1985 году два математика по имени Нил Коблиц и Виктор Миллер предложили использовать эллиптические кривые в криптографии. Спустя почти два десятилетия их идея воплотилась в реальность, алгоритм ECC (Elliptic Curve Cryptography) начали использовать в 2004-2005 годах.

В процессе шифрования ECC эллиптическая кривая представляет набор точек, которые удовлетворяют математическое уравнение (y 2 = x 3 + ax + b).

Как и RSA, ECC также работает по принципу необратимости. Проще говоря, в ECC число, символизирующее точку на кривой, умножается на другое число и дает другую точку на кривой. Теперь, чтобы взломать эту головоломку, вы должны выяснить новую точку на кривой. Математика ECC построена таким образом, что найти новую точку практически невозможно, даже если вы знаете исходную точку.

Преимущество использования алгоритма шифрования ECC

Не смотря на то, что по сравнению с RSA, в ECC используется более короткая длина ключа обеспечивает он большую безопасность (от современных методов взлома).

Еще одним преимуществом использования более коротких ключей в ECC является более высокая производительность. Короткие ключи требуют меньшей сетевой нагрузки и вычислительной мощности, и это отлично подходит для устройств с ограниченными возможностями хранения и обработки. Использование алгоритма ECC в сертификатах SSL/TLS значительно сокращает время, необходимое для шифрования и дешифрования, что помогает быстрее загружать веб-сайт. Алгоритм ECC используется для приложений шифрования, цифровых подписей, в псевдослучайных генераторах и т. д.

Однако проблема массового использования ECC заключается в том, что многие серверные программы и панели управления еще не добавили поддержку сертификатов ECC SSL/TLS. Мы надеемся, что это изменится в скором будущем, а пока что RSA будет продолжать оставаться наиболее используемым алгоритмом асимметричного шифрования.

Зачем мне знания о криптографии?

Предположим, криптография очень нужна, но пусть ей займутся дядьки с усами математики. Зачем же мне знания по криптографии?

Если ты обычный пользователь — то как минимум, чтобы обеспечить свою приватность. Сегодня крупным государствам и влиятельным организациям становятся доступны средства тотального надзора за миллионами людей. Поэтому криптография оказывается важнейшим инструментом, обеспечивающим конфиденциальность, доверие, целостность, авторизацию сообщений и электронных платежей. Повсеместное распространение криптографии останется одним из немногих способов защитить пользователя от угроз, нависающих над его конфиденциальной информацией. Зная, как работает тот или иной протокол или шифр, чем он хорош и где его слабые места, ты сможешь осознанно выбирать инструменты для работы или просто общения в Сети.

Короче говоря, криптография используется гораздо чаще, чем можно себе представить. Поэтому пора снять завесу тайны с этой науки, познакомиться с наиболее интересными аспектами и использовать ее возможности себе на пользу.


С этим читают