Лаба 1. Билеты. Системы и языки программирования система программирования
Скачать 0.78 Mb.
|
Виды асимметричных шифровRSA (Rivest-Shamir-Adleman) DSA (Digital Signature Algorithm) Elgamal (Шифросистема Эль-Гамаля) Diffie-Hellman (Обмен ключами Диффи — Хелмана) ECDSA (Elliptic Curve Digital Signature Algorithm) — алгоритм с открытым ключом для создания цифровой подписи. ГОСТ Р 34.10-2012 Криптография с открытым ключом ≡{\displaystyle \equiv \,\!} Асимметричная криптография ≡{\displaystyle \equiv \,\!} Двухключевая криптография Классическая криптография ≡{\displaystyle \equiv \,\!} Симметричная криптография ≡{\displaystyle \equiv \,\!} Одноключевая криптография Протокол — это последовательность шагов, которые предпринимают две или большее количество сторон для совместного решения некоторой задачи. Все шаги предпринимаются в порядке строгой очередности и ни один из них не может быть сделан прежде, чем закончится предыдущий. Аутентификация пользователей — процесс, с помощью которого одна сторона (проверяющий) убеждается в идентичности другой стороны. Все протоколы аутентификации можно разбить на три класса: На основе знания чего-либо. Наиболее распространенный вариант — пароли. На основе обладания чем-либо (магнитные карты, смарт-карты и т.д.) На основе неотъемлемых характеристик (голос, сетчатка глаза, отпечатки пальцев). В данной категории криптографические методы обычно не используются Протокол обмена ключами — это такой протокол, с помощью которого знание некоторого секретного ключа (который может впоследствии использоваться для шифрования с помощью симметричного алгоритма) разделяется между двумя или более сторонами, причем противник, имеющий возможность перехватывать пересылаемые сообщения, не способен этот ключ получить. Один из самых известных протоколов обмена ключами — алгоритм Диффи-Хеллмана. Он является весьма надежным для обмена ключами по каналу, исключающему возможность модификации (т.е. злоумышленник имеет возможность перехватывать данные, но не изменять их). Стойкость алгоритма проистекает из сложности дискретного логарифмирования: не существует эффективного алгоритма решения уравнения ax mod n = b (для простого n такое x < n существует и единственно). Протоколы одновременной подписи. Цель участников: подписать некоторый документ таким образом, чтобы каждая сторона имела гарантию, что если она поставит свою подпись, это сделает и другая сторона. При этом участники могут быть удалены друг отдруга и подписывать документ при помощи ЭЦП. Протоколы разделения секрета. Позволяют разделить сообщение на несколько частей между членами группы таким образом, что каждый член группы не сможет извлечь никакой информации из своей части и только собравшись вместе участники группы смогут прочитать сообщение. 29. ПРОТОКОЛЫ РАСПРЕДЕЛЕНИЯ КЛЮЧЕЙ. ПРОТОКОЛЫ ИДЕНТИФИКАЦИИ Протоколы распределения ключей Протокол распределения ключей (англ. Key distribution protocols) — это условленная последовательность действий пользователей (криптографический протокол) по созданию защищенного канала связи, заключающаяся в генерации и обмене сеансовыми ключами и аутентификации сообщений. Основной задачей протоколов распределения ключей является выработка участниками (будем называть их в дальнейшем, как всегда, Алисой и Бобом) общего ключа. Вместе с тем и Боб, и Алиса должны быть уверены в том, что связь ведется именно с собеседником, а не со злоумышленником или подставным лицом. Большинство подобных протоколов основываются на существовании доверенного центра (в дальнейшем — Трент), и предполагается, что каждому пользователю Трент выделяет секретный ключ, таким образом перед началом работы протокола все ключи уже находятся у пользователей. Все протоколы распространения ключей так или иначе делятся на следующие категории (пересекающиеся): Протоколы, основанные на асимметричной криптографии. Протоколы, основанные на симметричной криптографии. Протоколы, использующие центр сертификации (доверенный центр) Wide-Mouth FrogПротокол Нидхема-ШрёдераПротокол KerberosСессионный (сеансовый) ключ — применяется для одного сеанса связи. Уничтожается в короткий промежуток времени (от нескольких секунд до одного дня). Сеансовый ключ обеспечивает секретность одного диалога Сессионные ключи, несмотря на их недолгий срок службы, играют важную роль. Они используются повсеместно, начиная от защищенной TLS сессии и заканчивая прикладными программами (например, мессенджерами) Долговременный ключ — используется в течение долгого периода времени (от нескольких часов до нескольких лет, в зависимости от назначения). Его компрометация ставит под угрозу всю систему и является большой проблемой. Открытый ключ — применяется для расшифровки в асимметричных криптосистемах шифрования (то есть системах, где для шифрования и расшифровки требуются разные ключи). Секретный ключ — используется криптографическим алгоритмом при шифровании/расшифровке сообщений и постановке цифровой подписи. Распределение ключей — последовательность действий по выработке участниками общих ключей для осуществления криптографических операций. При симметричном шифровании и выработке совместного ключа со своим товарищем сложные схемы ни к чему — можно использовать простой алгоритм Диффи-Хеллмана: Я и мой товарищ знаем два абсолютно несекретных числа g и p. Я придумываю большое число a, а мой товарищ большое число b. Я вычисляю A = g^a mod p и отправляю товарищу. Товарищ вычисляет B = g^b mod p и отправляет мне. Я вычисляю B’ = B^a mod p = g^(ab) mod p. Товарищ вычисляет A’ = A^b mod p = g^(ab) mod p. Модификации обмена ключами Диффи-Хеллмана можно встретить и в сетевых протоколах, таких как IPSec и TLS Приступим к основной проблеме в асимметричном шифровании — как узнать наверняка, кому принадлежит открытый ключ. Решением этой задачи является инфраструктура открытых ключей, с которой мы сейчас и разберемся. Что же это за инфраструктура такая? PKI (Public Key Infrastructure) — это современная система управления криптографической защитой, в том числе и в среде, которая кишит злоумышленниками (например, в интернете). Инфраструктура открытых ключей оперирует понятием «сертификата», который содержит открытый ключ пользователя и идентифицирующую этого пользователя информацию. Задачей PKI является определение политики выпуска электронных сертификатов: их выдача, аннулирование и хранение информации, необходимой для последующей проверки правильности сертификатов. В число приложений, поддерживающих PKI, входят: защищенная электронная почта, протоколы платежей, электронные чеки, электронный обмен информацией, защита данных в сетях с протоколом IP, электронные формы и документы с электронной цифровой подписью. Одним словом, куда в интернете не глянь — наткнешься на PKI. Протокол аутентификации - это тип протокола компьютерной связи или криптографического протокола, специально предназначенный для передачи аутентификационных данных между двумя объектами. Он позволяет получающему объекту аутентифицировать подключающийся объект (например, Клиент, подключающийся к серверу), а также аутентифицировать себя перед подключающимся объектом (Сервер к клиенту), объявляя тип информации, необходимой для аутентификации, а также синтаксис.[1] Это наиболее важный уровень защиты, необходимый для безопасной связи в компьютерных сетях. Алиса (объект, желающий пройти проверку) и Боб (объект, проверяющий личность Алисы) оба знают о протоколе, который они договорились использовать. У Боба есть пароль Алисы, сохраненный в базе данных для сравнения. Алиса отправляет Бобу свой пароль в пакете, соответствующем правилам протокола. Боб сверяет полученный пароль с тем, который хранится в его базе данных. Затем он отправляет пакет с сообщением "Аутентификация прошла успешно" или "Аутентификация не удалась" в зависимости от результата.[3] Это пример очень простого протокола аутентификации, уязвимого для многих угроз, таких как перехват, повторная атака, атаки типа "человек посередине", атаки по словарю или атаки методом перебора. Большинство протоколов аутентификации являются более сложными, чтобы быть устойчивыми к этим атакам.[4] PAP - Протокол аутентификации по паролю[править / править код]Протокол аутентификации по паролю является одним из старейших протоколов аутентификации. Аутентификация инициализируется клиентом, отправляющим пакет с учетными данными (имя пользователя и пароль) в начале соединения, при этом клиент повторяет запрос аутентификации до получения подтверждения.[6]Он крайне небезопасен, поскольку учетные данные отправляются "в открытом виде" и неоднократно, что делает его уязвимым даже для самых простых атак, таких как подслушивание и атаки на основе "человек посередине". EAP - Расширяемый протокол аутентификации[править / править код]Изначально EAP был разработан для протокола PPP (Point-to-Point Protocol), но сегодня широко используется в стандартах IEEE 802.3, IEEE 802.11(WiFi) или IEEE 802.16 как часть IEEE 802.1x authentication framework. Последняя версия стандартизирована в RFC 5247. Преимущество EAP заключается в том, что это всего лишь общая структура аутентификации для аутентификации клиент-сервер - конкретный способ аутентификации определен во многих его версиях, называемых EAP-методами. Существует более 40 методов EAP, наиболее распространенными из которых являются: EAP-MD5 EAP-TLS EAP-TTLS EAP-БЫСТРЫЙ EAP-PEAP TACACS,RADIUSДИАМЕТР30. ПАРОЛЬНЫЕ СИСТЕМЫ РАЗГРАНИЧЕНИЯ ДОСТУПА. ЦИФРОВАЯ ПОДПИСЬ. СТОЙКОСТЬ СИСТЕМ С ОТКРЫТЫМИ КЛЮЧАМИ ЭЦП — это реквизит электронного документа. С использованием секретного ключа подпись докажет целостность сообщения, позволит убедиться в его подлинности и аутентифицировать источник. С электронной подписью дела обстоят очень похоже — есть подписи с симметричным механизмом, а есть с асимметричным. Симметричный механизм подписи малоприменим на практике — никому не хочется генерировать ключи для каждой подписи заново. Схемы электронной подписи так же многообразны, как и способы шифрования. Чтобы схема подписи была стойкой, нужно, чтобы она основывалась на трудновычислимой математической задаче. Есть два типа таких задач: факторизация больших чисел и дискретное логарифмирование. У нас этот факт регламентирует закон № 63-ФЗ «Об электронной подписи». Однако он утверждает, что юридической силой обладает далеко не любая электронная подпись, а только соответствующая определенным критериям: подпись сгенерирована посредством криптографического преобразования с секретным ключом; этот ключ и соответствующий ему открытый ключ выданы квалифицированным удостоверяющим центром; по подписи можно достоверно установить ее обладателя. Подпись также должна быть вычислена средствами, соответствующими требованиям закона. Этим требованиям удовлетворяет отечественный алгоритм шифрования ГОСТ 34.10—2012. Стойкость криптосистем с открытым ключом определяется вычислительной сложностью алгоритмов. В этом случае предполагается, что даже при наличии всей доступной информации для дешифрирования сообщения оно не сможет быть восстановлено за требуемое время из-за чрезвычайно большого объема необходимых вычислений. Криптографическая стойкость (или криптостойкость) — способность криптографического алгоритма противостоять криптоанализу. Стойким считается алгоритм, успешная атака на который требует от атакующего обладания недостижимым на практике объёмом вычислительных ресурсов или перехваченных открытых и зашифрованных сообщений либо настолько значительных затрат времени на раскрытие, что к его моменту защищённая информация утратит свою актуальность. В настоящее время надежными считаются ключи разрядностью не менее 80 бит для систем с секретным ключом и не менее 768 бит для систем с открытым ключом, стойкость которых определяется сложностью решения задачи факторизации больших чисел (например, RSA). В случае противника с ограниченными возможностями при выборе разрядности ключа учитывают следующие соображения: сложность атаки полного перебора; требуемое быстродействие криптоалгоритма в тех случаях, когда увеличение размера ключа увеличивает время работы операций шифрования; время жизни защищаемой информации и ее ценность; возможности противника. |