Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3189

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
8.9 Mб
Скачать

подпись. Подделка подписанного сообщения невозможна, и отправи­ тель не может впоследствии изменить свою подпись.

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

В связи с тем, что алгоритм шифрования с открытым ключом значительно медленнее, чем стандартное шифрование с одним клю­ чом, шифрование сообщения лучше выполнять с использованием высококачественного быстрого стандартного алгоритма шифрования с одним ключом. Первоначальное незашифрованное сообщение на­ зывается «открытым текстом» (или просто текст). В процессе, неви­ димом для пользователя, временный произвольный ключ, созданный только для этого одного «сеанса», используется для традиционного шифрования файла открытого текста. Тогда открытый ключ получа­ теля используется только для шифровки этого временного произ­ вольного стандартного ключа. Этот зашифрованный ключ «сеанса» посылается наряду с зашифрованным текстом (называемым «ciphertext» - «зашифрованный») получателю. Получатель использу­ ет свой собственный секретный ключ, чтобы восстановить этот вре­ менный ключ сеанса, и затем применяет его для выполнения быстро­ го стандартного алгоритма декодирования с одним ключом, с целью декодировать все зашифрованное сообщение.

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

цо с ключами» - «keyring») содержит один или несколько таких сер­ тификатов. В каталогах открытых ключей хранятся сертификаты от­ крытых ключей, а в каталогах секретных - сертификаты секретных ключей.

На ключи также внутренне ссылаются «идентификаторы клю­ чей», которые являются «сокращением» открытого ключа (самые младшие 64 бита большого открытого ключа). Когда этот идентифи­ катор ключа отображается, то показываются лишь младшие 24 бита для краткости. Если несколько ключей могут одновременно исполь­ зовать один и тот же идентификатор пользователя, то никакие два ключа не могут использовать один и тот же идентификатор ключа.

PGP использует « дайджесты сообщений» для формирования подписи. Дайджест сообщения - это криптографически мощная 128- битная односторонняя хэш-функция от сообщения. Она несколько напоминает контрольную сумму, или CRC-код (контроль цикличе­ ским избыточным кодом), она однозначно представляет сообщение и может использоваться для обнаружения изменений в сообщении. В отличие от CRC-кода дайджест не позволяет создать два сообще­ ния с одинаковым дайджестом. Дайджест сообщения шифруется сек­ ретным ключом для создания электронной подписи сообщения.

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

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

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

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

Порядок проведения работы

1. Изучить теоретический материал и рекомендованную литера­

туру.

2.Выполнить задание на лабораторную работу.

3.Ответить на контрольные вопросы.

Задание на практическую работу

Создайте два каталога на одном компьютере либо на двух ком­ пьютерах в сети.

Часть 1. Генерация открытого и секретного ключа

1.1.Запустите программу pgp с опцией

Р8Р-к

Вы увидите на экране следующие сообщения:

Pretty Good Privacy 1.0 - RSA public key cryptography for the masses, (c) Copyright 1990 Philip Zimmermann, Phil's Pretty Good Soft­ ware. 5 Jun 91

Key file name is required for RSA key pair: my_________________

Введите имя для размещения открытого и секретного ключа, в данном случае ту _____________________________

Pick your RSA key size:

1)288 bits - Casual grade, fast but less secure

2)512 bits - Commercial grade, medium speed, good security

3)992 bits - Military grade, very slow, highest security

Choose 1, 2, or 3, or enter desired number of bits: 286

Введите длину ключа RSA в битах, не вводите большую длину - программа будет долго работать, рекомендуется 286 бит.

Generating an RSA key with a 286-bit modulus...

Enter a user ID for your public key (your name): dima

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

You need a pass phrase to protect your RSA secret key.

Enter pass phrase:

Enter same pass phrase again:

Защитите паролем свой секретный ключ

Note that key generation is a VERY lengthy process.

We need to generate 30 random bytes. This is done by measuring the time intervals between your keystrokes. Please enter some text on your keyboard, at least 60 nonrepeating keystrokes, until you hear the bell:

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

После этого ваши ключи готовы: my.pub - открытый ключ, my.sec - секретный ключ.

Система предложит вам включить ваши ключи в файлы кеуring.pub и keyring.sec (так называемые «связки», или каталоги клю­ чей) - соглашайтесь: программа при работе с ключами в первую оче­ редь ищет введенный пользовательский идентификатор в этих фай­ лах и, если не находит, попросит вас ввести явно имя файла. Вклю­ чив ключи в связки, вы уменьшите количество информации, которую вам придется вводить с клавиатуры. Полезно также включать в связ­ ки полученные ключи:

pgP _а [полученный файл]

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

pgp keyring.pub.

1.2. Рассылка открытого ключа.

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

Часть 2. Заверенная переписка

2.1.Сформируйте текстовый файл, например, text#.doc

2.2.Подпишите его. Для подписания текстового файла вашим секретным ключом наберите:

pgp -s textfile [-u your userid]

Скобки [] обозначают необязательное поле.

В результате выполнения этой команды получится подписан­ ный файл textfile.ctx. Пример:

pgp -s letter.txt -u User

По этой команде PGP будет искать в файле каталога секретных ключей «keyring.sec» сертификаты секретного ключа, в которых со­ держится строка «User» в поле идентификатора пользователя. Поиск ведется без учета регистра. Если соответствующий секретный ключ будет найден, он будет использован для подписания текстового фай­ ла «letter.txt», в результате будет получен подписанный файл «letter.ctx». Если вы не указываете поле идентификатора пользователя, то имя будет запрошено в процессе подписывания.

