1. Актуальность обеспечения информационной безопасности(ОИБ) в плане ФЦП

advertisement
1. Актуальность обеспечения информационной безопасности(ОИБ) в плане ФЦП
“Электронная Россия 2002-2010 гг.”
В рамках "Электронной России" будет проведена полная ревизия, а затем – изменение
нормативно-правовой базы, регулирующей сферу ИТ. Приоритеты: эффективная защита
авторских прав, принятие законов об электронной коммерции и электронном документообороте,
регламентация доступа к общегосударственным информационным ресурсам. Также
предполагается ослабить ограничения, сдерживающие развитие ИТ-индустрии: облегчить
процедуры получения необходимых лицензий, повысить инвестиционную привлекательность
отрасли с тем, чтобы обеспечить приток капитала в этот сектор экономики.
Большое внимание в программе уделено информатизации государственного управления.
Концепция "Электронного правительства" предполагает кардинально изменить принцип
взаимоотношений государства с гражданами и бизнесом. Предполагается значительно расширить
объем информации, которую государственный органы будут обязаны предоставлять гражданам, в
том числе и через Интернет. В частности, в обязательном порядке планируется публиковать в
Интернете проекты законов и постановлений правительства, информацию о формировании и
исполнении бюджетов, проводимых тендерах, отчеты о результатах работы госпредприятий и
даже итоги проверок, проводимых Счетной палатой и другими контрольными органами.
На сегодняшний день наиболее надежным средством, обеспечивающим подтверждение
подлинности электронных документов, является электронная цифровая подпись. Однако
Федеральный закон «Об электронной цифровой подписи» ориентирован исключительно на
использование ЭЦП с открытым и закрытым ключами при условии выдачи сертификата ключа
подписи удостоверяющим центром. Такая модель регулирования жестко привязана к конкретной
(причем не самой широко используемой) технологии. В зарубежном законодательстве на
сегодняшний день преобладают технологически нейтральные модели регулирования электронных
подписей, которые в большей степени отвечают потребностям гражданского документооборота.
Помимо этого, в указанном законе присутствует ряд непоследовательных и неоднозначных
формулировок, влекущих за собой возможность неверного толкования и снижение эффективности
правоприменения.
В проекте Концепции правового регулирования в сфере информационных технологий
Мининформсвязи России эту проблему предлагается решить с помощью федерального закона «Об
электронном документообороте». Хотя в опыте развитых стран, к примеру, в настоящее время
отсутствует практика регулирования этого вопроса отдельным нормативным актом.
Наряду с указанным федеральным законом в той же Концепции предлагается разработать и
утвердить указом Президента Российской Федерации порядок использования электронного
документооборота в системе органов государственной власти. Наконец, вопросы взаимодействия
органов власти и их подразделений в процессе исполнения ими различных государственных
функций целесообразно закрепить в системе нормативных правовых актов об электронных
административных регламентах.
Отсутствует законодательная база, детализирующая принципиальную возможность использования
таких доказательств, что требует внесения соответствующих изменений и дополнений в
процессуальные кодексы и законы.
Что касается использования опыта развитых стран, то, несомненно, здесь основные усилия
должны быть сосредоточены на теоретическом осмыслении и практическом разрешении
возможности, целесообразности и границ применения зарубежного опыта правового
регулирования информационных отношений.
2. Основы криптографии. Основные способы обеспечения информационной безопасности.
Сама криптография не является высшей ступенью классификации смежных с ней дисциплин.
Наоборот, криптография совместно с криптоанализом (целью которого является противостояние
методам криптографии) составляют комплексную науку – криптологию.
Криптография с ключом.
Алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от
некоторого параметра – "ключа", которым обладают только отправитель и получатель.
1.1 Симметричные криптоалгоритмы. Для зашифровки и расшифровки сообщения используется
один и тот же блок информации (ключ).
1.2 Асимметричные криптоалгоритмы. Алгоритм таков, что для зашифровки сообщения
используется один ("открытый") ключ, известный всем желающим, а для расшифровки – другой
("закрытый"), существующий только у получателя.
Заметьте: любые криптографические преобразования не увеличивают объем информации, а лишь
изменяют ее представление. Поэтому, если программа шифрования значительно (более, чем на
длину заголовка) увеличивает объем выходного файла, то в ее основе лежит неоптимальный, а
возможно и вообще некорректный криптоалгоритм. Уменьшение объема закодированного файла
возможно только при наличии встроенного алгоритма архивации в криптосистеме и при условии
сжимаемости информации.
Симметричное шифрование бывает трёх видов:
1. Блочное шифрование - информация разбивается на блоки фиксированной длины (например, 64
или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах
шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут
шифроваться независимо друг от друга или "со сцеплением" - когда результат зашифрования
текущего блока данных зависит от значения предыдущего блока или от результата зашифрования
предыдущего блока.
В зависимости от характера воздействий, производимых над данными, алгоритмы подразделяются
на:
- Перестановочные. Блоки информации (байты, биты, более крупные единицы) не изменяются
сами по себе, но изменяется их порядок следования, что делает информацию недоступной
стороннему наблюдателю.
- Подстановочные. Сами блоки информации изменяются по законам криптоалгоритма.
Подавляющее большинство современных алгоритмов принадлежит этой группе.
2. Поточное шифрование - необходимо, прежде всего, в тех случаях, когда информацию
невозможно разбить на блоки - скажем, некий поток данных, каждый символ которых должен
быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для
формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или
посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное
шифрование, считая, что поточное шифрование - это шифрование блоков единичной длины(RC4 с
40-битным или 128-битным ключом).
3. Комбинированные. Сочетают в себе черты предыдущих методов.
Информация с точки зрения информационной безопасности обладает следующими категориями:
- конфиденциальность – гарантия того, что конкретная информация доступна только тому кругу
лиц, для кого она предназначена; нарушение этой категории называется хищением либо
раскрытием информации
- целостность – гарантия того, что информация сейчас существует в ее исходном виде, то есть при
ее хранении или передаче не было произведено несанкционированных изменений; нарушение этой
категории называется фальсификацией сообщения
- аутентичность – гарантия того, что источником информации является именно то лицо, которое
заявлено как ее автор; нарушение этой категории также называется фальсификацией, но уже
автора сообщения
- апеллируемость – довольно сложная категория, но часто применяемая в электронной коммерции
– гарантия того, что при необходимости можно будет доказать, что автором сообщения является
именно заявленный человек, и не может являться никто другой; отличие этой категории от
предыдущей в том, что при подмене автора, кто-то другой пытается заявить, что он автор
сообщения, а при нарушении апеллируемости – сам автор пытается "откреститься" от своих слов,
подписанных им однажды.
В отношении информационных систем применяются иные категории :
- надежность – гарантия того, что система ведет себя в нормальном и внештатном режимах так,
как запланировано
- точность – гарантия точного и полного выполнения всех команд
- контроль доступа – гарантия того, что различные группы лиц имеют различный доступ к
информационным объектам, и эти ограничения доступа постоянно выполняются
- контролируемость – гарантия того, что в любой момент может быть произведена полноценная
проверка любого компонента программного комплекса
- контроль идентификации – гарантия того, что клиент, подключенный в данный момент к
системе, является именно тем, за кого себя выдает
- устойчивость к умышленным сбоям – гарантия того, что при умышленном внесении ошибок в
пределах заранее оговоренных норм система будет вести себя так, как оговорено заранее.
3. Метод подстановки и перестановки.
Метод подстановки
В шифрах, основанных на методе подстановки, каждый символ или группа символов заменяется
другими символами или группой символов. Одним из древнейших шифров является
приписываемый Юлию Цезарю (Julius Caesar) шифр Цезаря. Этот шифр заменяет все буквы
алфавита на другие с помощью циклического сдвига на три позиции.
Некоторое обобщение шифра Цезаря представляет собой сдвиг алфавита не на три символа, а на
произвольное число k символов. В этом случае k становится ключом к общему методу циклически
сдвигаемых алфавитов. Шифр Цезаря, возможно, и сумел обмануть жителей Помпеи, но с тех пор
ему более уже никого не удаюсь ввести в заблуждение.
Следующее усовершенствование состоит в установлении соответствия каждому встречающемуся
в открытом тексте символу другого символа. Например,
открытый
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
w
x
y
z
Q
W
E
R
T
Y
U
I
O
P
A
S
D
F
H
J
K
L
Z
X
C
V
B
N
M
текст:
зашифрованный
текст:
Такая система называется моноалфавитной подстановкой, ключом к которой является 26символьная строка, соответствующая полному алфавиту.
На первый взгляд такая система может показаться надежной, так как даже если криптоаналитику
известна общая система, он не знает, какой из 26! -> 4 • 1026 вариантов ключа применить. В
отличие от шифра Цезаря, применение метода простого перебора в данном случае весьма
сомнительно.
Тем не менее, подобный шифр легко взламывается даже при наличии довольно небольших кусков
зашифрованного текста. Для атаки шифра может быть использовано преимущество
статистических характеристик естественных языков. Например, в английском языке, буква c
встречается в тексте чаше всего. Следом за ней по частоте использования идут буквы t, о, а, n и т.
д. Наиболее часто встречающимися комбинациями из двух символов (6играммами) являются th,
in, or, re и an. Наиболее часто встречающимися комбинациями из трех символов, или триграммами
являются the, ing, and и ion.
Криптоаналитик, пытающийся взломать моноалфавитный шифр, начнет с того, что сосчитает
относительные частоты всех символов алфавита. Затем он может попытаться заменить наиболее
часто встречающийся символ буквой с, а следующий по частоте - буквой t. Затем он посмотрит на
триграммы и биграммы и, зная, какие последовательности символов являются наиболее
вероятными, криптоаналитик побуквенно восстанавливает исходный текст.
Метод перестановки
Шифры, основанные на методе подстановки, сохраняют порядок символов, но подменяют их.
Шифры, использующие метод перестановки, меняют порядок следования символов, но не
изменяют сами символы. На рисунке показан простой перестановочный шифр с колоночной
перестановкой. Ключом к шифру служит слово пли фраза, не содержащая повторяющихся букв. В
данном примере в качестве ключа используется слово MEGABUCK. Цель ключа —
пронумеровать колонки. Первой колонкой становится колонка под буквой, расположенной ближе
всего к началу алфавита и т. д. Открытый текст записывается горизонтально в строках.
Шифрованный текст читается по колонкам, начиная с колонки с младшей ключевой буквой.
Чтобы взломать перестановочный шифр, криптоаналитик должен вначале понять, что он имеет
дело именно с перестановочным шифром. Если взглянуть на частоту символов E, Т, А, О и т. д.,
легко заметить, что их частоты соответствуют нормальным частотам открытого текста. В таком
случае, очевидно, что этот шифр является перестановочным, так как каждая буква в таком шифре
представляет сама себя.
Затем нужно угадать число колонок. Во многих случаях по контексту сообщения можно угадать
слово или фразу. Например, предположим, что криптоаналитик подозревает, что где-то в
сообщении должно встретиться словосочетание milliondollars. Обратите внимание, что в
результате того, что эти слова присутствуют в исходном тексте, в шифрованном тексте
встречаются биграммы МО, IL, LL. LA. IR и OS. Символ О следует за символом M (то есть они
стоят рядом по вертикали в колонке 4), так как они разделены в предполагаемой фразе
дистанцией, равной длине ключа. Для каждой длины ключа в шифрованном тексте образуется
различный набор биграмм. Перебрав различные варианты, криптоаналитик часто довольно легко
может определить длину ключа.
Остается узнать только порядок колонок. Если число колонок к невелико, можно перебрать все k(k
– 1) возможных комбинаций пар соседних колонок, сравнивая частоты образующихся биграмм со
статистическими характеристиками английского языка. Пара с лучшим соответствием считается
правильно позиционированной. Затем все оставшиеся колонки по очереди проверяются в
сочетании с уже найденной парой. Колонка, в которой биграммы и триграммы дают максимальное
совпадение со статистикой, предполагается правильной. Весь процесс повторяется, пока не будет
восстановлен порядок всех колонок. Есть шанс, что на данном этапе текст уже будет.
Некоторые перестановочные шифры принимают блок фиксированной длины на входе и выдают
блок фиксированной длины на выходе. Такие шифры полностью определяются списком,
сообщающим порядок, в котором символы попадают в выходной блок.
4. Принцип построения блочных шифров алгоритмов с симметричным ключом.
Класс алгоритмов с симметричным ключом получил такое название благодаря тому, что для
шифрации и дешифрации сообщений применяется один и тот же ключ. В частности, мы подробно
рассмотрим блочные шифры, которые принимают на входе n-битаые блоки открытого текста и
преобразуют их с использованием ключа в n-битный шифр.
Апаратно, подстановки и перестановки могут быть реализованы при помощи простых
электрических цепей. На рисунке показано устройство, называющееся Р-блоком (литера Р
означает permutation - перестановка) и используемое для перестановки восьми входных разрядов.
Если пронумеровать входные биты сверху вниз (01234567), выход этого конкретного Р-блока
будет выглядеть как 36071245. При помощи соответствующего внутреннего устройства Р-блока
(распайки проводов) можно заставить его выполнять любую операцию перестановки практически
со скоростью света, так как никакие вычисления в нем не производятся, а просто-напросто
передается сигнал со входа на выход. Такое решение соответствует принципу Керхгофа:
взломщик знает, что используется метод перестановки битов. Однако он не знает ключа,
заключающегося в порядке перестановок.
Подстановки (то есть замещения) выполняются S-блоками (S означает substitution — подстановка,
замена), как показано на рисунке б. В данном примере на вход подается 3-битный открытый текст,
а на выходе появляется 3-битный зашифрованный текст. Для каждого входного сигнала
выбирается одна из восьми выходных линий декодера путем установки ее в 1. Все остальные
линии устанавливаются в 0. Затем эти восемь линий проходят через Р-блок, представляющий
собой вторую ступень S-блока. Третья ступень производит обратное кодирование одной из восьми
линий в 3-битовое двоичное число. Такое устройство заменяет восьмеричные числа 01234567 на
24506713 соответственно. То есть 0 заменяется числом 2, 1 - числом 4 и т. д. Опять же, при
соответствующей распайке проводов Р-блока внутри 5-блока можно реализовать любой вариант
подстановки. К тому же такое устройство может быть встроено в аппаратуру и работать на
огромных скоростях, поскольку шифраторы и дешифраторы вносят лишь одну или две
вентильных задержки (менее 1 нс), а время распространения сигнала внутри Р-блока может быть
менее 1 пс.
Настояния сила этих элементов становится очевидна, если сформировать каскад из этих
устройств, как показано на рис. в. Получившееся в результате устройство называется
продукционным шифром.
5. Стандарты блочного шифрования (DES, “тройной” DES, AES ).
Наиболее популярным стандартным симметричным алгоритмом шифрования данных является
DES (Data Encryption Standard). Данные шифруются поблочно. Перед шифрованием любая форма
представления данных преобразуется в числовую. Эти числа получают путем любой открытой
процедуры преобразования блока текста в число.
На вход шифрующей функции поступает блок данных размером 64 бита, он делится пополам на
левую (L) и правую (R) части. На первом этапе на место левой части результирующего блока
помещается правая часть исходного блока. Правая часть результирующего блока вычисляется как
сумма по модулю 2 (операция XOR) левой и правой частей исходного блока. Затем на основе
случайной двоичной последовательности по определенной схеме в полученном результате
выполняются побитные замены и перестановки. Используемая двоичная последовательность,
представляющая собой ключ данного алгоритма, имеет длину 64 бита, из которых 56
действительно случайны, а 8 предназначены для контроля ключа.
Вот уже в течение двух десятков лет алгоритм DES испытывается на стойкость. И хотя
существуют примеры успешных попыток «взлома» данного алгоритма, в целом можно считать,
что он, выдержал испытания. Алгоритм DES широко используется в различных технологиях и
продуктах безопасности информационных систем. Для того чтобы повысить криптостойкость
алгоритма DES, иногда применяют его усиленный вариант, называемый «тройным DES», который
включает троекратное шифрование с использованием двух разных ключей. При этом можно
считать, что длина ключа увеличивается с 56 бит до 112 бит, а значит, криптостойкость алгоритма
существенно повышается. Но за это приходится платить производительностью — «тройной DES»
требует в три раза больше времени, чем «обычный» DES.
То, что на второй стадии используется операция дешифрования, не существенно с точки
зрения шифрования, но это дает возможность пользователям TDEA расшифровывать
данные, зашифрованные пользователями более старой, обычной версии DES:
C=EKt[DKt[EKt[P]]] = EKt[P].
Улучшенный стандарт шифрования AES
В какой-то момент стало понятно, что ресурс DES (даже с тройным шифрованием) уже
приближается к концу.
Требования, предъявляемые к разработкам AES, были таковы:
1. Алгоритм должен использовать симметричный блочный шифр.
2. Все детали разработки должны быть общедоступны.
3. Должны поддерживаться длины ключей 128, 192 и 256 бит.
4. Должна быть возможна как программная, так и аппаратная реализация.
5. Алгоритм должен быть общедоступным или базирующимся на не дискредитировавших себя
понятиях.
В 2001 году в качестве стандарта AES был утвержден алгоритм Rijndael. С математической точки
зрения, метод Rijndael основывается на теории полей Галуа, благодаря чему можно строго
доказать некоторые его свойства, касающиеся секретности. Тем не менее, можно рассматривать
его и с точки зрения кода программы на языке С, не вдаваясь в математические подробности.
Как и в DES, в Rijndael применяются замены и перестановки. И там, и там используются
несколько итераций, их число зависит от размера ключа и блока и равно 10 для 128-разрядного
ключа и 128-битных блоков; для максимального размера ключа и блоков число итераций равно 14.
Однако, в отличие от DES, все операции выполняются над целыми байтами, что позволяет
создавать эффективные реализации как в аппаратном, так и в программном исполнении.
У функции rijndael три аргумента: plaintext — массив размером 16 байт, содержащий входные
данные, ciphertext — массив размером 16 байт, в который будет возвращен шифр, а также key —
16-разрядный ключ. В процессе вычислений текущее состояние данных сохраняется в байтовом
массиве state, размер которого равен NROWS x NCOLS. Для 128-битных блоков данных размер
этого массива равен 4x4 байта. В 16 байтах целиком уместится один блок.
Массив state изначально содержит открытый текст и модифицируется на каждом этапе
вычислений. На некоторых этапах выполняется побайтовая подстановка. На других этапах —
перестановка байтов внутри массива. Могут выполняться и другие преобразования. В конечном
итоге содержимое state представляет собой зашифрованный текст, который и возвращается в
качестве результата функции.
Алгоритм начинается с распространения ключа по 11 массивам одинакового размера,
представляющим состояние (state). Эти массивы хранятся в rk — массиве структур, содержащих
массивы состояний. Одна из этих структур будет использована в начале вычислений, а остальные
10 — во время 10 итераций (по одной на итерацию). Вычисление ключа для каждой итерации
производится довольно сложным образом, и мы не будем рассматривать детали этого процесса.
Достаточно сказать, что для этого осуществляются циклические повороты и суммирования по
модулю 2 различных групп разрядов ключа.
Следующий шаг состоит в копировании открытого текста в массив state для того, чтобы его можно
было обрабатывать во время последующих итераций. Копируется текст в колонки по 4 байта:
первые 4 байта попадают в колонку 0, вторые — в колонку 1 и т. д. И колонки, и строки
нумеруются с нуля, а итерации — с единицы. Процесс создания 12 байтовых массивов размером
4x4 показан на рисунке.
Перед началом основного цикла вычислений производится еще одно действие: rk[0] поразрядно
складывается по модулю 2 с массивом state. Другими словами, каждый из 16 байт в массиве state
заменяется суммой по модулю 2 от него самого и соответствующего байта в rk[0].
Только после этого начинается главное развлечение. В цикле проводятся 10 итераций, в каждой из
которых массив state подвергается преобразованию. Каждый раунд (итерация) состоит из четырех
шагов. На шаге 1 в state производится посимвольная подстановка. Каждый байт по очереди
используется в качестве индекса для S-блока, заменяющего его значение на соответствующую
запись S-блока. На этом шаге получается прямой моноалфавитный подстановочный шифр. В
отличие от DES, где используются несколько S-блоков, в Rijndael S-блок всего один.
На шаге 2 каждая из четырех строк поворачивается влево. Строка 0 поворачивается на 0 байт (то
есть не изменяется), строка 1 — на 1 байт, строка 2 — на 2 байта, а строка 3 — на 3 байта. Смысл
заключается в разбрасывании данных вокруг блока. Это аналогично перестановкам, показанным
на рисунке.
На шаге 3 происходит независимое перемешивание всех колонок. Делается это с помощью
операции матричного умножения, в результате которого каждая новая колонка оказывается
равной произведению старой колонки на постоянную матрицу. При этом умножение выполняется
с использованием конечного поля Галуа, GF(28). Несмотря на то, что все это кажется довольно
сложным, алгоритм устроен так, что каждый элемент матрицы вычисляется посредством всего
лишь двух обращений к таблице и трех суммирований по модулю 2.
Наконец, на шаге 4 ключ данной итерации складывается по модулю 2 с массивом state.
Благодаря обратимости всех действий расшифровка может быть выполнена с помощью такого же
алгоритма, но с обратным порядком следования всех шагов. Однако есть одна хитрость, которая
позволяет заниматься расшифровкой, используя алгоритм шифрования с измененными таблицами.
Данный алгоритм обладает не только очень высокой защищенностью, но и очень высокой
скоростью. Хорошая программная реализация на машине с частотой 2 ГГц может шифровать
данные со скоростью 700 Мбит/с. Такой скорости достаточно для шифрации видео в формате
MPEG-2 в реальном масштабе времени. Аппаратные реализации работают еще быстрее.
6. Режим блочного шифрования – электронный шифро-блокнот (ECB).
Длинный файл разбивают на 64-битовые отрезки (блоки) по 8 байтов. Каждый из этих блоков
шифруют независимо с использованием одного и того же ключа шифрования.
Основное достоинство – простота реализации. Недостаток - относительно слабая устойчивость
против квалифицированных криптоаналитиков.
Из-за фиксированного характера шифрования при ограниченной длине блока 64 бита возможно
проведение криптоанализа "со словарем". Блок такого размера может повториться в сообщении
вследствие большой избыточности в тексте на естественном языке. Это приводит к тому, что
идентичные блоки открытого текста в сообщении будут представлены идентичными блоками
шифртекста, что дает криптоаналитику некоторую информацию о содержании сообщения.
7. Режим блочного шифрования – режим сцепления блоков шифра (CBС).
В этом режиме исходный файл М разбивается на 64-битовые блоки: М = М1,М2... Мn. Первый
блок М, складывается по модулю 2 с 64-битовым начальным вектором IV, который меняется
ежедневно и держится в секрете. Полученная сумма затем шифруется с использованием ключа
DES, известного и отправителю, и получателю информации. Полученный 64-битовый шифр С1
складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй
64-битовый шифр С2, и т.д. Процедура повторяется до тех пор, пока не будут обработаны все
блоки текста.
Таким образом, для всех i = 1... n (n – число блоков) результат шифрования Q определяется
следующим образом: Ci=DES(Mi Ci -1), где Со = IV-начальное значение шифра, равное
начальному вектору (вектору инициализации).
Очевидно, что последний 64-битовый блок шифртекста является функцией секретного ключа,
начального вектора и каждого бита открытого текста независимо от его длины. Этот блок
шифртекста называют кодом аутентификации сообщения (КАС).
Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным
вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не
может осуществить генерацию КАС, который воспринялся бы получателем как подлинный, чтобы
добавить его к ложному сообще¬нию, либо отделить КАС от истинного сообщения для
использования его с измененным или ложным сообщением.
Достоинство данного режима в том, что он не позволяет накапливаться ошибкам при передаче.
Блок Мi является функцией только Сi-1 и Сi. Поэтому ошибка при передаче приведет к потере
только двух блоков исходного текста.
8. Режим блочного шифрования – режим группового шифра (OFB)
Суть его заключается в том, что выходной блок получается шифрацией вектора инициализации с
использованием ключа. Затем этот выходной блок снова шифруется с использованием ключа, в
результате чего получается второй выходной блок. Для получения третьего блока шифруется
второй блок, и т. д. Последовательность (произвольной длины) выходных блоков, называемая
ключевым потоком, воспринимается как одноразовый блокнот и складывается по модулю 2 с
открытым текстом. В результате получается шифрованный текст, как показано на рисунке а.
Обратите внимание: вектор инициализации используется только на первом шаге. После этого
шифруются выходные блоки. Кроме того, ключевой поток не зависит от данных, поэтому он в
случае необходимости может быть вычислен заранее и совершенно не чувствителен к ошибкам
передачи. Процесс дешифрации показан на рисунке б.
Дешифрация осуществляется путем генерации точно такого же ключевого потока на
принимающей стороне. Поскольку он зависит только от вектора инициализации и ключа, ошибки
передачи шифрованного текста на него не влияют. Таким образом, ошибка в одном бите
передаваемого шифра приводит к ошибке только одного бита расшифрованного текста.
Важно никогда не использовать одну и ту же пару ключ-вектор инициализации в одном и том же
групповом шифре, поскольку при этом всякий раз будет получаться одинаковый ключевой поток.
Повторное использование ключевого потока может привести к неприятному эффекту взлома
шифра при помощи многократного использования ключевого потока. Допустим, блок открытого
текста Р0 шифруется с помощью ключевого потока, в результате чего получается сумма по
модулю 2 Р0 и К0. Затем берется второй блок открытого текста, Q0, и шифруется тем же
ключевым потоком (получаем Q0 XOR К0). Криптоаналитик, перехвативший оба блока
шифрованного текста, может просто сложить их вместе по модулю 2 и получить в результате Р0
XOR Q0, убирая тем самым ключ. Теперь у него есть сумма по модулю 2 двух блоков открытого
текста. Если один из них известен (или его можно угадать), найти второй — не проблема. В любом
случае, взломать сумму по модулю 2 двух блоков открытого текста можно, используя
статистические свойства сообщения. Скажем, если передается английский текст, то наиболее
часто встречающейся буквой в потоке будет «е», и т. д. Короче говоря, имея сумму по модулю 2
двух частей открытого текста, взломщик с высокой вероятностью сможет вычислить обе части.
9. Режимы блочного шифрования – режим шифрования обратной связи (CEB), режим
счетчика (CN)
Шифрование обратной связи
В этом режиме размер блока может отличаться от 64 бит (рисунок). Файл, подлежащий
шифрованию (расшифрованию), считывается последовательными блоками длиной k битов (k =
1...64).
Входной блок (64-битовый регистр сдвига) вначале содержит вектор инициализации,
выровненный по правому краю. Предположим, что в результате разбиения на блоки мы получили
n блоков длиной k битов каждый (остаток дописывается нулями или пробелами). Тогда для
любого i = 1... n блок шифртекста Сi=Mi(+)Pi-1 где Pi-1 обозначает k старших битов предыдущего
зашифрованного блока.
Обновление сдвигового регистра осуществляется путем удаления его старших k битов и записи Сi,
в регистр. Восстановление зашифрованных данных также выполняется относительно просто: Рi-1
и Сi вычисляются аналогичным образом и Mi=Ci(+)Pi-1
Таким образом, для всех i = 1... n (n – число блоков) результат шифрования Q определяется
следующим образом: Ci=DES(Mi (+) Ci-1), где Со = IV-начальное значение шифра, равное
начальному вектору (вектору инициализации).
Очевидно, что последний 64-битовый блок шифртекста является функцией секретного ключа,
начального вектора и каждого бита открытого текста независимо от его длины. Этот блок
шифртекста называют кодом аутентификации сообщения (КАС).
Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным
вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не
может осуществить генерацию КАС, который воспринялся бы по¬лучателем как подлинный,
чтобы добавить его к ложному сообщению, либо отделить КАС от истинного сообщения для
использования его с измененным или ложным сообщением.
Режим счетчика
Все режимы, кроме электронного шифроблокнота, обладают одним и тем же неприятным
свойством: доступ к произвольной части зашифрованных данных невозможен. Допустим,
например, что файл передается по сети и затем сохраняется на диске в зашифрованном виде. Так
иногда делают, если принимающий компьютер представляет собой ноутбук, который может быть
украден. Хранить все важные данные в зашифрованном виде действительно полезно: риск утечки
секретной информации в случае попадания аппаратуры в руки «нехорошим дядям» резко
снижается.
Однако доступ к дискам зачастую бывает необходимо осуществлять в произвольном порядке.
Особенно это касается файлов баз данных. Если файл зашифрован в режиме сцепления блоков,
придется вначале дешифровать все блоки, предшествующие нужному. Согласитесь, такой способ
работы несколько неудобен. По этой причине был введен еще один режим шифрования — режим
счетчика. Он показан на рисунке. Здесь открытый текст не шифруется напрямую. Вместо этого
шифруется вектор инициализации плюс некоторая константа, а уже получающийся в результате
шифр складывается по модулю 2 с открытым текстом. Сдвигаясь на 1 по вектору инициализации
при шифрации каждого нового блока, можно легко получить способ дешифрации любого места
файла. При этом нет необходимости расшифровывать все предшествующие блоки.
Несмотря на то, что режим счетчика весьма полезен, у него есть один существенный недостаток,
который стоит упомянуть. Допустим, уже использовавшийся однажды ключ К будет использован
повторно (с другим открытым текстом, но с тем же вектором инициализации), и взломщик
захватит весь шифрованный текст, который был послан в обоих случаях. Ключевые потоки
остаются неизменными, в итоге возникает риск взлома за счет повторного использования
ключевого потока (тот же эффект, на который мы уже указывали, обсуждая режим группового
шифра). Все, что криптоаналитику остается сделать, это сложить по модулю 2 два перехваченных
сообщения. Тем самым он полностью снимет какую бы то ни было криптографическую защиту, и
в его распоряжении окажется сумма по модулю 2 двух блоков открытого текста. Этот недостаток
вовсе не означает, что режим счетчика в целом неудачен. Это говорит лишь о том, что как ключи,
так и векторы инициализации должны выбираться независимо и случайным образом. Даже если
один и тот же ключ случайно попадется дважды, от перехвата информацию может спасти
отличающийся вектор инициализации.
10. Поточный алгоритм шифрования. Гаммирование. Принцип работы протокола RC4.
Потоковые шифры преобразуют открытый текст в шифротекст по одному биту за операцию.
Генератор потока ключей (иногда называемый генератором с бегущим ключом) выдает поток
битов: k1, k2, k3, ..., ki. Этот поток ключей и поток битов открытого текста, p1, p2, p3, ..., pi,
подвергаются операции “исключающее или", и в результате получается поток битов шифротекста.
ci =pi ki
При дешифрировании операция XOR выполняется над битами шифротекста и тем же самым
потоком ключей для восстановления битов открытого текста.
pi = ci ki
Безопасность системы полностью зависит от свойств генератора потока ключей. Генератор потока
ключей создает битовый поток, который похож на случайный, но в действительности
детерминирован и может быть безошибочно воспроизведен при дешифрировании. Чем ближе
выход генератора потока ключей к случайному, тем больше времени потребуется для взлома
шифра.
Гаммирование - преобразование исходного (открытого) текста, при котором символы исходного
текста складываются (по модулю, равному мощности алфавита) с символами псевдослучайной
последовательности, вырабатываемой по определенному правилу.
RC4 — это потоковый шифр, широко применяющийся в различных системах защиты информации
в компьютерных сетях. Алгоритм RC4 строится, как и любой потоковый шифр на основе
параметризованного ключом генератора псевдослучайных битов с равномерным распределением.
Основные преимущества шифра - высокая скорость работы и переменный размер ключа.
Типичная реализация выполняет 19 машинных команд на каждый байт текста.
В США длина ключа для использования внутри страны рекомендуется равной 128 битов, но
соглашение, заключённое между Software Publishers Association (SPA) и правительством США
даёт RC4 специальный статус, который означает, что разрешено экспортировать шифры длинной
ключа до 40 бит. 56-битные ключи разрешено использовать заграничным отделениям
американских компаний.
Ядро алгоритма состоит из функции генерации ключевого потока. Эта функция генерирует
последовательность битов, которая затем объединяется с открытым текстом посредством
суммирования по модулю два. Дешифрация состоит из регенерации этого ключевого потока и
суммирования его с шифрограммой по модулю два, восстанавливая исходный текст. Другая
главная часть алгоритма – функция инициализации, которая использует ключ переменной длины
для создания начального состояния генератора ключевого потока.
RC4 – фактически класс алгоритмов, определяемых размером его блока. Этот параметр n является
размером слова для алгоритма. Обычно, n = 8, но в целях анализа можно уменьшить его. Однако
для повышения безопасности необходимо увеличить эту величину. Внутреннее состояние RC4
состоит из массива размером 2n слов и двух счетчиков, каждый размером в одно слово. Массив
известен как S-бокс, и далее будет обозначаться как S. Он всегда содержит перестановку 2n
возможных значений слова. Два счетчика обозначены через i и j.
Алгоритм инициализации RC4 использует ключ, сохраненный в Key, и имеющий длину l байт.
Инициализация начинается с заполнения массива S, далее этот массив перемешивается путем
перестановок определяемых ключом. Так как только одно действие выполняется над S, то должно
выполняться утверждение, что S всегда содержит все значения кодового слова.
Генератор ключевого потока RC4 переставляет значения, хранящиеся в S, и каждый раз выбирает
различное значение из S в качестве результата. В одном цикле RC4 определяется одно n-битное
слово K из ключевого потока, которое в последующем суммируется с исходным текстом для
получения зашифрованного текста.
11. Принцип криптографии с открытым ключом.
Шифрование с открытым ключом имеет не меньшую важность, чем традиционное шифрование, и
находит свое применение в сферах аутентификации сообщений и распределения ключей.
Схема шифрования с открытым ключом
Криптография с открытым ключом, предложенная Диффи (Diffie) и Хеллманом (Hellman) в 1976
году [DIFF76], является в области криптографии первым радикальным шагом вперед буквально за
тысячелетия. С одной стороны, алгоритмы криптографии с открытым ключом используют
математические функции, отличные от подстановок и перестановок. Но более важно то, что
методы криптографии с открытым ключом являются асимметричными, т.е. предполагают
использование двух разных ключей, в отличие от методов симметричного традиционного
шифрования с помощью одного ключа. Идея применения двух ключей вызвала глубокие
изменения и в подходах к обеспечению конфиденциальности, и в области распределения ключей,
и в процедурах аутентификации.
Схема шифрования с открытым ключом складывается из следующих компонентов
- Открытый текст. Это текст сообщения или данные, подаваемые на вход алгоритма.
- Алгоритм шифрования. Алгоритм, выполняющий определенное преобразование открытого
текста.
- Открытый и личный ключи. Пара ключей, выбираемых таким образом, чтобы тогда, когда один
из них применяется для шифрования, второй можно было бы использовать для дешифрования.
Конкретное преобразование, выполняемое алгоритмом шифрования, зависит от открытого или
личного ключа, используемого на входе алгоритма.
- Шифрованный текст. "Перемешанный" текст сообщения, получаемый на выходе алгоритма.
Зависит от открытого текста и ключа. Для одного и того же сообщения два разных ключа в
результате дадут разные шифрованные тексты.
- Алгоритм дешифрования. Алгоритм, с помощью которого с использованием соответствующего
ключа обрабатывается шифрованный текст, чтобы в результате получился открытый текст.
Как видно из названий, открытый ключ пары делается доступным для использования другими, а
личный ключ остается известным только владельцу. Криптографические алгоритмы общего
назначения используют один из этих ключей для шифрования, а другой, связанный с первым, —
для дешифрования.
Главными из выполняемых при этом шагов, являются следующие:
1. Каждый пользователь генерирует пару ключей, которые предполагается использовать для
шифрования и дешифрования сообщений.
2. Каждый пользователь публикует один из ключей, размещая этот ключ в открытом для всех
реестре или доступном другим файле. Это и есть открытый ключ. Второй ключ, соответствующий
открытому, остается в личном владении и должен сохраняться в секрете.
3. Собираясь послать Алисе сообщение, Боб шифрует его, используя открытый ключ Алисы.
4. Алиса, получив сообщение, дешифрует его с помощью своего личного ключа. Другой
получатель не сможет дешифровать сообщение, поскольку личный ключ Алисы знает только
Алиса.
В рамках этого подхода все участники имеют доступ к открытым ключам, а личные ключи
генерируются на месте каждым участником для себя и поэтому их никогда не приходится
распределять. До тех пор пока системе удается сохранять свой личный ключ в секрете,
поступающие сообщения называются защищенными. В любой момент система может изменить
свой личный ключ и опубликовать соответствующий ему открытый ключ, заменяющий старый
открытый ключ.
Ключи, используемые в схемах традиционного шифрования, называют секретными ключами.
Пара ключей, используемых в схемах шифрования с открытым ключом, называются,
соответственно, открытым ключом и личным ключом. Личный ключ, конечно же, тоже должен
храниться в секрете, но называется личным, а не секретным во избежание путаницы с ключом,
используемым в схеме традиционного шифрования.
Криптосистемы с открытым ключом характеризуются использованием криптографического
алгоритма с двумя ключами, один из которых остается в личном пользовании, а второй открыт для
всех. В зависимости от приложения отправитель использует либо свой личный ключ, либо
открытый ключ получателя, либо оба эти ключа, если требуется выполнить какую-то специальную
криптографическую функцию. В самых широких пределах использование криптосистем с
открытым ключом можно отнести к трем категориям:
- Шифрование/дешифрование. Отправитель шифрует сообщение с использованием открытого
ключа получателя.
- Цифровая подпись. Отправитель "подписывает" сообщение с помощью своего личного ключа.
Подпись получается в результате применения криптографического алгоритма к сообщению или к
небольшому блоку данных, являющемуся функцией сообщения.
- Обмен ключами. Две стороны взаимодействуют, чтобы обменяться сеансовым ключом. При этом
возможны различные подходы, предполагающие применение личных ключей одной или обеих
сторон.
Условия применения методов криптографии с открытым ключом
Криптосистема, схема которой показана на рисунке, строится на основе криптографического
алгоритма, использующего два связанных ключа. Диффи и Хеллман предположили без
доказательства, что такие алгоритмы существуют. Однако они указали условия, которым должны
удовлетворять такие алгоритмы [DIFF76].
1. Для стороны В процесс генерирования пары ключей (открытый ключ KUb , личный ключ KRb)
не должен вызывать вычислительных трудностей.
2. Для отправителя А не должен вызывать вычислительных трудностей процесс создания
шифрованного текста при наличии открытого ключа и сообщения М, которое требуется
зашифровать:
С = ЕКUb(М)
3. Для получателя В не должен вызывать вычислительных трудностей процесс восстановления
оригинального сообщения путем дешифрования полученного шифрованного текста с помощью
личного ключа:
M = DKRb(C) = DKRb[EKUb(M)].
4. Для противника должно оказаться нереальным с точки зрения вычислительных возможностей
восстановление личного ключа KRb по имеющемуся открытому ключу KUb .
5. Для противника должно оказаться нереальным с точки зрения вычислительных возможностей
восстановление оригинального сообщения М по имеющимся открытому ключу KUb и
шифрованному тексту С.
К этим требованиям можно добавить еще одно, которое, хотя и представляется полезным, все же
не является необходимым для всех приложений, реализующих криптосистемы с открытым
ключом.
6. Для шифрования можно использовать любой из двух ключей пары, а другой следует применять
для дешифрования:
M = DKRb[EKUb(M)] = DKUb[EKRb(M)].
12. Алгоритм шифрования RSA.
Одну из первых криптографических схем с открытым ключом предложили в 1977 году Рон
Райвест (Ron Rivest), Ади Шамир (Adi Shamir) и Лен Адлеман (Len Adleman) из МТИ, а
соответствующая публикация появилась в 1978 году [RIVE78]. Схема Райвеста-Шамира-Адлемана
(RSA) с тех пор получила самое широкое признание и реализована практически во всех
приложениях шифрования с открытым ключом. RSA представляет собой блочный шифр, в
котором открытый и шифрованный текст представляются целыми числами из диапазона от 0 до n
– 1, для некоторого n.
Шифрование и дешифрование для блока открытого текста М и блока шифрованного текста С
можно представить в виде следующих формул:
С = Me mod(n)
M=Cd mod(n) = (Мe) d mod(n) = M ed mod(n)
Как отправитель, так и получатель должны знать значения n и е, но только получателю известно
значение d. Таким образом, данная схема является алгоритмом шифрования с открытым
ключом KU = {e, n} и личным ключом KR={d,n}. Чтобы этот алгоритм мог использоваться
для шифрования с открытым ключом, должны выполняться следующие условия:
1. Должны существовать такие значения е, d и n, при которых Med = M mod(n), для всех М < n.
2. Должны относительно легко вычисляться Мe и С для всех значений М < n.
3. Должно быть практически невозможно определить d по имеющимся е и n.
Первые два требования удовлетворить легко. Третье условие может быть выполнено для
некоторых достаточно больших значений е и n.
13. Распределение по уровням механизмов шифрования в сети ПК X.25.
К-канальное шифрование на 3-ем уровне.
С-сквозное шифрование.
Недостаток канального уровня:открытая информация в каждом узле коммутации (будет виден
адрес).
14. Шифрование в беспроводной ЛВС стандарта 802.11. Протокол WEP.
Оказывается, удивительно просто создать систему, которая логически полностью надежна, то есть
состоит из VPN и брандмауэров, и при этом на практике протекает, как решето. Такая ситуация
может возникнуть, если в сети есть беспроводные машины, передающие данные с помощью
радиосигнала, проходящего прямо над брандмауэром в обе стороны. Очевидно, что вопрос
безопасности в беспроводных сетях стоит куда острее, чем в проводных.
Стандарт 802.11 описывает протокол безопасности уровня передачи данных под названием WEP
(Wired Equivalent Privacy — секретность, эквивалентная проводным сетям), предназначенный для
того, чтобы обезопасить беспроводные ЛВС так же надежно, как и проводные. По умолчанию в
проводных сетях вопрос безопасности отсутствует как таковой, поэтому добиться этой цели
несложно, и WEP справляется со своей задачей.
При наличии системы безопасности в сети 802.11 каждая станция имеет общий закрытый ключ с
базовой станцией. Метод распространения ключей стандартом не оговаривается. Скажем, они
могут быть прошиты в устройствах или программах производителем. Ими можно обменяться
заранее по проводной сети. Наконец, либо базовая станция, либо пользовательская машина может
случайным образом выбирать ключ и отсылать его противоположной стороне, предварительно
зашифровав при помощи открытого ключа этой стороны. После установки ключи могут
оставаться неизменными в течение нескольких месяцев или даже лет.
Шифрация при помощи WEP использует потоковый шифр, основанный на алгоритме RC4. Этот
алгоритм хранился в тайне до тех пор, пока в 1994 году он не просочился в Интернет. В WEP RC4
генерирует потоковый шифр, который суммируется по модулю 2 с открытым текстом, в
результате чего получается шифрованный текст.
Полезная нагрузка каждого пакета шифруется с использованием метода, показанного на рисунке.
Вначале проверяется контрольная сумма (по многочлену CRC-32), которая добавляется к полезной
нагрузке. Так формируется открытый текст, передаваемый алгоритму шифрования. Этот
открытый текст складывается по модулю 2 с отрезком ключевого потока, равного ему по размеру.
Результатом этих преобразований является зашифрованный текст. Вектор инициализации,
необходимый для запуска RС4, передается вместе с шифром. После получения пакета приемник
извлекает из него зашифрованные данные (полезную нагрузку), создает ключевой поток из общего
закрытого ключа и только что принятого вектора инициализации, затем ключевой поток
суммируется по модулю 2 с полезной нагрузкой, что позволяет восстановить открытый текст.
Наконец, можно проверить контрольную сумму, чтобы убедиться в подлинности принятой
информации.
Очень многие используют одинаковые общие ключи для всех пользователей, из-за этого все
пользователи могут запросто читать весь трафик друг друга. Но даже если всем пользователям
раздать разные ключи, WEP все равно может быть взломан. Так как ключи не изменяются в
течение больших периодов времени, стандарт WEP рекомендует (но не обязывает) изменять
вектор инициализации при передаче каждого пакега во избежание атак посредством повторного
использования. К сожалению, многие сетевые карты стандарта 802.11 для ноутбуков сбрасывают
вектор инициализации в 0, когда ее вставляют в разъем, и увеличивают на единичку с каждым
пересылаемым пакетом. Так как сетевые карты вставляются и вынимаются весьма часто, малые
числа, выступаюппте в качестве векторов инициализации, — обычное дело. Если удастся собрать
несколько пакетов, посланных одним и тем же пользователем, с одинаковы ми значениями
вектора инициализации (который сам по себе посылается открытым текстом вместе с пакетом),
можно вычислить сумму но модулю 2 двух блоков открытого текста, и, возможно, получится
взломать шифр.
15. Безопасность в системах Bluetooth
Радиус действия систем Bluetooth значительно короче, чем сетей 802.11, поэтому взломщику не
удастся произвести атаку, оставив ноутбук в припаркованной рядом со зданием машине, однако
вопрос безопасности важен и тут. Например, предположим, что компьютер Алисы оборудован
беспроводной клавиатурой стандарта Bluetooth. Если не установить систему защиты, то Труди,
находясь за стенкой, в соседнем офисе сможет без труда прочесть все, что набирает Алиса,
включая исходящую почту. Можно захватить все, что передается на беспроводной принтер, если
расположиться неподалеку от него (включая входящую почту и конфиденциальные бумаги). К
счастью, в Bluetooth есть рабочая схема защиты, нарушающая планы всевозможных личностей
типа Труди.
Система защиты Bluetooth может работать в грех режимах, начиная от полного бездействия и
заканчивая тотальной шифрацией данных и контролем целостности. Как и в случае с 802.11, если
система защиты отключена (но умолчанию это именно так), о какой-либо безопасности говорить
не приходится. Bluetooth обеспечивает безопасность на нескольких уровнях. На физическом
уровне для этого применяются скачкообразные изменения частот, но поскольку любое устройство,
появляющееся в микросети, должно узнать последовательность скачков частоты, эта
последовательность, очевидно, не является секретной. Настоящая защита информации начинает
проявляться тогда, когда вновь прибывшее подчиненное устройство пытается запросить канал для
связи с управляющим устройством. Предполагается, что оба устройства совместно используют
предварительно установленный закрытый ключ. В некоторых случаях он прошивается в обоих
устройствах (например, в гарнитуре и мобильном телефоне, продающихся вместе), В других
случаях в одном из устройств (например, в гарнитуре) ключ прошит, а в сопряженное устройство
(например, мобильный телефон) пользователь должен ввести ключ вручную в виде десятичного
числа. Общие ключи такого типа называются отмычками.
Перед установкой канала подчиненное и управляющее устройства должны выяснить, владеют ли
они отмычками. В случае положительного ответа им необходимо договориться о том, каким будет
канал: шифрованным, с контролем целостности или и таким, и таким. Затем выбирается 128разрядный ключ сеанса, некоторые биты которого могут быть сделаны общедоступными. Такое
послабление сделано в целях соответствия системы ограничениям, введенным правительствами
разных стран и запрещающим экспорт или использование ключей, длина которых больше той, что
способно взломать правительство.
Шифрация выполняется с применением потокового шифра Е0, контроль целостности - с
применением SAFER+. И тот, и другой представляют собой традиционные блочные шифры с
симметричными ключами. SAFER+ пытались использовать в AES, однако очень быстро
отказались от этой мысли, так как он работал гораздо медленнее других. Работа над Bluetooth
завершилась еще до того, как был выбран шифр AES; в противном случае, вероятно,
использовался бы алгоритм Rijndael.
В процессе шифрации с использованием ключевого потока открытый текст суммируется по
модулю 2 с ключевым потоком. В результате получается шифрованный текст. К сожалению,
алгоритм Е0 как и RC4, чрезвычайно слаб. Еще одна проблема безопасности, связанная с
Bluetooth, состоит в том, что система идентифицирует только устройства, а не пользователей. Тем
не менее, система безопасности в Bluetooth реализована и на верхних уровнях, поэтому даже в
случае взлома защиты на уровне передачи данных некоторые шансы еще остаются, особенно если
приложение для выполнения транзакции требует ввода PIN-кода вручную с помощью какойнибудь разновидности клавиатуры.
16. Требования к профилю сообщения. Алгоритм МD5, SHA-1
Многие методы цифровых подписей критикуются за то, что в них совмещаются две различные
функции: аутентификация и секретность. Довольно часто требуется только аутентификация. К
тому же, например, получить лицензию на экспорт обычно проще, если система обеспечивает
только аутентификацию, но не секретность. Далее будет описана схема аутентификации, не
требующая шифрования всего сообщения.
Эта схема основана на идее необратимой хэш-функции, которая принимает на входе участок
открытого текста произвольной длины и по нему вычисляет строку битов фиксированной длины.
У этой хэш-функции, часто называемой профилем сообщения (message digest, MD), есть четыре
следующих важных свойства:
- По заданному открытому тексту Р легко сосчитать значение хэш-функции MD(P).
- По цифровой подписи MD(P) практически невозможно определить значение открытого текста Р.
- Для данного Р практически невозможно подобрать такой Р', чтобы выполнялось равенство
MD(P') = MD(P).
- Изменение даже одного бита входной последовательности приводит к очень непохожему
результату.
Чтобы удовлетворять требованию 3, результат хэш-функции должен быть длиной, по крайней
мере, в 128 бит, желательно даже больше. Чтобы удовлетворять требованию 4, хэш-функция
должна искажать входные значения очень сильно. Этим данный метод напоминает алгоритмы с
симметричными ключами.
Профиль сообщения по части открытого текста вычисляется значительно быстрее, чем шифруется
все сообщение с помощью алгоритма с открытым ключом. Поэтому профили сообщений могут
использоваться для ускорения работы алгоритмов цифровых подписей.
Вместо того чтобы посылать открытый текст Р вместе с KВВ(А, t, P), Большой Брат теперь
вычисляет профиль сообщения MD(P), применяя функцию хэширования MD к открытому тексту
Р. Затем он помещает KВВ(А, t, MD(P)) как пятый элемент в список, который зашифровывает
ключом Кв, и отправляет его Бобу вместо KВВ(А, t, P).
В случае возникновения спора Боб может предъявить на суде как открытый текст Р, так и KВВ (А,
t, MD(P)). По просьбе судьи Большой Брат расшифровывает KВВ(А, t, MD(P)), в результате чего
суду предъявляются также цифровая подпись MD(P), подлинность которой гарантируется
Большим Братом, и сам открытый текст Р, подлинность которого суд должен выяснить. Поскольку
практически невозможно создать другой открытый текст, соответствующий данной цифровой
подписи, суд убеждается в том, что Боб говорит правду. Использование профиля сообщения
экономит время шифрования и затраты на транспортировку и хранение.
Профиль сообщения может также применяться для гарантии сохранности сообщения при передаче
его по сети в системах шифрования с открытым ключом, как показано на рисунке. Здесь Алиса
сначала вычисляет профиль сообщения для своего открытого текста. Затем она подписывает
профиль сообщения и посылает зашифрованный профиль сообщения и открытый текст Бобу. Если
злоумышленник попытается подменить по дороге открытый текст Р, Боб обнаружит это, сосчитав
значение профиля сообщения MD(P).
MD5
Было предложено несколько вариантов функций, вычисляющих профиль сообщения. Самое
широкое распространение получили алгоритмы MD5 (Rivest, 1992) и SHA (NIST, 1993). Алгоритм
MD5 (Message Digest 5 — профиль сообщения 5) представляет собой пятую версию хэш-функций,
разработанных Рональдом Ривестом (Ronald Rivest). Он перемешивает входные биты достаточно
сложным образом, так что каждый выходной бит зависит от каждого входного бита. Сначала
сообщение дополняется до длины 448 бит по модулю 512. Затем к нему добавляется исходная
длина сообщения, рассматриваемая как 64-разрядное число, в результате чего получается блок
битов, длина которого кратна 512. Последний шаг подготовки к вычислениям инициализирует
128-разрядный буфер, задавая его содержимое равным некоему фиксированному значению.
Затем начинаются вычисления. На каждом этапе берется 512-разрядный блок входного текста и
тщательно перемешивается со 128-разрядным буфером. Для пущей наваристости в кастрюлю
также кидается содержимое таблицы синусов. Именно синусы используются не потому, что их
результат более случаен, чем результат других генераторов случайных чисел (в которых часто
также применяются тригонометрические функции), а чтобы избежать каких бы то ни было
подозрений в создании потайной лазейки, через которую потом разработчик (или заказчик) мог бы
войти. Отказ корпорации IBM раскрыть принципы устройства S-блоков, применяемых в стандарте
шифрования DES, привел к появлению большого количества слухов и домыслов о потайных
ходах. Каждый входной блок обрабатывается за четыре итерации. Процесс продолжается, пока не
будут обработаны все входные блоки. Содержимое 128-разрядного буфера и образует профиль
сообщения.
MD5 появился около десяти лет назад, и за это время было предпринято множество атак на этот
алгоритм. Были обнаружены некоторые слабые места, однако существуют определенные
внутренние процедуры, позволяющие защититься от взлома. И все же, если упадут и эти
последние барьеры, в один прекрасный день MD5 может оказаться ненадежным. Несмотря на это
на момент написания книги этот алгоритм еще держится на плаву.
SHA-1
Второй широко применяемой функцией вычисления профиля сообщения является SHA (Secure
Hash Algorithm — надежный алгоритм хэширования), разработанный Агентством национальной
безопасности США (NSA) и получивший благословение национального института стандартов и
технологий NIST (выразившееся в федеральном стандарте FIPS 180-1). Как и MD5, алгоритм SHA
обрабатывает входные данные 512-битовыми блоками, но, в отличие от MD5, он формирует 160разрядный профиль сообщения. Типичный случай отправки Алисой несекретного, но
подписанного сообщения Бобу показан на рисунке. Открытый текст обрабатывается алгоритмом
SHA-1, на выходе получается 160-битный хэш SHA-1. Он подписывается Алисой (закрытым
ключом RSA) и отправляется вместе с открытым текстом Бобу.
При получении сообщения Боб сам вычисляет хэш-функцию с помощью алгоритма SHA-1 и
применяет открытый ключ Алисы к подписанному хэшу для того, чтобы получить исходный хэш,
H. Если они совпадают, сообщение считается корректным. Так как Труди не может, перехватив
сообщение, изменить его таким образом, чтобы значение Н совпадало с контрольным, Боб легко
узнает обо всех подменах, которые совершила Труди. Для сообщений, чья неприкосновенность
существенна, а секретность не имеет значения, часто применяется схема, показанная на рисунке.
При относительно небольших затратах на вычисления она гарантирует, что любые изменения,
внесенные на пути следования сообщения, будут с высокой вероятностью выявлены.
Давайте теперь вкратце рассмотрим, как работает SHA-1. Для начала алгоритм SHA-1 также
дополняет сообщение единичным битом в конце, за которым следует такое количество нулевых
бит, чтобы в итоге получилось общее число битов, кратное 512. Затем 64-разрядное число,
содержащее длину сообщения (до битового дополнения), логически складывается (операция ИЛИ)
с 64 младшими битами. На рисунке а показано сообщение с дополнением, расположенным справа,
потому что английский текст и рисунки читаются слева направо (то есть правая граница рисунка
воспринимается как его конец, а левая — как начало). Применительно к вычислительной технике
такое расположение соответствует обратному порядку хранения байтов (сначала передается
самый значимый, старший бит). Такая реализация присуща, например, SPARC. Однако вне
зависимости от используемой техники SHA-1 вставляет битовое дополнение в конец сообщения.
Во время выполнения вычислений SHA-1 работает с пятью 32-битными переменными (H0... H4), в
которых накапливается значение хэш-функции. Они показаны на рисунке б. Их начальные
значения — это постоянные величины, определенные стандартом.
Затем поочередно обрабатываются блоки с М0 по Mn-1. Для текущего блока 16 слов сначала
копируются в начало вспомогательного массива W размером 80 слов, как показано на рисунке в.
64 оставшихся слова вычисляются с использованием следующей формулы:
Wt = S1(Wi-3 XOR Wi-8 XOR Wi-14 XOR Wi-16)
(16 < i < 79),
где Sb(W) представляет собой поворот 32-разрядного слова W на b бит. Теперь по значениям H0...
H4 инициализируются переменные от А до Е.
После 80 итераций цикла значения переменных А ... Е добавляются к H0...H4 соответственно.
После обработки первого 512-битного блока начинается обработка следующего. Массив W
инициализируется заново с помощью нового блока, однако Н сохраняется неизменным. По
окончании этого блока обрабатывается следующий и так далее, пока все 512-разрядные блоки
сообщения не попадут в эту кастрюлю. После обработки последнего блока пять 32-разрядных слов
в массиве Н выводятся в качестве 160-битного значения криптографической хэш-функции.
Полный код SHA-1 приведен в RFC 3174.
В настоящее время идет работа над новыми версиями SHA-1 с 256-, 384- и 512-разрядными
значениями хэш-функций.
17. Задача о днях рождения и обоснование выбора длины профиля сообщения.
В мире шифров многое оказывается совсем не таким, каким кажется на первый взгляд. Можно,
например, предполагать, что для ниспровержения профиля сообщения, состоящего из m разрядов,
потребуется порядка 2m операций. На самом деле, часто оказывается достаточно 2 m/2 операций,
если использовать метод, основанный на задаче о днях рождения, опубликованный в ставшей
классической книге.
В основе идеи этого метода лежит задача, часто приводимая в качестве примера профессорами
математики на курсах по теории вероятности. Вопрос: сколько студентов должно находиться в
классе, чтобы вероятность появления двух человек с совпадающими днями рождения превысила
1/2? Большинство студентов обычно ожидают, что ответ будет значительно больше 100. На самом
же деле, теория вероятности утверждает, что это число равно 23. Не вдаваясь в тонкости анализа
этой проблемы, дадим интуитивно понятное объяснение: из 23 человек мы можем сформировать
(23 • 22)/2 = 253 различных пары, у каждой из которой дни рождения могут совпасть с
вероятностью 1/365. Теперь этот ответ уже не кажется таким удивительным.
В более общем случае, если имеется некое соответствие между n входами (людьми, сообщениями
и т. д.) и k возможными выходами (днями рождения, профилями сообщений и т. д.), мы имеем n(n
- 1)/2 входных пар. Если n(n - 1)/2 > k, то вероятность того, что будет хотя бы одно совпадение
выхода при различных входах, довольно велика. Таким образом, вероятность существования двух
сообщений с одинаковыми профилями велика уже при n > sqrt(k). Это означает, что 64-разрядный
профиль сообщения можно с большой вероятностью взломать (то есть найти два различных
сообщения с одинаковым профилем), перебрав 232 сообщений.
Рассмотрим практический пример. На кафедре компьютерных наук Государственного
университета появились вакансия и два кандидата на эту должность, Том и Дик. Том работает на
факультете на два года дольше Дика, поэтому его кандидатура будет рассматриваться первой.
Если он получит эту должность, значит, Дику не повезло. Том знает, что заведующая кафедрой
Мэрилин высоко ценит его работу, поэтому он просит ее написать для него рекомендательное
письмо декану факультета, который будет решать дело Тома. После отправки все письма
становятся конфиденциальными. Мэрилин просит написать это письмо декану свою секретаршу
Элен, подчеркивая, что она хотела бы видеть в этом письме. Когда письмо готово, Мэрилин
просматривает его, подписывает 64-разрядной подписью и посылает декану. Позднее Элен может
послать это письмо электронной почтой.
К несчастью для Тома, у Элен роман с Диком, и она хочет обмануть Тома. Поэтому она пишет
следующее письмо с 32 вариантами в квадратных скобках.
Уважаемый господин декан,
Это [письмо | обращение] отражает мое [искреннее | откровенное] мнение о проф. Томе Уилсоне,
являющемся [кандидатом | претендентом] на профессорскую должность [в настоящее время | в
этом году]. Я [знакома | работала] с проф. Уилсоном в течение [почти | около] шести лет. Он
является [выдающимся | блестящим] исследователем, обладающим [большим талантом |
большими возможностями] и известным [во всем мире | не только в нашей стране] своим
[серьезным | созидательным] подходом к [большому числу | широкому спектру] [сложных |
перспективных] вопросов.
Он также является [высоко | весьма] [уважаемым | ценимым] [преподавателем | педагогом]. Его
студенты дают его [занятиям | лекциям] [самые высокие | высочайшие] оценки. Он самый
[популярный | любимый] [преподаватель | учитель] [нашей кафедры | нашего университета].
[Кроме | Помимо] того, [гранты | контракты] проф. Уилсона [существенно | значительно]
пополнили [фонды | финансовые запасы] нашей кафедры. Эти [денежные | финансовые] средства
[позволили нам | дали возможность] [выполнить | осуществить] [много | ряд] [важных |
специальных] программ, [таких как | среди которых], государственная программа 2000 года. Без
этих средств было бы невозможным продолжение этой программы, такой [важной | значительной]
для нас. Я настойчиво рекомендую вам предоставить ему эту должность.
К несчастью для Тома, закончив печатать это письмо, Элен тут же принимается за второе:
Уважаемый господин декан,
Это [письмо | обращение] отражает мое [искреннее | откровенное] [мнение | суждение] о проф.
Томе Уилсоне, являющемся [кандидатом | претендентом] на профессорскую должность в
[настоящее время | этом году]. Я [знакома | работала] с проф. Уилсоном в течение [почти | около]
шести лет. Он является [слабым | недостаточно талантливым] [исследователем | ученым], почти не
известным в той области науки, которой он занимается. В его работах практически не заметно
понимания [ключевых | главных] [проблем | вопросов] современности.
[Более | Кроме] того, он также не является сколько-нибудь [уважаемым | ценимым]
[преподавателем | педагогом]. Его студенты дают его [занятиям | лекциям] [самые низкие |
негативные] оценки. Он самый непопулярный [преподаватель | учитель] нашей кафедры,
[славящийся | печально известный] своей [привычкой | склонностью] [высмеивать [ставить в
неудобное положение] студентов, осмелившихся задавать вопросы на его [лекциях | занятиях].
[Кроме | Помимо] того, [гранты | контракты] проф. Уилсона [почти | практически] не пополняют
[фондов | финансовых запасов] нашей кафедры. Если не удастся быстро найти новый источник
финансирования, [мы будем вынуждены | нам придется] [закрыть | прекратить] [много | ряд]
[важных | специальных] программ, [таких как | среди которых] государственная программа 2000
года. К сожалению, при таких [условиях | обстоятельствах] я не могу [предлагать | рекомендовать]
его вам на эту должность.
Затем Элен заставляет свой компьютер сосчитать 232 профиля сообщения для каждого варианта
обоих писем, что занимает всю ночь. Есть шансы, что один профиль первого письма совпадет с
одним из профилей второго письма. Если нет, она может добавить еще несколько вариантов слов
и выражений в каждое письмо и попытаться еще раз за выходные. Предположим, что ей удалось
найти такое совпадение. Назовем положительный отзыв письмом А, а отрицательный — письмом
В.
Элен отправляет письмо А электронной почтой Мэрилин на утверждение. Мэрилин, конечно,
утверждает письмо, вычисляет 64-разрядный профиль сообщения, подписывает профиль и
посылает по почте подписанный профиль декану. Независимо Элен посылает декану письмо В
(вместо письма А, которое следует отправить на самом деле).
Получив письмо и подписанный профиль, декан запускает алгоритм вычисления профиля
сообщений для письма В, видит, что его профиль совпадает с тем, что ему прислала Мэрилин, и
увольняет Тома. Он даже не может себе представить, что Элен удалось создать два письма с
одинаковыми профилями сообщений и отправить ему совсем не тот вариант, который читала и
подписала Мэрилин. (Вариант с хэппи-эндом, столь любимым американцами: Элен сообщает
Дику о своих проделках. Потрясенный Дик порывает с ней. Элен в ярости бежит сознаваться во
всем Мэрилин. Мэрилин звонит декану. В конце концов, Том получает профессуру.) При
использовании алгоритма MD5 подобная атака шифра невозможна, так как даже если компьютер
сможет вычислять по 1 млрд профилей в секунду, потребуется около 500 лет, чтобы перебрать по
264 варианта для обоих писем, что все равно не даст 100-процентной гарантии совпадения. Конеч-
но, если заставить параллельно работать 5000 компьютеров, вместо 500 лет потребуется 5 недель.
В этом смысле SHA-1 подходит лучше (так как работает дольше).
18. Электронно-цифровая подпись на основе криптографии с открытым ключом.
Шифрование с открытым ключом можно использовать и по-другому. Предположим, что Боб хотел
бы переслать Алисе сообщение, содержимое которого он не считает секретным, но желает, чтобы
Алиса была уверена в том, что сообщение пришло именно от него. В этом случае Боб использует
свой личный ключ для шифрования сообщения. Когда Алиса получит шифрованный текст, она
выяснит, что его можно дешифровать с помощью открытого ключа Боба, а это докажет, что
сообщение могло быть зашифровано только Бобом. Никто другой не имеет личного ключа Боба,
поэтому никто другой не мог создать шифрованный текст, дешифруемый открытым ключом Боба.
В данном случае все шифрованное сообщение выступает в роли цифровой подписи. Кроме того,
невозможно также изменить сообщение, не имея в своем распоряжении личного ключа Боба,
поэтому сообщение оказывается аутентичным с точки зрения, как достоверности источника, так и
гарантии целостности данных.
В схеме, о которой идет речь, шифруется все сообщение, и это, хотя и идентифицирует
отправителя и подтверждает целостность содержимого, требует от системы достаточно много
ресурсов. Каждый документ, чтобы его можно было использовать, должен храниться в виде
открытого текста. Еще один экземпляр документа должен храниться в виде шифрованного текста,
чтобы в случае спора можно было выяснить источник и восстановить содержимое оригинала.
Поэтому более эффективным подходом, позволяющие достичь тот же результат, оказывается
шифрование небольшого блока данных, являющегося функцией документа. Такой блок данных,
называемый аутентификатором, должен не давать возможности изменить документ так, чтобы при
этом не изменился бы аутентификатор. Если аутентификатор будет зашифрован с использованием
личного ключа отправителя, он будет служить подписью, удостоверяющей источник, содержимое
и последовательность отправки сообщений. В качестве подходящей функции документа может
выступать защищенный хэш-код SHA-1.
Важно подчеркнуть, что только что описанный процесс шифрования не обеспечивает
конфиденциальности. Это означает, что пересылаемому таким образом сообщению гарантирована
защита от изменения, но не от перехвата. Это очевидно в том случае, когда для создания подписи
используется только часть сообщения, поскольку тогда остаток сообщения передается открытым
текстом. Но даже в полностью зашифрованном сообщении конфиденциальность не
обеспечивается, поскольку любой сторонний наблюдатель может дешифровать передаваемое
сообщение, используя для этого открытый ключ отправителя.
19. Угроза "Человек посредине" и необходимость в сертификате.
Атака «человек посередине» (MitM-атака) - термин в криптографии, обозначающий ситуацию,
когда атакующий способен читать и видоизменять по своей воле сообщения, которыми
обмениваются корреспонденты, причем ни один из последних не может догадаться о его
присутствии в канале. Также можно определить это как метод компрометации канала связи , при
котором взломщик, подключившись к каналу между контрагентами, осуществляет активное
вмешательство в протокол передачи, удаляя, искажая информацию или навязывая ложную. Атака
«человек посередине» может быть эффективна на протоколах, в которых используется
шифрование с открытым ключём. Так же она применима на немодифицированном протоколе
обмена ключами Диффи-Хеллмана.
Для защиты от этой угрозы применяются разные методы, которые включают в себя сложные
алгоритмы аутентификации(в том числе с помощью средств биометрии), а также алгоритмы,
использующие шифрование с открытыми ключами. Используя эти алгоритмы, необходимо быть
уверенным, что открытый ключ был получен от контрагента, а не от злоумышленника. Этой цели
служат цифровые сертификаты открытых ключей, которые выдаёт надёжное третье лицо(центр
сертификации), которому доверяют оба контрагента, участвующие в обмене информацией.
20. Стандарт сертификатов X.509.
Х.509 – разработанный и утверждённый ITU-T стандарт для инфраструктур систем с открытыми
ключами(PKI). Х.509 описывает, в частности, стандартный формат для сертификатов открытых
ключей. В системе Х.509 центр сертификации выдаёт сертификат, привязывая открытый ключ к
определённому отличительному имени(Distinguished Name) или альтернативному имени, в
качестве которого может использоваться адрес электронной почты или запись в DNS.
Структура сертификата:
Version
Версия Х.509
Serial Number Номер, в связке с именем управления сертификации, однозначно
идентифицирующий сертификат
Signature Algorithm
Алгоритм генерации подписи сертификата
Issuer
Имя управления по стандарту Х.500
Validity
Период годности
Not Before
Начало периода
Not After
Конец периода
Subject
Сущность, ключ которой сертифицируется
Subject Public Key Info
Public Key Algorithm
Алгоритм генерации открытого ключа сущности
Subject Public Key
Сам открытый ключ сущности
Issuer Unique Identifier
Идентификатор создателя сертификата(опционально)
Subject Unique Identifier
Идентификатор владельца сертификата(опционально)
Extensions
Различные возможные расширения(опционально)
Certificate Signature
Подпись сертификата
21. Аутентификация с использованием протокола HMAC.
Интерес к методам вычисления значений МАС на основе криптографических хэш-кодов типа
SHA-1 объясняется следующими обстоятельствами.
- криптографические функции хэширования в виде программной реализации обычно выполняются
быстрее, чем реализации симметричных блочных шифров (например DES)
- программные библиотеки для криптографических функций хэширования широко доступны.
- для криптографических функций хэширования нет ограничений на экспорт из США или других
стран, тогда как для симметричных блочных шифров они предусмотрены (даже при
использовании шифра только для вычисления значений MAC).
В алгоритме НМАС функция хэширования интерпретируется как "черный ящик". Это имеет два
преимущества. Во-первых, в качестве модуля НМАС может использоваться уже существующая
реализация функции хэширования. При таком подходе немалая часть кода НМАС оказывается
готовой к применению без каких бы то ни было модификаций. Во-вторых, если придется когдалибо заменять имеющуюся функцию хэширования в НМАС, то для этого достаточно будет убрать
имеющийся модуль функции хэширования и заменить его новым. Это может потребоваться
например в случае, если будет найдена более быстрая функция хэширования. Но, что более важно,
если стойкость встроенной функции хэширования будет скомпрометирована, надежность НМАС
может быть восстановлена простой заменой встроенной функции хэширования. Основное
преимущество НМАС по сравнению с другими схемами, основанными на использовании
хэширования в том, что НМАС обеспечивает гарантированную защищенность при условии, что
встроенная функция хэширования обладает требуемой криптографической стойкостью.
Алгоритм HMAC:
H - встроенная функция хэширования(например, SHA-1),
М - подаваемое на вход НМАС сообщение(включая биты заполнителя, требуемые встроенной
функцией хэширования),
Yi - i-й блок М, 0<=i<=L-1,
L - число блоков в M,
b - число битов в блоке,
n - длина хэш-кода, генерируемого встроенной функцией хэширования,
К - секретный ключ; если длина ключа больше b, ключ подается на вход функции хэширования,
чтобы получить n-битовый ключ; рекомендуется длина >= n,
К+ - ключ К с добавленными в начало нулями, чтобы в результате длина получилась равной b
битам,
ipad - значение 00110110 (шестнадцатеричное 36), повторенное b/8 раз,
opad - значение 01011010 (шестнадцатеричное 5С), повторенное b/8 раз.
В этом случае алгоритм НМАС можно представить формулой:
НМАСk = Н[(К+ + opad) || Н[(К+ + ipad) || М]].
Подробно описать алгоритм можно следующим образом:
1. К значению К слева добавляются нули, чтобы получить b-битовую строку К+ (например, если К
имеет длину 160 бит и b = 512, то значение К будет дополнено 44 нулевыми байтами 0х00)
2. Значение К+ связывается операцией XOR (побитовое исключающее "ИЛИ") с ipad, в результате
чего получается b-битовый блок Si
3. К Si присоединяется М
4. К потоку, полученному в 3, применяется функция Н
5. Значение К+ связывается операцией XOR с opad, в результате чего получается b-битовый блок
So
6. Результат хэширования, полученный в 4, присоединяется к So.
7. К потоку, полученному в 6, применяется функция Н, и результат подается на выход.
Обратите внимание на то, что связывание с ipad означает переключение половины битов К. Точно
так же связывание с opad означает переключение половины битов К, но для другого набора битов.
Поэтому в результате применения к Si и So алгоритма хэширования из К получается два ключа,
сгенерированных псевдослучайным образом.
Для достаточно длинных сообщений алгоритм НМАС должен выполняться приблизительно за
время, необходимое встроенной функции хэширования. В НМАС дополнительно требуется
применить базовую функцию хэширования три раза (для Si, So и блока, получаемого при
внутреннем хэшировании).
Для аутентификации с использованием HMAC, к сообщению прилагается дайджест,
сгенерированный с помощью HMAC и секретного ключа К, известного обоим контрагентам.
Получатель может сгенерировать дайджест пришедшего от отправителя сообщения и по
идентичности с приложенным к сообщению дайджестом убедиться, что получил сообщение
именно от оправителя и это сообщение не было изменено по дороге.
22. Механизм аутентификации на участке радиодоступа сети GSM.
При каждом включении телефона после выбора сети начинается процедура регистрации. Если мы
в гостевой сети, по запросу сети телефон передает IMSI(идентификационный номер
абонента(SIM-карты)) абонента. IMSI начинается с кода страны "приписки" его владельца, далее
следуют цифры, определяющие домашнюю сеть, а уже потом - уникальный номер конкретного
подписчика. По номеру IMSI VLR(Visitors Location Register - временная база данных абонентов,
которые находятся в зоне действия определённого MSC(Mobile Switching Centre - Центр
Мобильной Коммутации - это специализированная автоматическая телефонная станция,
обеспечивающая возможность связи с коммутацией каналов, управления мобильностью и
предоставления сервисов GSM для мобильных телефонов внутри зоны своего
обслуживания)/VLR) гостевой сети определяет домашнюю сеть и связывается с ее HLR(Home
Location Register - централизованная база данных, которая содержит информацию о каждом
абоненте данной сети). Последний передает всю необходимую информацию об абоненте в VLR,
который сделал запрос, а у себя размещает ссылку на этот VLR, чтобы в случае необходимости
знать, "где искать" абонента.
Процесс аутентификации абонента: при регистрации AUC(AUthentification Centre - Центр
аутентификации - предназначен для аутентификации каждой SIM карты которая пытается
присоединиться к GSM сети. (То есть, ни фига про аутентификацию не написано толком. Про
МАС — контроль целостности — ни слова не сказано.) Как только аутентификация успешно
завершается, HLR может управлять сервисами, на которые подписался абонент (SIM). Так же
генерируется шифровальный ключ который периодически используется для шифрования
беспроводного соединения (голос, SMS и т. д.) между мобильным телефоном и сетью) домашней
сети генерирует 128-битовое случайное число - RAND, пересылаемое телефону. Внутри SIM с
помощью ключа Ki (ключ идентификации - так же как и IMSI, он содержится в SIM) и алгоритма
идентификации А3 вычисляется 32-битовый ответ - SRES (Signed RESult) по формуле SRES = Ki *
RAND. Точно такие же вычисления проделываются одновременно и в AUC (по выбранному из
HLR Ki пользователя). Если SRES, вычисленный в телефоне, совпадет со SRES, рассчитанным
AUC, то процесс авторизации считается успешным и абоненту присваивается TMSI (Temporary
Mobile Subscriber Identity - временный номер мобильного абонента). TMSI служит исключительно
для повышения безопасности взаимодействия подписчика с сетью и может периодически меняться
(в том числе при смене VLR).
23. Механизм шифрования на абонентском участке радиодоступа сети GSM.
На абонентском участке радиодоступа сети GSM используется поточное шифрование по
алгоритму A5/1. Алгоритм изначально содержался в секрете, но в 1999 году стал публично
известен из-за утечек информации и обратной инженерии.
Передача информации в сети GSM организована в виде последовательности кадров. В типичном
однонаправленном канале кадры появляются каждые 4,615 мс и содержат 114 бит передаваемой
полезной информации. А5/1 используется для того, чтобы произвести для каждого кадра
последовательность из 114 бит ключевого потока, который XORится с информацией из каждого
кадра перед модуляцией. A5/1 инициализируется, используя 64-битный ключ сессии(Kc) вместе с
открытым 22-битным номером кадра(который меняется на протяжении звонка, порождая таким
образом уникальный ключевой поток для каждого кадра). В настоящей реализации GSM 10
первых битов ключа выставлены в нуль, что оставляет эффективную длину ключа равной 54
битам.
А5/1 основан на комбинации трёх линейных регистров сдвига обратной связи(LFSR - linear
feedback shift register) с нерегулярной синхронизацией.
Регистры синхронизированы по запуску и останову по принципу большинства. В каждом регистре
присутствует присвоенный ему бит синхронизации. В каждом цикле проверяются биты
синхронизации всех трёх регистров и определяется бит большинства. Регистр синхронизируется,
если его бит синхронизации соответствует биту большинства. Таким образом, на каждом шаге два
или три регистра синхронизируются. И каждый регистр участвует в этом процессе с вероятностью
3/4.
Изначально, все регистры выставлены в 0. Далее, в течении 64 циклов, 64-битный секретный ключ
примешивается в них в соответствии со следующей схемой: в цикле 0<=i<=64, i-ый бит ключа
добавляется к младшему биту каждого регистра с использованием операции XOR: R[0]=R[0] (+)
K[i]. В результате этого, каждый регистр синхронизирован.
Таким же образом за 22 цикла туда примешивается 22-битный номер кадра. Далее вся система
синхронизируется в течении 100 циклов используя обычный механизм синхронизации по
большинству. Вывод на протяжении этого процесса отбрасывается. После завершения этих
операций, шифр готов произвести две 114-битных ключевых последовательности - по одной для
каждого направления передачи.
http://en.wikipedia.org/wiki/A5/1 Ещё существуют алгоритмы A5/2, который используется за
пределами Америки и Европы, который слабее и так хилого A5/1 чтобы Большой Брат мог
слушать тех, кому не доверяет, и новенький А5/3(KASUMI), кторый офигенно крут(хотя, тоже с
дырками – еврейские учёные в прошлом году его триумфально похачили) и юзается в 3GPP. Про
эти алгоритмы лучше молчать, как на допросе, т.к. про них инфы не сыскать. А если и сыскать, то
можно заработать грыжу мозга при попытке понять.
24. Механизм аутентификации на абонентском участке ISDN.
PAP (англ. Password Authentication Protocol) — протокол простой проверки подлинности,
предусматривающий отправку имени пользователя и пароля на сервер удаленного доступа
открытым текстом (без шифрования). Протокол PAP крайне ненадежен, поскольку пересылаемые
пароли можно легко читать в пакетах PPP (Point-to-Point Protocol), которыми обмениваются
стороны в ходе проверки подлинности. Обычно PAP используется только при подключении к
старым серверам удаленного доступа на базе UNIX, которые не поддерживают никакие другие
протоколы проверки подлинности.
CHAP (англ. Challenge Handshake Authentication Protocol) — широко распространенный алгоритм
проверки подлинности, предусматривающий передачу не самого пароля пользователя, а
косвенных сведений о нем. При использовании CHAP сервер удаленного доступа отправляет
клиенту строку запроса. На основе этой строки и пароля пользователя клиент удаленного доступа
вычисляет хеш-код MD5 (Message Digest-5). Хеш-функция является алгоритмом одностороннего
(необратимого) шифрования, поскольку значение хеш-функции для блока данных вычислить
легко, а определить исходный блок по хеш-коду с математической точки зрения невозможно.
Хеш-код MD5 передается серверу удаленного доступа. Сервер, которому доступен пароль
пользователя, выполняет те же самые вычисления и сравнивает результат с хеш-кодом,
полученным от клиента. В случае совпадения учетные данные клиента удаленного доступа
считаются подлинными.
MS-CHAP (англ. Microsoft Challenge Handshake Authentication Protocol) — протокол
разработанный корпорацией Майкрософт для выполнения процедур проверки подлинности
удаленных рабочих станций Windows. Протокол поддерживает функциональные возможности,
привычные пользователям локальных сетей, и интегрирует алгоритмы шифрования и
хеширования, действующие в сетях Windows. Для проведения проверки подлинности без передачи
пароля протокол MS-CHAP, как и CHAP, использует механизм «запрос-ответ».
Протокол MS-CHAP генерирует запрос и ответ с помощью алгоритма хеширования MD4 (Message
Digest 4) и алгоритма шифрования DES (Data Encryption Standard); предусмотрены также
механизмы возврата сообщений об ошибках подключения и возможности изменения пароля
пользователя. Ответный пакет использует специальный формат, предназначенный для
использования сетевыми средствами систем Windows 95, Windows 98, Windows Millennium
Edition, Windows NT, Windows 2000 и Windows XP.
25. Протокол аутентификации Нидхэма-Шрёдера.
Идея алгоритма Нидхэма-Шрёдера состоит в использовании многостороннего протокола откликотзыв. Работа протокола начинается с того, что Алиса сообщает KDC-центру, что она желает
поговорить с Бобом. Это сообщение содержит в качестве нонса(ункального порядкового номера)
большое случайное число Ra. Центр распространения ключей посылает обратно сообщение 2,
содержащее случайное число Алисы, ключ сеанса и так называемый билет, который она может
послать Бобу. Цель посылки случайного числа Ra состоит в том, чтобы убедить Алису в том, что
сообщение 2 является свежим, а не повторно воспроизведенным. Идентификатор Боба также
помещается в сообщение 2 на случай, если злоумышленник (Труди) вздумает заменить его
идентификатор на свой в сообщении 1, так чтобы KDC-цснтр зашифровал билет в конце
сообщения 2 ключом Кт (ключ Труди) вместо Кв. Билет, зашифрованный ключом Kв, помещается
внутри зашифрованного сообщения, чтобы злоумышленник не смог заменить его чем-либо
другим, пока сообщение 2 добирается до Алисы.
Затем Алиса посылает билет Бобу вместе с новым случайным числом Ra2, зашифрованным
ключом сеанса Ks. В сообщении 4 Боб посылает обратно Кs(Ra2-1), чтобы доказать Алисе, что она
разговаривает с настоящим Бобом. Отсылать обратно просто Ks(Ra2) бессмысленно, так как это
число могло быть украдено злоумышленником из сообщения 3.
Получив сообщение 4, Алиса убеждается, что разговаривает с Бобом и что до сих пор не было
использовано повторных сообщений. Между отправкой случайного числа Ra2 и получением
ответа на него в виде Ks(Ra2-1) проходит довольно короткий промежуток времени. Цель
сообщения 5 - убедить Боба, что он действительно разговаривает с Алисой и что в этом сеансе
связи также отсутствуют повторно воспроизведенные данные. Возможность атаки с помощью
повторного воспроизведения ранее записанной информации исключается этим протоколом
благодаря тому, что каждая сторона формирует оклик другой стороны и получает на него отзыв.
26. Аутентификация с помощью криптографии с открытым ключом.
Взаимная аутентификация также может выполняться с помощью шифрования с открытым
ключом. Для начала Алисе нужно получить открытый ключ Боба. Если инфраструктура PKI
реализована на основе сервера каталогов, выдающего сертификаты на открытые ключи, Алиса
может потребовать сертификат Боба. Ответ, содержащийся в сообщении 2, - это сертификат Х.509
с открытым ключом Боба. Проверив корректность подписи, Алиса может отправить Бобу
сообщение со своим идентификатором и нонсом.
Когда Боб получает это сообщение, он не знает, пришло ли оно от Алисы или от злоумышленника,
но он делает вид, что все в порядке, и просит сервер каталогов выдать ему открытый ключ Алисы
(сообщение 4). Вскоре он его получает (в сообщении 5). Затем он отсылает Алисе сообщение,
содержащее случайное число Алисы Ra, свой собственный нонс Rв и предлагаемый ключ сеанса
Кs. Всё это сообщение зашифровывается открытым ключом Алисы.
Алиса расшифровывает полученное сообщение 6 своим закрытым ключом. Она видит в нем свое
случайное число, Ra, и очень этому рада: это подтверждает, что сообщение пришло от Боба, так
как у злоумышленника не должно быть способа определить значение этого числа. Кроме того,
случайное число Ra свидетельствует о свежести этого сообщения. Алиса соглашается на
установку сеанса, отправляя сообщение 7. Когда Боб видит свое случайное число Rв,
зашифрованное ключом сеанса, который он сам же сформировал, он понимает, что Алиса
получила сообщение 6 и проверила значение Ra.
27. Обмен ключами симметричного шифрования с помощью криптографии с открытым
ключом.
В связи с тем, что алгоритм шифрования с открытым ключом значительно медленнее, чем
стандартное шифрование с одним ключом, шифрование сообщения лучше выполнять с
использованием высококачественного быстрого стандартного алгоритма симметричного
шифрования с одним ключом. В процессе, невидимом для пользователя, симметричный ключ
используется для традиционного шифрования файла открытого текста. Тогда открытый ключ
получателя используется только для шифровки этого симметричного ключа. Этот зашифрованный
ключ посылается наряду с зашифрованным им текстом получателю. Получатель использует свой
собственный секретный ключ, чтобы восстановить этот симметричный ключ, и затем применяет
его для выполнения быстрого стандартного алгоритма декодирования с одним ключом, чтобы
декодировать все зашифрованное сообщение.
28. Формирование ключа симметричного шифрования по протоколу Диффи-Хеллмана.
Алгоритм, позволяющий двум сторонам получить общий секретный ключ, используя
незащищенный канал связи. Этот ключ может быть использован для шифрования дальнейшего
обмена с помощью алгорима симметричного шифрования. Каждая из взаимодействующих сторон
обладает секретным и открытым значениями. Если объединить секретное значение с другим
открытым значением, каждая сторона сможет создать одно и то же секретное значение.
1. Формируются два открытых для пользователей A и B числа: простое число (т.е. делится только
на себя и на 1) и целое число α(являющееся первообразным корнем q).
2. Пользователь A выбирает случайное число Xa<q и вычисляет Ya=α^Xa mod q. Значение Xa
сохраняется втайне, а Ya передается открыто пользователю B.
3. Пользователь B выполняет аналогичную операцию, производит выбор случайного числа Хв<q и
вычисляет Yв=α^Xв mod q. Значение Хв сохраняется втайне, а Yв передается открыто
пользователю A.
4. Каждый пользователь производит вычисление общего секретного ключа.
Пользователь A по формуле Кa=Yв^Xa mod q
Пользователь B по формуле Кв=Yа^Xв mod q
Ка=Кв
Защищенность от формирования мошенником ключей К основана на практически неразрешимой
задаче определения Ха по известным Yв и q, а также Xв по известным Ya и q. Это справедливо для
больших значений q.
29. Аутентификация по протоколу Диффи-Хеллмана.
В оригинальном описании протокол Диффи-Хеллмана не обеспечивает аутентификацию сторон и
таким образом уязвим для атак «человек посередине». Было предложено несколько методов
решения этой проблемы. Один из них основыватся на инфраструктуре систем с открытыми
ключами(PKI): участники обмена могут использовать цифровую подпись для значений α^Xa и
α^Хв либо для общего ключа. Другой распространённый метод использует аутентификацию
ключа по паролю, который знают только контрагенты.
30. Аутентификация по протоколу Kerberos.
Во многих реально работающих системах применяется протокол аутентификации Kerberos,
основанный на одном из вариантов протокола Нидхэма—Шрёдера.
В работе протокола Kerberos, помимо рабочей (клиентской) станции А, принимают участие еще
три сервера:
- сервер аутентификации (AS, Aithentication Server): проверяет личность пользователей при входе
в сеть;
- сервер выдачи билетов (TGS, Ticket Granting Server): выдает «билеты, подтверждающие
подлинность»;
- Боб, то есть сервер, предоставляющий услуги Алисе.
Сервер аутентификации АS аналогичен центру распространения ключей KDC в том, что у него
есть общий секретный пароль для каждого пользователя. Работа сервера выдачи билетов TGC
состоит в выдаче свидетельств, убеждающих другие серверы в том, что владелец билета
действительно является тем. за кого он себя выдает.
Чтобы начать сеанс, А усаживается за клавиатуру произвольной общедоступной рабочей станции
и вводит свое имя. Рабочая станция посылает введенное имя открытым текстом на сервер
аутентификации, как показано на рисунке. Сервер аутентификации AS возвращает рабочей
станции А ключ сеанса и билет KTGS(А, Кs) для сервера выдачи билетов TGS. Эти данные
упаковываются вместе и зашифровываются секретным ключом А так, чтобы только A мог их
расшифровать. Только после получения сообщения 2 рабочая станция запрашивает пароль А. С
помощью этого пароля формируется ключ Кa, которым расшифровывается сообщение 2, и из него
извлекаются ключ сеанса и билет для получения доступа к серверу выдачи билетов TGS. После
расшифровки рабочая станция сразу же уничтожает хранящийся в её памяти пароль. Если вместо
А на рабочей станции попытается зарегистрироваться Т , введенный ею пароль окажется
неверным, что будет обнаружено рабочей станцией, так как стандартная часть сообщения 2
окажется неверной.
После регистрации в сети, А может сообщить рабочей станции, что она хочет вступить в контакт с
файловым сервером, то есть с Б. При этом рабочая станция посылает серверу выдачи билетов
сообщение 3 с просьбой выдать билет для общения с Б. Ключевым элементом этого запроса
является билет KTGS(A, Кs), который зашифрован секретным ключом TGS-сервера и используется
для подтверждения личности отправителя. Сервер выдачи билетов отвечает созданием ключа
сеанса Кaв, которым будут пользоваться А и Б. Он отправляет А две версии этого ключа. Один
ключ зашифрован ключом сеанса Кs, поэтому А может его прочитать. Второй ключ шифруется
ключом Б(Кв), что позволяет Б его прочитать.
Злоумышленник может скопировать сообщение 3 и попытаться использовать его снова, но ему
помешает временной штамп с, отправляемый имеете с этим сообщением. Злоумышленник не
может заменить этот временной штамп на более новый, так как не знает ключа сеанса Кs, которым
пользуется А для общения с сервером выдачи билетов. Даже если злоумышленник очень быстро
повторит сообщение 3, всё равно, единственное, что он получит в ответ, это сообщение 4, которое
он не смог расшифровать в первый раз и не сможет расшифровать и во второй раз.
После этого А может послать Б ключ Кав для установки сеанса с Б. Эти сообщения также
содержат временные штампы. Сообщение 6, получаемое в ответ, подтверждает, что А говорит
именно с Б, а не со злоумышленником.
31. Алгоритм аутентификации абонента-роумера услуги UPT интеллектуальной сети. (???)
UPT - Universal Personal Telephony - универсальная персональная телефонная связь;
разрабатываемый стандарт на средства обеспечения индивидуальной мобильной связи в рамках
нескольких сетей беспроводной и фиксированной связи различных типов.
UPT Обслуживание
UPT телефонный номер был создан для того,чтобы быть интернациональным последовательным
номером,который каждый абонент может приобрести.Далее он может использоваться...
(???)
Universal personal telecommunications (UPT) refers to a special segment of the international telephone
number space which has been set aside for universal personal telephone numbers. This service has been
allocated country code +878.
The International Telecommunication Union (ITU) introduced this concept in 2001, referring to it as
"global number portability". However, number portability normally refers to the service of keeping an
existing phone number after moving service to another provider.
The UPT service
A UPT phone number is intended to be an internationally consistent number which an individual can
acquire, which can then be used to contact them via telephone or other services. A UPT provider basically
must have the ability to receive connections from the international telephone network, and then forward
the called number to the individual's real number. This would have a similar effect to toll free numbers in
that there is no geographic connection to particular ranges of numbers, but a UPT call would still incur a
charge.
As of 2005 only one body, VISIONng [1] (an international association), has been allocated a range within
the +878 country code. The delegation of +87810 was requested by VISIONng chairman Herwart
Wermescher and was confirmed by Counsellor, SG2 of ITU-TSB Richard Hill in May 21, 2002. The
company's Sentiro website [2] is currently giving away UPT numbers to individuals, free for one year.
This also includes an experimental ENUM service.
UPT service profile
The UPT service profile is a record that contains all information related to a UPT user, which information
is required to provide that user with UPT service such as subscriptions to basic and supplementing
services and call-routing preferences.
Each UPT service profile is associated with a single UPT number.
UPT number
The UPT number uniquely identifies a UPT user and that is used to place a call to, or to forward a call to,
that user.
A user may have multiple UPT numbers (such as a business UPT number for business calls and a private
UPT number for private calls). In the case of multiple numbers, each UPT number is considered, from a
network vantage point, to identify a distinct UPT user, even if all such numbers identify the same person
or entity.
UPT environment
UPT environment is the environment within which the UPT service facilities are offered, consisting of
combinations of networks and UPT service control facilities that, when combined, enable UPT users to
make use of telecommunication services offered by these networks.
To the UPT user the UPT environment appears as a single global network that provides personal mobility.
However, when utilising telecommunication services, the UPT network user may be limited by
restrictions imposed by the network, by the capabilities of the terminal and network used, or by regulatory
requirements.
32. Протокол PGP. Аутентификация (без использования связки ключей).
Чтобы понять, как работает система PGP, рассмотрим пример на рисунке. А хочет надежным
способом послать Б открытым текстом подписанное сообщение Р. У А и у Б
есть закрытый
(Dx) и открытый (Dy) RSA-ключи. Предположим, что каждому из них известен открытый ключ
другого.
А начинает с того, что запускает на своем компьютере программу PGP. Программа PGP сначала
хэширует ее сообщение Р с помощью алгоритма MD5, а затем шифрует полученный хэш-код при
помощи ее закрытого RSA-ключа Da. Получив это сообщение, Боб может расшифровать хэш-код
открытым ключом А и убедиться в его правильности. Даже если какой-либо злоумышленник мог
получить хэш на этой стадии и расшифровать его известным открытым ключом А, сила алгоритма
MD5 гарантирует невозможность создания другого сообщения с тем же хэш-кодом (из-за
трудоемкости вычислений).
Затем зашифрованный хэш-код и оригинальное сообщение объединяются в единое сообщение Р1,
которое сжимается с помощью программы ZIP, использующей алгоритм Зива-Лемпеля. Будем
называть результат этого этапа Р1.Z.
Затем программа PGP предлагает А ввести случайную текстовую строку. При формировании 128разрядного ключа сообщения Км для алгоритма IDEA учитываются как содержимое, так и
скорость ввода. (В PGP-литературе этот ключ назван сеансовым, что является неправильным
употреблением термина, так как никакого сеанса нет.) Затем Р1Z шифруется алгоритмом IDEA с
помощью ключа Км в режиме шифрованной обратной связи. Кроме того, ключ Км шифруется
открытым ключом Б, Ев. Эти два компонента объединяются и преобразуются в кодировку base64.
Получающееся в результате сообщение содержит только буквы, цифры и символы +, * и =, что
означает, что это сообщение может быть помещено в тело письма стандарта RFC 822, и можно
надеяться, что оно прибудет к получателю без изменений.
Получив сообщение, Б выполняет обратное преобразование base64 и расшифровывает IDEA-ключ
своим закрытым RSA-ключом. С помощью IDEA-ключа он расшифровывает сообщение и
получает Р1.Z. Распаковав zip-файл, Б отделяет зашифрованный хэш-код от открытого текста и
расшифровывает его открытым ключом А. Если в результате обработки открытого текста
алгоритмом MD5 получается тот же самый хэш-код, это означает, что сообщение Р действительно
пришло от А. Таким образом, по сути, аутентификация заключается в использовании ЭЦП.
Лекции:
33. Протокол PGP. Конфиденциальность (без использования связки ключей).
Конфиденциальность заключается в том, что P1.Z шифруется 128 битным симметричным ключом
Км, который зашифровывается открытым ключом получателя. В итоге информация надёжно
защищена.
Лекции:
34. Протокол PGP. Аутентификация и конфиденциальность (без использования связки
ключей).
Смотри выше (32 и 33).
35. Протокол PGP. Идентификация ключей в связке ключей. Общий формат сообщени PGP.
У каждого пользователя локально находится две структуры данных: набор закрытых ключей и
набор открытых ключей (эти наборы иногда называют связками). Связка закрытых ключей
содержит несколько личных пар ключей, состоящих из закрытого и открытого) ключей. Несколько
пар ключей поддерживаются, чтобы позволить пользователям периодически их менять, когда
возникают опасения, что тот или иной ключ скомпрометирован. При этом для смены ключа не
требуется принимать каких-либо экстренных мер по передаче нового ключа. У каждой пары
ключей есть связанный с ней идентификатор, так что отправителю нужно всего лишь сообщить
получателю, которым открытым ключом был зашифрован ключ сообщения. Идентификатор
сообщения состоит из младших 64 разрядов открытого ключа. За. отсутствие конфликтов между
идентификаторами ключей отвечают сами пользователи. Закрытые ключи на диске зашифрованы
специальным паролем (произвольной длины), защищающем их от кражи.
Связка открытых ключей содержит открытые ключи корреспондентов пользователей. Они нужны
для зашифровки ключей сообщений, связанных с каждым сообщением. Каждая запись набора
открытых ключей содержит не только ключ, но также его 64-разрядный идентификатор и отметку,
указывающую степень доверия пользователя этому ключу.
Степень доверия ключу зависит, например, от способа его получения. Предположим, что
открытые ключи расположены на электронных досках объявлений (BBS). Злоумышленник может
атаковать доску объявлений и подменить размещенный там открытый ключ Б своим ключом.
Когда А попытается воспользоваться подмененным ключом, злоумышленник сможет применить к
Б атаку типа «человек посередине».
Чтобы предотвратить подобные атаки или хотя бы минимизировать их ущерб, А необходимо
знать, насколько она может доверять открытому ключу Б, хранящемуся в ее наборе открытых
ключей. Если Б лично дал ей дискету с ключом, она может поставить такому ключу
максимальную степень доверия. В этом и заключается децентрализованный, контролируемый
пользователем подход к управлению открытыми ключами, отличающий PGP от централизованной
схемы PKI. Однако на практике открытые ключи часто получают, опрашивая доверенный сервер
ключей. По этой причине после стандартизации Х.509 система PGP стала поддерживать
сертификаты наряду с традиционным для PGP механизмом связки открытых ключей. Все
современные версии РСР имеют поддержку Х.509.
Формат PGP-сообшения показан на рисунке. Сообщение состоит из трех частей: области ключа,
области подписи и области сообщения. Область ключа, помимо самого IDEA-ключа, содержит
также идентификатор ключа, так как пользователям разрешено иметь несколько открытых
ключей.
Область подписи содержит заголовок, который нас сейчас не интересует. За заголовком следует
временной штамп, идентификатор открытого ключа отправителя, с помощью которого получатель
сможет расшифровать хэш-код, используемый в качестве подписи. Следом идет идентификатор
использованных алгоритмов шифрования и хэширования (чтобы можно было пользоваться,
например, MD6 или RSA2, когда они будут разработаны). Последним в области подписи
располагается сам зашифрованный хэш-код.
Часть сообщения также содержит заголовок, имя файла по умолчанию, на случай, если получатель
будет сохранять принятое сообщение на диске, временной штамп создания сообщения и, наконец,
само сообщение.
36. Схема создания сообщения PGP с использованием связки ключей.
см. 37
37. Схема получения сообщения PGP с использованием связки ключей (реализация
аутентификации и шифрования).
1.Создание подписи сообщения.
- PGP извлекает личный ключ отправителя из связки личных ключей, используя введенное
значение your_userid в качестве ключа поиска. Если соответствующая команда не предлагает
значения your_userid, выбирается первый личный ключ в связке.
- PGP запрашивает у пользователя фразу-пароль, чтобы расшифровать личный ключ.
- Создается компонент подписи сообщения.
2. Шифрование сообщения.
- PGP генерирует сеансовый ключ и шифрует сообщение.
- PGP извлекает открытый ключ получателя из связки открытых ключей, используя значение
her_userid в качестве ключа поиска.
- Создается компонент сеансового ключа сообщения.
Принимающий объект PGP выполняет следующие шаги:
1. Дешифрование сообщения.
- PGP извлекает личный ключ получателя из связки личных ключей, используя в качестве ключа
поиска значение поля Идентификатор ключа компонента сеансового ключа сообщения.
- PGP запрашивает у пользователя фразу-пароль, чтобы расшифровать личный ключ.
- PGP восстанавливает сеансовый ключ и дешифрует сообщение.
2. Аутентификация сообщения.
- PGP извлекает открытый ключ отправителя из связки открытых ключей, используя в качестве
ключа поиска значение поля Идентификатор ключа компонента подписи сообщения.
- PGP восстанавливает полученный профиль сообщения.
- PGP вычисляет профиль сообщения для принятого сообщения и сравнивает его с профилем,
пришедшим вместе с сообщением, чтобы убедиться в их идентичности.
38. Протокол SET. Дуальная цифровая подпись.
Дуальная подпись позволяет связать два сообщения, предназначенные двум разным
получателям. В данном конкретном случае покупателю требуется переслать информацию о
заказе (Order Information — OI) продавцу и платежную информацию (Payment Information — PI)
банку. Продавцу не нужно знать номер кредитной карточки покупателя, а банку не нужны
подробности заказа. Покупатель же, разделяя эти сведения, обеспечивает тем самым
дополнительную защиту своих прав с точки зрения невмешательства в его личную жизнь. При
этом требуется связать эти сведения так, чтобы их можно было использовать при возникновении
конфликта. Связь разделенных сведений требуется для того, чтобы покупатель мог доказать, что
данный платеж предназначен для оплаты именно этого, а не какого-то другого заказа.
Чтобы понять необходимость такой связи, предположим, что покупатель отправляет продавцу
два подписанных сообщения — OI (заказ) и PI (платеж), а продавец пересылает сообщение PI в
банк. Если продавец получит от покупателя какой-то другой заказ, то продавец сможет заявить,
что данное сообщение PI оплачивает новое, а не старое сообщение OI. Связывание исключает
такую возможность.
Сначала покупатель, используя алгоритм SHA-1, вычисляет хэш-коды для сообщений PI и OI. Два
полученных хэш-кода связываются операцией конкатенации, и для результата связывания тоже
вычисляется хэш-код. Наконец, покупатель шифрует итоговый хэш-код с использованием своего
личного ключа цифровой подписи, в результате получая дуальную подпись. Вся процедура
формально может быть записана в следующем виде:
DS = EKRC[H(H(PI)||H(OI))], где KRC обозначает личный ключ цифровой подписи покупателя.
Теперь предположим, что продавец имеет дуальную подпись (Dual Signature - DS), сообщение OI и
профиль сообщения PI (PI Message Digest - PIMD). Кроме того, у продавца есть открытый ключ
покупателя, который был извлечен из сертификата покупателя. В таких условиях продавец может
вычислить два следующих значения:
H(PIMD || Н(0I)) и DKUc[DS], где KUc обозначает открытый ключ цифровой подписи покупателя.
Если оба значения оказываются равными, продавец считает, что подпись проверена. Точно так же,
имея DS, PI, профиль сообщения OI (OIMD) и открытый ключ покупателя, банк может вычислить
Н(Н(РI) || OIMD) и DKUc[DS] И вновь, если эти значения оказываются равными, банк считает, что
подпись покупателя проверена. Подводя итог, можно сказать следующее.
1. Продавец получает сообщение OI и выполняет проверку подписи покупателя.
2. Банк получает сообщение PI и выполняет проверку подписи покупателя.
3. Сообщения OI и PI оказываются связанными, и покупатель может доказать
их связь.
39. Протокол SET. Обработка сообщений транзакции "Требование на закупку".
Обмен данными требования на закупку состоит из четырех сообщений: Initiate Request
(инициирующий запрос), Initiate Response (ответ на инициирующий запрос), Purchase Request
(требование на закупку) и Purchase Response (ответ на требование на закупку).
Чтобы владелец платежной карточки имел возможность отправлять сообщения SET продавцу,
необходимо получить копии сертификата продавца и сертификата шлюза платежной сети.
Запросы на получение этих сертификатов содержатся в сообщении Initiate Request
(инициирующий запрос), которое покупатель отправляет продавцу. Это сообщение содержит
информацию о типе кредитной карточки, используемой покупателем, идентификатор,
назначенный покупателем данной паре сообщений "запрос-ответ", и значение оказии, призванное
гарантировать оригинальность сообщения.
Продавец генерирует ответ и подписывает его своим личным ключом цифровой подписи. Ответ
должен включать значение оказии покупателя, другое значение оказии, которое покупатель
должен будет вернуть в следующем сообщении, а также идентификатор данной транзакции.
Кроме подписанного ответа, сообщение Initiate Response (ответ на инициирующий запрос)
содержит сертификат подписи продавца и сертификат шлюза платежной сети для обмена
ключами.
Владелец платежной карточки проверяет подлинность сертификатов продавца и шлюза платежной
сети путем проверки подписей соответствующих центров сертификации, а затем создает
сообщения OI и PI. В оба эти сообщения помещается идентификатор транзакции,
сгенерированный продавцом. Сообщение OI непосредственно не включает таких данных заказа,
как количество или цена товаров, а содержит ссылку на заказ, созданный в процессе обмена
сообщениями между продавцом и покупателем на этапе согласования еще до первого сообщения
SET. Затем владелец платежной карточки готовит сообщение Purchase Request (требование на
закупку). Для этого владелец платежной карточки генерирует одноразовый ключ Ks для схемы
симметрично¬го шифрования. Это сообщение состоит из следующих блоков информации:
1. Информация о платеже. Пересылается продавцом шлюзу платежной сети и содержит
следующие данные.
- Данные PI
- Дуальная подпись, вычисленная для совокупности PI и OI и подписанная с использованием
личного ключа подписи покупателя.
- Профиль сообщения OI (OIMD).
Значение OIMD необходимо для того, чтобы шлюз платежной сети мог проверить дуальную
подпись. Все указанные элементы шифруются с помощью Ks . Последним для данного блока
информации является следующий элемент.
- Цифровой конверт. Формируется путем шифрования Ks с помощью открытого ключа шлюза
платежной сети, предназначенного для обмена ключами. Этот элемент называется цифровым
конвертом, поскольку для того, чтобы получить возможность прочитать элементы, перечисленные
выше, этот конверт необходимо открыть (т.е. дешифровать).
Значение Ks остается продавцу неизвестным. Поэтому продавец не сможет прочитать ничего из
всей этой относящейся к платежу информации.
2. Информация о заказе. Эта информация требуется продавцу и содержит следующие данные.
- Данные OI.
- Дуальная подпись, вычисленная для совокупности PI и OI и подписанная
с использованием личного ключа подписи покупателя.
- Профиль сообщения PI (PIMD).
Значение PIMD необходимо для того, чтобы продавец мог проверить дуальную подпись. Заметим,
что данные OI отправляются в открытом виде.
3. Сертификат владельца платежной карточки. Содержит сертификат открытого ключа цифровой
подписи владельца платежной карточки. Этот сертификат необходим как продавцу, так и шлюзу
платежной сети.
После получения сообщения Purchase Request продавец выполняет следующие действия:
1. Проверяет сертификаты владельца платежной карточки с помощью содержащихся в них
подписей центров сертификации.
2. Проверяет дуальную подпись с помощью открытого ключа цифровой подписи владельца
платежной карточки. Это позволяет убедиться в том, что заказ не был изменен во время пересылки
и был подписан владельцем платежной карточки.
3. Обрабатывает заказ и пересылает платежную информацию шлюзу платежной
сети для авторизации платежа.
4. Отправляет сообщение Purchase Response (ответ на требование на закупку) владельцу
платежной карточки.
Сообщение Purchase Response (ответ на требование на закупку) содержит блок ответа,
подтверждающий заказ и ссылающийся на соответствующей номер транзакции. Этот блок
подписывается продавцом с помощью его личного ключа цифровой подписи. После этого блок
вместе с подписью, а также сертификат подписи продавца отправляются владельцу платежной
карточки.
Когда программное обеспечение, установленное на компьютере владельца платежной карточки,
получает сообщение Purchase Response, оно проверяет снача¬ла сертификат продавца, а затем
подпись блока ответа. В конце концов, в зави¬симости от содержания ответа, выполняется
соответствующее действие, напри¬мер, отображается на экране некоторое сообщение для
пользователя или обнов¬ляется информация о состоянии заказа в базе данных.
40. Протокол SET. Обработка сообщений транзакции "Разрешение на оплату".
Во время обработки заказа, поступившего от владельца платежной карточки, продавец выполняет
авторизацию транзакции (получение разрешения на оплату) с помощью шлюза платежной сети.
Такое получение разрешения на оплату (авторизация платежа) означает санкционирование
транзакции эмитентом платежной карточки. Авторизация дает продавцу гарантию того, что он
получит плату за проданный товар, и поэтому продавец может выполнить доставку товаров или
услуг покупателю. Обмен данными для получения разрешения на оплату формируется из двух
сообщений: Authorization Request (запрос разрешения на оплату) и Authorization Response (ответ на
запрос разрешения на оплату).
Сообщение Authorization Request (запрос разрешения на оплату), отправляемое продавцом шлюзу
платежной сети, состоит из следующих блоков информации:
1. Информация о платеже. Эта информация была получена от покупателя и содержит следующие
данные:
- Данные PI.
- Дуальная подпись, вычисленная для совокупности PI и OI и подписанная
с использованием личного ключа подписи покупателя.
- Профиль сообщения OI (OIMD).
- Цифровой конверт.
2. Информация авторизации. Эта информация генерируется продавцом и содержит следующие
данные.
- Блок авторизации, включающий идентификатор транзакции, подписанный
личным ключом цифровой подписи продавца и шифрованный генерируемым
продавцом одноразовым ключом схемы симметричного шифрования.
- Цифровой конверт, сформированный путем шифрования одноразового
ключа с помощью открытого ключа шлюза платежной сети, предназначенного для обмена
ключами.
3. Сертификаты. Продавец включает в сообщение сертификат цифровой подписи владельца
платежной карточки (служит для проверки дуальной подписи), сертификат ключа своей цифровой
подписи (позволяет проверить подпись продавца) и сертификат своего ключа для обмена
ключами (необходим для ответа шлюза платежной сети).
Получив эти данные, шлюз платежной сети выполняет следующие действия:
1. Проверяет все сертификаты.
2. Дешифрует сначала цифровой конверт блока данных авторизации, чтобы
получить ключ для схемы симметричного шифрования, а затем дешифрует
блок данных авторизации.
3. Проверяет подпись продавца для блока данных авторизации.
4. Дешифрует сначала цифровой конверт блока платежной информации, чтобы получить ключ для
схемы симметричного шифрования, а затем дешифрует блок платежной информации.
5. Проверяет дуальную подпись блока платежной информации.
6. Проверяет совпадение идентификатора транзакции, полученного от продавца, с
идентификатором, включенным в состав данных PI, поступивших (через продавца) от владельца
платежной карточки.
7. Запрашивает и получает разрешение на оплату у эмитента платежной карточки.
Получив разрешение на оплату у эмитента платежной карточки, платежный шлюз возвращает
продавцу сообщение Authorization Response (ответ на запрос разрешения на оплату). Это
сообщение состоит из следующих блоков информации:
1. Информация авторизации. Включает блок авторизации, подписанный личным ключом
цифровой подписи шлюза платежной сети и шифрованный сгенерированным шлюзом платежной
сети одноразовым ключом для схемы
симметричного шифрования. Кроме того, включает цифровой конверт, содержащий этот
одноразовый ключ, шифрованный с помощью открытого
ключа продавца, используемого для обмена ключами.
2. Информация мандата на получение платежа (capture token). Эта информация будет
использована для осуществления платежа впоследствии. Данный блок имеет ту же форму, что и
предыдущий, т.е. содержит подписанный и шифрованный мандат с цифровым конвертом. Этот
мандат не обрабатывается продавцом, а должен быть просто возвращен им в том же виде шлюзу
платежной сети в запросе на оплату.
3. Сертификат. Сертификат цифровой подписи шлюза платежной сети.
Получив подтверждение авторизации платежа от шлюза платежной сети, продавец может
выполнить доставку товаров или услуг покупателю.
41. Протокол SSL(TLS). Алгоритм установления соединения.
42. Протокол SSL(TLS). Алгоритм передачи данных.
Протокол записи SSL включает в себя обеспечении защищенности сообщения и сохранение его
целостности. Для осуществления этих функциональностей он используется на самом верхнем
уровне протокола SSL. Назначение этого протокола: взять сообщение приложения, которое
должно быть передано, фрагмент данных, включить их в сообщение с правильными заголовками и
создать объект, называемый записью, который затем шифруется и передается средствами
протокола TCP. Первым шагом при подготовке передачи данных приложения является его
фрагментация, разбиение на блоки по 16кб или меньше, с дальнейшим преобразованием их в
запись. Эти фрагменты данных могут быть в сжаты, хотя спецификация протокола SSL 3.0 не
содержит протокола сжатия, так что в настоящее время сжатие не используется.
В этот момент начинается создание записи, когда к каждой порции данных добавляется заголовок,
возможная информация для достижения требуемого размера и MAC. Заголовок, добавляемый к
каждому фрагменту данных, содержит два блока информации, а именно длину записи и длину
блока данных, добавленного к оригинальной информации.
На следующем этапе данные сконструированной записи содержат следующие элементы:
- Основные данные
- Дополнение до требуемой структуры (набивка)
- Величина MAC
MAC отвечает за проверку целостности данных, включенных в переданную запись. Это результат
хэш-функции со специфичным алгоритмом, например MD5 или SHA-1. MAC определяется как
результат хэш-функции, получающей следующие данные:
- MAC = hash (секретный ключ, основные данные, набивка, номер последовательности).
- Секретный ключ при создании MAC – это или клиентский MAC секрет записи, или серверный
MAC секрет записи, в зависимости от того, какая сторона готовит пакет. При получении
сообщения вторая сторона вычислит свое значение MAC, и сравнивает его с полученным. Если
они совпали, то это означает, что данные не оказались изменены при передаче. Длина
вычисляемого MAC зависит от метода вычисления. Далее, данные вместе с MAC шифруются
заранее заданным алгоритмом симметричного шифрования, например DES. Шифруются как
данные, так и MAC. Подготовленные данные дополняются следующими полями заголовка:
- Тип содержимого: определяет, какую полезную нагрузку несет сообщение, для определения,
какие протоколы более высокого уровня использовать для дальнейшей обработки данных,
включенных в пакет. Возможные значения:
change_cipher_spec, alert, handshake и application_data, ссылающиеся на соответствующие
протоколы.
- Главная версия (major version): устанавливает главную часть используемой версии протокола
Для SSL 3.0 эта величина равна 3.
• Подверсия (minor version): устанавливает дополнительную часть используемой версии протокола
Для SSL 3.0 эта величина равна 0.
С добавлением этих полей подготовка записи завершается. После этого сообщение посылается по
назначению.
Протокол Записи SSL используется для передачи любых данных в течение сессии, как сообщений,
так и информации других протоколов SSL (например, hanshake), а также данных приложений.
43. Протокол IPSec. Область применения.
Протокол IPSec обеспечивает защиту обмена данными в локальных сетях, корпоративных и
открытых глобальных сетях и в Internet. Примеры его применения включают следующее:
- Защищенный доступ к филиалу организации через Internet. Компания может
построить защищенную частную виртуальную сеть в рамках сети Internet или
другой открытой глобальной сети. Это позволяет использовать каналы Internet
и тем самым сократить расходы на создание и поддержку частной сети.
- Защищенный удаленный доступ через Internet. Конечный пользователь, в
системе которого предусмотрены протоколы защиты IP, может с помощью
локального телефонного вызова обратиться к поставщику услуг Internet и
получить защищенный доступ к сети компании. Это сокращает транспортные расходы служащих
и надомных работников.
- Внутрисетевое и межсетевое взаимодействие с партнерами. Средства IPSec
могут обеспечить защищенную связь с другими организациями, гарантируя
аутентификацию и конфиденциальность, а также предлагая механизм обмена ключами.
- Усиление защиты электронных коммерческих операций. Даже если какието приложения Web и электронной коммерции имеют встроенные протоколы защиты данных,
использование IPSec усиливает эту защиту.
Главной особенностью IPSec, позволяющей этому протоколу поддерживать самые разнообразные
приложения, является возможность шифрования и/или аутентификации всего потока данных на
уровне IP. Таким образом, защита может быть обеспечена любому распределенному приложению,
включая приложения удаленной регистрации, приложения типа клиент-сервер, приложения
электронной почты, передачи файлов, доступа к ресурсам Web и т.д.
На рисунке показан типичный сценарий использования IPSec. Некоторая организация
поддерживает ряд локальных сетей, находящихся в разных местах. В рамках этих локальных сетей
трафик IP не защищается. Для обмена данными через корпоративную или открытую внешнюю
глобальную сеть используются протоколы IPSec. Эти протоколы применяются устройствами,
размещенными по периметру сети (например, маршрутизаторами или брандмауэрами) и
соединяющими локальные сети с внешним миром. Использующее IPSec сетевое устройство
обычно шифрует и сжимает весь поток данных, отправляемый в глобальную сеть, и дешифрует и
разворачивает данные, приходящие извне. Все выполняемые в этом случае операции не заметны
для рабочих станций и серверов локальной сети. Защищенный обмен данными возможен и с
индивидуальными пользователями, использующими удаленный доступ к сети через глобальные
сети. Чтобы обеспечить защиту, рабочие станции таких пользователей тоже должны использовать
протоколы IPSec.
44. Протокол IPSec. Протокол АН.
Заголовок аутентификации (АН) обеспечивает поддержку целостности данных и аутентификацию
пакетов IP. Свойство целостности данных гарантирует невозможность тайной модификации
содержимого пакета в пути следования. Функция аутентификации позволяет конечной системе
или сетевому устройству идентифицировать пользователя или приложение и соответственно
отфильтровать трафик, а также защититься от очень распространенных сегодня в Internet атак с
подменой сетевых адресов. Заголовок АН защищает и от атак воспроизведения сообщений.
Аутентификация опирается на использование кодов аутентичности сообщений, при этом две
стороны должны использовать общий секретный ключ.
Заголовок аутентификации состоит из следующих полей:
- Следующий заголовок (8 бит). Идентифицирует тип заголовка, следующего непосредственно за
данным заголовком.
- Длина полезного груза (8 бит). Длина заголовка аутентификации в 32битовых словах, уменьшенная на 2. Например, установленная по умолчанию длина поля данных
аутентификации равна 96 бит, или трем 32-битовым словам. Вместе с заголовком фиксированной
длины в три слова общая длина всего заголовка оказывается равной шести словам, поэтому в поле
длины полезного груза в этом случае указывается значение 4.
- Зарезервировано (16 бит). Для будущего использования.
- Индекс параметров защиты (32 бит). Идентифицирует защищенную связь.
- Порядковый номер (32 бит). Значение счетчика, которое будет описано ниже.
- Данные аутентификации (переменной длины). Поле переменной длины (равной целому числу 32битовых слов), содержащее код ICV (Integrity Check Value — код контроля целостности) или код
MAC (Message Authentication Code — код аутентичности сообщения) для данного пакета, что
подробнее объясняется ниже.
Сервис защиты от воспроизведения
Когда устанавливается новая защищенная связь, отправитель инициализирует счетчик порядковых
номеров, установив соответствующее значение равным 0. Каждый раз, когда по соответствующей
защищенной связи посылается пакет, отправитель увеличивает значение данного счетчика и
размещает его в поле порядкового номера. Таким образом, первым используемым значением
будет 1. Если активна функция защиты от воспроизведения (что предполагается по умолчанию),
отправитель не должен позволить порядковому номеру превзойти значение 232-1, после которого
значение счетчика должно снова стать равным нулю, поскольку тогда по крайне мере два
действительных пакета будут иметь один и тот же порядковый номер. Если предел 232-1
оказывается достигнутым, отправитель должен завершить данную защищенную связь и начать
переговоры о создании новой защищенной связи с новым ключом.
Поскольку IP предполагает обмен без установления соединений, т.е. является не слишком
надежным сервисом, протокол не гарантирует, что пакеты будут доставлены в требуемом порядке
и без потерь. Поэтому аутентификация IPSec требует, чтобы получатель имел специальное окно
размера W (по умолчанию W = 64). Правая граница окна должна представлять наивысший
порядковый номер N для уже полученных действительных пакетов. Для любого пакета с
порядковым номером из диапазона от NW + 1 до N, который принят корректно (т.е. должным
образом аутентифицирован), помечается соответствующий сегмент окна. При получении пакета
его обработка выполняется следующим образом:
1. Если полученный пакет попадает в рамки окна и является новым, проверяется значение MAC.
Если аутентификация пакета завершается успешно, помечается соответствующий сегмент в окне.
2. Если полученный пакет попадает в область правее окна и является новым, проверяется значение
MAC. Если аутентификация пакета завершается успешно, окно расширяется так, чтобы новый
порядковый номер оказался правой границей окна, а в окне помечается соответствующий сегмент.
3. Если полученный пакет оказывается слева от окна или аутентифицировать его не удается, он
будет отвергнут. Такое событие должно регистрироваться.
Поле данных аутентификации содержит значение, называемое кодом ICV (Integrity Check Value —
код контроля целостности). Код ICV представляет собой код аутентичности сообщения или
усеченную версию такого кода, порожденного алгоритмом MAC. Имеющиеся на сегодня
спецификации протокола требуют, чтобы любая реализация поддерживала следующие схемы:
- HMAC-MD5-96,
- HMAC-SHA-1-96.
Обе схемы предполагают применение алгоритма НМАС, в первом случае с использованием кэшкода MD5, а во втором — хэш-кода SHA-1. В обоих случаях вычисляется полное значение НМАС,
но затем оно усекается до первых 96 бит, что соответствует длине поля данных аутентификации,
установленной по умолчанию.
Для вычисления значения MAC берется следующая информация:
- Поля заголовка IP, которые либо не изменяются в пути следования (неизменяемые поля),
либо имеют прогнозируемые значения в пункте назначения защищенной связи АН. Поля, которые
могут измениться в пути следования, и значения которых в конечной точке нельзя предсказать,
обнуляются для вычислений и в пункте отправки, и в пункте назначения.
- Заголовок АН, отличный от поля данных аутентификации. Поле данных аутентификации
обнуляется для вычислений и в пункте отправления, и в пункте назначения.
- Все данные протокола следующего выше уровня, которые должны оставаться неизменными в
пути следования (например, сегмент TCP или внутренний пакет IP в туннельном режиме). Для
IPv4 примерами неизменяемых полей являются поля длины заголовка Internet и адреса источника.
Примером изменяемого, но прогнозируемого поля служит поле адреса получателя (с
приближенной или строгой трассировкой от источника сообщения). Примерами изменяемых
полей, которые обнуляются перед вычислением ICV, являются поля времени существования и
контрольной суммы заголовка. Заметим, что поля адреса как источника, так и адресата
защищаются, так что их фальсификация исключена.
Для IPv6 примерами соответствующих типов полей в базовом заголовке являются поля версии
(неизменяемое), адреса получателя (изменяемое, но прогнозируемое) и метки потока (изменяемое
и обнуляемое для вычислений).
Транспортный и туннельный режимы
Для транспортного режима АН с применением IPv4 данные АН размещаются непосредственно за
оригинальным заголовком IP и перед полезным грузом IP (например, сегментом TCP).
Аутентификации подлежит весь пакет, за исключением изменяемых полей в заголовке IPv4,
которые при вычислении значения MAC обнуляются.
В контексте IPv6 данные АН рассматриваются как полезный груз сквозной передачи; т.е. проверка
и обработка этих данных промежуточными маршрутизаторами не предполагается. Поэтому
данные АН размещаются после базового заголовка IPv6 и заголовков расширений транзита,
маршрутизации и фрагментации. Заголовок расширения параметров адресации может
размещаться до или после заголовка АН — в зависимости от требований семантики. Опять же,
аутентификация предполагается для всего пакета, за исключением изменяемых полей, которые
при вычислении значения MAC обнуляются.
Для туннельного режима АН аутентификации подлежит весь оригинальный пакет IP, а заголовок
АН размещается между оригинальным заголовком IP и новым внешним заголовком IP.
Внутренний заголовок IP несет адреса оригинальных источника и адресата, в то время как
внешний заголовок IP может содержать совершенно другие адреса IP (например, адреса
брандмауэров или других шлюзов защиты). В туннельном режиме весь внутренний пакет IP,
включая весь внутренний заголовок IP, защищается средствами АН. Внешний заголовок IP
защищается с исключением изменяемых и непрогнозируемых по значению полей (для IPv6 это
касается и внешних заголовков расширений IP).
45. Протокол IPSec. Протокол ESP. Виртуальная частная сеть.
Протокол ESP (Encapsulating Security Payload — защищенный или, точнее, включающий защиту
полезный груз) обеспечивает сервис конфиденциальности, в том числе защиту содержимого
сообщения и ограниченную конфиденциальность транспортного потока. В качестве
дополнительной возможности ESP может обеспечивать тот же сервис аутентификации, что и АН.
Формат ESP:
- Индекс параметров защиты (32 бит). Идентифицирует защищенную связь.
- Порядковый номер (32 бит). Значение счетчика, используемого для защиты от атак
воспроизведения, как и при использовании протокола АН.
- Полезный груз (переменной длины). Это сегмент транспортного уровня (в транспортном
режиме) или пакет IP (в туннельном режиме), который за¬щищается шифрованием.
- Заполнитель (0-255 байт). Назначение этого поля объясняется ниже.
- Длина заполнителя (8 бит). Указывает число байтов заполнителя, предшествующего данному
полю.
- Следующий заголовок (8 бит). Идентифицирует тип данных, содержащихся в поле данных
полезного груза, указывая первый заголовок полезного груза (заголовок расширения IPv6 или
заголовок протокола верхнего уровня, на пример TCP).
- Данные аутентификации (переменной длины). Поле переменной длины (которая должна
представлять собой целое число 32-битовых слов), содержащее код ICV (Integrity Check Value —
код контроля целостности), вычисляемый для всего пакета ESP без поля данных аутентификации.
Шифрование и алгоритмы аутентификации
Сервис ESP предполагает шифрование полей полезного груза, заполнителя, длины заполнителя и
следующего заголовка. Если для алгоритма, используемого при шифровании полезного груза,
требуется криптографическая синхронизация данных (например, вектор инициализации IV), то
необходимые данные могут быть перенесены в начало поля полезного груза. При наличии
значения IV это значение обычно не шифруется, хотя часто считается частью шифрованного
текста.
Существующие спецификации требуют, чтобы любая реализация поддерживала использование
алгоритма DES в режиме СВС (режим сцепления шифрованных блоков). В документации DOI
определяется ряд идентификаторов для других алгоритмов, которые, таким образом, тоже могут
применятся для шифрования. Среди таких алгоритмов необходимо назвать следующие:
- "тройной" DES с тремя ключами,
- RC5,
- IDEA,
- "тройной" IDEA с тремя ключами,
- CAST,
- Blowfish.
Как и АН, протокол ESP поддерживает использование значений MAC, длина которых по
умолчанию равна 96 бит. Так же, как и для протокола АН, спецификации требуют, чтобы любая
реализация поддерживала схемы HMAC-MD5-96 и HMAC-SHA-1-96.
Использование заполнителя
Поле заполнителя предназначено для следующих целей:
- Если алгоритм шифрования требует, чтобы длина открытого текста была кратна некоторому
целому числу байтов (например, длине одного блока блочного шифра), поле заполнителя
используется для того, чтобы дополнить до нужной длины открытый текст (складывающийся из
полей полезного груза, заполнителя, длины заполнителя и следующего заголовка).
- Формат ESP требует, чтобы поля длины заполнителя и следующего заголовка выравнивались по
правому краю в 32-битовом слове. Это эквивалентно требованию, чтобы шифрованный текст имел
длину, кратную 32 бит. Поле заполнителя предназначено для осуществления такого
выравнивания.
- Заполнение можно использовать и для того, чтобы обеспечить частичную конфиденциальность
транспортного потока путем маскировки информации об истинной длине полезного груза.
Транспортный и туннельный режимы
На рисунке показано, как использовать туннельный режим для построения виртуальной частной
сети. В этом примере предполагается, что некоторая организация имеет четыре частные сети,
связанные через Internet. Узлы внутренних сетей используют Internet для передачи данных, но не
взаимодействуют с другими размещенными в Internet узлами. Поскольку туннели заканчиваются в
шлюзах защиты каждой внутренней сети, такая конфигурация позволяет внутренним узлам этих
сетей избежать необходимости применения механизмов защиты. В первом варианте применяется
транспортный режим защищенной связи, а во втором — туннельный режим. Мы рассмотрим
пределы применения ESP в каждом из этих режимов. В данном случае ситуации для IPv4 и IPv6
несколько различаются. Как и при использовании протокола АН, для описания области действия
ESP мы применяем пакеты в формате, подобном показанному на рис. а.
Транспортный режим ESP
Транспортный режим ESP служит для шифрования и, если требуется, аутентификации данных,
пересылаемых в пакете IP (например, сегмента TCP, как показано на рис. а). Для этого режима в
рамках IPv4 заголовок ESP размещается в пакете IP непосредственно перед заголовком
транспортного уровня (например, TCP, UDP, ICMP), а концевик пакета ESP (содержащий поля
заполнителя, длины заполнителя и следующего заголовка) — после пакета IP. Если используется
функция аутентификации, то поле данных аутентификации ESP добавляется после концевика ESP.
Весь сегмент транспортного уровня вместе с концевиком ESP шифруются. Аутентификация
охватывает весь шифрованный текст и заголовок ESP.
В контексте IPv6 данные ESP рассматриваются как предназначенный для сквозной
пересылки полезный груз, не подлежащий проверке или обработке промежуточными
маршрутизаторами. Поэтому заголовок ESP размещается после основного заголовка IPv6
и заголовков расширений транзита, маршрутизации и фрагментации. Заголовок
расширения параметров адресата может быть помещен до или после заголовка ESP — в
зависимости от требований семантики. В IPv6 шифрование охватывает весь сегмент
транспортного уровня вместе с концевиком ESP, а также заголовок расширения
параметров адресата, если этот заголовок размещается после заголовка ESP.
Аутентификация предполагается для шифрованного текста и заголовка ESP.
В транспортном режиме выполняются следующие операции:
1. В узле источника блок данных, состоящий из концевика ESP и всего сегмента
транспортного уровня, шифруется, и открытый текст этого блока заменяется
шифрованным текстом, в результате чего формируется пакет IP для пересылки. Если
выбрана опция аутентификации, то добавляется поле аутентификации.
2. Пакет направляется адресату. Каждый промежуточный маршрутизатор должен
проверить и обработать заголовок IP, а также все заголовки расширений IP, доступные в
нешифрованном виде. Шифрованный текст при этом остается неизменным.
3. Узел адресата проверяет и обрабатывает заголовок IP и все заголовки расширений IP,
доступные в нешифрованном виде. Затем на основе информации индекса параметров
защиты в заголовке ESP дешифруются остальные части пакета, в результате чего
становится доступным сегмент транспортного уровня в виде открытого текста.
Транспортный режим обеспечивает конфиденциальность для любого использующего
этот режим приложения, что позволяет избежать необходимости реализации функций
защиты в каждом отдельном приложении. Этот режим достаточно эффективен, а объем
добавляемых к пакету IP данных при этом невелик. Недостатком этого режима является
то, что при его использовании не исключается возможность анализа трафика
пересылаемых пакетов.
Туннельный режим ESP
Туннельный режим ESP предполагает шифрование всего пакета IP (рис. б). В этом режиме
заголовок ESP добавляется к пакету как префикс, а затем пакет вместе с концевиком ESP
шифруются. Данный метод можно использовать, когда требуется исключить возможность
проведения атак, построенных на анализе трафика.
Поскольку заголовок IP содержит адрес пункта назначения и, возможно, директивы исходной
маршрутизации вместе с информацией о параметрах транзита, нельзя просто передать
шифрованный пакет IP с добавленным к нему в виде префикса заголовком ESP. Промежуточные
маршрутизаторы не смогут обработать такой пакет. Таким образом, необходимо включить весь
блок (заголовок ESP, шифрованный текст и данные аутентификации, если они есть) во внешний
пакет IP с новым заголовком, который будет содержать достаточно информации для
маршрутизации, но не для анализа трафика.
В то время как транспортный режим подходит для защиты соединений между узлами,
поддерживающими сервис ESP, туннельный режим оказывается полезным в конфигурации,
предполагающей наличие брандмауэра или иного шлюза защиты внутренней сети от внешних
сетей. В туннельном режиме шифрование используется для обмена только между внешним узлом
и шлюзом защиты или между двумя шлюзами защиты. Это разгружает узлы внутренней сети,
избавляя их от необходимости шифрования данных, и упрощает процедуру распределения
ключей, уменьшая число требуемых ключей. Кроме того, такой подход усложняет проблему
анализа потока сообщений, направляемых конкретному адресату.
Рассмотрим случай, когда внешний узел соединяется с узлом внутренней сети, защищенной
брандмауэром, и ESP используется внешним узлом и брандмауэром. Тогда при пересылке
сегмента транспортного уровня от внешнего узла к узлу внутренней сети выполняются следующие
действия.
1. Источник готовит внутренний пакет IP с указанием адреса пункта назначения, являющегося
узлом внутренней сети. К этому пакету в виде префикса добавляется заголовок ESP. Затем пакет и
концевик ESP шифруются и к результату могут быть добавлены данные аутентификации.
Полученный блок заключается во внешний пакет IP с новым заголовком IP (базовый заголовок
плюс необязательные расширения, например, параметров маршру¬тизации и транзита для IPv6), в
котором адресом пункта назначения явля¬ется адрес брандмауэра.
2. Внешний пакет отправляется брандмауэру. Каждый промежуточный мар¬шрутизатор должен
проверить и обработать внешний заголовок IP и все внешние заголовки расширений IP, оставляя
при этом шифрованный текст неизменным.
3. Брандмауэр-адресат проверяет и обрабатывает внешний заголовок IP и все внешние заголовки
расширений IP. Затем на основе информации, предос¬тавляемой индексом параметров защиты в
заголовке ESP, брандмауэр де¬шифрует остальные части пакета, в результате чего становится
доступным внутренний пакет IP в виде открытого текста. Этот пакет потом передается по
внутренней сети.
4. Внутренний пакет передается маршрутизатору внутренней сети или непо¬средственно узлуадресату.
Download