Что такое шифрование данных – Что такое шифрование и как им пользоваться

Содержание

Что такое шифрование и как им пользоваться

За века своего существования человечество придумало множество способов хранения тайны. В Древнем Риме, например, чтобы тайно передать письмо, брили голову рабу, писали на коже сообщение, а потом, дождавшись, когда волосы отрастут, отправляли его к адресату. Конечно, XXI век не позволяет делать дела столь неспешно, да и защита в этом примере обеспечивается только тем, что о письме никто не знает. К счастью, компьютеры, изначально созданные для взлома военных шифров, дают каждому из нас прекрасный способ хранения личных тайн – информацию можно зашифровать. То, что долгое время было доступно только государственным службам, сегодня может применить любой пользователь. И, что более существенно, даже если вы не задумываетесь над этим, у вас всегда есть тайны, достойные шифрования.

Есть что скрывать

«У меня нет никаких тайн, мне нечего скрывать», – часто можно услышать от пользователей, когда речь заходит о шифровании и других средствах защиты конфиденциальности. Обычно за этой фразой стоит нечто другое – «я считаю, что никто не потрудится лезть в мой телефон или компьютер, чтобы там найти что-то ценное». Но практика показывает, что это не так. Файл, сохраненный на рабочий стол компьютера или телефон, оставленный в гостиной, довольно быстро будет изучен кем-то из домочадцев. Все ли письма, фотографии и документы вы готовы показывать жене, брату, теще, детям? Возможно, там нет ничего криминального. Но готовы ли вы сообщить номер своей кредитной карты и ее PIN-код детям-подросткам? Отдать брату пароли от почты и социальных сетей?Демонстрировать

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

Ваши фото, номера банковских карт и просто личная переписка интересуют всех: домочадцев, работодателей и, конечно, киберпреступников

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

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

Семь бед – один ответ 

Угроз, как мы видим, существует много, и от каждой из них можно придумать свой способ защиты: изолировать компьютер в запертой спальне, поставить PIN-код на включение смартфона и так далее. Но если защитить информацию не путем физической изоляции, а так, чтобы ее мог прочитать только владелец, результат будет более надежным и всеобъемлющим.  Абсолютно все перечисленные неурядицы – большие и малые – могли бы не случиться, если бы важная информация, предназначенная не для всех глаз, хранилась бы в зашифрованном виде.
Иногда вы сталкиваетесь с шифрованием, даже если не задумываетесь об этом, – например, заходя в Gmail или на сайт онлайн-банкинга по протоколу HTTPS, вы связываетесь с банком по зашифрованному каналу. Встроено шифрование и в самый популярный сегодня стандарт сотовой связи GSM. Но сегодня мы сосредоточимся на другом – шифровании данных, хранящихся на компьютере или смартфоне.

Что такое шифрование

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

Необходимо отличать шифрование от кодирования. Кодирование тоже преобразует  
информацию, но лишь для удобства хранения и передачи, секретность не является 
основной задачей. Типичные способы кодирования – азбука Морзе и двоичное 
кодирование букв для хранения в компьютере.

Ваш цифровой сейф

Самое удобное на сегодня решение по шифрованию файлов на компьютере – это создание «контейнера», который виден в системе как отдельный диск. На этот диск можно сохранять или копировать любую информацию, с ним можно работать из любой программы, он ничем, по сути, не отличается от флешки или раздела винчестера, чем и удобен. Важное «но» – на самом деле контейнер является отдельным большим файлом на вашем винчестере, доступ к которому организован через специальную программу, например Kaspersky CRYSTAL. Любой файл, сохраняемый на этот особый диск, будет «на лету» зашифрован и записан в общий файл-контейнер.

Файл-хранилище может увидеть любой посторонний, его даже можно украсть (скопировать).  Но это не даст злоумышленнику или просто любопытному ровным счетом ничего – внутри файла содержится лишь мешанина символов, и можно потратить многие годы на то, чтобы подобрать пароль, который превращает этот файл в диск с читабельными файлами.
Чтобы зашифрованный контейнер стал эффективной защитой вашей информации, нужно соблюдать несколько простых правил:

    • ключ (пароль) шифрования является единственной защитой информации от посторонних. Он должен быть очень длинным, трудным для подбора, – в общем, стойким. Советы по выбору стойкого пароля можно прочитать в этом посте;
    • на диске-хранилище нужно хранить всю конфиденциальную информацию;
    • вся информация на диске доступна знающему пароль. Если у вас есть разные группы информации для разных пользователей, заведите несколько хранилищ с разными паролями;
    • не держите диск-хранилище постоянно подключенным, иначе с него можно украсть файлы так же, как с обычного диска. Подключайте диск на время работы с важными данными и отключайте сразу после ее завершения;
    • информация на зашифрованном диске будет потеряна целиком, если файл-контейнер окажется хоть немного поврежден. Регулярно проводите резервное копирование файла-контейнера;
    • обязательно используйте всестороннюю защиту компьютера, такую как Kaspersky CRYSTAL, чтобы обезопасить свой пароль от троянских приложений и «клавиатурных шпионов». Действующий шпион сводит парольную защиту на нет.

Сейф на смартфоне

Ответом на вышеописанную проблему с кражей смартфонов стало включение в современные мобильные ОС функций шифрования. Ключевая информация в смартфоне постоянно хранится в зашифрованном виде и всякий раз расшифровывается, когда владелец вводит пароль или PIN-код разблокировки. Apple не дает пользователю глубоко управлять этой функцией, но значительное количество информации подвергается шифровке при активации защитного PIN-кода на включение смартфона/планшета. В Android в настройках безопасности имеется опция полной шифровки содержимого телефона, которая делает все данные на устройстве недоступными без ввода пароля. Для максимальной надежности в обоих случаях рекомендованы свежие версии мобильных ОС – iOS с 6.1 и Android с 4.1.

«Облачная» защита

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

www.kaspersky.ru

Шифрование - это... Что такое Шифрование?

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

[1][2]

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

В целом, шифрование состоит из двух составляющих — зашифрование и расшифрование.

С помощью шифрования обеспечиваются три состояния безопасности информации:[1]

  • Конфиденциальность.
Шифрование используется для сокрытия информации от неавторизованных пользователей при передаче или при хранении.
Шифрование используется для предотвращения изменения информации при передаче или хранении.
  • Идентифицируемость.
Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.

Для того чтобы прочитать зашифрованную информацию, принимающей стороне необходимы ключ и дешифратор(устройство реализующее алгоритм расшифровывания). Идея шифрования состоит в том, что злоумышленник, перехватив зашифрованные данные и не имея к ним ключа, не может ни прочитать, ни изменить передаваемую информацию. Кроме того, в современных криптосистемах(с открытым ключом) для шифрования, расшифрования данных могут использоваться разные ключи. Однако, с развитием криптоанализа, появились методики позволяющие дешифровать закрытый текст не имея ключа, они основаны на математическом анализе перехваченных данных.[1][3]

Цели шифрования

Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищенным каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса:

  • Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифрованию.
  • Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифрования.

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

[4][5]

Шифром называется пара алгоритмов, реализующих каждое из указанных преобразований. Эти алгоритмы применяются над данными с использованием ключа. Ключи для шифрования и для расшифровывания могут отличаться, а могут быть одинаковыми. Секретность второго(расшифровывающего) из них делает данные недоступными для несанкционированного ознакомления, а секретность первого(шифрующего) делает невозможным навязывание ложных данных. В первых методах шифрования использовались одинаковые ключи, однако в 1976 году были открыты алгоритмы с применением разных ключей. Сохранение этих ключей в секретности и правильное их разделение между адресатами является очень важной задачей с точки зрения сохранения конфиденциальности передаваемой информации. Эта задача исследуется в теории управления ключами(в некоторых источниках она упоминается как разделение секрета).[3]

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

Зашифрование и расшифрование

