Анимация
JavaScript
|
Главная Библионтека ключ: (1) Алиса объединяет метку времени, имя Боба и случайный сеансовый ключ, затем шифрует созданное с о-общение общим с Трентом ключом и посылает его Тренту вместе со своим именем. A, Ea(Ta, в, К) (2) Трент расшифровывает сообщение от Алисы. Затем он добавляет новую метку времени, имя Алисы и сл у-чайный сеансовый ключ, шифрует полученное сообщение общим с Бобом ключом. Трент посылает Бобу: Eb(Tb, в, К) Наибольшим допущением, сделанным в этом протоколе, является то, что Алиса обладает достаточной ко м-петентностью для генерации хороших сеансовых ключей . Вспомните, что случайные числа генерировать совсем не просто, для этого может потребоваться кто-нибудь понадежнее Алисы . Yahalom В этом протоколе Алисы и Боб делят с Трентом секретный ключ [283,284]. (1) Алиса объединяет свое имя и случайное число, и отправляет созданное сообщение Бобу. а, Ra (2) Боб объединяет имя Алисы, ее случайное число, свое случайное число, шифрует созданное сообщение о б-щим с Трентом ключом и посылает его Тренту, добавляя свое имя: в, Eb(A, Ra, Rb) (3) Трент создает два сообщения. Первое включает имя Боба, случайный сеансовый ключ, случайные числа Боба и Алисы и шифруется ключом, общим для Трента и Алисы. Второе состоит из имени Алисы, сл у-чайного сеансового ключа и шифруется ключом, общим для Трента и Боба. Трент посылает оба сообщ е-ния Алисе: Ea(B, K, Ra, Rb), Eb(A, K) (4) Алиса расшифровывает первое сообщение, извлекает K и убеждается, что Ra совпадает со значением, отправленным на этапе (1). Алиса посылает Бобу два сообщения. Одним является сообщение Трента, зашифрованное ключом Боба. Второе - это Rb, зашифрованное сеансовым ключом. Eb(A, К), Ek(Rb), (5) Боб расшифровывает первое сообщение, извлекает K и убеждается, что Rb совпадает с отправленным на этапе (2). В результате Алиса и Боб убеждены, что они общаются именно друг с другом, а не с третьей стороной . Нововведение состоит в том, что именно Боб первым обращается к Тренту, который только посылает одно соо б-щение Алисе. Needham-Schroeder В этом протоколе, изобретенном Роджером Неедхэмом (Roger Needham) и Майклом Шредером (Michael Schroeder) [1159], также используются симметричная криптография и Трент. (1) Алиса посылает Тренту сообщение, содержащее ее имя, имя Боба и случайное число. a, в, Ra (2) Трент генерирует случайный сеансовый ключ. Он шифрует сообщение, содержащее случайный сеансовый ключ и имя Алисы, секретным ключом, общим для него и Боба. Затем он шифрует случайное число Ал и-сы, имя Боба, ключ, и шифрованное сообщение секретным ключом, общим для него и Алисы. Наконец, он отправляет шифрованное сообщение Алисе: Ea(Ra, в, К, Eb(K, A)) (3) Алиса расшифровывает сообщение и извлекает K. Она убеждается, что Ra совпадает со значением, отправленным Тренту на этапе (1). Затем она посылает Бобу сообщение, зашифрованное Трентом ключом Боба. Eb(K, A) (4) Боб расшифровывает сообщение и извлекает K. Затем он генерирует другое случайное число, Rb. Он шифрует это число ключом K и отправляет его Алисе. Ek(Rb) (5) Алиса расшифровывает сообщение с помощью ключа К. Она создает число RB-1 и шифрует это число ключом К. Затем она посылает это сообщ ение обратно Бобу. Ek(Rb-1) (6) Боб расшифровывает сообщение с помощью ключа К и проверяет значение RB-1. Вся эта возня с RA, RB, и RB-1 служит для предотвращения вскрытия с повторной передачей. При таком способе вскрытия Мэллори может записать старые сообщения и впоследствии использовать их при попытке взломать протокол. Присутствие RA на этапе (2) убеждает Алису, что сообщение Трента достоверно и не являе т-ся повторной передачей отклика, использованного при одном из предыдущих применений протокола . Когда Алиса успешно расшифрует RB и передает Бобу RB-1 на этапе (5), Боб убеждается, что сообщения Алисы не является повторной передачей сообщений, использованных при одном из предыдущих применений протокола . Главной прорехой этого протокола является важность использованных сеансовых ключей . Если Мэллори получит доступ к старому К, он сможет предпринять успешное вскрытие [461]. Ему нужно только записать сообщения Алисы Бобу на этапе (3). Тогда, имея К, он может выдать себя за Алису: (1) Мэллори посылает Бобу следующее сообщение: Eb(K, A) (2) Боб извлекает К, генерирует RB и отправляет Алисе: Ek(.Rb) (3) Мэллори перехватывает сообщение, расшифровывает его с помощью ключа К и иосiлает Бобу: Ek(.Rb-1) (4) Боб убеждается, что сообщение "Алисы" состоит из RB-1. Теперь Мэллори убедил Боб, что он и есть "Алиса". Более защищенный протокол, использующий метки времени, может противостоять этому вскрытию [461,456]. Метки времени добавляются к сообщению Трента на этапе (2) и шифруются ключом Боба: Eb(K, A, T). Метки времени требуют надежной и точной системы единого времени, что само по себе нетривиальная проблема. Если ключ, общий для Трента и Алисы будет скомпрометирован, последствия будут драматичны . Мэллори сможет использовать его, для получения сеансовых ключей для обмена сообщениями с Бобом (или с кем-нибудь еще). Даже хуже, Мэллори продолжать подобные действия даже после замены ключа Алисы [90]. Неедхэм и Шредер пытались исправить эти проблемы в модифицированной версии своего протокола [1160]. Их новый протокол по существу совпадает с протоколом Отуэя- Риса (Otway-Rees), опубликованном в том же выпуске того же журнала. Otway-Rees Этот протокол также использует симметричную криптографию [1224]. (1) Алиса создает сообщение, состоящее из порядкового номера, ее имени, имени Боба и случайного числа. Сообщение шифруется ключом, общим для Алисы и Трента. Она посылает это сообщение Бобу вместе с порядковым номером, ее и его именами: I, A, B, Ea(Ra, I, A, B) (2) Боб создает сообщение, состоящее из нового случайного числа, порядкового номера, имени Алисы и им е-ни Боба. Сообщение шифруется ключом, общим для Алисы и Боба. Он посылает это сообщение Тренту вместе шифрованным сообщением Алисы, порядковым номером, ее и его именами: I, A, B, EA(RA, I, A, B), EB(RB, I, A, B) (3) Трент генерирует случайный сеансовый ключ. Затем он создает два сообщения. Одно, состоящее из сл у-чайного числа Алисы и сеансового ключа, шифруется ключом, общим для него и Алисы. Другое, состо я-щее из случайного числа Боба и сеансового ключа, шифруется ключом, общим для него и Боба. Он о т-правляет два этих сообщения вместе с порядковым номером Бобу: I, Ea(Ra, K), Eb(Rb, K) (4) Боб отправляет Алисе сообщение, шифрованное ее ключом, и порядковый номер: I, Ea(Ra, K) (5) Алиса расшифровывает сообщение, получая свои ключ и случайное число. Алиса убеждается, что при в ы-полнении протокола они не изменились Боб отправляет Алисе сообщение, шифрованное ее ключом, и п о- рядковый номер. Если все случайные числа правильны, а порядковый номер не изменился при выполнении протокола, Алиса и Боб убеждаются в подлинности друг друга и получают секретный ключ для обмена сообщениями . Kerberos Kerberos - вариант протокола Needham-Schroeder - подробно обсуждается в разделе 24.5. В базовом протоколе Kerberos Version 5 у Алисы и Боба общие ключи с Трентом. Алиса хочет генерировать сеансовый ключ для сеанса связи с Бобом. (1) Алиса посылает Тренту сообщение со своим именем и именем Боба: a, в (2) Трент создает сообщение, состоящее из метки времени, время жизни, l, случайного сеансового ключа и имени Алисы. Он шифрует сообщение ключом, общим для него и Боба. Затем он объединяет метку вр е-мени, время жизни, сеансовый ключ, имя Боба, и шифрует полученное сообщение ключом, общим для н его и Алисы. Оба шифрованных сообщения он отправляет Алисе. Ea(T, L, К, В), Eb(T, L, К, A) (3) Алиса создает сообщение, состоящее из ее имени и метки времени, шифрует его ключом k и отправляет Бобу. Алиса также посылает Бобу сообщение от Трента, шифрованное ключом Боба: Ea(A, T), Eb(T, l, k, A) (4) Боб создает сообщение, состоящее из метки времени плюс единица, шифрует его ключом k и отправляет Алисе: Ek(T+1) Этот протокол работает, но только если часы каждого пользователя синхронизированы с часами Трента . На практике эффект достигается синхронизацией с надежным сервером времени с точностью в несколько минут и обнаружением повторной передачи в течение определенного интервала времени . Neuman-Stubblebine Из-за недостатков системы или саботажа синхронизация часов может быть нарушена . Если часы сбиваются, против большинства протоколов может быть использован определенный способ вскрытия [644]. Если часы отправителя опережают часы получателя, Мэллори может перехватить сообщение отправителя и повторно и с-пользовать его позднее, когда метка времени станет текущей в месте нахождения получателя . Этот способ, называющийся вскрытием с подавлением повторной передачи, может привести к неприятным последствиям. Этот протокол, впервые опубликованный в [820] и исправлен в [1162], пытается противостоять вскрытию с подавлением повторной передачи. Этот отличный протокол является улучшением Yahalom. (1) Алиса объединяет свое имя и случайное число, и отправляет созданное сообщение Бобу. a, Ra (2) Боб объединяет имя Алисы, ее случайное число и метку времени, шифрует созданное сообщение общим с Трентом ключом и посылает его Тренту, добавляя свое имя и новое случайное число: в, Rb, Eb(A, Ra, Tb) (3) Трент генерирует случайный сеансовый ключ. Затем он создает два сообщения. Первое включает имя Б оба, случайное число Алисы, случайный сеансовый ключ, метку времени и шифруется ключом, общим для Трента и Алисы. Второе состоит из имени Алисы, сеансового ключа, метки времени и шифруется ключом, общим для Трента и Боба. Трент посылает оба сообщения Алисе вместе со случайным числом Боба: Ea(B, Ra, K, Tb), Eb(A, K, Tb), Rb (4) Алиса расшифровывает сообщение, зашифрованное ее ключом, извлекает k и убеждается, что Ra совпадает со значением, отправленным на этапе (1). Алиса посылает Бобу два сообщения. Одним является с о-общение Трента, зашифрованное ключом Боба. Второе - это Rb, зашифрованное сеансовым ключом. Eb(A, К), Ek(Rb), (5) Боб расшифровывает сообщение, зашифрованное его ключом, извлекает k и убеждается, что значения тв и Rb те же, что и отправленные на этапе (2). Если оба случайных числа и метка времени совпадают , Алиса и Боб убеждаются в подлинности дуг друга и получают секретный ключ. Синхронизация часов не требуется, так как метка времени определяется только по 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [ 15 ] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |