Лекция5

Download Report

Transcript Лекция5

Администрирование информационных систем
Лекция 5



Безопасный доступ
Безопасная передача
Безопасное хранение
Список основных целей и задач информационной безопасности:
 секретность (privacy, confidentiality, secrecy);
 целостность (data integrity);
 идентификация (identification);
 аутентификация (data origin, authentication);
 уполномочивание (authorization);
 контроль доступа (access control);
 право собственности (ownership);
 сертификация (certification);
 подпись (signature);
 неотказуемость (non-repudiation);
 датирование (time stamping);
 расписка в получении (receipt);
 аннулирование (annul);
 анонимность (anonymity);
 свидетельствование (witnessing);
 подтверждение (confirmation);
 ратификация (validation).
Методы защиты информации почти всегда определялись
формой ее представления и предполагаемыми способами
использования.
В первом приближении все методы защиты
информации можно разделить на три класса:
 законодательные;
 административные;
 технические.
Определяют кто и в какой форме должен иметь доступ к
защищаемой
информации,
и
устанавливают
ответственность за нарушения установленного порядка.
Однако
законодательные
методы
не
способны
гарантировать выполнение установленных правил, они
лишь декларируют эти правила вместе с мерой
ответственности за их нарушение.
Заключаются в определении процедур доступа к
защищаемой информации и строгом их выполнении.
Контроль над соблюдением установленного. На любом
этапе известно лицо, несущее ответственность за
целостность и секретность охраняемого документа.
Административные
методы
защиты
зачастую
совмещаются
с
законодательными
и
могут
устанавливать ответственность за попытки нарушения
установленных процедур доступа.
В отличие от законодательных и административных,
призваны максимально избавиться от человеческого
фактора. В случае применения технических средств
зашиты перед потенциальным противником ставится
некоторая техническая (математическая, физическая)
задача, которую ему необходимо решить для получения
доступа к информации. В то же время легитимному
пользователю должен быть доступен более простой
путь, позволяющий работать с предоставленной в его
распоряжение информацией без решения сложных задач.
Шифрование – метод, используемый для преобразования данных в
шифрованный текст для того, чтобы они были прочитаны только
пользователем, обладающим соответствующим ключом шифрования для
расшифровки содержимого.
Шифрование используется тогда, когда требуется повышенный уровень защиты
данных - при хранении данных в ненадежных источниках или передачи данных
по незащищенным каналам связи.
В зависимости от структуры используемых ключей, среди методов шифрования
выделяют симметричное шифрование и асимметричное шифрование.
Симметричное
шифрование
предусматривает
доступность
алгоритма
шифрования посторонним лицам, однако ключ (одинаковый для отправителя и
получателя) остается неизвестным.
При ассиметричном шифровании посторонним лицам известен алгоритм
шифрования и открытый ключ, однако закрытый ключ известный только
получателю.
К алгоритмам шифрования предъявляются определенные требования:

высокий уровень защиты данных против дешифрования и возможной
модификации;

защищенность информации должна основываться только на знании ключа и
не зависеть от того, известен алгоритм или нет (правило Киркхоффа);

малое изменение исходного текста или ключа должно приводить к
значительному изменению шифрованного текста (эффект "обвала");

область значений ключа должна исключать возможность дешифрования
данных путем перебора значений ключа;

экономичность реализации алгоритма при достаточном быстродействии;

стоимость дешифрования данных без знания ключа должна превышать
стоимость данных.

Симметричные (с секретным, единым ключом, одноключевые, single-key).
◦ Потоковые (шифрование потока данных):



с одноразовым или бесконечным ключом (infinite-key cipher);
с конечным ключом (система Вернама - Vernam);
на основе генератора псевдослучайных чисел (ПСЧ).


Шифры перестановки (permutation, P-блоки);
Шифры замены (подстановки, substitution, S-блоки):
◦ Блочные (шифрование данных поблочно):



Составные (таблица 1):








моноалфавитные (код Цезаря);
полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma);
Lucipher (фирма IBM, США);
DES (Data Encryption Standard, США);
FEAL-1 (Fast Enciphering Algoritm, Япония);
IDEA/IPES (International Data Encryption Algorithm/
Improved Proposed Encryption Standard, фирма Ascom-Tech AG, Швейцария);
B-Crypt (фирма British Telecom, Великобритания);
ГОСТ 28147-89 (СССР); * Skipjack (США).
Асимметричные (с открытым ключом, public-key):
◦ Диффи-Хеллман DH (Diffie, Hellman);
◦ Райвест-Шамир-Адлeман RSA (Rivest, Shamir, Adleman);
◦ Эль-Гамаль ElGamal.
Симметричные алгоритмы шифрования (или криптография с
секретными ключами) основаны на том, что отправитель и получатель
информации используют один и тот же ключ. Этот ключ должен
храниться в тайне и передаваться способом, исключающим его перехват.
Обмен информацией осуществляется в 3 этапа:

отправитель передает получателю ключ (в случае сети с
несколькими абонентами у каждой пары абонентов должен быть
свой ключ, отличный от ключей других пар);

отправитель, используя ключ, зашифровывает сообщение, которое
пересылается получателю;

получатель получает сообщение и расшифровывает его.
Если для каждого дня и для каждого сеанса связи будет использоваться
уникальный ключ, это повысит защищенность системы.
В потоковых шифрах, т. е. при шифровании потока данных, каждый бит исходной информации
шифруется независимо от других с помощью гаммирования.
Гаммирование - наложение на открытые данные гаммы шифра (случайной или псевдослучайной
последовательности единиц и нулей) по определенному правилу. Обычно используется
"исключающее ИЛИ", называемое также сложением по модулю 2 и реализуемое в ассемблерных
программах командой XOR. Для расшифровывания та же гамма накладывается на зашифрованные
данные.
При однократном использовании случайной гаммы одинакового размера с зашифровываемыми
данными взлом кода невозможен (так называемые криптосистемы с одноразовым или
бесконечным ключом). В данном случае "бесконечный" означает, что гамма не повторяется.
Понятно, что обмен ключами размером с шифруемую информацию не всегда уместен. Поэтому
чаще используют гамму, получаемую с помощью генератора псевдослучайных чисел (ПСЧ).
В этом случае ключ - порождающее число (начальное значение, вектор инициализации, initializing
value, IV) для запуска генератора ПСЧ. Каждый генератор ПСЧ имеет период, после которого
генерируемая последовательность повторяется. Очевидно, что период псевдослучайной гаммы
должен превышать длину шифруемой информации.
Генератор ПСЧ считается корректным, если наблюдение фрагментов его выхода не позволяет
восстановить пропущенные части или всю последовательность при известном алгоритме, но
неизвестном начальном значении.
При блочном шифровании информация разбивается на блоки фиксированной длины и шифруется
поблочно. Блочные шифры бывают двух основных видов:

шифры перестановки (transposition, permutation, P-блоки);

шифры замены (подстановки, substitution, S-блоки).
Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором
новом порядке. Различают шифры горизонтальной, вертикальной, двойной перестановки, решетки,
лабиринты, лозунговые и др.
Шифры замены заменяют элементы открытых данных на другие элементы по определенному правилу.
Paзличают шифры простой, сложной, парной замены, буквенно-слоговое шифрование и шифры колонной
замены. Шифры замены делятся на две группы:

моноалфавитные (код Цезаря);

полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma).
В моноалфавитных шифрах замены буква исходного текста заменяется на другую, заранее определенную
букву. Например в коде Цезаря буква заменяется на букву, отстоящую от нее в латинском алфавите на
некоторое число позиций. Очевидно, что такой шифр взламывается совсем просто. Нужно подсчитать, как
часто встречаются буквы в зашифрованном тексте, и сопоставить результат с известной для каждого
языка частотой встречаемости букв.
В полиалфавитных подстановках для замены некоторого символа исходного сообщения в каждом случае
его появления последовательно используются различные символы из некоторого набора. Понятно, что
этот набор не бесконечен, через какое-то количество символов его нужно использовать снова. В этом
слабость чисто полиалфавитных шифров.
В современных криптографических системах, как правило, используют оба способа шифрования (замены
и перестановки). Такой шифратор называют составным (product cipher). Oн более стойкий, чем шифратор,
использующий только замены или перестановки.
Блочное шифрование можно осуществлять двояко:

Без обратной связи (ОС). Несколько битов (блок) исходного текста шифруются одновременно, и
каждый бит исходного текста влияет на каждый бит шифртекста. Однако взаимного влияния блоков
нет, то есть два одинаковых блока исходного текста будут представлены одинаковым шифртекстом.
Поэтому подобные алгоритмы можно использовать только для шифрования случайной
последовательности битов (например, ключей). Примерами являются DES в режиме ECB и ГОСТ
28147-89 в режиме простой замены.

С обратной связью. Обычно ОС организуется так: предыдущий шифрованный блок складывается по
модулю 2 с текущим блоком. В качестве первого блока в цепи ОС используется инициализирующее
значение. Ошибка в одном бите влияет на два блока - ошибочный и следующий за ним. Пример - DES
в режиме CBC.
Генератор ПСЧ может применяться и при блочном шифровании:

Поблочное шифрование потока данных. Шифрование последовательных блоков (подстановки и
перестановки) зависит от генератора ПСЧ, управляемого ключом.

Поблочное шифрование потока данных с ОС. Генератор ПСЧ управляется шифрованным или
исходным текстом или обоими вместе.
В асимметричных алгоритмах шифрования (или криптографии с
открытым ключом) для зашифровывания информации используют
один ключ (открытый), а для расшифровывания - другой (секретный).
Эти ключи различны и не могут быть получены один из другого. Схема
обмена информацией такова:

получатель вычисляет открытый и секретный ключи, секретный
ключ хранит в тайне, открытый же делает доступным (сообщает
отправителю, группе пользователей сети, публикует);

отправитель,
используя
открытый
ключ
получателя,
зашифровывает сообщение, которое пересылается получателю;

получатель получает сообщение и расшифровывает его, используя
свой секретный ключ.
В асимметричных системах необходимо применять длинные ключи (512 битов и больше). Длинный ключ
резко увеличивает время шифрования. Кроме того, генерация ключей весьма длительна. Зато
распределять ключи можно по незащищенным каналам.
В симметричных алгоритмах используют более короткие ключи, т. е. шифрование происходит быстрее. Но
в таких системах сложное распределение ключей.
Поэтому при проектировании защищенной системы часто применяют и симметричные, и асимметричные
алгоритмы. Так как система с открытыми ключами позволяет распределять ключи и в симметричных
системах, можно объединить в системе передачи защищенной информации асимметричный и
симметричный алгоритмы шифрования. С помощью первого рассылать ключи, вторым же - собственно
шифровать передаваемую информацию.
Обмен информацией можно осуществлять следующим образом:

получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же
делает доступным;

отправитель, используя открытый ключ получателя, зашифровывает сеансовый ключ, который
пересылается получателю по незащищенному каналу;

получатель получает сеансовый ключ и расшифровывает его, используя свой секретный ключ;

отправитель зашифровывает сообщение сеансовым ключом и пересылает получателю;

получатель получает сообщение и расшифровывает его.
Надо заметить, что в правительственных и военных системах связи используют лишь симметричные
алгоритмы, так как нет строго математического обоснования стойкости систем с открытыми ключами,
как, впрочем, не доказано и обратное.
DES (Data Encryption Standard) — симметричный алгоритм шифрования, разработанный
фирмой IBM и утвержденный правительством США в 1977 году как официальный стандарт (FIPS
46-3). DES имеет блоки по 64 бита и 16 цикловую структуру сети Фейстеля, для шифрования
использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и
линейных (перестановки E, IP, IP-1) преобразований. Для DES рекомендовано несколько режимов:

режим электронной кодовой книги (ECB — Electronic Code Book),

режим сцепления блоков (СВС — Cipher Block Chaining),

режим обратной связи по шифротексту (CFB — Cipher Feed Back),