Как было сказано, шифрование состоит из двух взаимно обратных процессов: зашифрование и расшифрование. Оба этих процесса на абстрактном уровне представимы математическими функциями, к которым предъявляются определенные требования. Математически, данные, используемые в шифровании, представимы в виде множеств над которыми построены данные функции. Иными словами, пусть существуют два множества, представляющее данные — , и ; и каждая из двух функций(шифрующая и расшифровывающая) является отображением одного из этих множеств в другое.[6][7]

Шифрующая функция:
Расшифровывающая функция:

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

[2]

Если для шифрования и расшифрования используется один и тот же ключ , то такой алгоритм относят к симметричным. Если же из ключа шифрования алгоритмически сложно получить ключ расшифрования, то алгоритм относят к асимметричным, то есть к алгоритмам с открытым ключом.[8]

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

Криптостойкость шифра

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

Любая система шифрования, кроме абсолютно криптостойких, может быть взломана простым перебором всех возможных в данном случае ключей. Но перебирать придется до тех пор, пока не отыщется тот единственный ключ, который и поможет расшифровать шифротекст. Выбор этого единственного ключа основан на способности отличить правильно расшифрованое сообщение. Зачастую, эта особенность является камнем преткновения при подборе ключа, так как, перебирая вручную, криптоаналитику, зачастую, достаточно просто отличить правильно расшифрованный текст, однако ручной перебор очень медленен. Если же, программа выполняет перебор, то это происходит быстрее, однако, ей сложно выделить правильный текст. Невозможность взлома полным перебором абсолютно криптостойкого шифра, так же, основана на способности отличить в расшифрованном сообщении именно то, которое было зашифровано в криптограмме. Перебирая все возможные ключи и применяя их к абсолютно стойкой системе, криптоаналитик получит множество всех возможных сообщений, которые можно было зашифровать(в нем могут содержаться и осмысленные сообщения). Кроме того, процесс полного перебора длительный и трудоемкий. О сложностях метода прямого перебора можно судить исходя из приведенной ниже таблицы.[10]


Другой метод дешифровки основывается на анализе перехваченных сообщений. Этот метод имеет большое значение, так как перехват сообщений доступен злоумышленнику, если он обладает специальным оборудованием, а в отличие от достаточно мощного и дорогостоящего оборудования для решения задачи полного перебора, оборудование для перехвата сообщений более доступно. Например, перехват ван Эйка для ЭЛТ монитора осуществим с помощью обычной телевизионной антенны. Кроме того, существуют программы для перехвата сетевого трафика(снифферы), которые доступны и в бесплатных версиях.[12][13][14]

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

Клод Шеннон впервые оценил количество подобной информации в зашифрованных сообщениях следующим образом[10]

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

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

Через здесб обозначена вероятность того, что исходное сообщение есть при условии, что результат его зашифрования есть .

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

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

Абсолютно стойкие системы

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

Таким образом злоумышленник не сможет извлечь никакой полезной информации об открытом тексте из перехваченного шифротекста. Шифр обладающий таким свойством называется абсолютно стойким.[10]

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

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

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

  1. Шифрующая система должна создаваться с исключительно глубоким знанием структуры используемого языка передачи сообщений
  2. Сложная структура естественных языков крайне сложна и для устранения избыточности передаваемой информации может потребоваться крайне сложное устройство.
  3. Если в передаваемом сообщений возникает ошибка, то эта ошибка сильно разрастается на этапе кодирования и передачи, в связи со сложностью используемых устройств и алгоритмов.[16]
Достаточно стойкие системы

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

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

Добиться высокого уровня практической стойкости алгоритма можно двумя подходами:[18]

  1. Изучить методы, которыми пользуется злоумышленник и попытаться их изучить на используемой системе.
  2. Составить шифр таким образом, что бы его сложность была эквивалентно сложности известной задачи, для решения которой требуется большой объем вычислительных работ.

Методы шифрования

Существующие методы шифрования можно разделить на две большие группы:[6]

Также шифры могут отличаться структурой шифруемой информации. Они могут либо шифровать сразу весь текст, либо шифровать его по мере поступления. Таким образом существуют:[6]

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

Блочный шифр можно превратить в поточный, разбивая входные данные на отдельные блоки и шифруя их по отдельности. Однако, блочные шифры являются более криптоустойчивыми по сравнению с поточными. Кроме того, блочные шифры работают зачастую быстрее и легко реализуемы посредством программного обеспечения. Поточные, же, шифры зачастую реализуются в аппаратном виде(в виде некой шифрующей аппаратуры), так как представление данных и их обработка в поточных шифрах очень близка к обработке данных и их передаче в аппаратуре. Там данные представляются именно потоком, чаще всего.[6][19]


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

Симметричное шифрование

Симметричное шифрование

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

Симметричные, а конкретнее, алфавитные алгоритмы шифрования были одними из первых алгоритмов.[20] Позднее было изобретено асимметричное шифрование, в котором ключи у собеседников разные.[21]

Схема реализации

Задача. Есть два собеседника — Алиса и Боб, они хотят обмениваться конфиденциальной информацией.
  • Генерация ключа.
Боб(или Алиса) выбирает ключ шифрования и алгоритм (функции шифрования и расшифрования), затем посылает эту информацию Алисе(Бобу).
  • Шифрование и передача сообщения.
Алиса шифрует информацию с использованием полученного ключа .
И передает Бобу полученный шифротекст . То же самое делает Боб, если хочет отправить Алисе сообщение.
  • Расшифрование сообщения.
Боб(Алиса), с помощью того же ключа , расшифровывает шифротекст .

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

Асимметричное шифрование (с открытым ключом)

Асимметричное шифрование

В системах с открытым ключом используются два ключа — открытый и закрытый, связанные определенным математическим образом друг с другом. Открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для шифрования сообщения и для проверки ЭЦП. Для расшифровки сообщения и для генерации ЭЦП используется секретный ключ.[22]

Данная схема решает проблему симметричных схем, связанную с начальной передачей ключа другой стороне. Если в симметричных схемах злоумышленник перехватит ключ, то он сможет как «слушать», так и вносить правки в передаваемую информацию. В асимметричных системах другой стороне передается открытый ключ, который позволяет шифровать, но не расшифровывать информацию. Таким образом решается проблема симметричных систем, связанная с синхронизацией ключей.[21]

Первыми исследователями, которые изобрели и раскрыли понятие шифрования с открытым кодом, были Уитфилд Диффи и Мартин Хеллман из Стэнфордского университета, и Ральф Меркле из Калифорнийского университета в Беркли. В 1976 году их работа «Новые направления в современной криптографии» открыла новую область в криптографии, теперь известную как криптография с открытым ключом.

Схема реализации

Задача. Есть два собеседника — Алиса и Боб, Алиса хочет передавать Бобу конфиденциальную информацию.
  • Генерация ключевой пары.
Боб выбирает алгоритм и пару открытый, закрытый ключи — и посылает открытый ключ Алисе по открытому каналу.
  • Шифрование и передача сообщения.
Алиса шифрует информацию с использованием открытого ключа Боба .
И передает Бобу полученный шифротекст .
  • Расшифрование сообщения.
Боб, с помощью закрытого ключа , расшифровывает шифротекст .

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

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

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

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

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

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

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

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

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

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

Правовые нормы

Развитие шифрования и его методов привело к их широчайшей распространенности. Сейчас, для конечного пользователя не составляет труда зашифровать раздел на жестком диске или переписку и установить защищенное соединение в интернет. В связи с тем, что шифрование и другие информационные технологии проникают в наш быт, растет число компьютерных преступлений. Зашифрованная информация, так или иначе, представляет собой объект защиты, который, в свою очередь, должен подвергаться правовому регулированию. Кроме того, подобные правовые нормы необходимы из-за того, что существует некоторое противоречие между стремлением правительств иметь доступ к информации(с целью обеспечения безопасности и для предотвращения преступлений), и стремлением граждан обеспечить высокий уровень охраны для своей действительно секретной информации. Для разрешения этой проблемы, прибегают к разным способам, это и возможный запрет на использование высокоэффективных методов шифрования, и требование передачи компетентным органам шифровальных ключей. Различия в правилах и ограничениях по шифрованию компьютерной информации могут создать определенные трудности в деловых международных контактах в плане обеспечения конфиденциальности их общения. В связи с этим, в любом государстве, поведение в отношении передачи и шифрования информации регулируется различными правовыми нормами.[28]

