Опубликован: 19.01.2010 | Доступ: свободный | Студентов: 1443 / 200 | Оценка: 4.33 / 4.00 | Длительность: 18:53:00
Лекция 5:

Управление ключами

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >

5.3. Соглашение с симметричными ключами

Алиса и Боб могут создать ключ сеанса между собой, не используя KDC. Этот метод создания ключа сеанса называется соглашением с симметричными ключами. Хотя есть несколько способов выполнить этот процесс, здесь рассматриваются только два общих метода ключевого соглашения: Диффи-Хеллмана (Diffie-Hellman) и "станция-к-станции".

Ключевое соглашение

В протоколе Диффи-Хеллмана две стороны создают симметричный ключ сеанса без KDC. Перед установлением симметричного ключа эти две стороны должны выбрать два числа p и g. Первое число, p, является большим простым числом порядка 300 десятичных цифр (1024 бита). Второе число, g, служит генератором порядка p - 1 в группе <Zp*, x >. Эти два числа (группа и генератор) не должны быть конфиденциальными. Их можно передать через Internet. Они могут быть общедоступны. рис. 5.9 показывает процедуру.

Шаги перечислены ниже.

  1. Алиса выбирает большое случайное число x, такое, что 0 < x < p - 1, и вычисляет R1 = gx mod p.
  2. Боб выбирает другое большое случайное число y, такое, что 0 < y < p - 1, и вычисляет R2 = gy mod p.
  3. Алиса передает Бобу R1. Обратите внимание, что Алиса не передает значение x ; она передает только R1.
  4. Боб передает Алисе R2. Снова обратите внимание, что Боб не передает значение y, он передает только R2.
  5. Алиса вычисляет K = (R2)x mod p.
  6. Боб также вычисляет K = (R1)y mod p.

    K = (gx mod p)y mod p = (gymod p)x mod p = gxy mod p

Боб вычисляет K = (R1)y mod p = (gx mod p)y mod p = gxy mod p

Алиса вычисляет K = (R2)x mod p = (gy mod p)x mod p = gxy mod p

и получает то же самое значение без Боба, знающего значение x. А Боб получил это значение без Алисы, знающей значение y.

Метод Диффи-Хелмана

Рис. 5.9. Метод Диффи-Хелмана
Симметричный (общедоступный) ключ в методе Диффи-Хеллмана - K = gxy mod p

Пример 5.1

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

  1. Алиса выбирает x = 3 и вычисляет R1 = 73 mod 23 = 21.
  2. Боб выбирает y = 6 и вычисляет R2 = 76 mod 23 = 4.
  3. Алиса передает число 21 Бобу.
  4. Боб передает число 4 Алисе.
  5. Алиса вычисляет симметричный ключ K = 43 mod 23 = 18.
  6. Боб вычисляет симметричный ключ K = 216 mod 23 = 18.

Значение K одно и то же и для Алисы, и для Боба: gx y mod p = 718 = 18 .

Пример 5.2

Давайте возьмем более реальный пример. Мы используем программу, чтобы создать случайное целое число 512 битов (идеально - 1024 бит). Целое число p - число с 159 цифрами. Мы также выбираем g, x и y, как показано ниже:

p 764624298563493572182493765955030507476338096726949748923573772860925 235666660755423637423309661180033338106194730130950414738700999178043 6548785807987581
g 2
x 557
y 273

Следующая таблица показывает R1, R2 и K.

R1 84492028420 665505216172947491035094143433698520012660862863631067673 619959280828586700802131859290945140217500319973312945836083821943065 966020157955354
R2 435262838709200379470747114895581627636389116262115557975123379218566 31001143571S208390040181876486841753831165342691630263421106721508589 6255201288594143
K 155638000664522290596225827523270765273218046944423678520320400146406 500887936651204257426776608327911017153038674561252213151610976584200 1204086433617740

Анализ протокола Диффи-Хеллмана

Концепция Диффи-Хеллмана, показанная на рис. 5.10, является простой, но изящной. Мы можем представить ключ засекречивания между Алисой и Бобом - он состоит из трех частей: g, x и y. Первая часть общедоступна. Каждый знает 1/3 ключа - g, общедоступное значение. Другие две части нужно узнать у Алисы и Боба. Каждый из них знает одну часть. Алиса добавляет x как вторую часть для Боба; Боб добавляет y как вторую часть для Алисы. Когда Алиса получает 2/3 полного ключа от Боба, она добавляет последнюю часть, ее y, чтобы завершить ключ. Когда Боб получает ключ от Алисы - законченный на 2/3, он добавляет последнюю часть, свое y, чтобы завершить ключ. Обратите внимание, что хотя ключ Алисы состоит из g, y и x и ключ Боба состоит из g, x и y, эти два ключа - одни и те же, потому что gxy = gyx.

Обратите внимание также, что хотя два ключа те же самые, Алиса не может найти значение y, используемого Бобом, потому что вычисление сделано по модулю p. Алиса получает gy mod p от Боба, но не gy. Для того чтобы знать значения y, Алиса должна использовать дискретный логарифм, который мы обсуждали в предыдущей лекции.

Безопасность протокола

Замена ключа Диффи-Хеллмана восприимчива к двум атакам: атаке дискретного логарифма и атаке посредника (man-in middle)