режим обратной связи по выходу (OFB — Output Feed Back).
Прямым развитием DES в настоящее время является Triple DES.
Advanced Encryption Standard (AES), также известный как Rijndael (произносится
[rɛindaːl] (Рейндол) ) —симметричный алгоритм блочного шифрования (размер блока
128
бит,
ключ
128/192/256
бит),
принятый
в
качестве
стандарта шифрования правительством США по результатам конкурса AES. Этот
алгоритм хорошо проанализирован и сейчас широко используется, как это было с его
предшественником DES. Национальный институт стандартов и технологий США
(National Institute of Standards and Technology, NIST) опубликовал спецификацию AES 26
ноября 2001 года после пятилетнего периода, в ходе которого были созданы и
оценены 15 кандидатур. 26 мая 2002 года AES был объявлен стандартом шифрования.
AES является одним из самых распространённых алгоритмов симметричного
шифрования.
Поддержка AES (и только его) введена фирмой Intel в семейство
процессоров x86 начиная с Intel Core i7-980X Extreme Edition, а затем на
процессорах Sandy Bridge.
Camellia — алгоритм симметричного блочного шифрования (размер блока 128 бит, ключ
128, 192, 256 бит), один из финалистов европейского конкурса NESSIE (наряду
с AES и Shacal-2), разработка японских компаний Nippon Telegraph and Telephone
Corporation и Mitsubishi Electric Corporation (представлен 10 марта 2000 г.). Сертифицирован
японской организацией CRYPTREC как рекомендованный для промышленного и
государственного использования алгоритм.
Camellia является дальнейшим развитием алгоритма шифрования E2, одного из
алгоритмов, представленных на конкурсе AES и с использованием элементов
алгоритма MISTY1.
Структура алгоритма основана на классической цепи Фейстеля с предварительным и
финальным забеливанием. Цикловая функция использует нелинейное преобразование (Sблоки), блок линейного рассеивания каждые 16 циклов (побайтовая операция XOR) и
байтовую перестановку.
В зависимости от длины ключа имеет 18 циклов (128 разрядный ключ), либо 24 цикла (192
и 256 разрядный ключ).
Поддержка алгоритма Camellia введена в 2008 году в браузере Mozilla Firefox 3. Алгоритм
патентован, однако распространяется под рядом свободных лицензий, в частности,
является частью проекта OpenSSL.
IDEA (International Data Encryption Algorithm, международный алгоритм
шифрования данных) симметричный блочный алгоритм шифрования данных,
запатентованный швейцарской фирмой Ascom. Известен тем, что применялся в
пакете программ шифрования PGP. В ноябре 2000 года IDEA был представлен в
качестве кандидата в проекте NESSIE в рамках программы Европейской
комиссии IST (Information Societes Technology, информационные общественные
технологии).
Так как IDEA использует 128-битный ключ и 64-битный размер блока, открытый
текст разбивается на блоки по 64 бит. Если такое разбиение невозможно,
последний блок дополняется различными способами определённой
последовательностью бит. Для избежания утечки информации о каждом
отдельном блоке используются различные режимы шифрования. Каждый
исходный незашифрованный 64-битный блок делится на четыре подблока по 16
бит каждый, так как все алгебраические операции, использующиеся в процессе
шифрования, совершаются над 16-битными числами. Для шифрования и
расшифрования IDEA использует один и тот же алгоритм.
RC4
(Rivest
Cipher
4
или
Ron’s
Code,
также
известен
как ARCFOUR или ARC4 (Alleged RC4)) — потоковый шифр, широко
применяющийся в различных системах защиты информации в компьютерных
сетях (например, в протоколах SSL и TLS, алгоритме безопасности беспроводных
сетей WEP, для шифрования паролей в Windows NT).
Шифр разработан компанией
требуется лицензия.
RSA
Security
и
для
его
использования
Алгоритм RC4, как и любой потоковый шифр, строится на основе
параметризованного
ключом
генератора
псевдослучайных
битов
с
равномерным распределением. Длина ключа может составлять от 40 до 256 бит.
Основные преимущества шифра — высокая скорость работы и переменный
размер ключа. RC4 довольно уязвим, если используются не случайные или
связанные ключи, один ключевой поток используется дважды. Эти факторы, а
также способ использования могут сделать криптосистему небезопасной
(например WEP).
ГОСТ 28147-89 — советский и российский
стандарт симметричного шифрования, введённый
в 1990 году, также является стандартом СНГ.
Полное название — «ГОСТ 28147-89 Системы
обработки информации. Защита криптографическая.
Алгоритм
криптографического
преобразования».
Блочный шифроалгоритм. При использовании метода
шифрования с гаммированием, может выполнять
функции поточного шифроалгоритма.
Использует блочный шифр с 256-битным ключом и 32
циклами преобразования, оперирующий 64-битными
блоками. Основа алгоритма шифра — Сеть Фейстеля.
RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) — криптографический
алгоритм
с
открытым
ключом,
основывающийся
на
вычислительной
сложности задачи факторизации больших целых чисел. Для шифрования
используется операция возведения в степень по модулю большого числа. Для
дешифрования за разумное время (обратной операции) необходимо уметь вычислять
функцию Эйлера от данного большого числа, для чего необходимо знать разложения
числа на простые множители.
Криптосистема RSA стала первой системой, пригодной и для шифрования, и
для цифровой подписи. Алгоритм используется в большом числе криптографических
приложений, включая PGP, S/MIME, TLS/SSL, IPSEC/IKE и других.
В криптографической системе с открытым ключом каждый участник располагает как
открытым ключом (public key), так и закрытым ключом (private key). В
криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый
участник создаёт свой открытый и закрытый ключ самостоятельно. Закрытый ключ
каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или
даже публиковать их.
При передаче информации должны быть обеспечены вместе или по отдельности:

Конфиденциальность (privacy) - злоумышленник не должен иметь возможности узнать содержание передаваемого
сообщения.

Подлинность (authenticity), которая включает два понятия
Шифрование может обеспечить конфиденциальность, а в некоторых системах и целостность. Целостность сообщения проверяется
вычислением контрольной функции (check function) от сообщения - некоего числа небольшой длины.
Называют контрольную функцию по-разному:

код подлинности сообщения (Message Authentical Code, MAC);

Manipulation Detection Code (MDС);

контрольная сумма;

циклический избыточный код (ЦИК, Cyclic Redundancy Check, CRC);

имитовставка в ГОСТ 28147-89;
Вычисляют следующими способами:

квадратичный конгруэнтный алгоритм (Quadratic Congruentical Manipulation Detection Code, QCMDС);

Message Digest Algorithm (MD5);

символ контроля блока (Block Check Character, BCC);


хеш-функция (hash);
алгоритм с усечением до n битов (n-bit Algorithm with Truncation).
При вычислении контрольной функции может использоваться какой-либо алгоритм шифрования. Возможно шифрование самой
контрольной суммы. Широко применяется цифровая подпись (цифровое дополнение к передаваемой информации, гарантирующее
целостность последней и позволяющее проверить ее авторство). Известны модели цифровой подписи (digital signature) на основе
алгоритмов симметричного шифрования, но при использовании систем с открытыми ключами цифровая подпись осуществляется
более удобно.
Проверке подлинности посвящены стандарты:
 проверка подлинности (аутентификация, authentication) - ISO
