Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к ЛР Информатика.pdf
Скачиваний:
30
Добавлен:
10.05.2015
Размер:
1.37 Mб
Скачать

67

при желании, можно размонтировать все смонтированные диски, воспользовавшись кнопкой «Размонтировать все».

3.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Ознакомиться с теоретическими сведениями.

2.Получить вариант задания у преподавателя.

3.Выполнить задание.

4.Продемонстрировать выполнение работы преподавателю.

5.Оформить отчет.

6.Защитить лабораторную работу.

4.ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ОТЧЕТА

Отчет по лабораторной работе должен содержать следующие разделы:

титульный лист;

цель работы:

задание на лабораторную работу;

ход работы;

ответы на контрольные вопросы;

выводы по проделанной работе.

5.ЗАДАНИЕ НА РАБОТУ

1.С помощью программы TrueCrypt создать обычный том, защищенный обычным паролем.

2.С помощью программы TrueCrypt создать обычный том, защищенный ключевым файлом.

3.С помощью программы TrueCrypt создать скрытый том, в уже созданном обычном томе.

4.Создать текстовый файл с определенной последовательностью символов, поместить файл на смонтированный носитель, размонтировать, попытаться обнаружить последовательность при просмотре файла TrueCrypt обычными средствами просмотра.

5.Смонтировать скрытый раздел и скопировать созданный в п.4 файл на этот раздел.

6.Попытаться смонтировать основной раздел при неверном пароле.

7.При помощи программ md5sum или sha1sum получить хэш файла из п.4. Скопировать этот файл на смонтированный диск и получить хэш там. Сравнить полученные результаты и сделать выводы.

8.Перенести том TrueCrypt на другой компьютер с установленной программой TrueCrypt и попытаться его смонтировать.

68

6.КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Что такое симметричные алгоритмы шифрования? Приведите

примеры.

2.Какие типы симметричных алгоритмов существуют?

3.Что такое хэш-функции? Для чего они применяются?

4.Назовите основные возможности программы TrueCrypt.

5.Каков принцип работы TrueCrypt?

6.Для чего нужны скрытые тома TrueCrypt?

7.ЛИТЕРАТУРА

1.Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. – 2-е издание. — М.: Издательство Триумф, 2002. – 816 с.

2.Жельников В. Кpиптогpафия от папиpуса до компьютеpа. — М.:

Издательство ABF, 1996. – 335 с.

3.Руководство по использования TrueCrypt User’s Guide, version 4.2a. Released July 3, 2006.

69

ЛАБОРАТОРНАЯ РАБОТА №12

БАЗОВЫЕ ТЕХНОЛОГИИ КРИПТОГРАФИИ. АССИМЕТРИЧНОЕ ШИФРОВАНИЕ

1. ЦЕЛЬ РАБОТЫ

Изучить методы асимметричного шифрования. Познакомиться с возможностями современных программ шифрования данных.

2. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

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

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

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

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

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

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

70

Основные функции GnuPG таковы:

шифрование текста и файлов (используется несколько алгоритмов);

подписывание документов электронной цифровой подписью и проверка чужих подписей;

создание и управление списками открытых ключей респондентов. В GnuPG используются различные криптографические алгоритмы:

симметричные шифры, шифрование с открытым ключом и смешанные алгоритмы.

Основной особенностью является система ключей. В GnuPG создается несколько ключей, причем каждый служит для отдельного действия (и использует разные алгоритмы). Один из ключей, создаваемый первым, является главным ключом, остальные подчиненными (подключами). Например, главный ключ используется только для подписи самых важных документов, имеет длину 1024 бит, алгоритм DSA, срок действия ключа не ограничен. Для шифрования документов создается еще один или несколько подключей (например, для деловой и личной переписки), которые могут использоваться только для шифрования (алгоритмы ElGamal или RSA). Для этих ключей можно назначить срок использования.

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

Рис. 32. Описание иерархии ключей

Изначально, при генерации набора ключей, создается пара из двух ключей: главного (алгоритм DSA, длинна ключа 1024 бита) который используется для подписи, и подключа для шифрования документа (ElGamal). Для ключей ElGamal длина может быть до 4096 бит, для остальных по умолчанию 1024, а максимум 2048 бит.

71

Для запуска GnuPG достаточно перейти в каталог и вызвать программу gpg. Ниже приведены основные команды GnuPG (таблица 16). Весь список команд доступен при помощи команды gpg --help:

Таблица 16. Основные команды GnuPG

Команда

 

 

Описание

 

 

--gen-key

создание новой пары ключей

 

 

--edit-key

позволяет в последствии изменить параметры ключа.

 

--sign

создает подпись для указанных файлов, используя ключ

 

(если не введен его идентификатор, использует ключ

 

по-умолчанию)

 

 

 

--detach-sign

создаст подпись в отдельном файле

 

 

--encrypt

указывает на то, что данные надо зашифровать. Если

 

применяется совместно с --sign то данные одновременно

 

подписываются

 

 

 

--symmetric

можно применять когда просто надо зашифровать файл

 

(используется симметричный алгоритм, но можно

 

выбрать алгоритм командой --cipher-algo)

 

--decrypt

расшифровывает указанные файлы и сохраняет

 

результат в файл (если указан) или выводит в консоль.

 

Если файлы содержат подпись, она также проверяется

--verify

проверяет подписи для указанных файлов, не выводя

 

содержимого файла

 

 

 

--list-keys

выводит список всех открытых ключей

 

--list-secret-keys

показывает ваши секретные ключи

 

 

--delete-key

удаляет открытый ключ из списка

 

 

--delete-secret-key

удаляет

секретный

ключ

(например,

он

 

скомпрометирован или окончился срок действия)

 

--export (--import)

экспорт/импорт ключей, например, для резервирования

 

или переноса на другой компьютер. По умолчанию

 

ключи в бинарном виде, для получения их в ASCI-виде

 

используется параметр --armor

 

 

Для начала требуется создать первичную пару ключей. Для этого воспользуемся командой для генерации нового ключа --gen-key.

>gpg --gen-key

Программа выведет следующие данные:

gpg: создана таблица ключей `C:/Documents and Settings/Student/Application Data/gnupg\secring.gpg'

gpg: создана таблица ключей `C:/Documents and Settings/ Student /Application Data/gnupg\pubring.gpg'

Выберите тип ключа:

(1)DSA и ElGamal (по умолчанию)

(2)DSA (только для подписи)

72

(5) RSA (только для подписи) Ваш выбор (?-подробнее)?

GnuPG может создавать несколько разных типов ключей, но первичный ключ должен быть пригоден для создания подписи (signature). Поэтому в данном меню предлагается только три варианта. Вариант (1) создает две пары ключей. DSA — первичная, используемая только для подписи. ElGamal — подчиненная, используемая для шифрования. Вариант

(2) похож, но создает только пару DSA, которая не может использоваться для шифрования. Вариант (5) создаёт пару RSA, которая может использоваться только для подписи. В любом случае, позже можно создать дополнительные подчинённые пары ключей для подписи и шифрования.

Далее выбирается размер ключа. Размер ключа DSA должен быть между 512 и 1024 бит. Ключи ElGamal и RSA могут иметь любой размер. GnuPG не допускает длину ключей менее 768 бит. Если Вы выбрали вариант (1), то размер DSA ключа полагается равным 1024 битам и запрашивается только размер ключа ElGamal.

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

замедляет зашифровку и расшифровку и может отразиться на длине подписей. Размер ключа нельзя будет впоследствии изменить.

Теперь нужно указать срок действия ключа. В случае варианта (1), указанный срок используется для обоих ключей. Большинству пользователей подойдет бессрочный ключ. Срок действия следует выбирать с осторожностью. Хотя позднее можно изменить срок действия после создания ключа, не исключены проблемы с передачей изменений тем пользователям, у которых уже имеется данный открытый ключ.

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

Ваше настоящее имя: student Email-адрес: student@tsu.tula.ru

Комментарий: Студент

