Alt Linux 5.0 Ковчег: Текст лекций. Шашков Б.Д. - 149 стр.

UptoLike

Составители: 

вместо 80-го порта заходить на 443-й. С точки зрения навигатора это вообще
воспринимается как новый сетевой протокол (https: вместо http:).
Второе затруднение значительней, вокруг него и весь сыр-бор. Для того, чтобы
безопасно передавать данные, необходим открытый ключ получателя. А этот ключ, в свою
очередь, необходимо безопасно передать отправителю. Получается дурная бесконечность:
для организации безопасного соединения необходимо… заранее организованное
безопасное соединение. Правда, для передачи ключа безопасность надо соблюсти лишь
однократно, но отказываться от мер предосторожности нельзя: должна быть гарантия, что
полученный ключ действительно принадлежит отправителю, а не какому-нибудь
злоумышленнику, получившему доступ к среде передачи данных.
Если принимать на веру подлинность полученного открытого ключа,
злоумышленник, технически способный перехватить пересылаемые данные и подменить
их своими, может запросто расшифровать эти данные так, что и отправитель, и получатель
этого не заметят. Традиционный единственный сравнительно простой) способ
называется атакой «man-in-the-middle» («человек посередине»). Суть её очень проста:
вместо того, чтобы позволить получателю переслать ключ, а отправителю шифровать
им данные, злоумышленник ретранслирует поток данных через свой компьютер, попутно
их расшифровывая. Более подробно: открытый ключ получателя злоумышленник вообще
не показывает отправителю, а отсылает ему свой открытый ключ. Отправитель, думая, что
разговаривает непосредственно с получателем, шифрует этим ключом свои данные,
злоумышленник их перехватывает, расшифровывает (атака прошла успешно!), затем
шифрует ключом получателя и отправляет ему, чтобы не вызывать подозрений.
Если не рассматривать передачу ключа альтернативными способами (например,
можно приехать к администратору сайта, и лично у него переписать этот ключ), есть два
способа избежать обмана, когда открытый ключ передаётся в рамках того же, ещё не
доверенного, соединения. Первый состоит в том, чтобы, получив ключ, проверить его
аутентичность (опять-таки с помощью альтернативного канала передачи данных). В этом
помогает так называемый «отпечаток пальца» (fingerprint) некоторое число, которому
однозначно соответствует открытый ключ. Это число достаточно велико, и алгоритм его
получения достаточно сложен, так что у злоумышленника нет разумной возможности
изготовить свой ключ с таким же отпечатком. При этом отпечаток намного меньше самого
ключа, и человек в состоянии самостоятельно сличить два отпечатка: тот, что
сгенерирован из полученного ключа, и тот, что опубликован на сайте, или в службе DNS
или получен иным способом. Предполагается, что злоумышленник не готов тратить
столько ресурсов, чтобы получать контроль над всеми видами передачи данных.
Другой способ воспользоваться электронной подписью. Если на компьютере
отправителя имеется некоторый проверенный открытый ключ, получатель может
попросить хозяина этого ключа подписать ключ получателя перед пересылкой. Тогда
отправитель увидит, что пришедшая информация подписана доверенным лицом, и, стало
быть, после того, как её подписали, не менялась. В действительности это род бизнеса:
договариваться с производителями дистрибутивов ОС и ПО, использующего SSL, о том,
чтобы включать в них свои открытые ключи, а затем брать деньги за подписывание этими
ключами (точнее, их закрытыми парами). К сожалению, относительная дороговизна
подобной процедуры приводит к тому, что администраторы серверов часто используют т.
н. «самоподписанные» сертификаты, проверить аутентичность ключей в которых этим
способом невозможно.
Теперь картинка с полицейским становится более понятной. Для доступа к серверу
по защищённому протоколу требуется получить от него свежезаведённый открытый ключ
терминах SSL «серитфикат»), который разумеется, никто не успел подписать. Хуже
того. В сертификате, помимо собственно ключа, хранится разнообразная информация о
том, кому он принадлежит в частности, доменное имя сайта. Но к моменту, когда нам
необходимо подключиться к веб-интерфейсу на сервере, служба DNS на нём может и не
вместо 80-го порта заходить на 443-й. С точки зрения навигатора это вообще
воспринимается как новый сетевой протокол (https: вместо http:).
       Второе затруднение значительней, вокруг него и весь сыр-бор. Для того, чтобы
безопасно передавать данные, необходим открытый ключ получателя. А этот ключ, в свою
очередь, необходимо безопасно передать отправителю. Получается дурная бесконечность:
для организации безопасного соединения необходимо… заранее организованное
безопасное соединение. Правда, для передачи ключа безопасность надо соблюсти лишь
однократно, но отказываться от мер предосторожности нельзя: должна быть гарантия, что
полученный ключ действительно принадлежит отправителю, а не какому-нибудь
злоумышленнику, получившему доступ к среде передачи данных.
       Если принимать на веру подлинность полученного открытого ключа,
злоумышленник, технически способный перехватить пересылаемые данные и подменить
их своими, может запросто расшифровать эти данные так, что и отправитель, и получатель
этого не заметят. Традиционный (и единственный сравнительно простой) способ
называется атакой «man-in-the-middle» («человек посередине»). Суть её очень проста:
вместо того, чтобы позволить получателю переслать ключ, а отправителю — шифровать
им данные, злоумышленник ретранслирует поток данных через свой компьютер, попутно
их расшифровывая. Более подробно: открытый ключ получателя злоумышленник вообще
не показывает отправителю, а отсылает ему свой открытый ключ. Отправитель, думая, что
разговаривает непосредственно с получателем, шифрует этим ключом свои данные,
злоумышленник их перехватывает, расшифровывает (атака прошла успешно!), затем
шифрует ключом получателя и отправляет ему, чтобы не вызывать подозрений.
       Если не рассматривать передачу ключа альтернативными способами (например,
можно приехать к администратору сайта, и лично у него переписать этот ключ), есть два
способа избежать обмана, когда открытый ключ передаётся в рамках того же, ещё не
доверенного, соединения. Первый состоит в том, чтобы, получив ключ, проверить его
аутентичность (опять-таки с помощью альтернативного канала передачи данных). В этом
помогает так называемый «отпечаток пальца» (fingerprint) — некоторое число, которому
однозначно соответствует открытый ключ. Это число достаточно велико, и алгоритм его
получения достаточно сложен, так что у злоумышленника нет разумной возможности
изготовить свой ключ с таким же отпечатком. При этом отпечаток намного меньше самого
ключа, и человек в состоянии самостоятельно сличить два отпечатка: тот, что
сгенерирован из полученного ключа, и тот, что опубликован на сайте, или в службе DNS
или получен иным способом. Предполагается, что злоумышленник не готов тратить
столько ресурсов, чтобы получать контроль над всеми видами передачи данных.
       Другой способ — воспользоваться электронной подписью. Если на компьютере
отправителя имеется некоторый проверенный открытый ключ, получатель может
попросить хозяина этого ключа подписать ключ получателя перед пересылкой. Тогда
отправитель увидит, что пришедшая информация подписана доверенным лицом, и, стало
быть, после того, как её подписали, не менялась. В действительности это род бизнеса:
договариваться с производителями дистрибутивов ОС и ПО, использующего SSL, о том,
чтобы включать в них свои открытые ключи, а затем брать деньги за подписывание этими
ключами (точнее, их закрытыми парами). К сожалению, относительная дороговизна
подобной процедуры приводит к тому, что администраторы серверов часто используют т.
н. «самоподписанные» сертификаты, проверить аутентичность ключей в которых этим
способом невозможно.
       Теперь картинка с полицейским становится более понятной. Для доступа к серверу
по защищённому протоколу требуется получить от него свежезаведённый открытый ключ
(в терминах SSL — «серитфикат»), который разумеется, никто не успел подписать. Хуже
того. В сертификате, помимо собственно ключа, хранится разнообразная информация о
том, кому он принадлежит — в частности, доменное имя сайта. Но к моменту, когда нам
необходимо подключиться к веб-интерфейсу на сервере, служба DNS на нём может и не