8730-90, ISO/IES 9594-90 и ITU X.509;
 целостность - ГОСТ 28147-89, ISO 8731-90;
 цифровая подпись - ISO 7498, P 34.10-94 (Россия), DSS (Digital
Signature Standard, США).
ISO - Международная организация по стандартизации /МОС/,
ITU - Международный союз электросвязи /МСЭ/.
Хеширование (иногда хэширование, англ. hashing) — преобразование по определённому
алгоритму входного массива данных произвольной длины в выходную битовую
строку фиксированной длины. Такие преобразования также называются хешфункциями или функциями свёртки, а их результаты называют хешем, хеш-кодом или
сводкой сообщения (message digest).
Хеширование применяется для сравнения данных: если у двух массивов хеш-коды разные,
массивы гарантированно различаются; если одинаковые — массивы, скорее всего,
одинаковы.
В общем случае однозначного соответствия между исходными данными и хеш-кодом нет в
силу того, что количество значений хеш-функций меньше, чем вариантов входного массива;
существует множество массивов с разным содержимым, но дающих одинаковые хешкоды — так называемые коллизии. Вероятность возникновения коллизий играет
немаловажную роль в оценке качества хеш-функций.
Существует множество алгоритмов хеширования с различными свойствами
(разрядность, вычислительная сложность, криптостойкость и т. п.). Выбор той или иной
хеш-функции определяется спецификой решаемой задачи. Простейшими примерами хешфункций могут служить контрольная сумма или CRC.
Среди множества существующих хеш-функций принято выделять криптографически стойкие, применяемые
в криптографии. Для того чтобы хеш-функция H считалась криптографически стойкой, она должна удовлетворять
трем основным требованиям, на которых основано большинство применений хеш-функций в криптографии:

Необратимость: для заданного значения хеш-функции m должно быть вычислительно неосуществимо
найти блок данных X, для которого H(X)=m .

Стойкость к коллизиям первого рода: для заданного сообщения M должно быть вычислительно
неосуществимо подобрать другое сообщение N, для которого H(N)=H(M).

Стойкость к коллизиям второго рода: должно быть вычислительно неосуществимо подобрать пару
сообщений , имеющих одинаковый хеш.
Данные требования не являются независимыми:

Обратимая функция нестойка к коллизиям первого и второго рода.

Функция, нестойкая к коллизиям первого рода, нестойка к коллизиям второго рода; обратное неверно.
Следует отметить, что не доказано существование необратимых хеш-функций, для которых вычисление какоголибо прообраза заданного значения хеш-функции теоретически невозможно. Обычно нахождение обратного
значения является лишь вычислительно сложной задачей.
Для криптографических хеш-функций также важно, чтобы при малейшем изменении аргумента значение функции
сильно изменялось (лавинный эффект). В частности, значение хеша не должно давать утечки информации даже об
отдельных битах аргумента. Это требование является залогом криптостойкости алгоритмов хеширования,
хеширующих пользовательский пароль для получения ключа.
Электронная подпись предназначена для идентификации лица, подписавшего электронный
документ и является полноценной заменой (аналогом) собственноручной подписи в случаях,
предусмотренных законом.
Использование электронной подписи позволяет осуществить:

Контроль целостности передаваемого документа: при любом случайном или преднамеренном
изменении документа подпись станет недействительной, потому что вычислена она на
основании исходного состояния документа и соответствует лишь ему.

Защиту от изменений (подделки) документа: гарантия выявления подделки при контроле
целостности делает подделывание нецелесообразным в большинстве случаев.

Невозможность отказа от авторства. Так как создать корректную подпись можно, лишь зная
закрытый ключ, а он должен быть известен только владельцу, то владелец не может
отказаться от своей подписи под документом.

Доказательное подтверждение авторства документа: Так как создать корректную подпись
можно, лишь зная закрытый ключ, а он должен быть известен только владельцу, то владелец
пары ключей может доказать своё авторство подписи под документом. В зависимости от
деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые
изменения», «метка времени» и т. д.
В 1976 году Уитфилдом Диффи и Мартином Хеллманом было впервые
предложено понятие «электронная цифровая подпись», хотя они всего
лишь предполагали, что схемы ЭЦП могут существовать.
В 1977 году, Рональд Ривест, Ади Шамир и Леонард
Адлеман разработали криптографический алгоритм RSA, который без
дополнительных модификаций можно использовать для создания
примитивных цифровых подписей.
Вскоре после RSA были разработаны другие
алгоритмы цифровой подписи Рабина, Меркле.
ЭЦП,
такие
как
В 1984 году Шафи Гольдвассер, Сильвио Микали и Рональд
Ривест первыми строго определили требования безопасности к
алгоритмам цифровой подписи. Ими были описаны модели атак на
алгоритмы ЭЦП, а также предложена схема GMR, отвечающая
описанным требованиям.
Существует несколько схем построения цифровой подписи:
 На основе алгоритмов симметричного шифрования. Данная