Примечания

  1. 1 2 3 4 Мэйволд, 2006, Глава 12.Шифрование
  2. 1 2 3 Шнайер, 2002, с. 8
  3. 1 2 Шнайер, 2002, с. 8-9
  4. Шнайер, 2002, Введение
  5. Жельников, 1996, Введение
  6. 1 2 3 4 5 Шнайер, 2002, Глава 1. Основные понятия
  7. Шеннон, 1963, с. 1-8
  8. Шнайер, 2002, с. 9-10
  9. Мао, 2005, с. 43-45
  10. 1 2 3 4 Шеннон, 1963, Часть 2.Теоретическая секретность.
  11. Шнайер, 2002, Таблица 7-1
  12. 1 2 Мао, 2005, с. 45-48
  13. Шеннон, 1963, с. 12
  14. Wim van Eck Electromagnetic Radiation from Video Display Units: An Eavesdropping Risk? (англ.) // Computers & Security : журнал. — Elsevier Advanced Technology Publications, 1985. — В. 4. — Т. 4. — С. 269—286. — ISSN 01674048. — DOI:10.1016/0167-4048(85)90046-X
  15. Шеннон, 1963, Часть 2.Теоретическая секретность, с. 23-27
  16. Шеннон, 1963, Часть 2.Теоретическая секретность, с. 37
  17. Шеннон, 1963, Части 2 и 3.
  18. Шеннон, 1963, с. 39-40
  19. Шнайер, 2002, Глава 9. Типы алгоритмов и криптографические режимы
  20. Павел Исаев. Некоторые алгоритмы ручного шифрования (рус.) // КомпьютерПресс. — 2003. — В. 3.
  21. 1 2 Уитфилд Диффи, Мартин Хеллман Новые направления в криптографии (англ.). — 1976.
  22. Шнайер, 2002, Глава 1 и 19
  23. 1 2 3 Шнайер, 2002, Глава 8
  24. Алферов, 2002, с. 68-69
  25. Мао, 2005, с. 61-62
  26. Шнайер, 2002, Глава 8.1
  27. Шнайер, 2002, Глава 8.3
  28. Колесников Дмитрий Геннадьевич Защита информации в компьютерных системах (рус.).

Литература

  • Венбо Мао Современная криптография. Теория и практика = Modern Cryptography: Theory and Practice. — М.: Вильямс, 2005. — 768 p. — 2000 экз. — ISBN 5-8459-0847-7
  • А. П. Алферов, А. Ю. Зубов, А. С. Кузьмин, А. В. Черемушкин Основы Криптографии.. — Гелиос АРВ, 2002. — 480 с.

См. также

Ссылки

dic.academic.ru

Криптография и главные способы шифрования информации

В XXI веке криптография играет серьезную роль в цифровой жизни современных людей. Кратко рассмотрим способы шифрования информации.

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

ROT13 – еще один распространенный тип шифрования сообщений. В нём каждая буква алфавита сдвигается на 13 позиций, как показано на рисунке:

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

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

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

Конфиденциальность – данные не могут быть получены или прочитаны неавторизованными пользователями.

Целостность информации – уверенность в том, что информация 100% останется нетронутой и не будет изменена злоумышленником.

Доступность информации – получение доступа к данным, когда это необходимо.

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

Основные способы шифрования:
  • Симметрично
  • Асимметричное
  • Хеширование
  • Цифровая подпись

Прежде чем мы начнем разбираться в теме, ответим на простой вопрос: что именно подразумевается под "шифрованием"? Шифрование – преобразование информации в целях сокрытия от неавторизованных лиц, но в то же время с предоставлением авторизованным пользователям доступа к ней.

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

require 'openssl'
require 'pry'

data_to_encrypt = 'now you can read me!'

cipher = OpenSSL::Cipher.new('aes256')
cipher.encrypt

key = cipher.random_key
iv  = cipher.random_iv

data_to_encrypt = cipher.update(data_to_encrypt) + cipher.final

binding.pry
true

Вот что выведет программа:

Обратите внимание, что переменная data_to_encrypt, которая изначально была строкой “now you can read me!”, теперь куча непонятных символов. Обратим процесс, используя ключ, который изначально сохранили в переменной key.

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

Давайте рассмотрим и другие способы шифрования.

Проблема симметричного шифрования заключается в следующем: предположим, необходимо отправить какие-то данные через Интернет. Если для шифрования и расшифровки данных требуется один и тот же ключ, то получается, что сначала нужно отправить ключ. Это означает, что отослать ключ надо будет через небезопасное соединение. Но так ключ может быть перехвачен и использован третьей стороной. Чтобы избежать такого исхода, изобрели асимметричное шифрование.

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

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

Но как понять, что открытый ключ сервера принадлежит именно этому серверу? Существует несколько способов решения этой проблемы. Наиболее распространенный метод (и тот, который используется в интернете) – использование инфраструктуры открытых ключей (PKI). В случае веб-сайтов существует Центр сертификации, у которого есть каталог всех сайтов, на которые были выданы сертификаты и открытые ключи. При подключении к веб-сайту его открытый ключ сначала проверяется центром сертификации.

Создадим пару открытого и закрытого ключей:

require 'openssl'
require 'pry'

data_to_encrypt = 'now you can read me!'

key = OpenSSL::PKey::RSA.new(2048)

binding.pry
true

Получится:

Обратите внимание, что приватный ключ и открытый ключ являются отдельными объектами с различными идентификаторами. Используя #private_encrypt, можно зашифровать строку с помощью закрытого ключа, а используя #public_decrypt – расшифровать сообщение:

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

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

Создадим новую строку, хешируем её и сохраним результат в переменной:

require 'openssl'
require 'pry'

test = 'some data'

digest = Digest::SHA256.digest(test)

binding.pry
true

Снова хешируем строку и сравниваем её с той, что сохранили в переменной digest:

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

Чтобы показать, как выглядят разные строки похожих исходных данных, взгляните на это:

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

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

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

Оригинал

proglib.io

Статья: Что такое шифрование и зачем нужно шифрование в интернете?

Зачем нужно шифрование?

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

Что же такое шифрование?

Чтобы передать информацию (записку) по каналу, которому ты не доверяешь (через Лёшу), люди придумали шифрование. Шифровать можно по-разному. Например, вы с Сашей договорились, что вы будете в записке заменять каждую букву А на Б, Б на В, В на Г и так далее, и «Настя позвала меня на др!» превратится в «Обтуа рпигбмб нёоа об ес!».  Леша точно ничего не поймет, а Саше нужно просто взять эту белиберду и сделать все наоборот – А заменить на Я, Б – на А.

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

Но замок можно взломать!

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

И причем здесь интернет?

Что бы ты ни делал в интернете, ты всегда передаешь информацию. Иногда это информация не очень важная – например, фото пирожного, которое ты ешь в кафе, отправленное подруге. Иногда – очень важная: номер платежной карты, который ты скидываешь однокласснику, чтобы собрать деньги на общий подарок; пароль, который ты вводишь на странице логина в соцсети; сообщения в мессенджере на личные темы. Для разных ситуаций нужен разный уровень безопасности.

Как понять, защищен ли я?

Давай рассмотрим для примера Wi-Fi. Если ты можешь присоединиться к сети без пароля (открытый Wi-Fi), то Леша, если он достаточно умен, сможет читать все пакеты (кусочки информации), которыми ты обмениваешься с Сашей. Это все равно, что просто передавать записку – тебе нужно ее дополнительно зашифровать.

Если пароль нужен, то это сеть с шифрованием. Легко ли ее взломать? Открой настройки интернета и посмотри, какой применяется протокол. Если используется WPA2 (достаточно надежный современный протокол), а пароль к сети сложный – можно быть относительно спокойным. Если же, например, используется WEP или WPA-TKIP – устаревшие протоколы, давно признанные ненадежными, – то такую сеть легко взломать, и доверять ей не стоит.

Не путай пароль с требованием Wi-Fi сети сообщить ей твой номер телефона и ввести код из SMS для входа! Это нужно для того, чтобы владелец сети знал, кто ты – таково требование законодательства. К шифрованию это отношения не имеет.

Очень нужен интернет, а есть только открытая Wi-Fi сеть. Что делать?

Если ты хочешь просто почитать новости или посмотреть мемы, наверное, ничего страшного не случится. Но если ты передаешь важные данные – нужна дополнительная защита. Ее можно получить, например, установив приложение для VPN – оно дополнительно шифрует все, что ты отправляешь и принимаешь по сети и отправляет на VPN-сервер за пределами Wi-Fi-сети, который расшифровывает данные и переправляет дальше. Кроме того, VPN скрывает от сайтов в интернете, где ты находишься – сайтам кажется, что ты находишься там, где расположен VPN-сервер, который может быть, например, в Австралии или Гонконге.

Когда я сижу в интернете, у меня в браузере рядом с сайтом зеленый замок. Что это значит?

Это значит, что обмен информацией между тобой и сайтом дополнительно зашифрован с помощью протокола SSL/TLS, а какая-то авторитетная организация (называемая центром сертификации) подтверждает, что этот сайт – тот, за кого он себя выдает. Ссылка на сайты, которые используют дополнительное шифрование, начинается с https://, а не http://. Если тебе нужно ввести на сайте какие-то важные данные (фамилия/имя/дата рождения, номер паспорта, платежные данные), а он не использует HTTPS – лучше от использования этого сайта отказаться.

Обрати внимание на сайты с красным замком (обычно браузер на них ругается вот так). Это может означать, что сайт неправильно настроил HTTPS, а может, что кто-то пытается перехватить и украсть твои данные. Такими сайтами пользоваться нельзя!

Значит, сайты с зеленым замком безопасны?

Совсем нет. Это значит, что они те, кем они представились центру сертификации, а передача данных с твоего телефона или компьютера на них защищена. Представим, что есть хакерский сайт instogram.com (обрати внимание на опечатку!), который крадет пароли от настоящего инстаграма, если тебе не посчастливилось попробовать на нем залогиниться. У него вполне может быть зеленый замок – значит, какой-то другой злоумышленник не сможет перехватить информацию, которую ты там ввел, а центр сертификации подтверждает, что это и правда поддельный instogram. Вне зависимости от шифрования не вводи данные на сайтах и в приложениях, которым не доверяешь!

Доверие – это важно?

Да. Представь, что ты делишься с Сашей ключом шифрования и передаешь ей записку, а она оказывается ее сестрой-близнецом, которая об этой записке не должна была узнать. Ты должен доверять человеку, которому отправляешь записку. То же касается, например, Wi-Fi-сетей – даже если она использует шифрование, данные шифруются только между твоим устройством и роутером. Если у тебя нет оснований доверять сети (на самом деле, это касается любого публичного Wi-Fi), нужно быть осторожным: вдруг это злой роутер, который расшифровывает и сохраняет все, что ты передаешь по сети? Тогда шифрование самой Wi-Fi сети не поможет – тебе нужна дополнительная защита, например, VPN-приложение. Но и VPN должен быть такой, которому ты доверяешь, ведь он получает контроль над твоим трафиком. Так что скачивать первое попавшееся приложение из Google Play не стоит. У «Лаборатории Касперского» есть свой VPN с бесплатным трафиком – вполне подойдет, если ты нечасто передаешь важные вещи по открытым сетям.

Подводя итог

1) Шифрование – отличный способ защитить информацию при передаче так, чтобы она не попала не в те руки.

2) Пользуясь Wi-Fi, следует избегать открытых сетей. А на домашнем роутере настрой WPA2 и установи сильный пароль.

3) В публичных сетях используй VPN.

4) Не оставляй важные данные на сайтах, которые не используют HTTPS или используют его неправильно.

5) Использование сайтом HTTPS (зеленый замок) – не показатель, что сайт безопасен. Использование HTTPS значит только то, что сайт использует шифрование.

kids.kaspersky.ru

преимущества и недостатки / КиберСофт corporate blog / Habr

В данной статье пойдет речь о прозрачном шифровании, реализуемом с помощью программы CyberSafe Top Secret. Кроме самой программы CyberSafe Top Secret будет показано, как можно расшифровать файлы, зашифрованные с помощью EFS.

Несколько слов о прозрачном шифровании

Ранее в наших статьях было показано, как использовать программу CyberSafe Top Secret для шифрования физических дисков и создания виртуальных зашифрованных дисков. Однако не всегда такое шифрование удобно.
Во-первых, не всегда есть возможность зашифровать весь физический диск. Во-вторых, если вы используете виртуальные диски, то файлы контейнеров, как правило, занимают сотни мегабайт дискового пространства и их весьма просто обнаружить злоумышленнику. Да, есть методы сокрытия данных, но побеждает человеческая лень. В-третьих, зашифрованная папка может постоянно расти, а размер криптодиска ограничен величиной, указанной при его создании.
Всем хочется и удобно работать с файлами, и чтобы при этом файлы были надежно защищены. Такой компромисс есть — это прозрачное шифрование файлов, когда файлы зашифровываются и расшифровываются «на лету» — в процессе работы с ними. Файлы остаются зашифрованными, а вы работаете с ними, как с обычными файлами. Например, если вы зашифровали папку C:\Documents и поместили в нее свои документы, то при открытии документа из этой папки запускается Word или Excel и они даже не подозревают, что они являются зашифрованными. Вы работаете с зашифрованными файлами, как с самыми обычными, совершенно не задумываясь о шифровании, монтировании, виртуальных дисках и т.д.
Кроме удобства использования у прозрачного шифрования есть еще одно весомое преимущество. Как правило, на виртуальных зашифрованных дисках хранится большое количество файлов. Для работы даже с одним из них вам нужно подключать весь криптодиск. В результате становятся уязвимыми все остальные файлы. Конечно, можно создать множество небольших криптодисков, присвоить каждому отдельный пароль, но это не очень удобно.
В случае с прозрачным шифрованием можно создать столько зашифрованных папок, сколько вам нужно и поместить в каждую из них различные группы файлов — документы, личные фото и т.д. При этом расшифровываются только те файлы, к которым осуществляется доступ, а не все файлы криптодиска сразу.
Преимущества и недостатки EFS

В Windows (начиная с Windows 2000 и кроме Home-выпусков) традиционно для организации прозрачного шифрования используется шифрованная файловая система — EFS (Encrypting File System).
EFS предназначена, чтобы один пользователь не мог получить доступ к файлам (зашифрованным) другого пользователя. Зачем нужно было создавать EFS, если NTFS поддерживает разграничение прав доступа? Хотя NTFS и является довольно безопасной файловой системой, но со временем появились различные утилиты (одной из первых была NTFSDOS, позволяющая читать файлы, находящиеся на NTFS-разделе, из DOS-окружения), игнорирующие права доступа NTFS. Появилась необходимость в дополнительной защите. Такой защитой должна была стать EFS.
По сути, EFS является надстройкой над NTFS. EFS удобна тем, что входит в состав Windows и для шифрования файлов вам не нужно какое-либо дополнительное программное обеспечение — все необходимое уже есть в Windows. Для начала шифрования файлов не нужно совершать какие-либо предварительные действия, поскольку при первом шифровании файла для пользователя автоматически создается сертификат шифрования и закрытый ключ.
Также преимуществом EFS является то, что при перемещении файла из зашифрованной папки в любую другую он остается зашифрованным, а при копировании файла в зашифрованную папку он автоматически шифруется. Нет необходимости выполнять какие-либо дополнительные действия.
Такой подход, конечно же, очень удобен, и пользователю кажется, что от EFS одна только польза. Но это не так. С одной стороны, при неблагоприятном стечении обстоятельств, пользователь может вообще потерять доступ к зашифрованным файлам. Это может произойти в следующих случаях:
  1. Аппаратные проблемы, например, вышла из строя материнская плата, испорчен загрузчик, повреждены системные файлы из-за сбоя жесткого диска (bad sectors). В итоге жесткий диск можно подключить к другому компьютеру, чтобы скопировать с него файлы, но если они зашифрованы EFS, у вас ничего не выйдет.
  2. Система переустановлена. Windows может быть переустановлена по самым разнообразным причинам. В этом случае доступ к зашифрованным данным, понятно, будет потерян.
  3. Удален профиль пользователя. Даже если создать пользователя с таким же именем, ему будет присвоен другой ID, и расшифровать данные все равно не получится.
  4. Системный администратор или сам пользователь сбросил пароль. После этого доступ к EFS-данным также будет потерян.
  5. Некорректный перенос пользователя в другой домен. Если перенос пользователя выполнен неграмотно, он не сможет получить доступ к своим зашифрованным файлам.

Когда пользователи (особенно начинающие) начинают использовать EFS, об этом мало кто задумывается. Но, с другой стороны, существует специальное программное обеспечение (и далее оно будет продемонстрировано в работе), позволяющее получить доступ к данным, даже если система была переустановлена, и были потеряны некоторые ключи. И я даже не знаю к преимуществам или недостаткам отнести сей факт — данное ПО позволяет восстановить доступ к данным, но в то же время оно может использоваться злоумышленником для получения несанкционированного доступа к зашифрованным файлам.
Казалось бы, данные с помощью EFS зашифрованы очень надежны. Ведь файлы на диске шифруются с помощью ключа FEK (File Encryption Key), который хранится в атрибутах файлов. Сам FEK зашифрован master-ключом, который, в свою очередь, зашифрован ключами пользователей системы, имеющих доступ к этому файлу. Ключи пользователей зашифрованы хэшами паролей этих пользователей, а хэши паролей — зашифрованы еще и SYSKEY.
Казалось бы, такая цепочка шифрования должна была обеспечить надежную защиту данных, но все банально сводится к логину и паролю. Стоит пользователю сбросить пароль или переустановить систему, получить доступ к зашифрованным данным уже не получится.
Разработчики EFS перестраховались и реализовали агентов восстановления (EFS Recovery Agent), то есть пользователей, которые могут расшифровать данные, зашифрованные другими пользователями. Однако использовать концепцию EFS RA не очень удобно и даже сложно, особенно для начинающих пользователей. В итоге, эти самые начинающие пользователи знают, как зашифровать с помощью EFS файлы, но не знают, что делать в нештатной ситуации. Хорошо, что есть специальное ПО, которое может помочь в этой ситуации, но это же ПО может использоваться и для несанкционированного доступа к данным, как уже отмечалось.
К недостаткам EFS можно также отнести невозможность сетевого шифрования (если оно вам нужно, то необходимо использовать другие протоколы шифрования данных, например, IPSec) и отсутствие поддержки других файловых систем. Если вы скопируете зашифрованный файл на файловую систему, которая не поддерживает шифрование, например, на FAT/FAT32, файл будет дешифрован и его можно будет просмотреть всем желающим. Ничего удивительного в этом нет, EFS — всего лишь надстройка над NTFS.
Получается, что от EFS вреда больше, чем пользы. Но, чтобы не быть голословным, приведу пример использования программы Advanced EFS Data Recovery для получения доступа к зашифрованным данным. Сценарий будет самый простой: сначала я войду в систему под другим пользователем и попытаюсь получить доступ к зашифрованному файлу, который зашифровал другой пользователь. Затем я смоделирую реальную ситуацию, когда сертификат пользователя, зашифровавшего файл, был удален (это может произойти, например, в случае переустановки Windows). Как вы увидите, программа без особых проблем справится и с этой ситуацией.

Использование программы Advanced EFS Data Recovery для расшифровки зашифрованных EFS файлов

Посмотрим, как можно расшифровать зашифрованные с помощью EFS файлы. Первым делом нужно включить шифрование для одной из папок. Для демонстрации я специально создал папку EFS-Crypted. Чтобы включить EFS-шифрование для папки, нужно просто включить соответствующий атрибут в ее свойствах (рис. 1).


Рис. 1. Включение шифрования для папки

Название зашифрованной папки и всех помещенных в нее файлов (которые автоматически будут зашифрованы) в Проводнике отображается зеленым цветом. Как показано на рис. 2, в зашифрованную папку я добавил текстовый файл config.txt, содержимое которого мы попытаемся просмотреть, войдя в систему под другим пользователем. Для теста был создан другой пользователь с правами администратора (такие права нужны программе Advanced EFS Data Recovery (AEFSDR) компании ElcomSoft), см рис. 3.


Рис. 2. Содержимое зашифрованной папки


Рис. 3. Создан новый пользователь

Естественно, если зайти под другим пользователем и попытаться прочитать файл config.txt, у вас ничего не выйдет (рис. 4).


Рис. 4. Отказано в доступе

Но не беда — запускаем программу Advanced EFS Data Recovery и переходим сразу в Expert mode (можно, конечно, воспользоваться мастером, который открывается при первом запуске (рис. 5)), но мне больше нравится экспертный режим.


Рис. 5. Мастер при запуске Advanced EFS Data Recovery


Рис. 6. Экспертный режим Advanced EFS Data Recovery

Итак, перейдите на вкладку Encrypted files и нажмите кнопку Scan for encrypted files. На рис. 6 уже изображен результат сканирования — найден наш единственный зашифрованный файл C:\EFS-Crypted\config.txt. Выделите его и нажмите кнопку Decrypt. Программа предложит вам выбрать каталог, в который нужно дешифровать файлы (рис. 7).


Рис. 7. Выберите каталог, в который будут дешифрованы файлы

Поскольку у меня пробная версия программы, то для продолжения нужно нажать Continue (рис. 8). Расшифрованные файлы помещаются в подпапку AEFS_<имя_диска>_DECRYPTED (рис. 9). Обратите внимание — наш файл config.txt уже не выделен зеленым и мы можем просмотреть его содержимое (рис. 10).


Рис. 8. Нажмите кнопку Continue


Рис. 9. Расшифрованные файлы


Рис. 10. Содержимое файла config.txt

Теперь усложним задачу программе Advanced EFS Data Recovery, а именно — удалим личный сертификат. Войдите как пользователь, создавший зашифрованную папку, и запустите консоль mmc, выберите команду меню Файл, Добавить или удалить оснастку. Далее выберите оснастку Сертификаты и нажмите кнопку Добавить (рис. 11). В появившемся окне выберите моей учетной записи пользователя (рис. 12).


Рис. 11. Добавление оснастки


Рис. 12. Оснастка диспетчера сертификатов

Далее нажмите кнопку OK и в появившемся окне перейдите в Сертификаты, Личное, Сертификаты. Вы увидите созданные сертификаты для текущего пользователя (рис. 13). В моем случае пользователь называется тест. Щелкните на его сертификате правой кнопкой мыши и выберите команду Удалить для удаления сертификата. Вы увидите предупреждение о том, что расшифровать данные, зашифрованные с помощью этого сертификата, будет уже невозможно. Что ж, скоро мы это проверим.


Рис. 13. Личные сертификаты


Рис. 14. Предупреждение при удалении сертификата