2.3.Перешлите подписанный файл и примите подписанные фа лы с открытыми ключами (*.pub) от других корреспондентов.

Часть 3. Проверка подписи

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

pgp ciphertextfile [-о plaintextfile]

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

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

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

Часть 4. Шифрование Сообщения

Для шифровки текстового файла открытым ключом получателя, введите:

pgp -е textfile [her_userid]

Если вы не вводите в командной строке имя корреспондента, то оно будет запрошено в процессе шифрования.

В результате будет получен зашифрованный файл textfile.ctx. Пример:

pgp -е letter.txt User или:

pgp -е letter.txt «User 1»

В первом примере PGP будет искать в каталоге ваших открытых ключей сертификаты открытых ключей, которые содержат строку «User» в поле идентификатора пользователя. Во втором примере PGP будет искать идентификаторы пользователя, которые содержат стро­ ку «User 1». Нельзя использовать пробелы в командной строке, если вы не заключаете целую строку в кавычки.

Поиск ведется без учета регистра. Если соответствующий от­ крытый ключ найден, то он используется для шифровки текстового файла «letter.txt», получается зашифрованный файл «letter.ctx».

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

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

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

pgp -е letter.txt Olga Serg Bob

В результате будет создан зашифрованный файл letter.ctx, кото­ рый может быть прочитан любым адресатом: Olga, Bob или Serg. Можно задать любое количество адресатов.

Часть 5. Подписание и шифрование

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

pgp -es textfile her_userid [-u your_userid]

В результате выполнения данного примера будет получен «вло­ женный» зашифрованный файл textfile.ctx. Ваш секретный ключ для создания подписи автоматически ищется в вашем каталоге секрет­ ных ключей по your_userid. Открытый ключ адресата для шифрова­ ния автоматически ищется в вашем каталоге открытых ключей по her userid. Если вы опускаете один из параметров в командной стро­ ке, PGP запросит его у вас.

Обратите внимание, что PGP будет пытаться упаковывать текст перед шифрованием.

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

Можно определить несколько адресатов, задав'ая в командной строке несколько идентификаторов пользователя.

Часть 6. Использование стандартного шифрования

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

Чтобы зашифровать текстовый файл традиционным способом, наберите:

pgp -с textfile

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

PGP не будет шифровать один и тот же файл тем же самым спо­ собом дважды, даже если вы используете ту же самую фразу пароля.

Контрольные вопросы

1.Объясните схему шифрования RSA.

2.Опишите особенности реализации RSA в программе pgp.

3.Что такое хеш-функция и для чего она используется в подписи?

4.Чем отличается режим подписи и шифрования в системе RSA?

5.Для чего используется секретный и для чего - открытый

ключ?

13. АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ ВЕБ-СИСТЕМ СРЕДСТВАМИ ТЕХНОЛОГИИ РНР

Цель работы - изучение принципов аутентификации пользо­ вателей в веб-системах на примере РНР-сеансов.

Сведения из теории

Принципы аутентификации Аутентификация - это попытка доказать, что кто-то на самом де­

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

Методы аутентификации включают пароли, цифровые подписи, биометрические показатели, такие как отпечатки пальцев, а также мето­ ды с использованием специального оборудования, например, интеллекту­ альные карточки (смарт-карты). В Веб повсеместно используются только два метода - пароли и цифровые сертификаты.

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

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

Пароли могут перехватываться электронным путем. Используя про­ граммы перехвата клавиатурного ввода на терминалах или анализато­ ры сетевых протоколов (sniffers), взломщики могут перехватывать ин­

тересные пары: имя пользователя—пароль. Шифрование сетевого пото­ ка данных позволяет снизить риск перехвата паролей.

Механизмы аутентификации встроены в наиболее популярные веб-браузеры и серверы. Аутентификация пользователей - это доста­ точно распространенная задача, и существуют возможности аутенти­ фикации, встроенные в HTTP-протокол (Hypertext Transfer Protocol - протокол передачи гипертекстов). Сценарии и веб-серверы могут за­ прашивать аутентификацию у веб-браузера. После этого веб-браузер должен вывести на экран диалоговое окно или что-то подобное и за­ просить у пользователя необходимую информацию. Хотя веб-сервер запрашивает новые детали аутентификации в каждом запросе пользо­ вателя, веб-браузеру нет необходимости запрашивать эту информацию для каждой страницы. В общем случае браузер хранит детали аутен­ тификации, пока открыто окно браузера, и автоматически отправляет их без вмешательства со стороны пользователя.

Описанная возможность HTTP-протокола называется базовой ау­ тентификацией. Базовую аутентификацию можно включить средства­ ми веб-сервера.

Выполнение аутентификации пользователей средствами управления сеансом в РНР

РНР (РНР Hypertext Preprocessor) - это серверный язык создания сценариев, разработанный специально для Веб. В HTML-страницу можно внедрить код РНР, который будет выполняться при каждом ее посещении. Код РНР интерпретируется веб-сервером и генерирует HTML или иной вывод, наблюдаемый посетителем страницы. Синтак­ сис РНР основывается на других языках программирования, в первую очередь на С и Perl.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]