a4858a0d71717a3e7fcb3a1f15b4f44c.ppt
- Количество слайдов: 9
Основни протоколи 1. Размяна на ключове Криптографската техника използва шифриране на всеки отделен разговор с различен ключ - сесиен ключ, защото се употребява само в определена комуникационна сесия. - Размяна на ключове в симетричната криптография Протоколът приема, че Алис и Боб са потребители в мрежата, всеки участва със секретен ключ от Key Distribution Center (KDC) – Трент в протоколите. n. Този протокол се основава на абсолютната секретност на Трент. n. Друг проблем на тази система е, че Трент е потенциалното тясно място. Той трябва да се включва във всяка размяна на ключове. - Размяна на ключове в криптография с публичен ключ Алис и Боб употребяват криптография с публичен ключ и са съгласни с един сесиен ключ и употребяват този сесиен ключ за да шифрират съобщенията си. Атака лице-в-средата Ева се опитва да прекъсне алгоритъма с публичен ключ или да направи атака на един шифрован текст върху шифрования текст. Дори публичните ключове на Алис и Боб да са в базата данни, тази атака работи. - Вътрешно/междинно заключен протокол Interlock protocol е открит от Рон Ривест и Ади Шамир, има добър шанс да покрие атаката на лицето в средата. 1
Основни протоколи 1. Размяна на ключове Продължение - Размяна ключове при цифров подпис Прилагането на цифров подпис по време на протокол за размяна на сесиен ключ превъзмогва атаката на лице в средата. Трент подписва двата публични ключа – на Алис и на Боб. Подписаните ключове включват един подписан сертификат за владеене. Когато Алис и Боб получат ключовете си, всеки от тях проверява подписа на Трент. Малори има сериозни проблеми: n. Той не може да персонализира нито Алис нито Боб, защото не знае техните частни ключове: n. Той не може да замени негови публичен ключ с някой от техните, докато е подписан от Трент. Всичко, което може да направи е да слуша шифрования трафик напред, назад и да прекъсне линиите на комуникациите. - Предаване на ключ и съобщение Алис и Боб се нуждаят да не завършат протокола за размяна на ключове преди размяната на съобщения. В този протокол Алис изпраща съобщение на Боб M без протокола за размяна на ключове: (1) Алис генерира случаен сесиен ключ K и шифрира съобщението M. EK(M) (2) Алис взема публичния ключ на Боб от базата за данни. (3) Алис шифрира K с публичния ключ на Боб EB(K) (4) Алис изпраща и двете – шифрираното съобщение и шифрирания сесиен ключ на Боб. EK(M), EB(K) За да се добави секретност срещу атаката лице в средата, Алис може да подпише пренасянето: (5) Боб дешифрира сесийния ключ на Алис K, употребявайки своя частен ключ. (6) Боб дешифрира съобщението на Алис, употребявайки сесийния ключ. 2
Основни протоколи 1. Размяна на ключове Продължение - Излъчване на ключ и съобщение Няма причина Алис да не изпрати шифровано съобщение на различни хора. В този пример, Алис ще изпрати съобщение на Боб, Карол и Дейв: (1) Алис генерира случаен сесиен ключ K и шифрира съобщението M, употребявайки K. EK(M) (2) Алис взема от базата за данни публичните ключове на Боб, Карол и Дейв. (3) Алис шифрира K с публичния ключ на Боб, шифрира K с публичния ключ на Карол и шифрира K с публичния ключ на Дейв. EB(K), EC(K), ED(K) (4) Алис излъчва шифрираното съобщение шифрираните ключове до всеки от тях. EB(K), EC(K), ED(K), EK(M) (5) Само Боб, Карол и Дейв могат да дешифрират ключа K, всеки употребявайки своя частен ключ. (6) Само Боб, Карол и Дейв могат да дешифрират съобщението на Алис, употребявайки K. 2. Достоверност/автентичност. Достоверност при употреба на еднопосочна функция Роджер Нидман и Майк Гай реализират хостът да не се нуждае да знае паролата; хостът трябва да разграничи валидните от невалидните пароли. Това е лесно с употреба на еднопосочна функция. Вместо съхраняване на парола, хостът съхранява еднопосочната функция на паролата. (1) Алис изпраща на хоста своята парола. (2) Хостът изпълнява еднопосочна функция над паролата. 3 (3) Хостът сравнява резултата от еднопосочната функция със стойността преди това съхранена.
2. Достоверност/автентичност. Продължение - Достоверност в криптография с публичен ключ Ако Ева има достъп до паметта на хоста, тя може да види паролата преди например, хостът да й приложи Хeш функция. Криптографията с публичен ключ решава този проблем. Хостът пази файл за всеки потребителски публичен ключ - всички потребители пазят своите частни ключове. Протоколът се изпълнява както следва: (1) Хостът изпраща на Алис случаен стринг. (2) Алис шифрира стринга със своя частен ключ и го изпраща обратно на хоста, заедно с името си. (3) Хостът търси публичния ключ на Алис в базата от данни и дешифрира съобщението, употребявайки този публичен ключ. (4) Ако дешифрираният стринг съвпада с изпратения от него, хостът позволява достъп на Алис до системата. - Взаимна достоверност при употребата на протокол с вътрешно заключване Алис и боб са двама потребители, които искат да се удостоверят поотделно. Всеки от тях има парола, която другият знае: Алис има PA и Боб PB. Ето и протокола: (1) Алис и Боб си разменят публични ключове. (2) Алис шифрира PA с публичния ключ на Боб и му го изпраща. (3) Боб шифрира PB с публичния ключ на Алис и й го изпраща. (4) Алис дешифрира полученото в стъпка (3) и проверява, че то е правилно. (5) Боб дешифрира полученото в стъпка (2) и го проверява за коректност. Малори може да насочи успешно атаката на лице по средата (man-in-the-middle attack). 4
3. Достоверност и размяна на ключове Тези протоколи комбинират удостоверяване и размяна на ключове за да се реши главния компютърен проблем: Алис и Боб са на двата края на мрежата и искат да гово-рят секретно. Как може да си разменят ключовете и в същото време да са сигурни, че говорят един на друг, а не на Малори? Повечето протоколи приемат, че Трент споделя един различен секретен ключ със всеки от участниците и че всички ключове са на мястото си преди протоколите да започнат. Символите употребени в протоколите са в таблица 1. Таблица 1 Symbols used in authentication and key exchange protocols A Alice’s name B Bob’s name EA Encryption with a key Trent shares with Alice EB Encryption with a key Trent shares with Bob I Index number K A random session key L Lifetime TA, TB A timestamp RA, RB A random number, sometimes called a nonce, chosen by Alice and Bob respectively 5
3. Достоверност и размяна на ключове Продължени е (1) Алис поставя марка за време, името на Боб и случаен сесиен ключ и шифрира цялото съобщение с ключът споделян с Трент, Тя изпраща това на Трент , заедно с името си. A, EA(TA, B, K) (2) Трент дешифрира съобщението от Алис. Тогава той прикрепя нова марка за време , името на Алис и случайния сесиен ключ. Той шифрира цялото съобщение с ключа, споделян с Боб. Трент го изпраща на Боб: EB(TB, A, K) Yahalom, Needham-Schroeder, Otway-Rees Kerberos е един вариант на Needham-Schroeder. В базовата версия на протокола Kerberos Version 5, Алис и Боб си споделят ключ с Трент. Алис иска да генерира сесиен ключ за разговаряне с Боб. (1) Алис изпраща съобщение на Трент със своята и на Боб идентичност. A, B (2) Трент генерира едно съобщение с марка за време, L, един случаен сесиен ключ и идентичността на Алис. Той шифрира това с ключа споделян с Боб. След това взема марката за време, L, сесийния ключ и името на Боб и ги шифрира с ключа споделян с Алис. Изпраща двете съобщения на Алис. EA(T, L, K, B), EB(T, L, K, A) (3) Алис генерира съобщение със своята идентичност и марката за време, шифрирано с K и го изпраща на Боб. Алис също изпраща и съобщението от Трент шифрирано с ключа на Боб. EK(A, T), EB(T, L, K, A) (4) Боб създава съобщение, съдържащо марката за време + 1, шифрира го с K и го изпраща на Алис. EK(T + 1) 6
4. Криптография с многобройни публични ключове Криптографията с публичен ключ употребява два ключа. Съобщението се шифрира с единия ключ и може да се дешифрира с другия. Обикновено единият ключ е частен, а другият – публичен. Обаче нека да приемем, че Алис има единия ключ, а Боб – другия. Сега Алис може да шифрира съобщението така, че само Боб да го дешифрира и Боб да шифрира едно съобщение, че само Алис да го чете. Тази концепция е обобщена от Колин Бойд. Представете си вариант на криптография с публичен ключ с три ключа: KA, KB, and KC, разпределени както е показано в табл. 2. Таблица 2 Three-Key Distribution Alice KA Bob KB Carol KC Dave KA and KB Ellen KB and KC Frank KC and KA 7
4. Криптография с многобройни публични ключове Продължение Таблица 3 Three-Key Message Encryption Encrypted with Keys: Must be Decrypted with Keys: KA KB and KC KB KA and KC KC KA and KB KC KA and KC KB KB and KC KA -Разпространение на съобщение Криптография с многобройни ключове е много по лесна. Има трима работници: Алис , Боб и Карол. Дава се на Алис KA и KB, на Боб - KB и KC, и на Карол - KC и KA. Сега може да се говори с всяко подмножество. Ако искаме да изпратим на Алис – шифрираме с KC. Когато Алис получи съобщението ще го дешифрира с KA и тогава с KB. Ако се изпрати съобщение на Боб се шифрира с KA; на Карол - с KB. Ако трябва да се изпрати съобщение на Алис и Боб – се шифрира с KA и KC, и т. н. 8
4. Криптография с многобройни публични ключове Продължение - Секретно разделяне. Секретното разделяне (secret splitting) е начин да се вземе съобщението и да се раздели на части. Ето протоколът, в който Трент може да раздели съобщението между Алис и Боб: (1) Трент генерира случаен стринг от битове R със същта дължина като съобщението M. (2) Трен прилага XOR на M с R за да генерира S. M ⊕ R = S (3) Трент дава R на Алис и S на Боб. За да реконструират съобщението Алис и Боб трябва да направят следната стъпка: (4) Алис и Боб да приложат XOR на техните части заедно за да реконструират съобщението: R ⊕ S = M. В този пример Трент разделя съобщението на 4 части: (1) Трент генерира три случайни стрингове от битове -R, S, и T със същата дължина като на M. (2) Трент прилага XOR на M с трите стринга и генерира U: M ⊕ R ⊕ S ⊕ T = U (3) Трент дава R на Алис, S на Боб, T на Карол и U на Дейв. Алис, Боб, Карол и Дейв работят заедно: (4) Алис, Боб, Карол и Дейв изчисляват заедно: R ⊕ S ⊕ T ⊕ U = M 9