схема предусматривает наличие в системе третьего лица —
арбитра,
пользующегося
доверием
обеих
сторон.
Авторизацией документа является сам факт шифрования
его секретным ключом и передача его арбитру.
 На основе алгоритмов асимметричного шифрования. На
данный момент такие схемы ЭП наиболее распространены
и находят широкое применение.
Поскольку подписываемые документы — переменного (и как правило достаточно большого) объёма, в
схемах ЭП зачастую подпись ставится не на сам документ, а на его хеш. Для вычисления хэша
используются криптографические хеш-функции, что гарантирует выявление изменений документа при
проверке подписи. Хеш-функции не являются частью алгоритма ЭП, поэтому в схеме может быть
использована любая надёжная хеш-функция.
Использование хеш-функций даёт следующие преимущества:

Вычислительная сложность. Обычно хеш цифрового документа делается во много раз меньшего
объёма, чем объём исходного документа, и алгоритмы вычисления хеша являются более быстрыми,
чем алгоритмы ЭП. Поэтому формировать хэш документа и подписывать его получается намного
быстрее, чем подписывать сам документ.

Совместимость. Большинство алгоритмов оперирует со строками бит данных, но некоторые
используют другие представления. Хеш-функцию можно использовать для преобразования
произвольного входного текста в подходящий формат.

Целостность. Без использования хеш-функции большой электронный документ в некоторых схемах
нужно разделять на достаточно малые блоки для применения ЭП. При верификации невозможно
определить, все ли блоки получены и в правильном ли они порядке.
Стоит заметить, что использование хеш-функции не обязательно при электронной подписи, а сама
функция не является частью алгоритма ЭП, поэтому хеш-функция может использоваться любая или не
использоваться вообще.
Симметричные схемы ЭП менее распространены чем асимметричные, так как после появления концепции
цифровой подписи не удалось реализовать эффективные алгоритмы подписи, основанные на известных в
то время симметричных шифрах. Симметричные схемы основаны на хорошо изученных блочных шифрах.
Преимущества:

Стойкость симметричных схем ЭП вытекает из стойкости используемых блочных шифров,
надежность которых также хорошо изучена.

Если стойкость шифра окажется недостаточной, его легко можно будет заменить на более стойкий с
минимальными изменениями в реализации.
Недостатков:

Нужно подписывать отдельно каждый бит передаваемой информации, что приводит к
значительному увеличению подписи. Подпись может превосходить сообщение по размеру на два
порядка.

Сгенерированные для подписи ключи могут быть использованы только один раз, так как после
процесса подписи раскрывается половина секретного ключа.
Из-за рассмотренных недостатков симметричная схема ЭЦП Диффи-Хелмана не применяется, а
используется её модификация, разработанная Березиным и Дорошкевичем, в которой подписывается
сразу группа из нескольких бит. Это приводит к уменьшению размеров подписи, но к увеличению объема
вычислений. Для преодоления проблемы «одноразовости» ключей используется генерация отдельных
ключей из главного ключа.
Асимметричные схемы ЭП относятся к криптосистемам с открытым ключом. В отличие от асимметричных
алгоритмов шифрования, в которых шифрование производится с помощью открытого ключа, а
дешифрование — с помощью закрытого, в схемах цифровой подписи подписывание производится с
применением закрытого ключа, а проверка — с применением открытого.
Общепризнанная схема цифровой подписи охватывает три процесса:

Генерация ключевой пары. При помощи алгоритма генерации ключа равновероятным образом из
набора возможных закрытых ключей выбирается закрытый ключ, вычисляется соответствующий ему
открытый ключ.

Формирование подписи. Для заданного электронного документа с помощью закрытого ключа
вычисляется подпись.

Проверка (верификация) подписи. Для данных документа и подписи с помощью открытого ключа
определяется действительность подписи.
Для того, чтобы использование цифровой подписи имело смысл, необходимо выполнение двух условий:

Верификация подписи должна производиться открытым ключом, соответствующим именно тому
закрытому ключу, который использовался при подписании.

Без обладания закрытым ключом должно быть вычислительно сложно создать легитимную цифровую
подпись.

Следует отличать электронную цифровую подпись от кода аутентичности сообщения (MAC).
Чтобы применение ЭП имело смысл, необходимо, чтобы вычисление легитимной подписи без знания закрытого
ключа было вычислительно сложным процессом.
Обеспечение этого во всех асимметричных алгоритмах цифровой подписи опирается на следующие
вычислительные задачи:

Задачу дискретного логарифмирования (EGSA)

Задачу факторизации, то есть разложения числа на простые множители (RSA)
Вычисления тоже могут производиться двумя способами: на базе математического аппарата эллиптических
кривых (ГОСТ Р 34.10-2001) и на базе полей Галуа (DSA).
Алгоритмы ЭП подразделяются на обычные цифровые подписи и на цифровые подписи с восстановлением
документа. При верификации цифровых подписей с восстановлением документа тело документа
восстанавливается автоматически, его не нужно прикреплять к подписи. Обычные цифровые подписи требуют
присоединение документа к подписи. К ЭП с восстановлением документа относится, в частности, RSA.
Схемы электронной подписи могут быть одноразовыми и многоразовыми. В одноразовых схемах после проверки
подлинности подписи необходимо провести замену ключей, в многоразовых схемах это делать не требуется.
Также алгоритмы ЭП делятся на детерминированные и вероятностные. Детерминированные ЭП при одинаковых
входных данных вычисляют одинаковую подпись. Реализация вероятностных алгоритмов более сложна, так как
требует надежный источник энтропии, но при одинаковых входных данных подписи могут быть различны, что
увеличивает криптостойкость. В настоящее время многие детерминированные схемы модифицированы в
вероятностные.
В некоторых случаях, таких как потоковая передача данных, алгоритмы ЭП могут оказаться слишком медленными.
В таких случаях применяется быстрая цифровая подпись. Ускорение подписи достигается алгоритмами с меньшим
количеством модульных вычислений и переходом к принципиально другим методам расчета.
Асимметричные схемы:

FDH (Full Domain Hash), вероятностная схема RSA-PSS (Probabilistic Signature Scheme),
схемы стандарта PKCS#1 и другие схемы, основанные на алгоритме RSA

Схема Эль-Гамаля

Американские стандарты электронной цифровой подписи: DSA, ECDSA (DSA на основе
аппарата эллиптических кривых)

Российские стандарты электронной цифровой подписи: ГОСТ Р 34.10-94 (в настоящее
время не действует), ГОСТ Р 34.10-2001

Схема Диффи-Лампорта

Украинский стандарт электронной цифровой подписи ДСТУ 4145-2002

Белорусский стандарт электронной цифровой подписи СТБ 1176.2-99

Схема Шнорра

Pointcheval-Stern signature algorithm

Вероятностная схема подписи Рабина

Схема BLS (Boneh-Lynn-Shacham)

Схема GMR (Goldwasser-Micali-Rivest)
В своей работе Гольдвассер, Микали и Ривест описывают следующие модели атак, которые актуальны и в
настоящее время:

Атака с использованием открытого ключа. Противник обладает только открытым ключом.

Атака на основе известных сообщений. Противник обладает допустимыми подписями набора электронных
документов, известных ему, но не выбираемых им.

Адаптивная атака на основе выбранных сообщений. Противник может получить подписи электронных
документов, которые он выбирает сам.
Также в работе описана классификация возможных результатов атак:

Полный взлом цифровой подписи. Получение закрытого ключа, что означает полный взлом алгоритма.

Универсальная подделка цифровой подписи. Нахождение алгоритма, аналогичного алгоритму подписи, что
позволяет подделывать подписи для любого электронного документа.

Выборочная подделка цифровой подписи. Возможность подделывать подписи для документов, выбранных
криптоаналитиком.

Экзистенциальная подделка цифровой подписи. Возможность получения допустимой подписи для какого-то
документа, не выбираемого криптоаналитиком.
Ясно, что самой «опасной» атакой является адаптивная атака на основе выбранных сообщений, и при анализе
алгоритмов ЭП на криптостойкость нужно рассматривать именно её (если нет каких-либо особых условий).
При безошибочной реализации современных алгоритмов ЭП получение закрытого ключа алгоритма является
практически невозможной задачей из-за вычислительной сложности задач, на которых ЭП построена. Гораздо
более вероятен поиск криптоаналитиком коллизий первого и второго рода. Коллизия первого рода эквивалентна
экзистенциальной подделке, а коллизия второго рода — выборочной. С учетом применения хеш-функций,
нахождение коллизий для алгоритма подписи эквивалентно нахождению коллизий для самих хеш-функций.
Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему
подходила. Однако в подавляющем большинстве случаев такой документ может быть только один.
Причина в следующем:

Документ представляет из себя осмысленный текст.

Текст документа оформлен по установленной форме.

Документы редко оформляют в виде Plain Text-файла, чаще всего в формате DOC или HTML.
Если у фальшивого набора байт и произойдет коллизия с хешем исходного документа, то должны
выполниться 3 следующих условия:

Случайный набор байт должен подойти под сложно структурированный формат файла.

То, что текстовый редактор прочитает в случайном наборе байт, должно образовывать текст,
оформленный по установленной форме.

Текст должен быть осмысленным, грамотным и соответствующим теме документа.
Впрочем, во многих структурированных наборах данных можно вставить произвольные данные в
некоторые служебные поля, не изменив вид документа для пользователя. Именно этим пользуются
злоумышленники, подделывая документы.
Вероятность подобного происшествия также ничтожно мала. Можно считать, что на практике такого
случиться не может даже с ненадёжными хеш-функциями, так как документы обычно большого объёма —
килобайты.
В этом случае злоумышленник фабрикует два документа с
одинаковой подписью, и в нужный момент подменяет один
другим. При использовании надёжной хэш-функции такая атака
должна быть также вычислительно сложной. Однако эти угрозы
могут реализоваться из-за слабостей конкретных алгоритмов
хэширования, подписи, или ошибок в их реализациях. В
частности, таким образом можно провести атаку на SSLсертификаты и алгоритм хеширования MD5.
Социальные атаки направлены не на взлом алгоритмов
цифровой подписи, а на манипуляции с открытым и закрытым
ключами.
 Злоумышленник, укравший закрытый ключ, может подписать
любой документ от имени владельца ключа.
 Злоумышленник может обманом заставить владельца подписать
какой-либо документ, например, используя протокол слепой
подписи.
 Злоумышленник может подменить открытый ключ владельца на
свой собственный, выдавая себя за него.
Использование протоколов обмена ключами и защита закрытого
ключа от несанкционированного доступа позволяет снизить
опасность социальных атак.

Атака «человек посередине - термин в криптографии, обозначающий
ситуацию, когда атакующий способен читать и видоизменять по своей
воле сообщения, которыми обмениваются корреспонденты, причём ни
один из последних не может догадаться о его присутствии в канале.
Принцип атаки:
Предположим, объект 'A' планирует передать объекту 'B' некую
информацию. Объект 'C' обладает знаниями о структуре и свойствах
используемого метода передачи данных, а также о факте планируемой
передачи собственно информации, которую 'С' планирует перехватить.
Для совершения атаки 'С' «представляется» объекту 'А' как 'В', а объекту
'В' — как 'А'. Объект 'А', ошибочно полагая, что он направляет
информацию 'В', посылает её объекту 'С'.
Объект 'С', получив информацию, и совершив с ней некоторые действия
(например, скопировав или модифицировав в своих целях) пересылает
данные собственно получателю - 'В'; объект 'В', в свою очередь, считает,
что информация была получена им напрямую от 'А'.
Для обнаружения атаки «человек посередине» необходимо
проанализировать сетевой трафик. К примеру, для
детектирования атаки по SSL следует обратить внимание
на следующие параметры:
 IP адрес сервера
 DNS-сервер
 X.509 сертификат сервера
◦
◦
◦
◦
◦
Подписан ли сертификат самостоятельно?
Подписан ли сертификат CA(Certification authority)?
Был ли сертификат аннулирован?
Менялся ли сертификат недавно?
Получали ли другие клиенты в интернете
сертификат?
такой
же

dsniff — инструмент для SSH и SSL атак

Cain — инструмент для проведения атаки «человек посередине». Имеет графический
интерфейс. Поддерживает сниффинг и ARP-spoofing

Ettercap — инструмент для проведения атак в локальной сети

Karma — использует 802.11 Evil Twin attacks для проведения MITM-атак

AirJack — программа демонстрирует основанные на стандарте 802.11 MITM-атаки

SSLStrip — инструмент для MITM-атаки на SSL

SSLSniff — инструмент для MITM-атаки на SSL. Изначально был создан для
обнаружения уязвимостей в Internet Explorer.

Mallory — прозрачный прокси-сервер, осуществляющий TCP и UDP MITM-атаки. Может
быть также использован для атаки на протоколы SSL, SSH и многие другие

wsniff — инструмент для проведения атак на 802.11 HTTP/HTTPS протокол
Перечисленные программы могут быть использованы для осуществления атак «человек
посередине», а также для их обнаружения и тестирование системы на уязвимости.
Важной проблемой всей криптографии с открытым ключом, в том числе и систем ЭП, является
управление открытыми ключами. Так как открытый ключ доступен любому пользователю, то
необходим механизм проверки того, что этот ключ принадлежит именно своему владельцу.
Необходимо обеспечить доступ любого пользователя к подлинному открытому ключу любого
другого пользователя, защитить эти ключи от подмены злоумышленником, а также организовать
отзыв ключа в случае его компрометации.
Задача защиты ключей от подмены решается с помощью сертификатов. Сертификат позволяет
удостоверить заключённые в нём данные о владельце и его открытый ключ подписью какоголибо доверенного лица. Существуют системы сертификатов двух типов: централизованные и
децентрализованные. В децентрализованных системах путём перекрёстного подписывания
сертификатов знакомых и доверенных людей каждым пользователем строится сеть доверия. В
централизованных
системах
сертификатов
используются
центры
сертификации,
поддерживаемые доверенными организациями.
Центр сертификации формирует закрытый ключ и собственный сертификат, формирует
сертификаты конечных пользователей и удостоверяет их аутентичность своей цифровой
подписью. Также центр проводит отзыв истекших и компрометированных сертификатов и ведет
базы выданных и отозванных сертификатов. Обратившись в сертификационный центр, можно
получить собственный сертификат открытого ключа, сертификат другого пользователя и узнать,
какие ключи отозваны.