Используется таблица символов: `CP866'. Вы выбрали следующий User ID:

"student (Студент) <student@tsu.tula.ru>"

Сменить (N)Имя, (C)Комментарий, (E)email-адрес или

(O)Принять/(Q)Выход? O

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

Далее GnuPG запросит пароль для защиты первичного и подчиненного секретных ключей. На длину пароля нет ограничений, и его следует выбирать тщательно. С точки зрения безопасности, пароль для защиты ключа

 

73

очень важен в GnuPG (и других системах с открытым ключом), т.к. это

единственная защита в случае, если секретный ключ попадет в чужие руки.

При вводе пароля GnuPG не отображает вводимые символы.

После создания пары ключей, следует создать отзывающий сертификат

(revokation certificate) для первичного открытого ключа, используя команду --

gen-revoke. Если пароль или секретный ключ будет похищен или утерян, этот

сертификат может быть разослан для уведомления о том, что открытый ключ

нельзя больше использовать. Отозванный открытый ключ может

использоваться для проверки сделанных подписей и дальше, но он не может

быть использован для зашифрования сообщений. При этом сохраняется

возможность расшифровывать отправленные сообщения, при наличии

секретного ключа.

>gpg --output [FILE] --gen-revoke [ARG]

Аргумент ARG - идентификатор первичной пары ключей (может быть

любая часть идентификатора пользователя, в данном случае, например

student@tsu.tula.ru, 7FE45775 или Student). Сгенерированный сертификат

будет сохранен в файле FILE. Если опция --output опущена, результат

помещается в стандартный вывод. Кроме того, GnuPG запрашивает причину

генерации отзывающего сертификата.

В некоторых случаях может потребоваться ключ (открытый или

закрытый) в виде переносимого файла (его можно записать на носитель, к

примеру USB flash-drive). GnuPG позволяет экспортировать ключи или всю

базу ключей в виде одного файла, в бинарном или текстовом виде (команда --

export).

 

>gpg --output key.asc --export student@tsu.tula.ru,

где key.asc — имя файла, куда будет импортирован ключ.

Открытый ключ может быть добавлен к уже имеющимся открытым

ключам при помощи команды --import:

>gpg --import impkey.asc,

где impkey.asc — имя файла, содержащего открытые ключи.

Теперь чтобы просмотреть список всех открытых ключей требуется

воспользоваться командой --list-keys:

>gpg --list-keys

C:/Documents and Settings/Student/Application Data/

gnupg\pubring.gpg

-------------------------------------------------------

pub

1024D/7FE45775 2006-10-31

uid

student (Студент) <student@tsu.tula.ru>

sub

2048g/295226A2 2006-10-31

74

pub 1024D/A022D005 2006-11-05

uid Student (Преподаватель) <Teacher@tsu.tula.ru> sub 2048g/11A1EF7C 2006-11-05

Чтобы зашифровать файл, например test.txt, нужно ввести следующую команду:

>gpg --output crypt.asc --encrypt -a test.txt

где crypt.asc — имя создаваемого зашифрованного файла. Причем, выходной файл можно получить как в исходном виде, так и в чистом текстовом виде (ASCII). Для вывода в ASCII формате используется команда --armor или –a. Для выбора алгоритма шифрования можно воспользоваться командой -- cipher-algo [ALG]. Здесь [ALG] это название алгоритма.

Программа выдаст следующее сообщение, где требуется ввести идентификатор получателя:

Введите User ID. Пустая строка для завершения: Student

Текущие получатели:2048g/295226A2 2006-10-31 "student (Студент) <student@tsu.tula.ru>"

После этого появится зашифрованный файл cypt.asc

Чтобы расшифровать этот файл необходимо воспользоваться командой --decrypt или –d. Для расшифровки требуется закрытый ключ.

>gpg --output mes.txt -d cypt.asc

Командой --output [FILE] укажите программе куда нужно расшифровать файл. После ввода пароля расшифрованное сообщение окажется в файле mes.txt:

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

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

Для симметрического шифрования по умолчанию применяется алгоритм CAST5.

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

75

закрытый ключ подписывающего, а проверяется подпись с использованием его открытого ключа.

Для того чтобы подписать документ необходимо воспользоваться одной из команд: --sign, --clearsign или --detach-sign.

Для создания обычной подписью используется команда --sign.

>gpg --output test.sig --sign test.txt

Подписанное сообщение окажется в файле test.sig. Если не указывать выходной файл, то по умолчанию GnuPG создаст файл на основе имени подписываемого, добавив к нему расширение *.gpg. Можно получить выходной файл в ASCII коде, для этого нужно указать параметр --a. При этом выходной файл будет иметь тип *.asc.

Перед подписью документ сжимается. Подписанный документ выводится в двоичном формате.

Имея подписанный документ, можно либо только проверить подпись, либо проверить подпись и восстановить исходный документ. Для проверки подписи используется команда --verify. Для проверки подписи и извлечения документа используется команда --decrypt.

>gpg --decrypt test.sig

Сообщение будет расшифровано и выведено на экран. Для расшифровки сообщения в файл (к примеру, в файл text.txt), можно воспользоваться следующей командой:

>gpg --output text.txt --decrypt test.sig

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

>gpg --clearsign test.txt

Просмотрев полученный файл test.txt.sig можно увидеть:

-----BEGIN PGP SIGNED MESSAGE-----

Hash: SHA1

Тест!Этот текст находиться в документе test.тхт

-----BEGIN PGP SIGNATURE-----

Version: GnuPG v1.4.5 (MingW32) iD8DBQFFR0UdEO4Vjn/kV3URAvmQAJ94+UaBEy6KS2/NQNSdyGa

uXM5iFQCgvXJmL66zkuJPQGdsfIX3tVnI6XU==MeT9

-----END PGP SIGNATURE-----

GnuPG может создавать еще и отделённые подписи командой --detach- sign. Такая подпись сохраняется в отдельном файле с расширением *.sig и