Атака дискретного логарифма. Безопасность ключевой станции базируется на трудности проблемы дискретного логарифма. Ева может перехватить R1 и R2.

 Идея ключа  Диффи-Хеллмана

увеличить изображение
Рис. 5.10. Идея ключа Диффи-Хеллмана

Из R1 = gx mod p и y из R2 = gy mod p она может затем вычислить симметричный ключ: K = gxy mod p. Ключ засекречивания больше не является секретным. Чтобы cделать метод Диффи-Хеллмана защищенным от атаки дискретного логарифма, рекомендуется следующее.

  1. Простое число p должно быть очень большим (более чем 300 десятичных цифр).
  2. Простое число p должно быть выбрано так, чтобы p - 1 имел по крайней мере один простой делитель (больше чем 60 десятичных цифр).
  3. Генератор должен быть выбран из группы <Zp*, x >.
  4. Боб и Алиса должны уничтожить x и y после того, как они вычислили значение симметричного ключа. Значения x и y должны использоваться только единожды.

Атака "посредника". Этот протокол имеет другую слабость. Еве не надо находить значения x и y, чтобы напасть на протокол. Она может использовать глупость Алисы и Боба, создающих два ключа: один между Бобом и Алисой и другой между Алисой и Бобом. Рис. 5.11 показывает ситуацию. Может случиться следующее:

Атака посредника

увеличить изображение
Рис. 5.11. Атака посредника
  1. Алиса выбирает x , вычисляет R 1 = gx mod p и передает R1 Бобу.
  2. Ева, злоумышленник, перехватывает R1. Она выбирает z, вычисляет R 2 = gz mod p и передает R 2 Алисе и Бобу.
  3. Боб выбирает y, вычисляет R3 = gy mod p, передает R3 Алисе. Ева перехватывает R3, и Алиса никогда не получит это число.
  4. Алиса и Ева вычисляют K1 = gxz mod p, который становится открытым ключом между Алисой и Евой. Алиса, однако, думает, что это -открытый ключ между ней и Бобом.
  5. Ева и Боб вычисляют K2 = gzymod p, который становится открытым ключом между Евой и Бобом. Однако Боб думает, что это - открытый ключ между ним Алисой.

Другими словами, создаются два ключа вместо одного: один между Алисой и Евой и один между Евой и Бобом. Когда Алиса посылает данные Бобу, она зашифровывает их ключом K1 (совместный ключ Алисы и Евы). Эти данные могут быть расшифрованы и прочитаны Евой. Ева может передать сообщение Бобу, зашифрованное K2 (совместный ключ между Евой и Бобом); или она может даже изменить сообщение или передать новое сообщение. Боб введен в заблуждение, поскольку уверен, что сообщение пришло от Алисы. Подобный сценарий может случиться и в другом направлении - с Алисой.

Эта ситуация называется " атака посредника ", поскольку Ева находится между партнерами и перехватывает R1, передаваемый Алисой Бобу, и R3, передаваемый Бобом Алисой. Это - атака передачи по цепочке, потому что напоминает короткую линейку добровольцев на пожаре, передающих друг другу ведра с водой, по цепочке от человека человеку.

Следующий метод основан на протоколе Диффи-Хеллмана. Он использует методы установления подлинности, чтобы сорвать эту атаку.

Ключевое соглашение "от станции к станции"

Протокол "от станции к станции" - метод, основанный на методе Диффи-Хеллмана. Он применяет цифровые подписи с сертификатами открытого ключа (см. следующую секцию). Для установки ключа сеанса между Алисой и Бобом используется последовательность, показанная на рис. 5.12.

Имеются следующие шаги:

  • После вычисления R1 Алиса передает R1 Бобу (шаги 1 и 2 на рис. 5.12).
  • После вычисления R2 и ключа сеанса Боб конкатенирует ID Алисы, R1 И R2. Затем он подписывает результат своим секретным ключом. Боб теперь передает R2, подпись и собственное свидетельство общедоступного ключа Алисе. Подпись зашифрована ключом сеанса (шаги 3, 4 и 5 на рис. 5.12).
  • После вычисления ключа сеанса, если подпись Боба проверена, Алиса связывает ID Боба, R1 И R2. Затем она подписывает результат своим собственным секретным ключом и передает это Бобу. Подпись зашифрована ключом сеанса (шаги 6, 7 и 8 на рис. 5.12).
  • Если подпись Алисы проверена, Боб сохраняет ключ сеанса (шаг 9 на рис. 5.12).
Метод соглашения "от станции - к станции"

увеличить изображение
Рис. 5.12. Метод соглашения "от станции - к станции"

Безопасность протокола "от станции к станции"

Протокол "от станции к станции" предотвращает атаки "посредника". После R1 Ева не может передать свой собственный R2 Алисе и притворяться, что это идет от Боба, потому что Ева не может подделать секретный ключ Боба и создать подпись - подпись не может быть проверена общедоступным ключом Боба, определенным в свидетельстве. Тем же образом Ева не может подделать секретный ключ Алисы, чтобы подписать третье сообщение, передаваемое Алисой. Сертификату, как мы увидим в следующей секции, можно доверять, потому что он выработан администрацией, которой доверяют.

K=(R1)y mod p

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Мария Архипова
Мария Архипова