
- •Введение
- •1Лабораторная работа №1 «Симметричные алгоритмы шифрования»
- •Порядок выполнения работы:
- •2Лабораторная работа №2 “Асимметричный алгоритм шифрования rsa”
- •Порядок выполнения работы:
- •3Лабораторная работа №3 «Электронно-цифровая подпись»
- •Порядок выполнения работы:
- •Лабораторная работа №4 «Создание и распределение криптографических ключей».
- •Порядок выполнения работы:
- •Лабораторная работа №5 «Создание сертификатов» в windows
- •Порядок выполнения работы:
- •Лабораторная работа № 6 «Протокол защиты электронной почты s/mime»
- •Порядок выполнения работы:
- •Лабораторная работа №7 «Стек протоколов ssl/tls»
- •Порядок выполнения работы:
- •Метод обмена ключами – anonymous dh (adh)
- •Метод обмена ключами – rsa
- •Литература
- •1 Лабораторная работа №1 «Симметричные алгоритмы шифрования» 3
- •2 Лабораторная работа №2 “Асимметричный алгоритм шифрования rsa” 7
- •3 Лабораторная работа №3 «Электронно-цифровая подпись» 11
Введение
Вследствие лавинообразного распространения компьютерных систем и их взаимодействия посредством сетей наблюдается все большая зависимость как организаций, так и отдельных лиц от информации, передаваемой по сети и хранящейся в таких системах. Это, в свою очередь, заставляет осознать необходимость защиты данных и ресурсов от возможности несанкционированного доступа, важность использования специальных средств для обеспечения достоверности получаемых данных и сообщений, а также защиты систем от сетевых атак.
Механизмы защиты компьютерных сетей строятся на основе современных криптографических алгоритмов и протоколов.
Методическое пособие знакомит студентов с основополагающими приемами использования современных криптографических алгоритмов, главными принципами функционирования стека протоколов SSL/TLS, а также демонстрирует возможность защиты электронной почты и web-трафика с помощью протокола SSL/TLS.
Все лабораторные работы выполняются с использованием программы openssl for WINDOWS. Программа openssl, являясь консольным приложением, позволяет использовать и тестировать все возможности библиотеки OpenSSL. В этой библиотеке реализовано большинство современных криптографических алгоритмов, а также поддерживается функционирование протокола SSL/TLS.
1Лабораторная работа №1 «Симметричные алгоритмы шифрования»
Конфиденциальность передаваемой и хранящейся в сети информации обеспечивается путем ее шифрования современными симметричными алгоритмами. Кроме того, симметричные алгоритмы используются протоколами сетевой защиты, например, такими как IPsec, SSL/TLS.
Криптографический алгоритм называется симметричным потому, что для шифрования и расшифрования информации используется один и тот же секретный ключ.
Симметричные системы шифрования делятся на два класса: блочные (например, DES, AES, DES, RC2, CAST, BlowFish) и потоковые (например, RC4). Надежность криптографического алгоритма напрямую зависит от длины ключа. В настоящее время надежным является алгоритм с длиной ключа более 128 бит.
Симметричные блочные алгоритмы используются в различных режимах (ECB, CBC, OFB, CFB).
Цель работы: Научиться шифровать информацию симметричными алгоритмами, используя команду enc программы openssl.
Краткое описание команды enc
openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a] [-A] [-k password] [-kfile filename] [-K key ] [-iv IV] [-p] [-P] [-bufsize number] [-nopad] [-debug]
Параметр |
Назначение параметра |
-in filename |
имя входного файла. Стандартный ввод по умолчанию. |
-out filename |
имя выходного файла. Стандартный вывод по умолчанию. |
-e |
шифровать исходные данные. Эта опция установлена по умолчанию. |
-d |
расшифровывать исходные данные. |
-k password
|
пароль для образования ключа. Опция введена для совместимости с предыдущими версиями OpenSSL. |
-kfile filename
|
читать пароль для образования ключа из первой строки файла filename. Опция введена для совместимости с предыдущими версиями OpenSSL |
-K key
|
ключ шифрования. Ключ должен быть представлен строкой 16-х цифр. Дополнительно надо указать входной вектор (IV), в опции –iv. Если же заданы одновременно ключ и пароль, то будет использоваться ключ их опции –K и IV будет сгенерирован по паролю. |
-iv IV
|
IV будет использован. Он должен быть представлен строкой 16-х цифр. Как только ключ определен опцией –K, IV надо обязательно определить. Если же указан пароль, IV определяется по паролю. |
-S salt |
Вектор подмешивания («соль»), который использовался при создании ключа шифрования и начального вектора IV. |
-p |
печатать ключ шифрования и используемый IV. |
-P |
печатать ключ, IV и завершить выполнение, не производя шифрования или расшифрования. |
Команда вызывается двумя способами:
openssl ciphername или openssl enc -ciphername.
Пароль может быть указан для образования ключа и входного вектора (IV) если это необходимо.
Опция -salt должна ВСЕГДА использоваться, когда ключ создается по паролю, если только вы не стремитесь к совместимости с предыдущими версиями OpenSSL и SSLeay.
Без опции -salt можно совершить успешную атаку «со словарем» на пароль или атаку на данные шифрованные потоковым алгоритмом. Поскольку без этой опции (без подмешивания, т.е. без «подсаливания») один и тот же пароль генерирует один и тот же ключ. Если же опция подмешивания используется, то для подмешивания резервируются первые восемь байт шифруемых данных. Эти байты добавляются (подмешиваются) к паролю случайным образом при шифровании файла и считываются из зашифрованного файла при расшифровании.
Все блочные алгоритмы используют стандарт PKCS#5 для создания ключа по паролю.
Команда позволяет шифровать симметричными алгоритмами, список которых приведен в таблице 1.
Таблица 1. Симметричные алгоритмы шифрования и режимы их использования.
Опция |
Алгоритм |
Опция |
Алгоритм |
bf-cbc |
Blowfish in CBC mode |
desx |
DESX algorithm |
bf |
Alias for bf-cbc |
des-cbc |
DES algorithm in CBC mode |
bf-cfb |
Blowfish in CFB mode |
des |
same as des-cbc
|
bf-ecb |
Blowfish in ECB mode |
des-cfb |
DES in CFB mode
|
bf-ofb |
Blowfish in OFB mode |
des-ecb |
DES in ECB mode
|
cast-cbc |
CAST in CBC mode |
des-ofb |
DES in OFB mode |
cast |
Alias for cast-cbc |
rc2-cbc |
128 bit RC2 in CBC mode |
cast5-cbc |
CAST5 in CBC mode |
rc2 |
Alias for rc2-cbc |
cast5-cfb |
CAST5 in CFB mode |
rc2-cfb |
128 bit RC2 in CBC mode |
cast5-ecb |
CAST5 in ECB mode |
rc2-ecb |
128 bit RC2 in CBC mode |
cast5-ofb |
CAST5 in OFB mode |
rc2-ofb |
128 bit RC2 in CBC mode |
des-cbc |
DES in CBC mode |
rc2-64-cbc |
64 bit RC2 in CBC mode |
des |
Alias for des-cbc |
rc2-40-cbc |
40 bit RC2 in CBC mode |
des-cfb |
DES in CBC mode |
rc4 |
128 bit RC4 |
des-ofb |
DES in OFB mode |
rc4-64 |
64 bit RC4 |
des-ecb |
DES in ECB mode |
rc4-40 |
40 bit RC4 |
des-ede-cbc |
Two key triple DES EDE in CBC mode |
rc5-cbc |
RC5 cipher in CBC mode |
des-ede |
Alias for des-ede-cbc |
rc5 |
Alias for rc5-cbc
|
des-ede-cfb |
Two key triple DES EDE in CFB mode |
rc5-cfb |
RC5 cipher in CBC mode |
des-ede-ofb |
Two key triple DES EDE in OFB mode |
rc5-ecb |
RC5 cipher in CBC mode |
des-ede3-cbc |
Three key triple DES EDE in CBC mode |
rc5-ofb |
RC5 cipher in CBC mode |
des-ede3 |
Alias for des-ede3-cbc |
|
|
des3 |
Alias for des-ede3-cbc |
|
|
des-ede3-cfb |
Three key triple DES EDE CFB mode |
|
|
des-ede3-ofb |
Three key triple DES EDE in OFB mode |
|
|