Далее выполните следующие действия:

  1. Закройте оснастку и попробуйте обратиться к зашифрованному файлу. У вас ничего не выйдет, не смотря на то, что вы зашифровали этот файл. Ведь сертификат то удален.
  2. Смените пользователя, запустите программу Advanced EFS Data Recovery. Попробуйте расшифровать файл, как было показано ранее. Сначала программа сообщит, что сертификат не найден. Поэтому нужно перейти на вкладку EFS related files и нажать кнопку Scan for keys. Через некоторое время программа сообщит вам, что нашла ключи, но вероятно не все (рис. 15). Программа рекомендует вам просканировать ключи еще раз, но на этот раз с включенной опцией Scan by sectors (рис. 16), но я этого не делал и сразу перешел на вкладку Encrypted files. Программа успешно нашла и дешифровала файл. На рис. 17 показано, что я уже сохранил расшифрованный файл на рабочий стол.


Рис. 15. Поиск ключей


Рис. 16. Окно сканирования


Рис. 17. Файл опять расшифрован

К стыду EFS или к чести Advanced EFS Data Recovery, в обоих случаях файл был расшифрован. При этом, как видите, мне не понадобились какие-то специальные знания или навыки. Достаточно запустить программу, которая сделает за вас всю работу. О том, как работает программа можно прочитать на сайте разработчиков (http://www.elcomsoft.ru/), подробно принцип ее работы рассматривать в этой статье не будем, поскольку AEFSDR не является предметом статьи.
Справедливости ради нужно сказать, что специалисты могут настроить систему так, чтобы Advanced EFS Data Recovery будет бессильна. Однако, мы рассмотрели самое обычное использование EFS для подавляющего большинства пользователей.

Система прозрачного шифрования, реализованная в CyberSafe Top Secret

Рассмотрим, как реализовано прозрачное шифрование в CyberSafe. Для прозрачного шифрования используется драйвер Alfa Transparent File Encryptor (http://www.alfasp.com/products.html), который шифрует файлы с помощью алгоритма AES-256 или алгоритмом ГОСТ 28147-89 (при использовании Крипто-Про).
В драйвер передается правило шифрования (маска файлов, разрешенные/запрещенные процессы и т.д.), а также ключ шифрования. Сам ключ шифрования хранится в ADS папки (Alternate Data Streams, eb.by/Z598) и зашифрован с помощью OpenSSL (алгоритм RSA) или ГОСТ Р 34.10-2001 — для этого используются сертификаты.
Логика следующая: добавляем папку, CyberSafe создает ключ для драйвера, шифрует его выбранными публичными сертификатами (они должна быть предварительно созданы или импортированы в CyberSafe). При попытке доступа какого-либо пользователя к папке CyberSafe открывает ADS папки и читает зашифрованный ключ. Если у этого пользователя есть приватный ключ сертификата (у него может быть один или несколько своих сертификатов), который применялся для шифрования ключа, он может открыть эту папку и прочитать файлы. Нужно отметить, что драйвер расшифровывает только то, что нужно, а не все файлы при предоставлении доступа к файлу. Например, если пользователь открывает большой документ Word, то расшифровывается только та часть, которая сейчас загружается в редактор, по мере необходимости загружается остальная часть. Если файл небольшой, то он расшифровывается полностью, но остальные файлы остаются зашифрованными.
Если папка — сетевая расшаренная, то в ней файлы так и остаются зашифрованными, драйвер клиента расшифровывает только файл или часть файла в памяти, хотя это справедливо и для локальной папки. При редактировании файла драйвер шифрует изменения в памяти и записывает в файл. Другими словами, даже когда папка включена (далее будет показано, что это такое), данные на диске всегда остаются зашифрованными.
Использование программы CyberSafe Top Secret для прозрачного шифрования файлов и папок

Настало время рассмотреть практическое использование программы CyberSafe Top Secret. Для шифрования папки перейдите в раздел программы Прозрачное шифрование (вкладка Шифрование файлов), см. рис. 18. Затем из Проводника перетащите папки, которые вы хотите зашифровать, в рабочую область программы. Можете также воспользоваться кнопкой Доб. папку. Я добавил одну папку — C:\CS-Crypted.


Рис. 18. Программа CyberSafe Top Secret

Нажмите кнопку Применить. В появившемся окне (рис. 19) нажмите кнопку Да или Да для всех (если за один раз вы пытаетесь зашифровать несколько папок). Далее вы увидите окно выбора сертификатов, ключи которых будут использоваться для прозрачного шифрования папки (рис. 20). Как правило, сертификаты создаются сразу после установки программы. Если вы этого еще не сделали, придется вернуться в раздел Личные ключи и нажать кнопку Создать.


Рис. 19. Нажмите кнопку Да


Рис. 20. Выбор сертификатов для прозрачного шифрования

Следующий вопрос программы — нужно ли установить ключ администратора для этой папки (рис. 21). Без ключа администратора вы не сможете вносить изменения в папку, поэтому нажмите кнопку Да.


Рис. 21. Опять нажмите Да

После этого вы вернетесь в основное окно программы. Прежде, чем начать работу с зашифрованной папкой, нужно ее выделить и нажать кнопку Включить. Программа запросит пароль сертификата (рис. 22), указанного для шифрования этой папки. После этого работа с зашифрованной папкой не будет отличаться от работы с обычной папкой. В окне CyberSafe папка будет отмечена, как открытая, а слева от пиктограммы папки появится значок замка (рис. 23).


Рис. 22. Вводим пароль сертификата


Рис. 23. Зашифрованная папка подключена

В Проводнике ни зашифрованная папка, ни зашифрованные файлы никак не помечаются. Внешне они выглядят так же, как и остальные папки и файлы (в отличие от EFS, где имена зашифрованных файлов/папок выделяются зеленым цветом), см. рис. 24.


Рис. 24. Зашифрованная папка CS-Crypted в Проводнике

Нужно отметить, что аналогичным образом вы можете зашифровать и сетевую папку. При этом программа CyberSafe должна находиться только на компьютере пользователей, а не на файловом сервере. Все шифрование осуществляется на клиенте, а на сервер передаются уже зашифрованные файлы. Такое решение более чем оправдано. Во-первых, по сети передаются уже зашифрованные данные. Во-вторых, даже если администратор сервера захочет получить доступ к файлам, у него ничего не выйдет, поскольку расшифровать файлы могут только пользователи, сертификаты которых были указаны при шифровании. Зато администратор при необходимости может выполнить резервное копирование зашифрованных файлов.
Когда зашифрованная папка больше не нужна, нужно перейти в программу CyberSafe, выделить папку и нажать кнопку Выключить. Такое решение может показаться вам не столь удобным, как EFS — нужно нажимать кнопки включения/выключения. Но это только на первый взгляд. Во-первых, у пользователя есть четкое понимание, что папка зашифрована и он уже не забудет об этом факте, когда будет переустанавливать Windows. Во-вторых, при использовании EFS, если вам нужно отойти от компьютера, вам нужно выходить из системы, поскольку за время вашего отсутствия кто угодно может подойти к компьютеру и получить доступ к вашим файлам. Все, что ему нужно будет сделать — это скопировать ваши файлы на устройство, которое не поддерживает шифрование, например, на FAT32-флешку. Далее он сможет просматривать файлы вне вашего компьютера. С программой CyberSafe все немного удобнее. Да, вам нужно сделать дополнительное действие («выключить» папку) и все зашифрованные файлы станут недоступны. Но зато вам не нужно будет заново запускать все программы и открывать все документы (в том числе и незашифрованные) — как после повторного входа в систему.
Впрочем, у каждого продукта есть свои особенности. CyberSafe — не исключение. Представим, что вы зашифровали папку C:\CS-Crypted и поместили туда файл report.txt. Когда папка выключена, понятное дело, прочитать файл вы не сможете. Когда папка включена, вы можете получить доступ к файлу и, соответственно, скопировать его в любую другую, незашифрованную папку. Но после копирования файла в незашифрованную папку он продолжает жить собственной жизнью. С одной стороны, не так удобно, как в случае с EFS, с другой стороны, зная такую особенность программы, пользователь будет более дисциплинированным и будет хранить свои секретные файлы только в зашифрованных папках.

Производительность

Сейчас попытаемся выяснить, что быстрее — EFS или CyberSafe Top Secret. Все испытания проводятся на реальной машине — никаких виртуалок. Конфигурация ноутбука следующая — Intel 1000M (1.8 GHz)/4 Гб ОЗУ/WD WD5000LPVT (500 Гб, SATA-300, 5400 RPM, буфер 8 Мб/Windows 7 64-bit). Машина не очень мощная, но какая есть.
Тест будет предельно прост. Мы скопируем в каждую из папок файлы и посмотрим, сколько времени займет копирование. Выяснить, какое средство прозрачного шифрования быстрее, нам поможет следующий простой сценарий:
@echo off
echo "Копирование 5580 файлов в EFS-Crypted"
echo %time%
robocopy c:\Joomla c:\EFS-Crypted /E > log1
echo %time%
echo "Копирование 5580 файлов в CS-Crypted"
echo %time%
robocopy c:\Joomla c:\CS-Crypted /E > log2
echo %time%

Не нужно быть гуру программирования, чтобы догадаться, что делает этот сценарий. Не секрет, что мы чаще работаем с относительно небольшими файлами с размером от нескольких десятков до нескольких сотен килобайт. Данный сценарий копирует дистрибутив Joomla! 3.3.6, в котором находится 5580 таких небольших файлов сначала в папку, зашифрованную EFS, а затем в папку, зашифрованную CyberSoft. Посмотрим, кто будет победителем.
Команда robocopy используется для рекурсивного копирования файлов, в том числе пустых (параметр /E), а ее вывод сознательно перенаправляется в текстовый файл (при желании можно просмотреть, что скопировалось, а что нет), чтобы не засорять вывод сценария.
Результаты второго теста изображены на рис. 25. Как видите, EFS справилась с этим заданием за 74 секунды, а CyberSoft — всего за 32 секунды. Учитывая, что в большинстве случаев пользователи работают с множеством мелких файлов, CyberSafe будет более чем в два раза быстрее, чем EFS.


Рис. 25. Результаты тестирования

Преимущества прозрачного шифрования CyberSafe

Теперь немного подытожим. К преимуществам прозрачного шифрования CyberSafe можно отнести следующие факты:
  1. При выключении папки файлы могут быть скопированы в зашифрованном виде куда угодно, что позволяет организовать облачное шифрование.
  2. Драйвер программы CyberSafe позволяет работать по сети, что дает возможность организовать корпоративное шифрование.
  3. Для расшифровки папки не только нужно знать пароль, необходимо иметь соответствующие сертификаты. При использовании Крипто-Про ключ можно вынести на токен.
  4. Приложение CyberSafe поддерживает набор инструкций AES-NI, что положительно сказывается на производительности программы (было доказано тестами выше).
  5. Защититься от несанкционированного доступа к личным ключам можно с помощью двухфакторной аутентификации.
  6. Поддержка доверенных приложений

Последние два преимущества заслуживают отдельного внимания. Чтобы обезопаситься от доступа к личным ключам пользователя, вы можете защитить саму программу CyberSafe. Для этого выполните команду Инструменты, Настройки (рис. 26). В окне Настройки на вкладке Аутентификация вы можете включить или аутентификацию по паролю или двухфакторную аутентификацию. Подробно о том, как это сделать, можно прочитать в руководстве по программе CyberSafe на странице 119.


Рис. 26. Защита самой программы CyberSafe

На вкладке Разрешен. приложения можно определить доверенные приложения, которым разрешено работать с зашифрованными файлами. По умолчанию все приложения являются доверенными. Но для большей безопасности вы можете задать приложения, которым разрешено работать с зашифрованными файлами. На рис. 27 я указал в качестве доверенных приложения MS Word и MS Excel. Если какая-то другая программа попытается обратиться к зашифрованной папке, ей будет отказано в доступе. Дополнительную информацию вы можете найти в статье «Прозрачное шифрование файлов на локальном компьютере при помощи CyberSafe Files Encryption» (http://habrahabr.ru/company/cybersafe/blog/210458/).


Рис. 27. Доверенные приложения

На этом все. Рекомендуем ознакомиться со следующими статьями:
Прозрачное шифрование файлов на локальном компьютере при помощи CyberSafe Files Encryption
Прозрачное шифрование сетевых папок в корпоративном пространстве
Методы сокрытия информации
Шифрование облачных сервисов в компаниях и организациях

habr.com

Что такое сквозное шифрование? Типы шифрования информации.

Автор Исхаков Максим На чтение 4 мин. Просмотров 37 Опубликовано

imouimou

Что такое сквозное шифрование? Типы шифрования информации.Что такое сквозное шифрование? Типы шифрования информации.

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

Что такое шифрование?

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

Типы шифрования

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

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

 Асимметричное шифрование Асимметричное шифрование

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

Что такое сквозное шифрование?

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

Что такое сквозное шифрование?Что такое сквозное шифрование?

Без E2EE ваше сообщение шифруется, как только доходит до центрального сервера, который расшифровывает его. Таким образом, объект, управляющий этими серверами (например, провайдер услуг интернет), может видеть ваши сообщения. Однако, если вы используете VPN, этот тип соединения намного безопаснее, поскольку VPN служба шифрует ваш трафик и изменяет ваш IP. Тогда вы сможете безопасно и конфиденциально пройти через все промежуточные точки.

Как реализовать сквозное шифрование?

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

E2EE играет значительную роль в безопасных приложениях для обмена мгновенными сообщениями. Существует множество приложений для безопасного обмена сообщениями с E2EE, но они не очень распространены. Кроме того, в некоторых системах, таких как Telegram или FB messenger, он не включен по умолчанию, поэтому вам нужно включить его самостоятельно.

На видео: Принцип работы сквозного шифрования

E2EE также необходим для защиты вашей электронной почты.

Возможные угрозы

  • E2EE не защищает конечные точки, поэтому тот, кто взломает любую из них, может получить открытый или закрытый ключ или просто захватить данные через ваше приложение;
  • Некоторые системы обмена сообщениями могут не шифровать свои резервные данные. Например, WhatsApp предлагает E2EE, но не шифрует резервные сообщения, которые он хранит на серверах Google Drive. Это означает, что Google может получить доступ к журналу резервного копирования. Всегда убеждайтесь, что приложение реализует E2EE по всем направлениям;
  • Бэкдор атака является скрытым обходом шифрования. Это может быть сделано с помощью троянов, вредоносных программ или вредоносного кода. Таким образом, хакеры могут перехватить ваше устройство и получить доступ к личным данным.

Несмотря на эти потенциальные уязвимости, E2EE по-прежнему является одним из самых надежных инструментов для обеспечения конфиденциальности и безопасности. По возможности рекомендуется использовать приложения с E2EE.

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

bezopasnik.info

Назначение и структура алгоритмов шифрования

Шифрование является наиболее широко используемым криптографическим методом сохранения конфиденциальности информации, он защищает данные от несанкционированного ознакомления с ними. Для начала рассмотрим основные методы криптографической защиты информации. Словом, криптография - наука о защите информации с использованием математических методов. Существует и наука, противоположная криптографии и посвященная методам вскрытия защищенной информации - криптоанализ. Совокупность криптографии и криптоанализа принято называть криптологией. Криптографические методы могут быть классифицированы различным образом, но наиболее часто они подразделяются в зависимости от количества ключей, используемых в соответствующих криптоалгоритмах (см. рис. 1):

  1. Бесключевые, в которых не используются какие-либо ключи.
  2. Одноключевые - в них используется некий дополнительный ключевой параметр - обычно это секретный ключ.
  3. Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.

Рис. 1. Криптоалгоритмы

Обзор криптографических методов

Шифрование является основным методом защиты; рассмотрим его подробно далее.

Стоит сказать несколько слов и об остальных криптографических методах:

  1. Электронная подпись используется для подтверждения целостности и авторства данных. Целостность данных означает, что данные не были случайно или преднамеренно изменены при их хранении или передаче.
    Алгоритмы электронной подписи используют два вида ключей:
    • секретный ключ используется для вычисления электронной подписи;
    • открытый ключ используется для ее проверки.
    При использовании криптографически сильного алгоритма электронной подписи и при грамотном хранении и использовании секретного ключа (то есть при невозможности использования ключа никем, кроме его владельца) никто другой не в состоянии вычислить верную электронную подпись какого-либо электронного документа.
  2. Аутентификация позволяет проверить, что пользователь (или удаленный компьютер) действительно является тем, за кого он себя выдает. Простейшей схемой аутентификации является парольная - в качестве секретного элемента в ней используется пароль, который предъявляется пользователем при его проверке. Такая схема доказано является слабой, если для ее усиления не применяются специальные административно-технические меры. А на основе шифрования или хэширования (см. ниже) можно построить действительно сильные схемы аутентификации пользователей.
  3. Существуют различные методы криптографического контрольного суммирования:
    • ключевое и бесключевое хэширование;
    • вычисление имитоприставок;
    • использование кодов аутентификации сообщений.
    Фактически, все эти методы различным образом из данных произвольного размера с использованием секретного ключа или без него вычисляют некую контрольную сумму фиксированного размера, однозначно соответствующую исходным данным.
    Такое криптографическое контрольное суммирование широко используется в различных методах защиты информации, например:
    • для подтверждения целостности любых данных в тех случаях, когда использование электронной подписи невозможно (например, из-за большой ресурсоемкости) или является избыточным;
    • в самих схемах электронной подписи - "подписывается" обычно хэш данных, а не все данные целиком;
    • в различных схемах аутентификации пользователей.
  4. Генераторы случайных и псевдослучайных чисел позволяют создавать последовательности случайных чисел, которые широко используются в криптографии, в частности:
    • случайные числа необходимы для генерации секретных ключей, которые, в идеале, должны быть абсолютно случайными;
    • случайные числа применяются во многих алгоритмах электронной подписи;
    • случайные числа используются во многих схемах аутентификации.
    Не всегда возможно получение абсолютно случайных чисел - для этого необходимо наличие качественных аппаратных генераторов. Однако, на основе алгоритмов симметричного шифрования можно построить качественные генераторы псевдослучайных чисел.
Шифрование

Шифрование информации - это преобразование открытой информации в зашифрованную (которая чаще всего называется шифртекстом или криптограммой), и наоборот. Первая часть этого процесса называется зашифрованием, вторая - расшифрованием.

Можно представить зашифрование в виде следующей формулы:

С = Ek1(M),

где:
M (message) - открытая информация,
С (cipher text) - полученный в результате зашифрования шифртекст,
E (encryption) - функция зашифрования, выполняющая криптографические преобразования над M,
k1 (key) - параметр функции E, называемый ключом зашифрования.

В стандарте ГОСТ 28147-89 (стандарт определяет отечественный алгоритм симметричного шифрования) понятие ключ определено следующим образом: "Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований".

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

Аналогичным образом можно представить и расшифрование:

M' = Dk2(C),

где:
M'- сообщение, полученное в результате расшифрования,
D (decryption) - функция расшифрования; так же, как и функция зашифрования, выполняет криптографические преобразования над шифртекстом,
k2 - ключ расшифрования.

Для получения в результате расшифрования корректного открытого текста (то есть того самого, который был ранее зашифрован: M' = M), необходимо одновременное выполнение следующих условий:

  1. Функция расшифрования должна соответствовать функции зашифрования.
  2. Ключ расшифрования должен соответствовать ключу зашифрования.

При отсутствии верного ключа k2 получить исходное сообщение M' = M с помощью правильной функции D невозможно. Под словом "невозможно" в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.

Алгоритмы шифрования можно разделить на две категории (см. рис. 1):

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

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

В асимметричном шифровании ключ зашифрования k1 легко вычисляется из ключа k2 таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:

k1 = ak2 mod p,

где a и p - параметры алгоритма шифрования, имеющие достаточно большую размерность.

Такое соотношение ключей используется и в алгоритмах электронной подписи.

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

Симметричное шифрование менее удобно из-за того, что при передаче зашифрованной информации кому-либо необходимо, чтобы адресат заранее получил ключ для расшифрования информации. У асимметричного шифрования такой проблемы нет (поскольку открытый ключ можно свободно передавать по сети), однако, есть свои проблемы, в частности, проблема подмены открытого ключа и медленная скорость шифрования. Наиболее часто асимметричное шифрование используется в паре с симметричным - для передачи ключа симметричного шифрования, на котором шифруется основной объем данных. Впрочем, схемы хранения и передачи ключей - это тема отдельной статьи. Здесь же позволю себе утверждать, что симметричное шифрование используется гораздо чаще асимметричного, поэтому остальная часть статьи будет посвящена только симметричному шифрованию.

Симметричное шифрование бывает двух видов:

  • Блочное шифрование - информация разбивается на блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или "со сцеплением" - когда результат зашифрования текущего блока данных зависит от значения предыдущего блока или от результата зашифрования предыдущего блока.
  • Поточное шифрование - необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки - скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное шифрование, считая, что поточное шифрование - это шифрование блоков единичной длины.

Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного шифрования.Структура алгоритмов шифрования

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

  1. Алгоритмы на основе сети Фейстеля.

    Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаще всего - на два), один из которых обрабатывается некоей функцией f() и накладывается на один или несколько остальных субблоков. На рис. 2 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.

    Рис. 2. Структура алгоритмов на основе сети Фейстеля.

    Дополнительный аргумент функции f(), обозначенный на рис. 2 как Ki, называется ключом раунда. Ключ раунда является результатом обработки ключа шифрования процедурой расширения ключа, задача которой - получение необходимого количества ключей Ki из исходного ключа шифрования относительно небольшого размера (в настоящее время достаточным для ключа симметричного шифрования считается размер 128 бит). В простейших случаях процедура расширения ключа просто разбивает ключ на несколько фрагментов, которые поочередно используются в раундах шифрования; существенно чаще процедура расширения ключа является достаточно сложной, а ключи Ki зависят от значений большинства бит исходного ключа шифрования.

    Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции "исключающее или" - XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2n, где n - размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

    Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) - одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) - бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно привести в пример отечественный стандарт шифрования ГОСТ 28147-89, а также другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.

    На сети Фейстеля основано большинство современных алгоритмов шифрования - благодаря множеству преимуществ подобной структуры, среди которых стоит отметить следующие:

    • Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма - разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами; в качестве примера такого алгоритма можно привести ГОСТ 28147-89.
  2. Алгоритмы на основе сети Фейстеля являются наиболее изученными - таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.

    Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.

    Рис. 3. Структура сети Фейстеля.

    Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.

  3. Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть - Substitution-permutation network).

    В отличие от сети Фейстеля, SP-сети обрабатывают за один раунд целиком шифруемый блок. Обработка данных сводится, в основном, к заменам (когда, например, фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может зависеть от значения ключа Ki) и перестановкам, зависящим от ключа Ki (упрощенная схема показана на рис. 4).

    Рис. 4. Подстановочно-перестановочная сеть.

    Впрочем, такие операции характерны и для других видов алгоритмов шифрования, поэтому, на мой взгляд, название "подстановочно-перестановочная сеть" является достаточно условным.

    SP-сети распространены существенно реже, чем сети Фейстеля; в качестве примера SP-сетей можно привести алгоритмы Serpent или SAFER+.

  4. Алгоритмы со структурой "квадрат" (Square).

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

    Структура алгоритма получила свое название от алгоритма Square, который был разработан в 1996 году Винсентом Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) - будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера можно привести алгоритмы Shark (более ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой "квадрат" является их недостаточная изученность, что не помешало алгоритму Rijndael стать новым стандартом США.

    Рис. 5. Алгоритм Rijndael.

    На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.

  5. Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).

    Рис. 6. Модификация двух байт шифруемых данных.

    Строгие границы между описанными выше структурами не определены, поэтому достаточно часто встречаются алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример - алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.

www.ixbt.com

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *