1 Технологии защиты информации в сети Курс лекций Ш.Т.Ишмухаметов Введение. В данном курсе изложены теоретические основы криптографии и вопросы сетевой безопасности. Предназначено для чтения курса «Технологии защиты информации в сети». Содержание: 1. Основные принципы организации и задачи сетевой безопасности................................. 3 с. 2. Описание модели OSI межсетевых взаимодействий. ....................................................... 5 с. 3. Обзор стека протоколов TCP/IP ......................................................................................... 11с. 3.1. Общая характеристика TCP/IP 3.2. Протоколы IPv4 и IPv6 4. Математические основы криптографии. ...........................................................................21 с. 4.1. Криптографические примитивы 4.2. Потоковые шифры на основе сдвиговых регистров. 4.3. Абелевы группы и конечные поля. 4.4. Эллиптические кривые. 4.5. Односторонние функции. 5. Криптографические средства защиты. .............................................................................. 32 с. 5.1. Классификация криптографических методов. 5.2. Метод RC4. 5.3. Метод DES. 5.4. Метод RSA. 5.5. Алгоритм Эль-Гамаля. 5.6. Метод Диффи-Хелмана. 6. Электронно-цифровая подпись. ........................................................................................ 37 с. 6.1. Свойства и правовые основы ЭЦП. 6.2. Алгоритм создание ЭЦП. 6.3. Использование эллиптических кривых в стандарте цифровой подписи. 7. Сетевая аутентификация .................................................................................................... 43 с. 7.1. Хеш-функции 7.2. Парадокс «дня рождения» 7.3. Защищенная функция хеширования SHA1 7.4. Алгоритм HMAC 7.5. Простая аутентификация на основе хеш-значений. 7.6. Сетевая аутентификация на основе слова- вызова 8. Протокол расширенной аутентификации Kerberos ..........................................................52 с. 9. Стандарт сертификации X.509 ......................................................................................... 55 с. 9.1. Аутентификация на основе сертификатов 9.2. Состав сертификата 10. Защита информации, передаваемой по сети ................................................................... 60 с. 10.1. Организация защиты данных в сетях 10.2. Протокол IPsec 10.3. Спецификации IPsec 10.4. Режим AH протокола IPSec 10.5. Режим ESP протокола IPSec 10.6. Управление ключами IPSec 11. Защита Web ........................................................................................................................ 72 с. 11.1. Угрозы нарушений защиты Web 2 11.2. Архитектура SSL 11.3. Протокол квитирования SSL 11.4. Протокол SET 11.5. Сравнительные характеристики протоколов SSL и SET 12. Организания сетей GSM ............................................................................................... 81 с. 13. Защита сетей GSM 14. Литература ...................................................................................................................... 89 с. 3 §1. Основные принципы организации и задачи сетевой безопасности. Сетевая безопасность является частью информационной безопасности. Имея те же задачи, что и информационная безопасность, сетевая безопасность приобретает свою специфику, связанную с тем, что нападающий, оставаясь в тени своей географической удаленности или скрываясь за анонимными прокси- серверами, может действовать безнаказанно (или почти безнаказанно), нападая на различные службы и ресурсы сети путем целенаправленной атаки на отдельные компьютеры или проводя массированную бомбардировку своими пакетами диапазонов сети с целью выявления слабых бастионов. При работе с удаленными пользователями также изменяются стандартные процедуры аутентификации для локальных компьютеров, поскольку передача паролей в открытом виде становится опасной. Кроме того, пользователям инофрмационных сетей предлагаются все новые и новые услуги через сети GSM, беспроводные сети Wi-Fi, кабельный и спутниковый Интернет. Новые сервисы, представляя современному пользователю широкий спектр услуг, одновременно уменьшают его общую безопасность, расширяя базу незаконного внедрения извне для кражи паролей, конфиденциальной информации из компьютера пользователя, заражения его вирусами, троянскими конями, шпионскими модулями SpyWare, причиняющим индивидуальным пользователям и локальным сетям офисов и учреждений немалый экономический ущерб. Поэтому проблема надежной защиты от внешнего вторжения не является надуманной или малозначащей. В нашем курсе мы постараемся дать характеристику основным сетевым угрозам и соответствующим методам защиты. Перечислим сначало основные задачи информационной безопасности и дадим им краткую характеристику. Под информационной безопасностью понимается защищенность информации и поддерживающей инфраструктуры от случайных или преднамеренных воздействий естественного или искусственного характера, которые могут нанести неприемлемый ущерб субъектам информационных отношений, в том числе владельцам и пользователям информации и поддерживающей инфраструктуры. Защита информации - это комплекс мероприятий, направленных на обеспечение информационной безопасности. К основными задачами информационной безопасности относят следующие задачи: 1. Обеспечение доступности информационных ресурсов, 2. Обеспечение целостности информационных ресурсов и поддерживающей инфраструктуры, 3. Обеспечение конфиденциальности информационных ресурсов. Поясним понятия доступности, целостности и конфиденциальности. Доступность - это возможность за приемлемое время получить требуемую информационную услугу. Доступность информационных сервисов одновременно предполагает ограничение несанкционированногодоступа, защиту сервисов от незаконного вторжения и захвата этих услуг. Под целостностью подразумевается актуальность и непротиворечивость информации, ее защищенность от разрушения и несанкционированного изменения. Наконец, конфиденциальность - это защита от несанкционированного доступа к информации, чтения ее лицами, не имеющими соответвующих прав. Информационные системы создаются для получения определенных информационных услуг. Если по тем или иным причинам предоставить эти услуги пользователям становится невозможно, это, очевидно, наносит ущерб всем субъектам информационных отношений. Поэтому, не противопоставляя доступность остальным аспектам, мы выделяем ее как важнейший элемент информационной безопасности. 4 Для обеспечения информационной безопасности используется целый комплекс мер защиты, включая сюда защиту от пожаров, наводнений и других природных катаклизмов, обучение персонала правильной работе с информацией (неумелый пользователь страшнее врага!), физическое ограничение доступа к серверам и других критически важным элементам информационной инфраструктуры, законодательные меры защиты, воспитательная работа со служащими компаний, кадровая работа с персоналом и много другое. Методы защиты принято делить на три основные категории. Физические методы защиты образуют внешний уровень защиты. Сюда можно отнести, например, службу охраны учреждения, проверяющей документы на входе в (первичная авторизация, разделяющая толпу на людей, имеющих право на доступ к ресурсам, и на граждан, не имеющих таких прав). В эту группу методов защиты также относятся меры защиты от пожаров, скачков напряжения электропитания, наводнений и других техногенных опасностей. Всевозможные датчики, видеокамеры, электронные замки, установленные на охраняемых помещениях, ограничивают перемещение персонала в защищаемых местах и уменьшают вероятность проникновения потенциального нарушителя. Организационно- правовые методы предназначены для формирования общей политики безопасности учреждения, подбора кадрового состава и включают воспитательные меры защиты, специальные процедуры принятия и увольнения сотрудников (именно обиженные сотрудники представляют особую угрозу для безопасности предприятия в силу знания специфики работы и структуры защиты). Воспитательные меры призваны также воспитывать у сотрудников чувство ответственности за свою работу, работу коллектива и предприятия, в целом, а также информировать служащих о мерах наказания, предусмотренных за те или иные нарушения. К техническим методам защиты отнесем программно- аппаратные средства, осуществляющие процедуры аутентификации пользователей, защиту данных от несанкционированного доступа и чтения (криптографические средства), а также средства безопасной передачи данных по сетям, защиту от вирусов и т.п. Отметим, что вышеупомянутые методы защиты принято делить также дополнительно на предупреждающие, выявляющие и восстанавливающие методы защиты. Первые подобно законам и постановлениям предупреждают взломщика о потенциальных мерах наказания, предусмотренных за те или иные нарушения. Вторые подобно датчикам и сигнализаторам выявляют наличие нарушений в сфере информационной безопасности и предупреждают владельца информации или службу безопасности о вторжении в защищаемую структуру. Третьи служат для восстановления ущерба, нанесенного при атаке на информационные ресурсы или службы защиты. Эти три дополнительные три группы можно найти как среди физических, так и среди организационных и технических средств и методов защиты (попробуйте найти примеры). Не умаляя значимости физических и организационно- правовых методов защиты, мы основное внимание уделим техническим методам защиты, в группу которых включается и криптография. Сначало напомним общие сведения о технических аспектах взаимодействия компьютеров в сети в рамках 7-уровневой модели OSI, которая является стандартом в области межсетевых взаимодействий. 5 §2. Описание модели OSI межсетевых взаимодействий. Взаимодействие между устройствами в сети представляет собой сложную процедуру, включающую различные аспекты, начиная от согласования уровней сигналов для различных физических сред и кончая вопросами формирования сообщений и организацию защиты передаваемой информации. Эта комплексная задача разбивается на более простые задачи и распределяется по различным уровням взаимодействия, образующим иерархию. В начале 80-х годов прошлого столетия Международная организация по стандартизации (International Standardization Organization - ISO) предложило модель для этой иерархии, получившей название модели открытых взаимодействий (Open System Interconnections, OSI). Эта эталонная модель, иногда называемая стеком OSI представляет собой 7-уровневую сетевую иерархию (рис. 1). Модель содержит в себе по сути 2 различных модели: горизонтальную модель на базе протоколов, обеспечивающую механизм взаимодействия программ и процессов на различных машинах вертикальную модель на основе услуг, обеспечиваемых соседними уровнями друг другу на одной машине В горизонтальной модели двум программам требуется общий протокол для обмена данными. В вертикальной - соседние уровни обмениваются данными с использованием интерфейсов API. Сообощение формируется на самом верхнем прикладном уровне иерархии, затем подвергается преобразованиям (таким как, например, кодирование, сжатие, шифорование), разбивается на сегменты (пакеты, кадры), снабжается заголовком и т.д. При этом оно спускается вниз, уровень за уровнем, пока не достигнет самого низкого, физического уровня, после чего будет передано в сеть. На компьютере получателя происходит обратная процедура, в результате которого будет восстановлено исходное сообщение. Ниже мы рассмотрим более подробно задачи, решаемые на каждом уровне. Рисунок 1. Модель OSI Уровень 1, физический (Physical Layer). Физический уровень получает пакеты данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 и 1 бинарного потока. Эти сигналы посылаются через среду передачи на приемный узел. Механические и электрические/оптические свойства среды передачи определяются на физическом уровне и включаются: Тип кабелей и разъемов 6 Разводку контактов в разъемах Схему кодирования сигналов для значений 0 и 1 Со стороны компьютера функции физического уровня выполняются сетевыс адаптером или последовательным портом. К числу наиболее распространенных спецификаций физического уровня относятся: EIA-RS-232-C, CCITT V.24/V.28 - механические/электрические характеристики несбалансированного последовательного интерфейса. EIA-RS-422/449, CCITT V.10 - механические, электрические и оптические характеристики сбалансированного последовательного интерфейса. IEEE 802.3 – Ethernet IEEE 802.5 – Token ring Примером протокола физического уровня может служить спецификация 10Base-T технологии Ethernet (самой распространенной в нашей стране), определяющую в качестве используемого кабеля неэкранированную витую пару категории 3 с волновым сопротивлением 100 Ом, раъем RJ-45, максимальную длину кабеля 100 м, манчестрский код для представления данных в кабеле и т.д. Уровень 2, канальный (Data Link Layer) На физическом уровне просто пересылаются биты. При этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) попеременно несколькими парами взаимодействующих компьютеров, физическая среда передачи может быть занята. Поэтому одной из задач канального уровня является проверка доступности среды передачи. Другой задачей канального уровня является реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму, обрабатывая все байты кадра определенным способом и добавляя контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок не является обязательной для канального уровня, поэтому в некоторых протоколах этого уровня она отсутствует, например, в Ethernet и Frame Relay. В протоколах канального уровня, используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с совершенно определенной топологией связей, именно той топологией, для которой он был разработан. К таким типовым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся общая шина, кольцо и звезда, а также структуры, полученные из них с помощью мостов и коммутаторов. Примерами протоколов канального уровня являются протоколы Ethernet, Token Ring, FDDI, l00VG-AnyLAN. В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов. В глобальных сетях, которые редко обладают регулярной топологией, канальный уровень часто обеспечивает обмен сообщениями только между двумя соседними компьютерами, соединенными индивидуальной линией связи. Примерами протоколов «точка-точка» (как часто называют такие протоколы) могут служить широко распространенные протоколы РРР и LAP-B. 7 В таких случаях для доставки сообщений между конечными узлами через всю сеть используются средства сетевого уровня. Именно так организованы сети Х.25. Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примерами такого подхода могут служить протоколы технологий АТМ и frame relay. Уровень 3, сетевой (Network Layer) Сетевой уровень (Network layer) служит для образования единой транспортной системы, объединяющей несколько сетей, причем эти сети могут использовать совершенно различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей. Функции сетевого уровня достаточно разнообразны. Начнем их рассмотрение на примере объединения локальных сетей. Протоколы канального уровня локальных сетей обеспечивают доставку данных между любыми узлами только в сети с соответствующей типовой топологией, например топологией иерархической звезды. Это очень жесткое ограничение, которое не позволяет строить сети с развитой структурой, например, сети, объединяющие несколько сетей предприятия в единую сеть, или высоконадежные сети, в которых существуют избыточные связи между узлами. Можно было бы усложнять протоколы канального уровня для поддержания петлевидных избыточных связей, но принцип разделения обязанностей между уровнями приводит к другому решению. Чтобы с одной стороны сохранить простоту процедур передачи данных для типовых топологий, а с другой допустить использование произвольных топологий, вводится дополнительный сетевой уровень. На сетевом уровне сам термин сеть наделяют специфическим значением. В данном случае под сетью понимается совокупность компьютеров, соединенных между собой в соответствии с одной из стандартных типовых топологий и использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии. Внутри сети доставка данных обеспечивается соответствующим канальным уровнем, а вот доставкой данных между сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи сообщения даже в том случае, когда структура связей между составляющими сетями имеет характер, отличный от принятого в протоколах канального уровня. Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор - это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями, или хопов (от hop - прыжок), каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет. Наиболее часто на сетевом уровне используются протоколы: IP - протокол Internet IPX - протокол межсетевого обмена X.25 (частично этот протокол реализован на уровне 2) CLNP - сетевой протокол без организации соединений Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня. Эта проблема осложняется тем, что самый короткий путь не всегда самый лучший. Часто критерием при выборе маршрута является время передачи данных по этому маршруту; оно зависит от пропускной способности каналов связи и интенсивности трафика, которая может изменяться с течением времени. Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки, в то время как другие принимают решения на основе средних показателей за длительное время. Выбор маршрута может осуществляться и по другим критериям, например надежности передачи. 8 В общем случае функции сетевого уровня шире, чем функции передачи сообщений по связям с нестандартной структурой, которые мы сейчас рассмотрели на примере объединения нескольких локальных сетей. Сетевой уровень решает также задачи согласования разных технологий, упрощения адресации в крупных сетях и создания надежных и гибких барьеров на пути нежелательного трафика между сетями. Сообщения сетевого уровня принято называть пакетами (packets). При организации доставки пакетов на сетевом уровне используется понятие «номер сети». В этом случае адрес получателя состоит из старшей части - номера сети и младшей - номера узла в этой сети. Все узлы одной сети должны иметь одну и ту же старшую часть адреса, поэтому термину «сеть» на сетевом уровне можно дать и другое, более формальное определение: сеть - это совокупность узлов, сетевой адрес которых содержит один и тот же номер сети. На сетевом уровне определяются два вида протоколов. Первый вид - сетевые протоколы (routed protocols) - реализуют продвижение пакетов через сеть. Именно эти протоколы обычно имеют в виду, когда говорят о протоколах сетевого уровня. Однако часто к сетевому уровню относят и другой вид протоколов, называемых протоколами обмена маршрутной информацией или просто протоколами маршрутизации (routing protocols). С помощью этих протоколов маршрутизаторы собирают информацию о топологии межсетевых соединений. Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными и аппаратными средствами маршрутизаторов. На сетевом уровне работают протоколы еще одного типа, которые отвечают за отображение адреса узла, используемого на сетевом уровне, в локальный адрес сети. Такие протоколы часто называют протоколами разрешения адресов - Address Resolution Protocol, ARP. Иногда их относят не к сетевому уровню, а к канальному, хотя тонкости классификации не изменяют их сути. Примерами протоколов сетевого уровня являются протокол межсетевого взаимодействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell. Уровень 4, транспортный (Transport Layer) На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Транспортный уровень обеспечивает приложениям или верхним уровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное - способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов. Выбор класса сервиса транспортного уровня определяется, с одной стороны, тем, в какой степени задача обеспечения надежности решается самими приложениями и протоколами более высоких, чем транспортный, уровней, а с другой стороны, этот выбор зависит от того, насколько надежной является система транспортировки данных в сети, обеспечиваемая уровнями, расположенными ниже транспортного - сетевым, канальным и физическим. Так, например, если качество каналов передачи связи очень высокое и вероятность возникновения ошибок, не обнаруженных протоколами более низких уровней, невелика, то разумно воспользоваться одним из облегченных сервисов транспортного уровня, не обремененных многочисленными проверками, квитированием и другими приемами повышения надежности. Если же транспортные средства нижних уровней изначально очень ненадежны, то целесообразно обратиться к наиболее развитому сервису транспортного уровня, который работает, используя максимум средств для обнаружения и устранения ошибок, - с помощью предварительного установления логического соединения, контроля доставки сообщений по контрольным суммам и циклической нумерации пакетов, установления тайм-аутов доставки и т. п. 9 Как правило, все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети - компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно привести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell. Протоколы нижних четырех уровней обобщенно называют сетевым транспортом или транспортной подсистемой, так как они полностью решают задачу транспортировки сообщений с заданным уровнем качества в составных сетях с произвольной топологией и различными технологиями. Остальные три верхних уровня решают задачи предоставления прикладных сервисов на основании имеющейся транспортной подсистемы. Наиболее распространенные протоколы транспортного уровня включают: TCP - протокол управления передачей NCP - Netware Core Protocol SPX - упорядоченный обмен пакетами TP4 - протокол передачи класса 4 Уровень 5, сеансовый (Session Layer) Сеансовый уровень обеспечивает управление диалогом: фиксирует, какая из сторон является активной в настоящий момент, предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все с начала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе. Уровень 6, уровень представления (Presentation Layer) Представительный уровень имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC. На этом уровне может выполняться сжатие, шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP. Уровень 7, прикладной (Application Layer) Прикладной уровень отвечает за доступ приложений в сеть. Задачами этого уровня является перенос файлов, обмен почтовыми сообщениями и управление сетью. Прикладной уровень – это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например, с помощью протокола электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением (message). Существует очень большое разнообразие служб прикладного уровня. К числу наиболее распространенных протоколов верхних уровней относятся: X.400 - электронная почта Telnet SMTP - простой протокол почтового обмена CMIP - общий протокол управления информацией 10 SNMP - простой протокол управления сетью NFS - сетевая файловая система FTAM - метод доступа для переноса файлов Сюда также относятся протоколы реализации файловых служб: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP – протокол переноса файлов и TFTP – протокол упрощенного переноса файлов, входящие в стек TCP/IP. Рекомендации IEEE 802 IEEE (Institute of Electrical and Electronics Engineers) является профессиональной организацией (США), определяющей стандарты, связанные с сетями и другими аспектами электронных коммуникаций. Группа IEEE 802.X содержит описание сетевых спецификаций и содержит стандарты, рекомендации и информационные документы для сетей и телекоммуникаций. Публикации IEEE являются результатом работы различных технических, исследовательских и рабочих групп. Рекомендации IEEE связаны главным образом с 2 нижними уровнями модели OSI физическим и канальным. Эти рекомендации делят канальный уровень на 2 подуровня нижний - MAC (управление доступом к среде) и верхний - LLC (управление логическим каналом). Часть стандартов IEEE (802.1 - 802.11) была адаптирована ISO (8801-1 - 8802-11, соответственно), получив статус международных стандартов. В литературе, однако, гораздо чаще упоминаются исходные стандарты, а не международные (IEEE 802.3, а не ISO/IEC 88023). Ниже приведено краткое описание стандартов IEEE 802.X: 802.1 - задает стандарты управления сетью на MAC-уровне, включая алгоритм Spanning Tree. Этот алгоритм используется для обеспечения единственности пути (отсутствия петель) в многосвязных сетях на основе мостов и коммутаторов с возможностью его замены альтернативным путем в случае выхода из строя. Документы также содержат спецификации сетевого управления и межсетевого взаимодействия. 802.2 - определяет функционирование подуровня LLC на канальном уровне модели OSI. LLC обеспечивает интерфейс между методами доступа к среде и сетевым уровнем. Прозрачные для вышележащих уровней функции LLC включают кадрирование, адресацию, контроль ошибок. Этот подуровень используется в спецификации 802.3 Ethernet, но не включен в спецификацию Ethernet II. 802.3 - описывает физический уровень и подуровень MAC для сетей с немодулированной передачей (baseband networks), использующих шинную топологию и метод доступа CSMA/CD. Этот стандарт был разработан совместно с компаниями Digital, Intel, Xerox и весьма близок к стандарту Ethernet. Однако стандарты Ethernet II и IEEE 802.3 не полностью идентичны и для обеспечения совместимости разнотипных узлов требуется применять специальные меры. 802.3 также включает технологии Fast Ethernet (100BaseTx, 100BaseFx, 100BaseFl). 802.5 - описывает физический уровень и подуровень MAC для сетей с кольцевой топологией и передачей маркеров. Этому стандарту соответствуют сети IBM Token Ring 4/16 Мбит/с. 802.8 - отчет TAG по оптическим сетям. Документ содержит обсуждение использования оптических кабелей в сетях 802.3 - 802.6, а также рекомендации по установке оптических кабельных систем. 802.9 - отчет рабочей группы по интеграции голоса и данных (IVD). Документ задает архитектуру и интерфейсы устройств для одновременной передачи данных и голоса по одной линии. Стандарт 802.9, принятый в 1993 году, совместим с ISDN и использует подуровень LLC, 11 определенный в 802.2, а также поддерживает кабельные системы UTP (неэкранированные кабели из скрученных пар). 802.10 - в этом отчете рабочей группы по безопасности ЛВС рассмотрены вопросы обмена данными, шифрования, управления сетями и безопасности в сетевых архитектурах, совместимых с моделью OSI. 802.11 - имя рабочей группы, занимающейся спецификацией 100BaseVG Ethernet 100BaseVG. Комитет 802.3, в свою очередь, также предложил спецификации для Ethernet 100 Мбит/с Отметим, что работа комитета 802.2 послужила базой для нескольких стандартов (802.3 802.6, 802.12). Отдельные комитеты (802.7 - 802.11) выполняют в основном информационные функции для комитетов, связанных с сетевыми архитектурами. Отметим также, что разные комитеты 802.X задают разный порядок битов при передаче. Например, 802.3 (CSMA/CD) задает порядок LSB, при котором передается сначала наименее значимый бит (младший разряд), 802.5 (token ring) использует обратный порядок - MSB, как и ANSI X3T9.5 - комитет, отвечающий за архитектурные спецификации FDDI. Эти два варианта порядка передачи известны как "little-endian" (канонический) и "big-endian" (некононический), соответственно. Эта разница в порядке передачи имеет существенное значение для мостов и маршрутизаторов, связывающих различные сети. Сетезависимые и сетенезависимые уровни Функции всех уровней модели OSI могут быть отнесены к одной из двух групп: либо к функциям, зависящим от конкретной технической реализации сети, либо к функциям, ориентированным на работу с приложениями. Три нижних уровня - физический, канальный и сетевой - являются сетезависимыми, то есть протоколы этих уровней тесно связаны с технической реализацией сети и используемым коммуникационным оборудованием. Например, переход на оборудование FDDI означает полную смену протоколов физического и канального уровней во всех узлах сети. Три верхних уровня - прикладной, представительный и сеансовый - ориентированы на приложения и мало зависят от технических особенностей построения сети. На протоколы этих уровней не влияют какие бы то ни было изменения в топологии сети, замена оборудования или переход на другую сетевую технологию. Так, переход от Ethernet на высокоскоростную технологию l00VG-AnyLAN не потребует никаких изменений в программных средствах, реализующих функции прикладного, представительного и сеансового уровней. Транспортный уровень является промежуточным, он скрывает все детали функционирования нижних уровней от верхних. Это позволяет разрабатывать приложения, не зависящие от технических средств непосредственной транспортировки сообщений. §3. Обзор стека протоколов TCP/IP 3.1. Общая характеристика TCP/IP Transmission Control Protocol/Internet Protocol (TCP/IP) - это промышленный стандарт стека протоколов, разработанный для глобальных сетей. Стандарты TCP/IP опубликованы в серии документов, названных Request for Comment (RFC). Документы RFC описывают внутреннюю работу сети Internet. Некоторые RFC описывают сетевые сервисы или протоколы и их реализацию, в то время как другие обобщают условия применения. Стандарты TCP/IP всегда публикуются в виде документов RFC, но не все RFC определяют стандарты. Стек был разработан по инициативе Министерства обороны США (Department of Defence, DoD) в 80-е годы XX столетия для связи экспериментальной сети ARPAnet с другими сателлитными сетями как набор общих протоколов для разнородной вычислительной среды. Сеть ARPA поддерживала разра- 12 ботчиков и исследователей в военных областях. В сети ARPA связь между двумя компьютерами осуществлялась с использованием протокола Internet Protocol (IP), который и по сей день является одним из основных в стеке TCP/IP и фигурирует в названии стека. Большой вклад в развитие стека TCP/IP внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. Широкое распространение ОС UNIX привело и к широкому распространению протокола IP и других протоколов стека. На этом же стеке работает всемирная информационная сеть Internet, чье подразделение Internet Engineering Task Force (IETF) вносит основной вклад в совершенствование стандартов стека, публикуемых в форме спецификаций RFC. Итак, лидирующая роль стека TCP/IP объясняется следующими его свойствами: это наиболее завершенный стандартный и в то же время популярный стек сетевых протоколов, имеющий многолетнюю историю. почти все большие сети передают основную часть своего трафика с помощью протокола TCP/IP. это метод получения доступа к сети Internet. этот стек служит основой для создания intranet-корпоративной сети, использующей транспортные услуги Internet и гипертекстовую технологию WWW, разработанную в Internet. все современные операционные системы поддерживают стек TCP/IP. это гибкая технология для соединения разнородных систем как на уровне транспортных подсистем, так и на уровне прикладных сервисов. это устойчивая масштабируемая межплатформенная среда для приложений клиент-сервер. Структура стека TCP/IP и краткая характеристика протоколов Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно. Структура протоколов TCP/IP приведена на рисунке 3.1. Протоколы TCP/IP делятся на 4 уровня. Рисунок 3.1. – Стек TCP/IP. Самый нижний (уровень IV) соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных сетей это Ethernet, Token Ring, 13 FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальных сетей - протоколы соединений "точкаточка" SLIP и PPP, протоколы территориальных сетей с коммутацией пакетов X.25, Frame Relay. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня. Обычно при появлении новой технологии локальных или глобальных сетей она быстро включается в стек TCP/IP за счет разработки соответствующего RFC, определяющего метод инкапсуляции пакетов IP в ее кадры. Следующий уровень (уровень III) - это уровень межсетевого взаимодействия, который занимается передачей пакетов с использованием различных транспортных технологий локальных сетей, территориальных сетей, линий специальной связи и т. п. В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP является дейтаграммным протоколом, то есть он не гарантирует доставку пакетов до узла назначения, но старается это сделать. К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом - источником пакета. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п. Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и IP, и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами. Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня. К ним относятся такие широко используемые протоколы, как протокол копирования файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы доступа к удаленной информации, такие как WWW и многие другие. Остановимся несколько подробнее на некоторых из них. Протокол пересылки файлов FTP (File Transfer Protocol) реализует удаленный доступ к файлу. Для того чтобы обеспечить надежную передачу, FTP использует в качестве транспорта протокол с установлением соединений - TCP. Кроме пересылки файлов протокол FTP предлагает и другие услуги. Так, пользователю предоставляется возможность интерактивной работы с удаленной машиной, например, он может распечатать содержимое ее каталогов. Наконец, FTP выполняет аутентификацию пользователей. Прежде, чем получить доступ к файлу, в соответствии с протоколом пользователи должны сообщить свое имя и пароль. Для доступа к публичным каталогам FTP-архивов Internet парольная аутентификация не требуется, и ее обходят за счет использования для такого доступа предопределенного имени пользователя Anonymous. В стеке TCP/IP протокол FTP предлагает наиболее широкий набор услуг для работы с файлами, однако он является и самым сложным для программирования. Приложения, которым не требуются все возможности FTP, могут использовать другой, более экономичный протокол - простейший протокол пересылки файлов TFTP (Trivial File Transfer Protocol). Этот протокол реали- 14 зует только передачу файлов, причем в качестве транспорта используется более простой, чем TCP, протокол без установления соединения - UDP. Протокол telnet обеспечивает передачу потока байтов между процессами, а также между процессом и терминалом. Наиболее часто этот протокол используется для эмуляции терминала удаленного компьютера. При использовании сервиса telnet пользователь фактически управляет удаленным компьютером так же, как и локальный пользователь, поэтому такой вид доступа требует хорошей защиты. Поэтому серверы telnet всегда используют как минимум аутентификацию по паролю, а иногда и более мощные средства защиты, например, систему Kerberos. Протокол SNMP (Simple Network Management Protocol) используется для организации сетевого управления. Изначально протокол SNMP был разработан для удаленного контроля и управления маршрутизаторами Internet, которые традиционно часто называют также шлюзами. С ростом популярности протокол SNMP стали применять и для управления любым коммуникационным оборудованием - концентраторами, мостами, сетевыми адаптерами и т.д. и т.п. Проблема управления в протоколе SNMP разделяется на две задачи. Первая задача связана с передачей информации. Протоколы передачи управляющей информации определяют процедуру взаимодействия SNMP-агента, работающего в управляемом оборудовании, и SNMP-монитора, работающего на компьютере администратора, который часто называют также консолью управления. Протоколы передачи определяют форматы сообщений, которыми обмениваются агенты и монитор. Вторая задача связана с контролируемыми переменными, характеризующими состояние управляемого устройства. Стандарты регламентируют, какие данные должны сохраняться и накапливаться в устройствах, имена этих данных и синтаксис этих имен. В стандарте SNMP определена спецификация информационной базы данных управления сетью. Эта спецификация, известная как база данных MIB (Management Information Base), определяет те элементы данных, которые управляемое устройство должно сохранять, и допустимые операции над ними. 3.2. Протоколы IPv4 и IPv6 Основной целью протоколов сетевого взаимодействия IP является обеспечение возможности связи хостов сети Интернет через множество различных сетей различных конфигураций. Для этого протокол IP реализуется в конечных узлах, а также в маршрутизаторах, обеспечивающих связь между сетями. Маршрутизаторы обеспечивают работу в сетях, имеющих следующие различия: Схемы адресации. Сети могут различные адресации узлов. Например, в локальных сетях IEEE 802 для устройств предусмотрены 16- и 48-битовые двоичные адреса. Сети с коммутацией пакетов X.25 используют 12-разрядные десятичные адреса, закодированные по 4 бита на разряд, в результате чего получается 48-битовый адрес. Максимальный размер пакета. Может оказаться необходимым разделить пакеты на части (фрагментировать), если сеть не полддреживает данный размер пакетов. Например, в Ethernet максимальным размером пакета является 1500 байт, в сетях X.25 – 1000 байт. Интерфейсы. Аппаратные и программные интерфейсы различных сетей могут отличаться. Степень надежности. Разные сетевые службы обеспечивают разный уроыень надежности – от надежного виртуального сквозного канала до простой широковешательной рассылки пакетов. Рассмотрим передачу данных от системы A одного узла сети к другой системе узла B. Уровень IP узла А получает блоки данных от вышестоящего протокола (TCP, UDP, ICMP и др.). На уровне IP к нему присоединяется заголовок, который описывает глобальный межсетевой адрес B. Полученный пакет называется пакетом IP. Далее IP выяясняет, что адрес находится в другой сети. Поэтому следующим шагом пакет должен быть переслан маршрутизатору. Для этого пакет передается ниже, на уровень LLC (Logical Link Control – управление логическим соединением) с соответствующей информацией адресации. LLC создает протокольную единицу 15 данных LLC, которая передается еще ниже, на уровень MAC (Nedia Access Control – упраление доступом к среде). На уровне MAC создается пакет MAC, заголовок которого содержит адрес маршрутизатора. Пакет пересылается маршрутизатору убирает заголовки и концевики пакета и LLC, а затем анализирует заголовок IP, чтобы определить адрес конечного получателя. Далее маршрутизатор определяет, находится ли адрес получателя в сети, обслуживаемой данным маршрутизатором, либо путь к нему лежит через другие сети. Во втором случае, пакет снова спускается на более низкий уровень, снабжается новым заголовком и переправляется следующему маршрутизатору и т.д., пока не достигнет конечного узла B. Протокол IP не отвечает за гарантированную доставку пакета, и если где-нибудь на промежуточном узле пакет будет отброшен, то это не вызовет никаких ответных сообщений. За доставку пакета отвечает протокол TCP, находящийся выше, который отвечает за установку двухсторонней связи с узлом получаетеля и инициирует отправку ответа. Поскольку, IP-пакеты могут доставляться по различным маршрутам, то порядок их доставки может быть изменен. Если за установленный интервал времени какой-то пакет не был доставлен, то уровень TCP узла В отправляет сообщение узлу А, который повторяет отправку потерянного пакета. На данный момент межсетевое взаимодействие в интернете происходит по разработанному более 30 лет назад IP-протоколу четвертой версии (IPv4), который имеет множество недостатков. Главный из них — недостаточный объем адресного пространства и неэффективный способ распределения адресов. Именно по этой причине абсолютно очевидно, что переход на более совершенный стандарт IPv6 неизбежен. Новый стандарт позволит выделить отдельный IP-адрес для каждого объекта в физическом мире, будь то веб-камера или мобильный телефон. Уже сегодня IP-адресов катастрофически не хватает, так что рано или поздно придется обязательно переходить на шестую версию интернет-протокола. Однако, внедрение нового протокола требует изменения всего программного и аппаратного обеспечения, функционирующего сейчас в Сети. Новый протокол наиболее активно внедряется в странах азиатского региона. Дльше всех в практической реализации IPv6 продвинулась Япония, Южная Корея и Китай. Крупнейшая в мире сеть IPv6 была внедренав Китае, правительство которого выделило в 2005 году бюджет $160 млн. В Японии к разработке стандартов подключились крупные корпорации и правительство. Европейский союз не против перенять передовой опыт азиатов. В частности, южно-корейский министр информации министр и коммуникации заявил, что достигнута договоренность с Евросоюзом о совместной разработке протоколов и приложений под IPv6. Еврокомиссия за последние годы выделила около 85 млн. евро на разработку приложений для IPv6. По оценкам экспертов, примерно столько же потратили европейские фирмы. Тем не менее, как считает президент Всемирного форума IPv6 Латиф Ладид, Европа как минимум на два года отстала от той же Южной Кореи по темпам внедрения IP. Формат заголовка IPv4 На рис.3.1. представлен формат заголовка IPv4. Этот заголовок имеет следующие поля: Версия (4 бита). В данном случае 4. Длина заголовка IP (Internet Header length - IHL) (4 бита). Длина заголовка в 32битовых словах. Минимальное значение равно 5. Тип сервиса (8 бит). Содержит информацию о приоритете данного пакета модулям IP конечных узлов и маршрутизаторов. Общая длина (16 бит). Общая длина пакета в байтах. Таким образом, размер IP-пакета версии 4 не может превышать 216 байт=64 кб. Идентификатор пакета (16 бит). Порядковый номер, присваиваемый пакету, для правильной сборки сообщения на пункте назначения. Флаги (3 бита). Пока используются только два бита. Бит More (еще) указывает, является ли данный пакет последним в сообщении. Второй бит Not Fragmented запрещает фрагментацию пакета. 16 Смещение пакета (13 бит). Указывает в 64-битовых единицах смещение данного пакета в исходном сообщении. Время жизни (8 бит). Указывает в секундах, как долго данный пакет может находится в сети. Максимальное значение равно t 28 ñåê. 256 ñåê. Каждый марширутизатор, принмая пакет, должен уменьшить значение, по-крайней мере на 1. Поэтому, данный счетчик больше напоминает счетчик транзитов. Протокол (8 бит). Указывает протокол более высокого уровня, т.е. указывает на тип заголовка, следующего за заголовком IP. Контрольная сумма заголовка (16 бит). Контрольная сумма, применяемая только в заголовку. Поскольку, в ходе следования некоторые поля заголовка могут быть изменены (адреса, времени жизни и т.д.), то на каждом промежуточном пункте эта сумма пересчитывается повторно. Адрес источника (32 бита). Кодируется, чтобы иметь возможность выделить IP-адрес хоста и маску подсети. Адрес получателя (32 бита). Аналогично предыдущему полю. Опции переменной длины. Это дополнительные параметры, переданные источником. например, метка секретности, исходная маршрутизация, метки даты-времени. Поле заполнения (переменной длины). Дополняет заголовок до длины кратной 32 битам. Адресация в IPv6 Система адресации IPv6 существенно отличается от системы адресации IPv4. Адреса назначения и источника в IPv6 имеют большую длину: 128 бит или 16 байт. Это дает возможность пронумеровать огромное количество узлов: 340 282 366 920 938 463 463 374 607 431 762 211 456 или примерно 1015 адресов на каждого жителя Земли. Выбранная длина IP-адреса должна надолго снять проблему дефицита IP-адресов. Кроме того, в версии IPv6 предполагается использование протокола DHCP, позволяющего разделять одни и те же адреса между большим количеством узлов сети. Использование proxy-серверов, подменяющих внутренние адреса узлов сети одним собственным IP-адресом, также направлено на снижение потребности в IPадресах. Однако, главной целью изменения системы адресации было не механическое увеличение разрядности адреса, а обеспечение возможности увеличения числа уровней иерархии в адресе. Вместо прежних двух уровней (номер сети и номер узла) в IPv6 предлагается использовать 5 уровней, включая двухуровневую идентификацию провайдеров, и трехуровневую - абонентов сети. 010 Идентификатор Идентификатор Идентификатор Идентификатор провайдера абонента подсети узла Предполагается также, что младшие 6 байт, которые содержат идентификатор узла, представляют собой МАС-адрес сетевого адаптера (как это уже давно делается в протоколе IPX), что обеспечит возможность автоконфигурации стека. В версии IPv6 не вводятся классы адресов сетей, вместо этого предполагается использовать бесклассовую технологию CIDR (Classless Inter-Domain Routing). Эта технология заключается в назначении каждому провайдеру непрерывного диапазона в пространстве IP-адресов. При таком подходе все адреса сетей каждого провайдера имеют общий префикс, так что маршрутизация на магистралях Internet может осуществляться на основе префиксов, а не полных адресов всех сетей конечных абонентов. Локализация адресов позволяет уменьшить объем таблиц в маршрутизаторах всех уровней, а, следовательно, ускорить работу маршрутизаторов и повысить пропускную способность Internet. Деление IP-адреса на номер сети и номер узла в техно- 17 логии CIDR происходит не на основе нескольких старших бит (класса сети А, В или С), а на основе маски переменной длины, назначаемой провайдером. Технология CIDR уже успешно используется в текущей версии IPv4 и поддерживается такими протоколами маршрутизации как OSPF, RIP-2, BGP4. Предполагается , что эти же протоколы будут работать и с IPv6. Идея CIDR требует, в общем случае, перенумерации сетей. Однако эта процедура сопряжена с определенными временными и материальными затратами. Например, в одной из публикаций приводятся данные о том, что для перенумерации сети, состоящей из 100 компьютеров, потребовалось 3 недели работы и 5-6 высокооплачиваемых специалистов. В качестве стимулов для проведения перенумерации сети предлагается введение платы за маршрутизации - оплата за строку маршрутизации или за обновление информации в маршрутизаторах сети, или же введение оплаты за каждый адрес узла. Техника CIDR помогает также решить известную проблему фрагментации адресного пространства IPv4. Например, очень редко абонент использует все 254 адреса сети класса С или 65 534 адреса сети класса В. Часть адресов узлов пропадает. Требование оплаты каждого адреса узла поможет пользователю решиться на перенумерацию, с тем, чтобы получить ровно столько адресов, сколько ему нужно. Как и в версии IPv4, в IPv6 вводится несколько типов адресов. Unicast - индивидуальный адрес. Такой адрес определяет отдельный узел - компьютер или порт маршрутизатора. Индивидуальные адреса подразделяются на несколько подтипов: Global - основной тип адресов в Internet; Link-local и Site-local - используются в сетях, не подключенных к Internet. Поле идентификатора провайдера заполняется нулями, что дает возможность при подключении к Internet сохранять эти адреса; Compatible - обеспечивают совместимость с адресами IPv4, IPX, NSAP. Multicast (one-to-many) - адрес набора узлов, возможно в различных физических сетях. Копии пакета должны быть доставлены каждому узлу набора, используя аппаратные возможности групповой или широковещательной доставки, если это возможно. В протоколе IPv6 отсутствует понятие широковещательного адреса (broadcast), эти адреса реализуются с помощью адресов multicast. Поддержка мультивещания - важная часть стратегии модернизации протокола IP, так как это свойство необходимо для поддержки экономного в отношении пропускной способности сети распространения аудио- и видео- информации многочисленным абонентам. Anycast (one-to-nearest) - адрес набора узлов. Обозначает группу узлов, которые имеют общий адрес, но в отличие от мультивещания пакет должен быть доставлен любому, лучше ближайшему, члену группы. Этот тип адресов используется для того, чтобы абонент мог без особых сложностей обеспечить прохождение своего трафика через маршрутизаторы определенных провайдеров. В IPv6 предполагается широкое использование маршрутизации от источника (Source Routing), при которой узел-источник задает полный маршрут прохождения пакета через сети. Такая техника освобождает маршрутизаторы от работы по просмотру адресных таблиц при выборе следующего маршрутизатора и тем самым повышает пропускную способность Internet. В последовательности адресов, задаваемых узлом-отправителем по алгоритму Source Routing, наряду с адресами маршрутизаторов типа unicast, можно использовать адреса anycast, которые определяют все маршрутизаторы одного провайдера. Синтаксически адрес anycast не отличим от адреса unicast. Схема назначения адресов состоит в следующем. Каждому порту маршрутизатора наряду с уникальным адресом присваивается еще один, общий для всех портов и маршрутизаторов данного провайдера адрес, который и является anycast-адресом. Для обеспечения плавного перехода от версии IPv4 к версии IPv6 введен специальный тип адресов - IPv4-compatible. Такие адреса содержат нули в старших 96 разрядах, а в младшие 32 разряда помещается 4-х байтовый адрес версии IPv4. Такие адреса легко могут транслироваться в обе стороны. Это позволит на начальном этапе внедрения IPv6 решить проблему совместимости частей Internet, работающих по IPv6, с частями Internet, пока поддерживающими только 18 версию IPv4. Для этого узлам в "островках" IPv6 будут присваиваться адреса типа IPv4compatible. Для передачи трафика IPv6 через те части Internet, маршрутизаторы которых пока не поддерживают версию IPv6, будет использоваться техника туннелирования - пришедший пакет IPv6 будет упаковываться пограничным маршрутизатором в пакет формата IPv4, при этом в качестве адреса будет использоваться младшая часть адреса из пакета IPv6. Формат заголовка IPv6 Главной целью изменения формата заголовка в IPv6 было снижение накладных расходов, то есть уменьшение объема служебной информации, передаваемой с каждым пакетом. Для этого в новом IP было введены понятия основного и дополнительного заголовков. Основной заголовок присутствует всегда, а дополнительные являются опциональными. Основной заголовок имеет фиксированную длину в 40 байт и имеет следующий формат: 0 4 Версия 12 Приоритет Длина полезного груза 16 31 Метка потока Следующий заголовок Предельное число транзитов Адрес источника Адрес получателя Поле "Следующий заголовок" (Next Header) соответствует по назначению полю Protocol в версии IPv4 и определяет тип заголовка, который следует за данным. Каждый следующий дополнительный заголовок также содержит поле Next Header. Если IP-пакет не содержит дополнительных заголовков, то в этом поле будет значение, закрепленное за протоколами TCP, UDP, RIP, OSPF или другими, определенными в стандарте IPv4. В предложениях по IPv6 фигурируют пока следующие типы дополнительных заголовков: Routing - заголовок для указания полного маршрута при маршрутизации от источника (Source Routing) Fragmentation - содержит информацию о фрагментации IP-пакета. Поле обрабатывается только в конечных узлах. Authentication - заголовок содержит информацию, необходимую для аутентификации конечных узлов и обеспечения целостности содержимого IP-пакетов. Encapsulation - заголовок содержит информацию, необходимую для обеспечения конфиденциальности передаваемых данных путем выполнения шифрации и дешифрации. Hop-by-Hop Option - специальные параметры, используемые при выполнении обработки пакетов по алгоритму Hop-by-Hop Destination Options - заголовок содержит дополнительную информацию для узла назначения. Поскольку маршрутизаторы обрабатывают только основные заголовки (почти все дополнительные заголовки обрабатываются только в конечных узлах.), то это увеличивает их производительность и тем самым пропускную способность сети. Напомним, что в IPv4 все опции обрабатываются маршрутизаторами. Наличие большого количества дополнительных необязательных параметров позволяет расширить функциональность протокола IP. 19 Взаимодействие IPv6 и IPv4 На сегодняшний день известно три основных способа обеспечения взаимодействия IPv6 и IPv4: туннелирование, двойной стек и трансляция протоколов. Туннелирование Суть туннелирования состоит в том, что пакет данных IPv6 внедряется (инкапсулируется) в поле данных пакета IPv4. Получившийся в результате этой операции пакет IPv4 содержит в себе два заголовка, IPv6 и IPv4, и может передаваться через обычные IPv4-сети. Он доставляется к узлу (хосту) декапсуляции, где заголовок IPv4 отбрасывается, а данные передаются к устройству, использующему IPv6. В зависимости от того, где происходит инкапсуляция и декапсуляция, выделяют следующие виды туннелирования: "Маршрутизатор – Маршрутизатор"; "Хост – Маршрутизатор"; "Маршрутизатор – Хост". Туннель, используемый в процессе передачи данных, должен иметь точку входа и точку выхода. Точка входа находится на границе инфраструктуры IPv4, а потому определить ее достаточно легко. Точка выхода может задаваться инкапсулятору как вручную (в этом случае туннелирование называется конфигурируемым), так и автоматически (так называемое "автоматическое туннелирование"). Во втором подходе декапсулятору присваивается совместимый IPv4/IPv6 адрес, в котором адрес IPv4 встроен в последние 32 бита адреса IPv6. Остаток IPv6адреса в этом случае заполняется нулями. Двойной стек Реализация технологии двойного стека предполагает поддержку устройством (узлом), имеющим доступ в Интернет, и протокола IPv6, и протокола IPv4. При этом адрес IPv4, приписанный узлу, должен быть уникальным. Поэтому к моменту исчерпания адресного пространства в IPv4 важно, чтобы внедрение новой технологии находилось на таком уровне, который позволял бы большинству устройств взаимодействовать друг с другом, используя только IPv6-адреса. Трансляция протоколов Трансляция протоколов заключается в преобразовании пакетов одной версии протокола в пакеты другой по определенным правилам. Она может осуществляться несколькими способами. Первый из них состоит в использовании протокол-шлюзов, которые размещаются на границах между IPv6-сетями и IPv4-сетями. Кроме того, трансляция может осуществляться с помощью транспортного ретранслятора, который обрабатывает в передаваемом пакете данных IPзаголовки и заголовки транспортного уровня. Наконец, трансляция протоколов возможна путем их преобразования на прикладном уровне через прокси-сервер. Таким образом, существует несколько приемлемых способов совмещения протоколов IPv4 и IPv6. Однако интернет-сообщество пока еще не решило, какой из них наиболее удобен и позволит обеспечить безболезненный переход к использованию новой технологии. IPv6 и DNS 20 Еще одна проблема, связанная с внедрением IPv6, – ее несовместимость с DNS, которая используется сегодня в Интернете. Существование DNS (Domain Name System) избавляет рядового пользователя от необходимости задумываться о числовых IP-адресах. Она позволяет присваивать любому IP-адресу символьное имя (домен). Преобразование символьного имени в числовое и наоборот осуществляется DNS-серверами. На них содержится информация о каждом домене. Она представлена в виде ресурсных записей, каждая из которых принадлежит конкретному доменному имени и содержит ряд сведений о нем, в том числе его IP-адрес. До начала внедрения IPv6 существовало 20 типов таких записей. Они относились к 32-разрядным IP-адресам (так называемые записи "A"), что делало DNS и IPv6 несовместимыми. Однако затем был определен новый тип ресурсной записи "AAAA", который служит для хранения 128-битного IPv6адреса. Сам адрес определен в информационной части этой записи и в виде имени представляется в специально созданном домене ip6.int. Это имя выглядит как набор символов, разделенных точками, и заканчивается суффиксом ip6.int. Клиент, направляющий с устройства запросы на DNS-сервер, должен уметь распознавать записи как об адресах IPv4, так и об адресах IPv6. Получив запрос, DNS-сервер определяет тип ресурсной записи (A или AAAA) и отправляет ее устройству. Распознав запись, устройство выбирает для передачи данных либо протокол IPv4, либо протокол IPv6. При этом, когда IPv4-совместимый адрес назначается какому-либо узлу, в DNS создается две ресурсных записи: AAAA и A. Первая отображает этот адрес в 128-битном формате, а вторая – в 32-битном. Это позволяет устройствам, использующим только протокол IPv6, получать IPv6-адреса, а узлам, работающим только на IPv4 – IPv4 адреса. Одним словом, для полной совместимости с IPv6 DNS требует серьезной перестройки. IPv6 в России Еще в ноябре 1999 года RIPE NCC (Регистратор IP адресов в Европе) выдал блок адресов SubTLA (Sub Top Label Aggregation Block) одному из крупнейших российских Интернет сервис-провайдеров - академической исследовательской сети FREEnet. Это позволило ему уже в ближайшее время начать предоставление клиентам сети услуги по IPv6. А в 2003 году Российский НИИ Развития Общественных Сетей (РосНИИРОС), являющийся оператором опорной научно-образовательной сети RBNet, предоставил возможность абонентам сети воспользоваться всеми преимуществами расширенной функциональности новой, шестой версии протокола IP (IPv6). Это стало возможным благодаря заключению пиринговых соглашений с сетью GEANT (Стокгольм), сетями Abilene (Internet2) и ASNET. Ввели также поддержку IPv6 и RBNet (2001 год), RUNnet (2003 год), 2004 г. - ELTEL и NLine. Для интеграции российских IPv6-сетей в глобальную IPv6-инфраструктуру в 2000 году в Москве была создана система IPv6 eXchange, позволяющая обмениваться IPv6-трафиком любым телекоммуникационным операторам. Впервые связь с зарубежными сетями была реализована в апреле 2001 года. В настоящее время пиринговые соглашения заключены с сетями GEANT, Abilene и ASNET (через Starlight - Чикаго), а также соглашение о сотрудничестве с NORDUNet, что обеспечивает взаимодействие российских и международных научнообразовательных сетей с использованием протокола IPv6. При переходе к новой версии протокола IP на магистральных участках научно-образовательных сетей реализована архитектура с двойным стеком IPv4/IPv6 для обеспечения обратной совместимости с доминирующим сейчас в Интернете протоколом IPv4. Это позволяет расширять абонентскую базу. В декабре 2004 года "Корбина Телеком", российский универсальный оператор связи, приступила к реализации в Москве проекта "Интернет2", одной из отличительных особенностей которого является использование протокола передачи данных IPv6. Проекты по внедрению на сетях провайдеров сети Интернет передовых разработок такого рода реализуются во многих странах мира, но в России "Корбина Телеком" является первой компанией, приступившей к практической реализации "Интернет2".Клиентов "настоящей" сети Интернет2 у компании сегодня не так много – несколько десятков крупных корпоративных 21 пользователей. Зато тех, кто использует обычный Интернет с элементами Интернет2 (а так построена вся сеть "Корбины"), — десятки тысяч. А если посчитать количество компьютеров в сети, то уже около сотни тысяч. Кроме того, «Корбина» готова вложить большие денежные средства в создание сетей нового поколения в 45 регионах России. Все больше разработчиков телекоммуникационных услуг и оборудования включают поддержку IPv6 в свою продукцию. Так, например операторы мобильных сетей готовятся к внедрению IPv6 в свою структуру. Это связано с планируемым в ближайшем будущем ростом числа мобильных приборов с выходом в Интернет. Особенность современного этапа внедрения новой версии Интернет-протокола в России это завершение периода ее апробации в научно-образовательных сетях и переход к промышленному использованию в сетях общего пользования. Поэтому в России наиболее подготовленным к переходу на IPv6 сегментом является образование. Созданы научно-образовательные сети (FREENet, RBNet, RUNNet). Среди таких некоммерческих сетей можно выделить проект MIRNet при сети МГУ. Это проект сотрудничества России и США в сфере разработки новых сетевых решений. На сегодняшний день по количеству выделенных префиксов (блоков IPv6-адресов) Россия занимает 19-е место в Европе и 29-е место в мире. §4. Математические основы криптографии. 4.1. Криптографические примитивы. В основе блочных и потоковых шифров лежит ряд простых криптографических преобразований, называемых криптографическими примитивами. 4.1.1. Подстановки В этом, наиболее простом методе символы шифруемого текста заменяются другими символами, взятыми из одного (одно- или моноалфавитная подстановка) или нескольких (много- или полиалфавитная подстановка) алфавитов. Самой простой разновидностью является прямая замена, когда буквы шифруемого сообщения заменяются другими буквами того же самого или некоторого другого алфавита. Рассмотрим пример. Таблица 2 - Таблица простой замены Символы шифруемого текста А Б В Г Д Е Ж З И Й К Л М Н О П Заменяющие символы С П Х Л Р З Э М А Ы Я Д Ю Т Г Ж Символы шифруемого текста Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я Заменяющие символы Н Й О Ц Б Ф У К Ч Ш Щ Ь И Ъ Е В Используя эту таблицу зашифруем слово криптография. Получим: янажоглнсбав. Такой шифр имеет низкую стойкость. Зашифрованный текст имеет те же статистические характеристики, что и исходный. Поэтому проведя статистический анализ повторяемости отдельных символом так, как это сделал Шерлок Холмс в романе Конана Дойля «Тайна пляшущих человечков», можно восстановить таблицу подстановок. Поэтому простую замену в настоящее время используют редко и лишь в тех случаях, когда шифруемый текст короток. 4.1.2. Перестановки 22 Этот метод заключается в том, что символы шифруемого текста переставляются по определенным правилам внутри шифруемого блока символов. Если после замены символы сообщения превращались во что угодно, но сохраняли в шифровке свое исходное местоположение, после перестановки они там расположены еще и где угодно, что надежно защищает шифровку от атак криптологов. Пример перестановки. Зашифровать текст «встреча состоится в 16-20» с помощью перестановки N 1 2 3 4 5 6 7 8 P(N) 4 7 8 1 6 5 2 3 (первый символ переходит на 4-ю позицию, второй – на седьмую и т.д.). Длина текста равна 24. Разобьем текст на блоки по восемь символов и переставим каждый блок по- отдельности. Получим: № 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 M в с т р е ч а с о с т о и т с я в 1 6 - 2 0 Enc(M) р а в ч е с т т т с с и о о с 1 2 0 я - 6 в Получился текст «ра вчестттссиоос120я-6 и». Другим примером перестановки является запись исходного текста по строкам некоторой матрицы, а чтение его по строкам этой матрицы. Последовательность заполнения строк и чтения столбцов может быть любой и задаваться ключом. Запишем тот же текст по строкам, а прочитаем по столбцам: в с т р е ч а с о с т о и т с я в 8 - 2 0 Читаем по столбцам «вчасс8сатя-т о 2рсив0еот » Слабость шифрования простой перестановкой обуславливается тем, что при большой длине шифруемого текста в зашифрованном тексте могут появится закономерности символов ключа. Для устранения этого недостатка можно менять ключ после зашифровки определенного числа знаков. При достаточно частой смене ключа стойкость шифрования можно существенно повысить. При этом, однако, усложняется организация процесса шифрования и расшифровки. В усложненной перестановке длина переставленного текста может оказаться больше длины исходного текста. В методе DES используется расширенная перестановка следующего вида 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 В этом методе шифруемый текст разбивается на блоки по 64 бита, и каждый блок подвергается серии перестановок. Сначало выделяется первая половина блока из 32 битов – некоторый вектор X(x1, x2, ..., x32). Он подается на вход этой перестановки, и после преобразования будет получен вектор E(X) длины 48 бит. При этом 1-й бит вектора E(X) будет равен x32, второй – x1, третий – x2 и т.д. согласно таблице расширенной перестановки. 4.1.3. Гаммирование. 23 Гаммированием называется преобразование, при котором складываются посимвольно элементы двух последовательностей – исходного текста и ключевой последовательности. Если исходный текст задан в виде последовательности символов, заданных ASCII или ANSI- кодами (кодовые таблицы DOS – 861 или Windows – 1251 соответственно), которые являются числами от 1 до 255, то ключевая последовательность задается также в виде последовательности чисел от 0 до 255 и сложение с ключевой последовательностью происходит по модулю 256. Пример. Исходный текст – слово «пароль». В кодах ASNI получим «239, 224, 240, 238, 235, 252». Гамма последовательность – 174, 245, 211. Длина гаммы меньше длины текста, поэтому повторяет гамму дважды: Текст 239 224 240 238 235 252 Гамма 174 245 211 174 245 211 Шифрованное 157 213 195 156 224 207 соообщение= 256 Если шифруемый поток задается в виде битовой последовательности, то и гамма имеет вид последовательности битов, и суммирование происходит по модулю 2. Для восстановления исходной последовательности в этом случае к зашифрованному тексту необходимо еще раз прибавить ту же гамма последовательность. В методе DES на втором подшаге 48-битовый вектор, полученный путем расширенной перестановки (см. пред. раздел), суммируется с 48-битовой выборкой из 56-битового ключа K. 4.1.4. Нелинейное преобразование с помощью S-боксов Линейным называется преобразование, когда значение каждого бита зашифрованного текста определяется некоторым битом исходного текста. Линейные шифры могут быть вскрыты путем подачи на вход векторов, отличающихся в одном бите, поэтому такие преобразования не являются стойкими. Чтобы преобразование было нелинейным, необходимо чтобы изменение одного бита в исходном тексте вызывало изменение многих бит шифрованного текста. Одним из способом задания нелинейных преобразований являются S-боксы. Рассмотрим один из Sбоксов, применяемых в методе DES. В конце предыдущего раздела было указано, как получить 48-битовый вектор из одной половины шифруемого блока. После этого полученный вектор разбивается на 8 подвекторов длины 6 бит, каждый из которых подвергается преобразованию (сжатию) в 6-битовый подвектор с помощью восьми различных s-боксов. Первый s-бокс имеет вид 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Перенумеруем строки s-бокс двоичными наборами (0,0), (0,1), (1,0), (1,1), а столбцы – 4-х битовыми наборами в лексикографическом порядке. Тогда значением 6-битового вектора (x1,x2,x3,x4,x5,x6) является двоичный набор, соответствующий числу, записанному в строке с номером (x5,x6) и столбцом (x1,x2,x3,x4). Пример. Пусть входной вектор имеет вид (1, 0, 1, 0, 1, 1). Тогда номер строки m=(1, 1)=3, что соответствует 4-й строке (нумерация идет от 0), номер стролбца n=(1, 0, 1, 0)=10, что соответствует 11-у столбцу. В клетке с координатами (m+1, n+1)=(4, 11) находится число 3, равное (0,0,1,1) в двоичном представлении. Значит, S1(1, 0, 1, 0, 1, 1)= (0,0,1,1). 4.1.5. Комбинированные методы. 24 Одним из важнейших требований, предъявляемых к системе шифрования, является ее высокая стойкость. Однако повышение стойкости любого метода шифрования приводит, как правило, к существенному усложнению самого процесса шифрования и увеличению затрат ресурсов (времени, аппаратных средств, уменьшению пропускной способности и т.п.). Достаточно эффективным средством повышения стойкости шифрования является комбинированное использование нескольких различных способов шифрования, т.е. последовательное шифрование исходного текста с помощью двух или более методов. Считается, что при этом стойкость шифрования превышает суммарную стойкость составных шифров . Вообще говоря, комбинировать можно любые методы шифрования и в любом количестве, однако на практике наибольшее распространение получили следующие комбинации: 1) подстановка + гаммирование; 2) перестановка + гаммирование; 3) подстановка + перестановка. Эти приемы были использованы в методе DES. Суть алгоритма (алгоритм разработан для блока данных длиной 64 бит) заключается в преобразовании, которое состоит из серии перестановок (правая половина блока становится левой половиной “следующего” блока), операций запутывания (из правой половины блока длиной 32 бит формируется код длиной 48 бит, а каждый бит ключа размножается и превращается в подключ длиной 48 бит) и логических операций (с помощью функций ИСКЛЮЧАЮЩЕЕ ИЛИ производится обработка кода длиной 48 бит и подключа такой же длины, затем из получившегося сегмента длиной 48 бит выбираются 32 бит и, наконец, с помощью функции ИСКЛЮЧАЮЩЕЕ ИЛИ производится совместная обработка отобранных на втором этапе 32 бит и левой половины блока длиной 32 бит). Этот процесс перестановок в половине блока, повторных операций запутывания и многократных логических операций выполняется 16 раз (или говорят 16 раундов). Ключ состоит из 56 бит, из которого генерируется 16 подключей длины 48 бит (за счет выполнения операций запутывания). Каждый подключ используется в своем раунде. Свое развитие DES получил в ГОСТ 281478-89 (отечественный стандарт на шифрование данных), который увеличил длину ключа до 256 бит, число раундов до 32, и допустил произвольные перестановки. 4.2. Потоковые шифры на основе сдвиговых регистров. Последовательности, генерируемые с помощью сдвиговых регистров, широко используются как в теории кодирования, так и в криптографии. Теория таких регистров разработана достаточно давно еще в доэлектронное время, в период военной криптографии. Сдвиговый регистр с обратной связью состоит из двух частей: сдвигового регистра и функции обратной связи. Сдвиговый регистр представляет собой последовательность битов фиксированной длины. Число битов называется длиной сдвигового регистра. Функция обратной связи является булевой функцией из множества L-мерных векторов с координатами из множества {0, 1} в множество {0, 1}, L – длина сдвигового регистра. В начальный момент работы сдвиговый регистр заполняется некоторым начальным значением. На каждом последующем шаге вычисляется значение y f ( x0 , x1 , ... , xL1 ) , где xi – значение ячейки с номером si, содержимое регистра сдвигается вправо, а в освободившееся место помещается значение y. 25 Выходом регистра обычно бывает младший разряд s0. Иногда в качестве выхода берут все слово, помещающееся в регистре. Последовательность таких слов является периодичной. Периодом сдвигового регистра называется длины последовательности регистровых слов до начала ее повторения. Очевидно, что количество различных слов для регистра длины L равно 2 L , поэтому период любой последовательности регистровых слов не может превышать 2 L . Простейшим видом сдвигового регистра с обратной связью является линейный сдвиговый регистр с обратной связью (linear feedback shift register LFSR). Функция f ( x0 , x1 , ... , xL1 ) обратной связи является в этом случае просто суммой по модулю 2 нескольких фиксированных разрядов f ( x) 2 xik . Пример. Рассмотрим линейный сдвиговый регистр R длины L=4 и функцией обратной связи f ( x) x0 x3 (отвод от первого и четвертого вывода). Пусть исходное значение регистра равно <1,1,1,1>, тогда этот регистр будет порождать следующую последовательность 1, 1, 1, 1 0, 1, 1, 1 1, 0, 1, 1 0, 1, 0, 1 1, 0, 1, 0 1, 1, 0, 1 0, 1, 1, 0 0, 0, 1, 1 1, 0, 0, 1 0, 1, 0, 0 0, 0, 1, 0 0, 0, 0, 1 1, 0, 0, 0 1, 1, 0, 0 1, 1, 1, 0 В этом примере период последовательности значений регистра равен 15 24 1 . Это максимально возможное значение, т.к. слово, состоящее из одних нулей не может быть никогда достигнуто из ненулевой конфигурации (докажите это!). Последовательность максимальной длины 2 L 1 называется M-последовательностью. Не всякий регистр LFSR может обладать такой последовательностью. Проблема определения по заданному регистру LFSR, будет ли он обладать M-последовательностью, является нетривиальной. Для ее решения сопоставим произвольному регистру LFSR длины L следующий многочлен PL ( x) aL1 x L aL2 x L1 a0 x 1 (*), где коэффициент ai принимает значение 1 или 0 в зависимости от того, присутствует ли соответствующее слагаемое xi в функции обратной связи. Например, регистру LFSR в рассмотренном выше примере соответствует многочлен PL ( x) x 4 x 1 . 26 Теорема. Произвольный LFSR регистр обладает M-последовательностью тогда и только тогда, когда соответствующий многочлен PL ( x) aL1 x L aL2 x L1 a0 x 1 является неприводимым (неразложимым) над полем F2={0, 1}. Пример приводимого многочлена можно взять из всем известной формулы сокращенного умножения x3 1 ( x 1)( x 2 x 1) . Поскольку, все значения берутся по модулю 2, то в вычисляя значения многочленов надо помнить, что x x, а 2x 0 . В общем случае, нет простого способа генерировать многочлены заданной степени по модулю 2, однако можно легко проверить, является ли заданный многочлен приводимым или нет над заданным конечным полем. Для этого используется алгоритм Берлекампа (Berlekamp) (см. Лидл, Нидеррайтер[7], т.1, гл.3.). В разделе 4.3.2 данного пособия мы рассматриваем упрощенную версию этого алгоритма. 4.3. Абелевы группы и конечные поля. 4.3.1. Основные определения и примеры. Богатым источником алгоритмов и односторонних функций в криптографии служат различные алгебраические структуры. Мы определим здесь важные понятия группы, кольца и поля. Определение 1. Группой называется непустое множество, на элементах которого определена двухместная операция, обозначаемая ◦ и называемая в зависимости от контекста сложением или умножением, причем выполняются три аксиомы: x ( y z ) ( x y) z 1. Ассоциативность 2. Существует некоторый элемент 1, называемый единицей группы, со следующим свойством x 1 1 x x . 3. Для каждого элемента x найдется элемент y, удовлетворяющий соотношению x y y x 1 . Этот элемент называется обратным к x и обозначается через x 1 . Если дополнительно для любых элементов x и y выполняется свойство дистрибутивности x y y x x , то группа называется абелевой. Пример 1. Простым примером абелевой группы служит множество всех целых чисел Z вместе с операцией обычного сложения целых чисел, единицей 0 и операцией нахождения обратного элемента для x как (–x). Пример 2. Группа классов вычетов ZN по модулю числа N. Зафиксируем натуральное число N. На множестве целых чисел введем отношение эквивалентности, полагая два натуральных числа i и j эквивалентными по модулю N, если разность i – j делится нацело на N. Множество классов эквивалентности, называемых классами вычетов или просто вычетов, образуют абелевую группу относительно операции сложения. Такая группа содержит ровно N элементов, обозначаемых через 0, 1, 2, ..., N 1 . Степенью k элемента x называется элемент y x k x x ... x произведение элемента x на себя, взятое k раз. По определению x ( 0 ) 1 . Группа называется циклической, если существует элемент x такой, что каждый элемент этой группы равен некоторой степени элемента x. При этом x называется порождающим элементом группы. Пример 3. Более сложным примером группы является множество квадратных матриц размерности 2x2 с ненулевым определителем. В качестве групповой операции ◦ берется операция умножения матриц, а единицей служит единичная матрица. Операция умножения матриц не коммутативна, поэтому группа матриц не является абелевой. Кольца и поля. 27 Если на непустом множестве G определены две операции (обозначаемые через + и ◦ ), причем относительно сложения G является абелевой группой, для операции умножения выполняется свойство ассоциативности x ( y z ) ( x y ) z , а также свойства дистрибутивности x ( y z ) ( x y ) ( x z ) , ( y z ) x ( y x) ( z x) то такая структура называется кольцом. Если в кольце K есть единичный (нейтральный) элемент 1 по умножению, то такое кольцо называется кольцом с единицей. Если K выполняется свойство a b 0 a 0 b 0 , то K называется целостным кольцом или областью целостности. Пример 1. Кольцом с единицей являются множество целых чисел Z с обычными операциями сложения и умножения. Пример 2. Кольцом является множество классов вычетов ZN по модулю числа N. При этом если N является простым числом, то ZN целостное кольцо, а если N - составное, например N=6, то ZN уже не является целостным кольцом, т.к. 0 2 3 . Пример 3. Кольцом является множество многочленов (полиномов) от переменной x вида n a0 x a1 x n1 an с коэффициентами из поля K. С многочленами можно выполнять те же операции, что и с целыми числами, т.е. складывать, вычитать, перемножать, делить с остатком, находить наибольший общий делитель Н.О.Д. с помощью алгоритма Евклида. Определение. Полем называется кольцо с единицей, в котором каждый ненулевой элемент x обладает обратным x 1 . Другими словами, кольцо с единицей является полем, если множество ненулевых элементов образует группу по умножению. Эту группу называют мультипликативной группой поля F и обозначают символом F*. Пример 1. Полями являются множества рациональных чисел Q, действительных чисел R, комплексных чисел C относительно операций сложения и вычитания. Пример 2. Кольцо вычетов ZN по модулю числа N является полем, если N – простое число. Число N называется характеристикой поля. Пусть K – поле, а f(x) – многочлен, неразложимый в K в произведение многочленов меньшей степени. Такой многочлен называется неприводимым над полем K. Свойство неприводимости существенно зависит от свойств поля K, поскольку если в качестве K взять поле комплексных чисел, то любой многочлен является разложимым в произведение линейных многочленов. Подобно кольцу классу вычетов ZN можно рассматривать классы эквивалентности по модулю многочлена f(x). Пример 3. Кольцо вычетов многочленов по модулю неприводимого многочлена f(x) с коэффициентами из поля K образует поле. Если K – конечное поле, содержащее p элементов (p – простое число), а f(x) – многочлен степени m, то поле вычетов содержит q p m элементов. Такие поля называются полями Галуа в честь выдающегося французского математика Эвариста Галуа, погибшего на дуэли в 20-летнем возрасте, и обозначают символом GF ( p m ) . В курсе алгебры доказывается, что любое конечное поле является полем Галуа для некоторого основания p и степени m. Еще один важный факт, касающийся полей Галуа, состоит в том, что мультипликативная группа конечного поля K всегда является циклической, т.е. существует порождающий элемент x такой, что любой ненулевой элемент y поля K является степенью x y xk . 4.3.2. Неприводимые многочлены в конечном поле K. В этом разделе мы научимся определять для заданного многочлена n n 1 f ( x) a0 x a1 x an с коэффициентами из конечного поля P={0, 1, 2, ... q - 1}, является ли этот многочлен неприводимым в поле P. Неприводимые многочлены используются для по- 28 строения линейных сдвиговых регистров с обратной связью (см. раздел 3.1.6). Наш алгоритм основывается на следующей теореме. Теорема. Пусть F – конечное поле, состоящее из q элементов. Тогда для любого q натурального k 1 многочлен x x является произведением всех неприводимых над полем F многочленов степени k. Из этой теоремы сразу следует, что для произвольного многочлена f (x) f (x ) , Í .Î . Ä .( f ( x), x q x) является произведением всех линейных сомножителей k Í .Î . Ä .( f ( x), x q x) является произведением всех квадратичных сомножителей f (x) и т.д. 2 Поэтому, если Í .Î . Ä .( f ( x), x q x) =1 для k [n / 2] , то f (x) является неприводимым многочленом. Наибольший общий делитель двух многочленов находят с помощью алгоритма Евклида, используя соотношение Í .Î . Ä .( Pn ( x), Qm ( x)) Í .Î . Ä .(Qm ( x), Rl ( x)) , где Rl (x) - остаток от деления Pn (x) на Qm (x) . Упомянутый тест на неприводимость можно заменить более быстрым альтернативным тестом: многочлен Pn (x) над полем F= GF (q ) является неприводимым тогда и только тогда, k когда x q x (mod Pn ( x)) , и Í .Î . Ä .( x q x, Pn ( x)) 1 для всех простых делителей k степени n. n k Пример. Показать неразложимость многочлена f ( x) x3 x 1 над полем F2={0,1}. n В данном случае, n=3, q=2. Для вычисления x q (mod f ( x)) поделим столбиком x 8 на x8 x x5 x3 x 2 x 3 . Остаток равен x. 3 x x 1 x x 1 Простым делителям числа n=3 являются только k=1, поэтому остается только проверить, что Í .Î . Ä .( x 3 x 1, x 2 x) 1. Для этого делим первый многочлен на второй и находим остаток R( x) 1 . Теперь по алгоритму Евклида Í .Î . Ä .( x 3 x 1, x 2 x) Í .Î . Ä .( x 2 x, 1) 1 . Упражнение 1. Являются ли неприводимыми над полем F2={0,1} трехчлены x 2 x 1 , x3 x 2 1 , x 4 x 1, x5 x 1 , x5 x 2 1 ? Упражнение 2. Найдите все неприводимые многочлены третьей степени над полем F2. Упражнение 3. Определите периоды линейных сдвиговых регистров с обратной связью, построенных на основе неприводимых трехчленов, найденных в предыдущих упражнениях. Упражнение 4. Какой степени должен быть многочлен, чтобы длины порождаемой им им последовательности бит хватило для кодирования сообщения длины 1 гб? Упражнение 5. Написать программу на каком-нибудь языке программирования, проверяющую является ли заданный многочлен неприводимым над конечным полем F. f ( x) x3 x 1 и найдем остаток: 4.4. Эллиптические кривые Пусть GF(q), q p n представляет собой конечное поле с характеристикой p. Эллиптическая кривая определяется уравнением E (GF (q)) : y 2 a1 xy a3 y x 3 a0 x 2 a2 x a4 (mod p) Если характеристика p>3, то это уравнение эквивалентно следующему y 2 x3 ax b (mod p) (*) Будем рассматривать в данном курсе только эллиптические кривые над полями характеристики p>3. Вид эллиптической кривой над полем действительных чисел показан ниже 29 Рис.4.1. Эллиптическая кривая. Математическое свойство, которое делает эллиптические кривые полезными для криптографии, состоит в том, что если взять две различных точки на кривой, то соединяющая их хорда пересечет кривую в третьей точке (так как мы имеем кубическую кривую). Зеркально отразив эту точку по оси Х, мы получим еще одну точку на кривой (так как кривая симметрична относительно оси X). Если мы обозначим две первоначальных точки как P и Q, то получим последнюю – отраженную – точку P+Q. Это «сложение» удовлетворяет всем известным алгебраическим правилам для целых чисел. Рис.4.2. Геометрическая иллюстрация операции сложение точек на ЭК. Эту операцию можно выразить следующими формулами: суммой двух точек P( x1 , y1 ) и Q( x2 , y2 ) является точка R( x3 , y3 ) с координатами, определяемыми следующими соотношениями: x3 2 x1 x2 (mod p) y3 ( x1 x3 ) y1 (mod p) y y1 (mod p ) где 2 x2 x1 К точкам лежащим на ЭК добавляется еще одна специальная точка 0, которая называется бесконечно удаленной точкой. Определим на точках ЭК операцию удвоения точки P( x1 , y1 ) . Точкой 2P является по определению точка Q( x2 , y2 ) , удовлетворяющая уравнениям: x2 2 2 x1 (mod p) y 2 ( x1 x2 ) y1 (mod p) 3x12 a (mod p) где 2 y1 (**) 30 Из этих уравнений видно, что бесконечно удаленная точка 0 может быть получена, как результат удвоения точки Р с нулевой координатой y, либо при сложении двух различных точек с одинаковой координатой x. Таким образом, мы можем определить конечную абелеву группу на точках кривой, где нулем будет являться бесконечно удаленная точка. В частности если точки P и Q совпадут, то можно вычислить P+P, т.е. 2P. Развивая эту идею, можно определить kP для любого целого числа k, и следовательно, определить значение P и значение наименьшего целого числа k, такого, что kP = F, где F – бесконечно удаленная точка. Теперь можно сформулировать «Проблему дискретного логарифма эллиптической кривой» (Elliptic Curve Discrete Logarithm Problem – ECDLP), на которой основана рассматриваемая система: Даны базовая точка P и расположенная на эллиптической кривой точка Q=kP. Найти значение k. Для эллиптических кривых и базовых точек решение таких уравнений представляет вычислительно сложную задачу. С точки же зрения криптографии мы имеем возможность определить новую криптографическую систему на основе эллиптических кривых. Для каждой эллиптической кривой число точек в группе конечно, но достаточно велико. Оценка порядка (числа элементов) группы точек эллиптической кривой m такова: p 1 2 p m p 1 2 p , где р — характеристика поля, над которым определена кривая. Если в схеме Эль-Гамаля рекомендуется использовать число р порядка 2512, то в случае эллиптической кривой достаточно взять p > 2255. Упражнение. Построить абелеву группу точек кривой y 2 x3 1 (mod 5) . В данном примере, а=0 и b=1. Если взять исходную точку P(0; 1), то по формулам (**) 3x 2 1 (mod 5) 0 , откуда абсцисса т.2P будет также равна нулю. Возьмем поэтому, в качестве 2 y1 исходной точки, точку с ненулевой координатой x, например, P(2; 2). Имеем: 2 x1 2, x1 4, y1 2, 2 y1 4, (2 y1 ) 1 4 (mod 5) . По формулам (**) 3x12 2 y1 1 (mod 5) 4 4 (mod 5) 1 , x2 2 2 x1 (mod 5) 1 4 (mod 5) 2 , y2 ( x1 x2 ) y1 (mod 5) (2 2) 2 (mod 5) 3 . Значит, т.2P=(2, 3). Найдем теперь т. 3P: x1 2, x2 2, y1 2, y2 3 . По формулам (*) ( y2 y1 ) x2 x1 1 (mod 5) , откуда 3P = 0 – бесконечно удаленная точка. 4.5. Односторонние функции. Односторонняя (однонаправленная) функция (one way function) - это функция f, осуществляющая отображение X->Y, где X и Y - произвольные множества, и удовлетворяющая следующим условиям: 1. Для каждого x из области определения функции f (x) легко вычислить y f (x) . Понятие «легко» обычно означает, что существует алгоритм, вычисляющий функцию f(x) за полиномиальное время от длины аргумента x. 2. Задача нахождения прообраза x f 1 ( y) для произвольного y, принадлежащего области значений функции f (x) , является вычислительно сложной задачей. Последнее означает, что не существует алгоритма, вычисляющего f 1 ( y ) существенно быстрее, чем алгоритм полного перебора. 31 Пример 1. Задача разложения натурального числа N на простые множители (факторизация N). На вычислительной сложности решения этой задачи построен один из самых известных асимметричных методов криптографии – метод RSA. В 1977 году, когда создатели этого метода Ривест, Шамир и Адлеман объявили о новом методе криптографии, основанном на задаче факторизации, наиболее длинные числа, разложимые на множители, имели длину 40 десятичных цифр, что соответствует, примерно, 132-битовому двоичному числу (число 40 надо домножить на log 2 10 3,32 ). Создатели RSA предложили широкой публике расшифровать некую фразу английского языка. Для этого предварительно требовалось факторизовать 129-значное десятичное число N (длины 428 в битовом представлении), про которое было известно, что оно представимо в виде произведения двух простых сомножителей p и q, которые имели длину 65 и 64 десятичных знака. С тех пор был достигнут значительный прогресс в этой области. Число, предложенное создателями RSA, было разложено в 1994 году с помощью нового мощного метода факторизации – метода квадратичного решета (Quadratic Sieve), разработанного Карлом Померанцем и реализованного Аткинсом, Граффом, Ленстрой и Лейлендом. В работе участвовало около 600 добровольцев, задействовано в сети около 1700 компьютеров, которые работали в течение 7 месяцев. Параллельно с этим методом Джоном Поллардом, известным специалистом по криптографии и теории алгоритмов, был разработан еще более быстрый метод, получивший название метода решета числового поля (Number Field Quadratic Sieve - NFQS), который является наиболее быстрым методом и на сегодняшний день. Текущий рекорд, установленный немецкими исследователями, на июнь 2008 года, составляет 1000-бит. Это делает небезопасными ключи RSA длины 1024, которые являются на сегодняшний день, самыми распространенными. Пример 2. Примером односторонней функции может служить вычисление f ( x) a x mod n , где a и n - некоторые фиксированные числа. Задача вычисления обратного значения x по известному y a x mod n называется задачей дискретного логарифмирования. На вычислительной сложности задачи дискретного логарифмирования основан один из распространенных методов двухключевой криптографии – метод Эль-Гамаля. Примером использования односторонней функции может служить следующая схема аутентификации. Абоненты A и В договариваются при встрече или вырабатывают с помощью протокола Диффи- Хелмана, о котором будет сказано ниже, общий ключ x. Теперь когда абоненты выходят на связь, то один из них, скажем А, посылает другому послание М, некоторое число k>2 и число y, равное результату применения к аргументу x k-кратной итерации односторонней функции f (x) y f ( k ) ( x) f ( f ( f ...( x))...) . Абонент В, получив число k, также вычисляет значение f ( k ) ( x) и сравнивает его с полученным. Если результат совпал, то сообщение М получено именно от абонента А. Абонент В, возвращая ответное послание М2, прикладывает к нему значение f ( k 1) ( x) . Взломщик не может подделать сообщение М2, т.к. даже зная f ( k ) ( x) , он не может вычислить f ( k 1) ( x) . При следующем обмене пересылается число f ( k2) ( x) , f ( k3) ( x) и т.д., что обеспечивает взаимную аутентификацию при каждом новом сеансе связи. Пример 3. Функция f(k) вычисления порядка базовой точки эллиптической кривой. Дано конечное поле GF(q), эллиптическая кривая E, точка P на кривой E. По известным координатам точки P и аргументу k функция f вычисляет координаты т. kP. Эта задача полиноминально вычислима. Обратная задача нахождения координат т.P по известным k и координатам т. kP является вычислительно сложной задачей. 32 §5. Криптографические средства защиты. Криптографические средства позволяют превращать электронные документы в нечитаемую последовательность символов, которую может восстановить только человек, владеющий общим с отправителем секретным словом – ключом шифра. Надежность шифрования зависит от многих факторов таких как алгоритм шифрования, длина ключа, надежность аппаратной или программной реализации алгоритма шифрования, а также от того насколько надежно владелец хранит свой пароль. Если пароль – короткий (длины не более 6 символов), то его можно подобрать прямым перебором, такая атака на шифр называется brute force (в переводе с английского означает грубая сила). Если же пароль достаточно длинный, но представляет собой сочетание типа tanya1989, то его можно подобрать с помощью словаря. Поэтому рекомендуется, чтобы пароль содержал не менее 7-8 символов из алфавита мощности не менее 128 символов (например, английский и русские строчные и заглавные буквы, цифры, знаки препинания), тогда вероятность подбора такого пароля – невелика. Однако появляется другая опасность – возрастает вероятность того, что владелец пароля его забудет так, как человеческая память – ненадежное хранилище информации. Такой пароль надо где-то записать, сохранить, а значит увеличить вероятность кражи пароля. Кроме того, вероятность взлома пароля сильно увеличивается в зависимости от возможностей атакующего. Приведем в качестве примера данные, опубликованные американскими криптографами в 1996 году (конечно, с тех пор мощь копьютеров значительно увеличилась. но соотношения, приведенные в таблице, в основном, сохранились). Таблица 5.1. Стоимость и вычислительная сложность атаки методом тотального перебора Кто атакует Бюджет Сложность атаки Стойкий ключ 40 бит 56 бит Хакер 1000 долл. 1 неделя Никогда 45 бит Малый бизнес 10 тыс. долл. 12 мин. 556 дней 64 бита Крупная компания 10 млн долл. 0.005 с 6 мин 70 бит 300 млн долл. 0.0002 с 12с 75 бит Федеральное агентство В нашем пособии мы не ставим задачи дать полное описание криптографических методов и протоколов, а дадим только краткую характеристику основных методов и стандартов шифрования, поскольку они используются в различных средствах и протоколах сетевой защиты. Отошлем интересующихся к книге выдающегося американского специалиста по информационной безопасности и криптографа Брюса Шнайера [], где дается описание основных современных методов шифрования, их слабых и сильных сторон, особенностей реализации и т.п. 5.1. Классификация криптографических методов. Все методы шифрования принято делить на классические и методы шифрования с открытым ключем. Их также принято называть одно- и двух- ключевыми методами, поскольку в классическим шифрах для шифрования/расшифрования используется один и тот же ключ, в то время как в современных методах шифрования с открытым ключем используется два ключа 33 – public key (публичный открытый ключ) и private key (личный закрытый ключ). Использование двух ключей позволяет преодолеть главный недостаток классических шифров – проблему распределения ключей. Методы, использующие один ключ, называются также симметричными, а использующие два ключа – асимметричными. В свою очередь классические (одноключевые) методы шифрования делятся на две основные группы – потоковые и блочные. Потоковые методы шифруют входной поток данных посимвольно (или побитово). Шифрование каждого символа (бита) текста производится независимо от результата шифрования соседних символов (битов). Потоковые методы являются наиболее быстрыми, дешевыми и достаточно надежными методами шифрования. Типичным представителем потокового метода шифрования является метод RC4 с переменной длиной ключа, разработанный в 1987 году Роном Ривестом из корпорации RSA Data Security, Inc. Этот метод широко используется в разных приложениях, например, в протоколе WEP для шифрования данных, передаваемым по беспроводным сетям Wi-Fi между точкой доступом (Access Point) и беспроводным адаптером на компьютере клиента. Ключом в методе RC4 является любая символьная последовательность длины до 256 байт, например, условная фраза или произвольный набор чисел. До 1994 года алгоритм RC4 держался в секрете и распространялся среди производителей под подписку о неразглашении, однако в 1994 году анонимный хакер опубликовал алгоритм метода в сети Usenet, после чего метод перестал был секретным. Однако это не ослабило его стойкость по отношению к атакам, и по настоящее время не найдено методов взлома RC4, которые были бы значительно лучше, чем полный перебор. Этот метод имел ограничения по экспорту для использования с ключом более 40 байт, однако, нет никаких оснований предполагать, что ключ длины 40 байт является ненадежным, поскольку 40 байт=320 бит, а полный перебор 320-битового ключа лежит далеко за пределами сегодняшних возможностей и маловероятно, что когда-нибудь окажется возможным. Ниже мы опишем схему метода RC4. 5.2. Схема метода RC4. Сам метод RC4 является чрезвычайно простым и легко программируется. Он состоит из начальной подготовки параметров шифрования - инициализации и собственно процесса шифрования. В ходе инициализации подготавливаются два числовых массива K и S длины 256 байт. При этом символьный ключ Key длины 64 или 128 символов кодируется в массиве S (в действительно, длина ключа здесь совершенно не влияет на работу алгоритма, и может быть принимать любое значение от 2 до 256). После этого связь между ключом Key и массивом S разрывается и в дальнейшем ключ Key не используется. Если взломщик узнает каким- нибудь образом массив S или его часть, он способен восстановить весь текст или его часть, но не сможет 34 найти исходный ключ Key. Это позволяет использовать один и тот ключ Key многократно с разными исходными параметрами i, j, влияющими на сдвиг гаммирующей последовательности. Инициализация. 1. Определяются два массива К и S длины 256 типа Byte. 2. Выбирается ключ Key, представляющий набор символов длины не более 256 байт. 3. Заполняем массив К кодами символом из ключа Key. Если длина ключа Key меньше 256, то используем ключ несколько раз (заполняя массив K полностью). 4. Инициализация S-блока. Сначала заполним его линейно: S(0)=0, S(1)=1, … , S(255)=255 5. В цикле выполняем перестановку S-блока: for i = 0 to 255: j=(j + S(i) + K(i)) mod 256 'поменять местами S(i) и S(j) temp=S(i): S(i)=S(j): S(j)=temp Next i Шифрование. Организуем цикл, в котором считываем посимвольно текст, который надо закодировать, и одновременно генерируем ключевую последовательность, которая используется для сдвига символов текста: ‘ инициализируем начальные значения i,j произвольными значения от 0 до 255 i=i0: j=j0 Do while not eof(1) i = (i +1) mod 256 j j=(j + Si) mod 256 ‘меняем местами S(i) и S(j) temp=S(i): S(i)=S(j): S(j)=temp t = (S(i) + S(j) mod 256 k=S(t) ‘ Считываем очередной символ из текста m = Input(1, #1) ‘к ASCII-коду полученного символа m добавляет по модулю 256 элемент ключевой ‘последовательности k=S(t) enc=(Asc(m)+k) mod 256 ‘записываем в выходной поток закодированный символ write #2, enc End Do Отметим, что ключевую последовательность метода RC4, называют также гаммапоследовательностью, а процедуру шифрования – гаммированием. Далее мы рассмотрим блочные методы на примере метода DES. 5.3. Data Encryption Standard (DES) DES является симметричным алгоритмом шифрования, разработанным сотрудником фирмы IBM Курсом Фейстелем еще в 1976 году для внутренних нужд компании, но впоследствии протестированный Агентством национальной безопасности США (АНБ) и выбранный в качестве федерального стандарта США. Этот метод имеет ключ длины 56 бит и широко применялся во многих криптографических пакета в течение почти двух десятилетий, пока, наконец, в начале 1990'х году не сочли его небезопасным. В 1998 году был объявлен конкурс на разработку нового стандарта безопасности, в котором приняло участие большое количество алгоритмов, но 35 выиграл алгоритм Rijndael с длиной ключа 128/160 бит. Этот алгоритм лег в основу нового американского стандарта безопасности Advanced Encryption Standard (AES). Шифрование по методу DES (и ему подобным) состоит в следующем: текст разбивается на блоки фиксированной длины. Далее эти блоки подвергаются серии циклов преобразований, состоящих из перестановок, подстановок и гаммирования. Каждая серия преобразований называется раундом. Преобразование каждого блока по методу DES состоит из 16 раундов (для сравнения отечественный стандарт шифрования ГОСТ 28147-89, принятый в 1989 году, состоит из 32 раундов и имеет длину ключа 256 бит). Подробнее о методе DES и конкурсе AES смотрите в книге А.В.Беляева "Методы и средства защиты информации" [1]. Приведем наиболее известные блочные шифры, используемые в настоящее время. Название алгоритма Автор Размер блока Длина ключа IDEA Xuejia Lia and James Massey CAST128 64 бита 128 бит 64 бита 128 бит BlowFish Bruce Schneier 64 бита 128 – 448 бит ГОСТ НИИ *** 64 бита 256 бит TwoFish Bruce Schneier 128 бит 128 – 256 бит MARS Корпорация IBM 128 бит 128 – 1048 бит 5.4. Асимметричные системы шифрования Наиболее перспективными системами криптографической защиты данных являются системы с открытым ключом, который начали интенсивно развиваться с 1976 года, когда два американца Диффи и Хелман разработали основы использования двухключевой криптографии. В таких системах для шифрования данных используется один ключ, а для расшифровки другой. Первый ключ не является секретным и может быть опубликован для использования всеми пользователями системы, которые зашифровывают данные. Расшифровка данных с помощью известного ключа невозможна. Для расшифровки данных получатель зашифрованной информации использует второй ключ, который является секретным. Разумеется, ключ расшифровки не может быть определен из ключа шифрования. Использование двух ключей позволяет решить проблемы распространения ключей для абонентов, находящихся на географическом отдалении друг от друга. Использование пары открытый/ закрытый ключ также используется для защиты документов от изменения с помощью криптографической контрольной суммы – цифровой подписи. Рассмотрим наиболее известные системы асимметричного шифрования. Шифр Ривеста - Шамира – Алдемана RSA. Первой и наиболее известной криптографической системой с открытым ключом была предложенная в 1978 году система RSA. Ее название происходит от первых букв фамилий авторов Rivest, Shamir и Aldeman, которые придумали ее во время совместных исследований в Массачусетском Технологическом институте в 1977 году. Она основана на вычислительной сложности задачи разложения очень больших целых чисел на простые сомножители. Алгоритм ее работает следующим образом: Генерация параметров метода. 36 1. Выбираем два больших простых числа p и q. 2. Вычисляем N = p ∙q, и функцию Эйлера ( N ) ( p 1) (q 1) (значение (N ) равно количеству натуральных чисел k < N, взаимно простых с N). 3. Находим число e, взаимно-простое с (N ) , 4. Находим число d из условия наибольший общий делитель e ∙ d = 1 mod (N ) . Для нахождения d используем расширенный алгоритм Евклида. Для этого решим в целых числах уравнение a ( N ) b e 1 . (*) 5. Значение d положим равным найденному b. Если множитель b окажется меньшим нуля, следует заменить его на b (N ) . Пара (N,e) объявляется открытым ключом и используется для шифрования. Параметр d является секретным и используется для расшифровки данных. Шифрование. Шифрование производится по формуле y x e mod N , где x – код исходного символа. Обратное раскодирование производится по формуле x y d mod N , и основано на теореме (N) 1 mod N . Эйлера x Проверим вычисление. Из формулы (*) e d 1 a ( N ) получим y d mod N xed mod N x1a ( N ) mod N x . 5.5. Алгоритм ЭльГамаля. В 1985 году Т.Эль-Гамаль (США) предложил следующую схему шифрования на основе возведения в степень по модулю большого простого числа P. Алгоритм Эль-Гамаля может использоваться для формирования электронной подписи или для шифрования данных. Он базируется на трудности вычисления дискретного логарифма. Для генерации пары ключей сначала берется большое простое число p и два случайных числа g и x, каждое из которых меньше p. Затем вычисляется y g x mod p . Общедоступными ключами являются y, g и p, а секретным ключом является х. Для шифрования сообщения M выполняем следующее: 1. Выбираем случайное число k, взаимно простым с p-1, т.е. Н.О.Д.(k, p-1)=1. 2. Вычисляем a g k mod p , 3. Вычисляем b y x M mod p . Пара (a, b) является шифротекстом. Для расшифровки шифротекста, вычисляем M b a x mod p . Сделаем проверку: b a x mod p y k M g kx mod p g kk M g kx mod p M Пример. Выберем p=11, g=2, секретный ключ x=8. Вычисляем 8 y g mod p 2 mod 11 256 mod 11 3 . Начальные параметры шифрования подготовлены. Пусть cообщение M=5. Выбираем случайное число K=9. Убедимся, что Н.О.Д.(k, p-1)= Н.О.Д.(9, 10)=1. Вычисляем пару (a, b): a g k mod p 29 mod 11 6 , b y k M mod p 39 5 mod 11 9 , (a, b)=(6, 9)-шифрограмма. Для расшифровки сообщения (a, b), находим x 37 M b a x mod p 9 68 mod 11 , откуда, M 68 9 mod 11 . Поскольку, 68 4 mod 11 , то 4M 9 mod 11 , откуда M=5. 5.6. Алгоритм Диффи-Хелмана выработки общего секретного ключа. Алгоритм Диффи-Хелмана (1976 год) (algorithm DH) служит для выработки общего секретного ключа двумя пользователями, находящимя в условиях, когда все пересылаемые ими данные, доступны третьему лицу Алгоритм DH использует функцию дискретного возведения в степень и похож на метод Эль-Гамаля. Сначала генерируются два больших простых числа n и q. Эти два числа не являются секретными. Далее один из партнеров A генерирует случайное число x<n и посылает другому участнику будущих обменов B значение M = qx mod n Партнер B генерирует случайное число у<n и посылает A вычисленное значение K = qy mod n Партнер A, получив K, вычисляет Cx = Kx mod n, а партнер В вычисляет Cy = My mod n. Алгоритм гарантирует, что числа Cy и Cx равны и могут быть использованы в качестве секретного ключа для шифрования. Алгоритм Диффи-Хелмана, обеспечивая конфиденциальность передачи ключа, не может гарантировать того, что он прислан именно тем партнером, который предполагается. Для решения этой проблемы можно использовать технику электронной подписи. Например, сообщения M и K, которыми обмениваются пользователи, подписываются их цифровыми подписями, что исключает подлог. §6. Электронно-цифровая подпись 6.1. Свойства ЭЦП и ее правовые основы. Одной из наиболее важных задач информационной безопасности является сохранение целостности (неизменности) электронных документов, передаваемых через каналы связи. Развитие современных средств безбумажного документооборота, средств электронных платежей немыслимо без развития средств доказательства подлинности и целостности документа. Таким средством является электронно-цифровая подпись (ЭЦП), которая сохранила основные свойства обычной подписи. Такими свойства подписи являются: подпись аутентична, то есть с ее помощью получателю документа можно доказать, что она принадлежит подписывающему; подпись неподделываема; то есть служит доказательством, что только тот человек, чей автограф стоит на документе, мог подписать данный документ, и никто иной. Подпись непереносима, то есть является частью документа и поэтому перенести ее на другой документ невозможно. 38 Документ с подписью является неизменяемым. Подпись неоспорима. Любое лицо, владеющее образцом подписи может удостоверится, что документ подписан владельцем подписи. Существует несколько методов построения ЭЦП, а именно: шифрование электронного документа (ЭД) на основе симметричных алгоритмов. Данная схема предусматривает наличие в системе третьего лица–арбитра, пользующегося доверием обеих сторон. Авторизацией документа в данной схеме является сам факт зашифрования ЭД секретным ключом и передача его арбитру. Использование ассиметричных алгоритмов шифрования. Фактом подписания документа является зашифрование его на секретном ключе отправителя. Развитием предыдущей идеи стала наиболее распространенная схема ЭЦП – зашифрование окончательного результата обработки ЭД хеш-функцией при помощи асимметричного алгоритма. Кроме перечисленных, существуют и другие методы построения схем ЭЦП - групповая подпись, неоспариваемая подпись, доверенная подпись и др. Появление этих разновидностей обусловлено разнообразием задач, решаемых с помощью электронных технологий передачи и обработки электронных документов. Электронно-цифровая подпись используется физическими и юридическими лицами в качестве аналога собственноручной подписи для придания электронному документу юридической силы, равной юридической силе документа на бумажном носителе, подписанного собственноручной подписью правомочного лица и скрепленного печатью. ЭЦП - это программно-криптографическое средство, которое обеспечивает решение следующих задач: 1. проверку целостности документов; 2. конфиденциальность документов; 3. идентификация лица, отправившего документ; Правовые основы электронно-цифровой подписи регламентируются несколькими законами Российской Федерации. В частности, пункт 3 статьи 5 Федерального закона "Об информации, информатизации и защите информации" гласит: "Юридическая сила документа, хранимого, обрабатываемого и передаваемого с помощью автоматизированных информационных и телекоммуникационных систем, может подтверждаться электронной цифровой подписью. 10 января 2002 года Президентом РФ был подписан очень важный закон "Об электронной цифровой подписи" номер 1-ФЗ (принят Государственной Думой 13 декабря 2001 года), развивающий и конкретизирующий основные положения закона "Об информации, информатизации и защите информации". Его роль поясняется в статье 1. 1. Целью настоящего Федерального закона является обеспечение правовых условий использования электронной цифровой подписи в электронных документах, при соблюдении которых электронная цифровая подпись в электронном документе признается равнозначной собственноручной подписи в документе на бумажном носителе. 2. Действие настоящего Федерального закона распространяется на отношения, возникающие при совершении гражданско-правовых сделок и в других предусмотренных законодательством Российской Федерации случаях. Действие настоящего Федерального закона не распространяется на отношения, возникающие при использовании иных аналогов собственноручной подписи. Закон вводит следующие основные понятия: Электронный документ - документ, в котором информация представлена в электронноцифровой форме. 39 Электронная цифровая подпись - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе. Владелец сертификата ключа подписи - физическое лицо, на имя которого удостоверяющим центром выдан сертификат ключа подписи и которое владеет соответствующим закрытым ключом электронной цифровой подписи, позволяющим с помощью средств электронной цифровой подписи создавать свою электронную цифровую подпись в электронных документах (подписывать электронные документы). Средства электронной цифровой подписи - аппаратные и (или) программные средства, обеспечивающие реализацию хотя бы одной из следующих функций: создание электронной цифровой подписи в электронном документе с использованием закрытого ключа электронной цифровой подписи, подтверждение с использованием открытого ключа электронной цифровой подписи подлинности электронной цифровой подписи в электронном документе, создание закрытых и открытых ключей электронных цифровых подписей. Сертификат средств электронной цифровой подписи - документ на бумажном носителе, выданный в соответствии с правилами системы сертификации для подтверждения соответствия средств электронной цифровой подписи установленным требованиям. Закрытый ключ электронной цифровой подписи - уникальная последовательность символов, известная владельцу сертификата ключа подписи и предназначенная для создания в электронных документах электронной цифровой подписи с использованием средств электронной цифровой подписи. Открытый ключ электронной цифровой подписи - уникальная последовательность символов, соответствующая закрытому ключу электронной цифровой подписи, доступная любому пользователю информационной системы и предназначенная для подтверждения с использованием средств электронной цифровой подписи подлинности электронной цифровой подписи в электронном документе. Сертификат ключа подписи - документ на бумажном носителе или электронный документ с электронной цифровой подписью уполномоченного лица удостоверяющего центра, которые включают в себя открытый ключ электронной цифровой подписи и выдаются удостоверяющим центром участнику информационной системы для подтверждения подлинности электронной цифровой подписи и идентификации владельца сертификата ключа подписи. Подтверждение подлинности электронной цифровой подписи в электронном документе - положительный результат проверки соответствующим сертифицированным средством электронной цифровой подписи с использованием сертификата ключа подписи принадлежности электронной цифровой подписи в электронном документе владельцу сертификата ключа подписи и отсутствия искажений в подписанном данной электронной цифровой подписью электронном документе. Пользователь сертификата ключа подписи - физическое лицо, использующее полученные в удостоверяющем центре сведения о сертификате ключа подписи для проверки принадлежности электронной цифровой подписи владельцу сертификата ключа подписи. Информационная система общего пользования - информационная система, которая открыта для использования всеми физическими и юридическими лицами и в услугах которой этим лицам не может быть отказано. Корпоративная информационная система - информационная система, участниками которой может быть ограниченный круг лиц, определенный ее владельцем или соглашением участников этой информационной системы. Юридическая сила электронной цифровой подписи признается при наличии в автоматизированной информационной системе программно-технических средств, 40 обеспечивающих идентификацию подписи, и соблюдении установленного режима их использования". Такая формулировка предполагает, что электронный документ может быть заверен ЭЦП и использован в тех случаях, когда явно не предусмотрены другие требования к форме документа, т.е. введение данной нормы, по существу, не расширило возможности использования ЭДО в гражданском обороте. Развитие основных типов криптографических протоколов (ключевой обмен, электронноцифровая подпись (ЭЦП), аутентификация и др.) было бы невозможно без создания открытых ключей и построенных на их основе асимметричных протоколов шифрования. Эти методы рассматриваются в следующем разделе. 6.2. Алгоритм создание ЭЦП и стандарты. Для того, чтобы обеспечить решение задачи неизменности (целостности) электронного документа или файла создается электронно-цифровая подпись. Для этого документ или файл подвергается двум преобразованиям: 1. Сжатие с помощью хеш-функции, 2. Шифрование хеш-свертки с помощью одного из методов асимметричного шифрования, например, RSA или ElGamal с использованием закрытого ключа. Рис. Схема вычисления электронно- цифровой подписи. Напомним, что хеш-функции обеспечивают преобразования файла F произвольной длины в строку фиксированной длины h(F) (128 бит для MD5 или 160 бит для SHA-1). Полученная строка, рассматриваемое как 128 или 160-битовое число, может быть за одну операцию возведения в степень (если используется RSA) преобразовано в 512 или 1024 битовое число Enc(h(F)) (длина результата зависит от длины ключа RSA, поскольку результат возведения в степень нормируется по модулю числа N, являющегося ключом RSA). Полученное значение называется электронно-цифровой подписью документа F. Отметим свойства ЭЦП, важные с точки зрения безопасности: 1. Значение ЭЦП существенно зависит от каждого бита исходного файла. Это означает, что взломщик не сможет подобрать ключ шифрования, имея несколько копий документа вместе с их ЭЦП, отличающихся несколькими битами. 2. Длина свертки (128 бит или более) достаточно велика, что исключить полный перебор вариантов ( 2128 ). 3. Только владелец закрытого ключа может установить ЭЦП на документ. Проверить ЭЦП может любой человек, владеющий исходным документом, его ЭЦП и открытым ключом. В схеме построения ЭЦП эти сведения считаются общедоступными. 4. ЭЦП неразрывно связывает электронный документ с владельцем закрытого ключа ЭЦП, поэтому установив когда-либо на документ свою ЭЦП, владелец не сможет отказаться впоследствии от своей подписи. При необходимости в ЭЦП может быть добавлена метка времени, фиксирующая момент подписания документа. Стандарты электронно-цифоровой подписи. 41 На сегодняшний день придумано и реализовано достаточно много алгоритмов цифровой подписи: алгоритм подписи на основе RSA; Алгоритм цифровой подписи Эль-Гамаля (El Gamal Signature Algorithm); алгоритм DSA, предложен в 1991г. в США для использования в стандарте цифровой подписи DSS (Digital Signature Standard). Основан на усовершенствованной схеме ЭльГамаля. Старый российский стандарт электронно-цифровой подписи ГОСТ Р34.10-94, концептуально близок к алгоритму DSA. Различие между этими стандартами заключается в использовании параметров ЭЦП разного порядка, что приводит к получению более безопасной подписи при использовании российского стандарта. Новый российский стандарт ГОСТ Р 34.10-2001, основан на использовании эллиптических кривых. Электронно-цифровая подпись на основе метода Эль-Гамаля. Пусть заданы простое число p – характеристика поля Галуа, порождающий элемент g<p, секретный ключ x, 1< x < p-1, сообщение M и случайное число k, взаимно простое с p-1. Схема построения ЭЦП для сообщения М является следующей: 1. Отправитель вычисляем параметр y g x mod p - открытый ключ. Число Y является открытым ключом, используемым для проверки подписи отправителя. Число Y открыто передается всем потенциальным получателям документов. 2. Для того чтобы подписать сообщение М, сначала отправитель хэширует его с помощью хэш-функции h в целое число m: m=h(M), 1 < m < p-1. 3. Потом отправитель вычисляет целое число a g k mod p . 4. Далее, применяя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа Х целое число b из уравнения m = Х * а + К * b (mod (Р-1)) . Пара чисел (а,b) образует цифровую подпись S: S=(а,b) , проставляемую под документом М. Тройка чисел (М,а,b) передается получателю, в то время как пара чисел (Х,К) держится в секрете. После приема подписанного сообщения (М,а,b) получатель должен проверить, соответствует ли подпись S=(а,b) сообщению М. Для этого получатель сначала вычисляет по принятому сообщению М число m = h(М) , т.е. хэширует принятое сообщение М. Затем получатель вычисляет значение А = Ya ab (mod Р) и признает сообщение М подлинным, только если А = Gm (mod Р) . Иначе говоря, получатель проверяет справедливость соотношения Ya ab (mod Р) = Gm (mod Р) . Можно строго математически доказать, что последнее равенство будет выполняться тогда, и только тогда, когда подпись S=(а,b) под документом М получена с помощью именно 42 того секретного ключа X, из которого был получен открытый ключ Y. Таким образом, можно надежно удостовериться, что отправителем сообщения М был обладатель именно данного секретного ключа X, не раскрывая при этом сам ключ, и что отправитель подписал именно этот конкретный документ М. Следует отметить, что выполнение каждой подписи по методу Эль Гамаля требует нового значения К, причем это значение должно выбираться случайным образом. Если нарушитель раскроет когда-либо значение К, повторно используемое отправителем, то он сможет раскрыть секретный ключ Х отправителя. Пример. Выберем: числа Р = 11, G = 2 и секретный ключ Х = 8. Вычисляем значение открытого ключа: Y = GX mod Р = 28 mod 11 = 3 . Предположим, что исходное сообщение М характеризуется хэш-значением m = 5. Для того чтобы вычислить цифровую подпись для сообщения М, имеющего хэш-значение m = 5, сначала выберем случайное целое число К = 9. Убедимся, что числа К и (Р-1) являются взаимно простыми. Действительно, НОД (9,10) = 1. Далее вычисляем элементы а и b подписи: а = GK mod Р = 29 mod 11 = 6 , элемент b определяем, используя расширенный алгоритм Евклида: m = Х * а + К * b (mod(Р-1)). При m = 5, а = 6, Х = 8, К = 9, Р = 11 получаем 5 = 8 * 6 + 9 * b (mod 10) или 9 * b = -43 (mod 10) . Решение: b = 3. Цифровая подпись представляет собой пару: а = 6, b = 3. Далее отправитель передает подписанное сообщение. Приняв подписанное сообщение и открытый ключ Y = 3, получатель вычисляет хэш-значение для сообщения М : m = 5, а затем вычисляет два числа: Yaab (mod Р) = 36 * 63 (mod 11) = 10 (mod 11); Gm (mod Р) = 25 (mod 11) = 10 (mod 11). Так как эти два целых числа равны, принятое получателем сообщение признается подлинным. Следует отметить, что схема Эль Гамаля является характерным примером подхода, который допускает пересылку сообщения М в открытой форме вместе с присоединенным аутентификатором (а,b). В таких случаях процедура установления подлинности принятого сообщения состоит в проверке соответствия аутентификатора сообщению. Схема цифровой подписи Эль Гамаля имеет ряд преимуществ по сравнению со схемой цифровой подписи RSА: 1. При заданном уровне стойкости алгоритма цифровой подписи целые числа, участвующие в вычислениях, имеют запись на 25% короче, что уменьшает сложность вычислений почти в два раза и позволяет заметно сократить объем используемой памяти. 2. При выборе модуля Р достаточно проверить, что это число является простым и что у числа (Р-1) имеется большой простой множитель (т.е. всего два достаточно просто проверяемых условия). 3. Процедура формирования подписи по схеме Эль Гамаля не позволяет вычислять цифровые подписи под новыми сообщениями без знания секретного ключа (как в RSА). Однако алгоритм цифровой подписи Эль Гамаля имеет и некоторые недостатки по сравнению со схемой подписи RSА. В частности, длина цифровой подписи получается в 1,5 раза больше, что, в свою очередь, увеличивает время ее вычисления. 43 6.3. Использование эллиптических кривых в стандарте цифровой подписи. Кратные точки эллиптической кривой являются аналогом степеней чисел в простом поле схемы Эль-Гамаля. Задача вычисления кратности точки эквивалентна задаче вычисления дискретного логарифма. Хотя задачи дискретного логарифмирования и задачи вычисления кратности точки эллиптической кривой полиноминально эквивалентны, вторая имеет большую сложность. Именно поэтому при построении алгоритмов подписи в группе точек эллиптической кривой оказалось возможным обойтись более короткими ключами по сравнению с простым полем при обеспечении большей стойкости. Секретным ключом, как и раньше, положим некоторое случайное число x. Открытым ключом будем считать координаты точки на эллиптической кривой P, определяемую как P = xQ, где Q — специальным образом выбранная точка эллиптической кривой («базовая точка»). Координаты точки Q вместе с коэффициентами уравнения, задающего кривую, являются параметрами схемы подписи и должны быть известны всем участникам обмена сообщениями. Выбор точки Q зависит от используемых алгоритмов и весьма непрост. Так, стандарт ГОСТ 34.10-2001 определяет, что точка Q должна иметь порядок q, где q — простое число с «хорошими алгебраическими свойствами». Число q довольно велико (2254 < q < 2256). При построении конкретного алгоритма, реализующего вычисление цифровой подписи, американский стандарт предполагает использование алгоритма DSA. Новый российский стандарт использует модифицированную версию старого ГОСТ Р 34.10-94. Оказалось, оба они хорошо подходят для реализации в группе точек эллиптической кривой без особых модификаций. Некоторые специалисты отмечают даже, что описание алгоритма цифровой подписи Эль-Гамаля на эллиптической кривой «проще и естественней». Из-за очевидной трудности взлома алгоритм ECDLP можно применять для высоко защищенных систем; обеспечивая сопоставимый уровень безопасности, алгоритм имеет значительно меньшие размеры ключа, чем, например, алгоритмы RSA или DSA. В приведенной ниже таблице сравниваются приблизительные размеры параметров эллиптических систем и RSA, обеспечивающих одинаковую стойкость шифра, которая рассчитывается на основе современных методов решения ECDLP и факторинга (поиска делителей) для больших целых чисел. Система на основе RSA (длина модуля n) эллиптической кривой 106 бит 512бит 132бит 768бит 160бит 1024бит 224бит 2048бит Следовательно, использование эллиптических кривых позволяет строить высоко защищенные системы с ключами явно меньших размеров по сравнению с аналогичными “традиционными” системами типа RSA или DSA. В частности такие системы менее требовательны к вычислительной мощности и объему памяти оборудования и потому хорошо подходят, например, для смарт-карт или портативных телефонов. Разумеется существуют и проблемы, которые ограничивают повсеместное распространение криптографических систем на основе эллиптических кривых. Некоторые проблемы и трудности в использовании систем на основе эллиптических кривых. 1) Реальная безопасность таких систем все еще недостаточно осознана. Главная проблема состоит в том, что истинная сложность ECDLP ещё не осознана полностью. Недавнее исследование показало, что некоторые использовавшиеся для отработки алгоритмов шифрования эллиптические кривые, фактически не подходят для таких операций. 44 Например, если координаты базовой точки P равны положению p, то ECDLP имеет простое решение. Такие кривые являются “аномальными” кривыми. Трудность генерации подходящих кривых. При определении системы эллиптической кривой требуются сама кривая и базовая точка (P). Обратите внимание на то, что эти элементы не являются тайной и могут быть одинаковыми для всех пользователей системы. Для данной кривой и точки несложно сгенерировать открытые и частные ключи для пользователей (частный ключ – просто случайное целое число k, а открытый ключ –точка kP на кривой). Однако, чрезвычайно трудно создать подходящую кривую и точку. Главная проблема – подсчитать количество точек на кривой. Для этого необходимо выбрать подходящую базовую точку P, координаты которой должны иметь достаточно большое значение, чтобы гарантировать трудность взлома ECDLP. Но координаты P должны делиться на количество точек на кривой (помните, что точки на кривой вместе с бесконечно удаленной точкой образуют конечную группу). И весьма вероятно, что, найдя число точек на кривой, мы не сможем найти базовую точку. Подводя итог вышеизложенному, можно утверждать, что создание кривых – непростая задача. Пользователи могут использовать «стандартные» кривые, используя специальное программное обеспечение (типа THALES “Elliptic Curve Generation Bureau”), либо создавать собственные кривые, что занимает много времени. 3) Относительно медленная проверка цифровой подписи. Как уже было упомянуто, системы на основе эллиптической кривой используют ключи малых размеров. Это снижает требования к вычислительным мощностям по сравнению с требованиями систем на основе RSA. Как это влияет на скорость обработки? Следующая таблица показывает сравнительные характеристики алгоритмов RSA и ECDSA (нечетный) при создании и проверки подписей. Обратите внимание, что функция проверки подписи RSA использует при проверке подписи e = 65537. Создание Проверка подписи подписи RSA (1024 25 ms < 2 ms бита) ECDSA (160 32 ms 33 ms бит) RSA (2048 120 ms 5ms битов) ECDSA (216 68 ms 70 ms битов) Ясно, что различные способы выполнения покажут различное время, но примерная скорость ясна. При увеличении размеров ключа создание подписей с помощью ECDSA производится значительно быстрее, чем в аналогичных RSA системах. Это различие в ещё большей степени проявляется для однопроцессорных систем. С другой стороны проверка подписи с помощью ECDSA производится намного медленнее, чем эта же процедура в системах RSA и опять же это различие усиливается для систем с одним процессором. Обратите внимание, что обработка ECDSA несколько ускориться в “четном” случае. Мощность процессора затраченная на проверку подписи при использовании, скажем, ECDSA, может замедлить выполнение других приложений в системе. Множество систем имеют большое количество удаленных устройств, соединенных с центральным сервером и время, затраченное удаленным устройством для создания подписи – несколько секунд – не влияет на производительность системы в целом, но сервер должен также и подтверждать подписи причем очень быстро и в некоторых случаях системы RSA (даже использующие большие ключи) возможно, будут более приемлемы для использования, чем криптосистемы на основе эллиптической кривой. Заключение. 45 Криптосистемы на основе эллиптической кривой получают все большее распространение скорее как альтернатива, а не замена системам на основе RSA, поскольку системы на основе ECDLP имеют некоторые преимущества, особенно при использовании в устройствах с маломощными процессорами и/или маленькой памятью. Типичные области применения: - m-commerce (мобильная торговля) ( например, WAP сотовые телефоны, карманные компьютеры); - смарт-карты (например, EMV); - e-commerce (электронная торговля) и банковские операции (например, SET); - интернет-приложения (например, SSL). §7. Сетевая аутентификация Одной из наиболее важных служб безопасности является аутентификация. Аутентификация – это подтверждение пользователем информационных услуг своего идентификатора. Аутентификация выполняется с помощью разных методов. из которых простейшим является предъявления пользователем серверу секретного слова – пароля, известного только пользователю и серверу. 7.1. Хеш-функции Хеш-функции играют в информационной защите важную роль, создавая для электронного документа его «моментальный снимок» и тем самым защищая документ от дальнейшей модификации или подмены. В широком смысле функцией хеширования называется функция H, удовлетворяющая следующим основным свойствам: 1. Хеш-функция Н может применяться к блоку данных любой длины. 2. Хеш-функция Н создает выход фиксированной длины (равно, например, 128 бит для классической функции хеширования MD5, и 160 бит для американского стандарта хешфункций SHA1). 3. Н (М) вычисляется относительно быстро (за полиномиальное время от длины сообщения М). 4. Для любого данного значения хеш-кода h вычислительно невозможно найти M такое, что Н (M) = h. 5. Для любого данного х вычислительно невозможно найти y x, что H (y) = H (x). 6. Вычислительно невозможно найти произвольную пару (х, y) такую, что H (y) = H (x). Термин вычислительно невозможно означает здесь, что в настоящее время решение этой задачи либо требует слишком большого интервала времени (например, более сотни лет), либо использования слишком больших вычислительных ресурсов, чтобы решение задачи имело смысл. Первые три свойства требуют, чтобы хеш-функция создавала хеш-код для любого сообщения. Четвертое свойство определяет требование односторонности хеш-функции: легко создать хеш-код по данному сообщению, но невозможно восстановить сообщение по данному хеш-коду. Это свойство важно, если аутентификация с использованием хеш-функции включает секретное значение. Само секретное значение может не посылаться, тем не менее, если хеш-функция не является односторонней, противник может легко раскрыть секретное значение следующим образом. При перехвате передачи атакующий получает сообщение М и хеш-код С = Н (SAB || M). Если атакующий может инвертировать хеш-функцию, то, следовательно, он может получить SAB || M = H-1 (C). Так как атакующий теперь знает и М и SAB || M, получить SAB совсем просто, здесь || обозначает операцию конкатенации (соединения) двух текстов. 46 Пятое свойство гарантирует, что невозможно найти другое сообщение, чье значение хешфункции совпадало бы со значением хеш-функции данного сообщения. Это предотвращает подделку аутентификатора при использовании зашифрованного хеш-кода. В данном случае противник может читать сообщение и, следовательно, создать его хеш-код. Но так как противник не владеет секретным ключом, он не имеет возможности изменить сообщение так, чтобы получатель этого не обнаружил . Если данное свойство не выполняется, атакующий имеет возможность выполнить следующую последовательность действий: перехватить сообщение и его зашифрованный хеш-код, вычислить хеш-код сообщения, создать альтернативное сообщение с тем же самым хеш-кодом, заменить исходное сообщение на поддельное. Поскольку хеш-коды этих сообщений совпадают, получатель не обнаружит подмены. Хеш-функция, которая удовлетворяет первым пяти свойствам, называется простой или слабой хеш-функцией. Если кроме того выполняется шестое свойство, то такая функция называется сильной хеш-функцией. Шестое свойство защищает против класса атак, известных как атака "день рождения". Вычисление хеш-функций Все хеш-функции вычисляются следующим образом. Входное значение (сообщение, файл и т.п.) рассматривается как последовательность n-битных блоков. Входное значение обрабатывается последовательно блок за блоком, и создается m-битное значение хеш-кода. Одним из простейших примеров хеш-функции является побитный XOR каждого блока: Сi = bi1 bi2 . . . bik Где Сi - i-ый бит хеш-кода, 1 i n. k - число n-битных блоков входа. bij - i-ый бит в j-ом блоке. - операция XOR. В результате получается хеш-код длины n, известный как продольный избыточный контроль. Это эффективно при случайных сбоях для проверки целостности данных. Часто при использовании подобного продольного избыточного контроля для каждого блока выполняется однобитный циклический сдвиг после вычисления хеш-кода. Это можно описать следующим образом. Установить n-битный хеш-код в ноль. Для каждого n-битного блока данных выполнить следующие операции: o сдвинуть циклически текущий хеш-код влево на один бит; o выполнить операцию XOR для очередного блока и хеш-кода. Это даст эффект "случайности" входа и уничтожит любую регулярность, которая присутствует во входных значениях. Хотя второй вариант считается более предпочтительным для обеспечения целостности данных и предохранения от случайных сбоев, он не может использоваться для обнаружения преднамеренных модификаций передаваемых сообщений. Зная сообщение, атакующий легко может создать новое сообщение, которое имеет тот же самый хеш-код. Для этого следует подготовить альтернативное сообщение и затем присоединить n-битный блок, который является хеш-кодом нового сообщения, и блок, который является хеш-кодом старого сообщения. Хотя простого XOR или ротационного XOR (RXOR) недостаточно, если целостность обеспечивается только зашифрованным хеш-кодом, а само сообщение не шифруется, подобная простая функция может использоваться, когда все сообщение и присоединенный к нему хеш-код шифруются. Но и в этом случае следует помнить о том, что подобная хеш-функция не может проследить за тем, чтобы при передаче последовательность блоков не изменилась. Это происходит в силу того, что данная хеш-функция определяется следующим образом: для сообщения, состо- 47 ящего из последовательности 64-битных блоков Х1, Х2,..., ХN, определяется хеш-код С как поблочный XOR всех блоков, который присоединяется в качестве последнего блока: С = ХN+1 = X1 X2 . . . XN Затем все сообщение шифруется, включая хеш-код, в режиме СВС для создания зашифрованных блоков Y1, Y2, ..., YN+1. По определению СВС имеем: Х1 = IV DK [Y1] Хi = Yi-1 DK [Yi] ХN+1 = YN DK [YN+1] Но XN+1 является хеш-кодом: ХN+1 = X1 X2 . . . XN = (IV DK [Y1]) (Y1 DK [Y2]) . . . (YN-1 DK [YN]) Так как сомножители в предыдущем равенстве могут вычисляться в любом порядке, следовательно, хеш-код не будет изменен, если зашифрованные блоки будут переставлены. Первоначальный стандарт, предложенный NIST, использовал простой XOR, который применялся к 64-битным блокам сообщения, затем все сообщение шифровалось, используя режим СВС. 7.2. Парадокс дня рождения Прежде чем рассматривать более сложные хеш-функции, необходимо проанализировать одну конкретную атаку на простые хеш-функции. Так называемый "парадокс дня рождения" состоит в следующем. Предположим, количество выходных значений хеш-функции Н равно n. Вопрос: Каким должно быть число k, чтобы для конкретного значения X и значений Y1, …, Yk вероятность того, что хотя бы для одного Yi выполнялось равенство H (X) = H (Y) была бы больше 0,5. Решение. Для одного Y вероятность того, что H (X) = H (Y), равна 1/n. Соответственно, вероятность того, что H(X) H(Y), равна 1 1 / n . Если создать k значений, то вероятность того, что ни для одного из них не будет совпадений, равна произведению вероятностей, соответствующих одному значению, т.е. (1 1 / n) k . Следовательно, вероятность, по крайней мере, одного совпадения равна 1 (1 1/ n)k k (k 1) 2 k a 1 ka . Отсюда, По формуле бинома Ньютона (1 a ) 1 ka 2! 1 (1 1 / n) k 1 (1 k / n) kn 0,5 , и k n / 2 . Таким образом, для m-битового хеш-кода достаточно выбрать 2m-1 сообщений, чтобы вероятность совпадения хеш-кодов была больше 0,5. Теперь рассмотрим следующую задачу: Вопрос 2: пусть P (n, k) – вероятность того, что в множестве из k элементов, каждый из которых может принимать n значений, есть хотя бы два с одинаковыми значениями. Чему должно быть равно k, чтобы P (n, k) была бы больше 0,5? Число различных способов выбора k элементов из n без повторений равно n! n(n 1) ... (n k 1) Cnk k!(n k )! k! Число различных способов выбора k элементов из n с повторениями равно n k . Отсюда, вероятность того, что в произвольной выборке k предметов из n нет повторений равна по классической формуле вероятности отношению этих двух значений: 48 P(n, k ) n! 0,5 . Аппроксимируя факториалы, водящие в эту формулу по формуле k!(n k )! n k Стирлинга и решая неравенство, получим: k 1,17 n . Подобный результат называется "парадоксом дня рождения", потому что в соответствии с приведенными выше рассуждениями для того, чтобы вероятность совпадения дней рождения у двух человек была больше 0,5, в группе должно быть всего 23 человека. Этот результат кажется удивительным, возможно, потому, что для каждого отдельного человека в группе вероятность того, что с его днем рождения совпадет день рождения кого-то другого в группе, достаточно мала. Вернемся к рассмотрению свойств хеш-функций. Предположим, что используется 64битный хеш-код. Можно считать, что это вполне достаточная и, следовательно, безопасная длина для хеш-кода. Например, если зашифрованный хеш-код С передается с соответствующим незашифрованным сообщением М, то противнику необходимо будет найти М' такое, что Н (М') = Н (М) для того, чтобы подменить сообщение и обмануть получателя. В среднем противник должен перебрать 263 сообщений для того, чтобы найти такое, у которого хеш-код равен перехваченному сообщению. Тем не менее, возможны различного рода атаки, основанные на "парадоксе дня рождения". Возможна следующая стратегия: Противник создает 2m/2 вариантов сообщения, каждое из которых имеет некоторый определенный смысл. Противник подготавливает такое же количество сообщений, каждое из которых является поддельным и предназначено для замены настоящего сообщения. Два набора сообщений сравниваются в поисках пары сообщений, имеющих одинаковый хеш-код. Вероятность успеха в соответствии с "парадоксом дня рождения" больше, чем 0,5. Если соответствующая пара не найдена, то создаются дополнительные исходные и поддельные сообщения до тех пор, пока не будет найдена пара. Атакующий предлагает отправителю исходный вариант сообщения для подписи. Эта подпись может быть затем присоединена к поддельному варианту для передачи получателю. Так как оба варианта имеют один и тот же хеш-код, будет создана одинаковая подпись. Противник будет уверен в успехе, даже не зная ключа шифрования. Таким образом, если используется 64-битный хеш-код, то необходимая сложность вычислений составляет порядка 232. В заключение отметим, что длина хеш-кода должна быть достаточно большой. Длина, равная 64 битам, в настоящее время не считается безопасной. Предпочтительнее, чтобы длина составляла порядка 100 битов. Использование цепочки зашифрованных блоков Существуют различные хеш-функции, основанные на создании цепочки зашифрованных блоков, но без использования секретного ключа. Одна из таких хеш-функций была предложена Рабином. Сообщение М разбивается на блоки фиксированной длины М1, М2, . . . , МN и используется алгоритм симметричного шифрования, например DES, для вычисления хеш-кода G следующим образом: Н0 = начальное значение Нi = EMi [Hi-1] G = HN Это аналогично использованию шифрования в режиме сцепления блоков СВС, но в данном случае секретного ключа нет. Как и в случае любой простой хеш-функции, этот алгоритм подвержен "атаке дня рождения", и если шифрующим алгоритмом является DES и создается только 64-битный хеш-код, то система считается достаточно уязвимой. Могут осуществляться другие атаки типа "дня рождения", которые возможны даже в том случае, если противник имеет доступ только к одному сообщению и соответствующему ему зашифрованному хеш-коду и не может получить несколько пар сообщений и зашифрованных хеш-кодов. Возможен следующий сценарий: предположим, что противник перехватил сообще- 49 ние с аутентификатором в виде зашифрованного хеш-кода, и известно, что незашифрованный хеш-код имеет длину m битов. Далее противник должен выполнить следующие действия: Используя описанный выше алгоритм, вычислить незашифрованный хеш-код G. Создать поддельное сообщение в виде Q1, Q2, . . . , QN-2. Вычислить Нi = EQi[Hi-1] для 1 i N-2. Создать 2m/2 случайных блока Х и для каждого такого блока Х вычислить ЕХ[HN-2]. Создать дополнительно 2m/2 cлучайных блока Y и для каждого блока Y вычислить DY[G], где D - дешифрующая функция, соответствующая Е. Основываясь на "парадоксе дня рождения" можно сказать, что с высокой степенью вероятности эта последовательность будет содержать блоки Х и Y такие, что ЕХ[HN-2] = DY[Y]. Создать сообщение Q1, Q2, . . . ,QN-2, X, Y. Это сообщение имеет хеш-код G и, следовательно, может быть использовано вместе с зашифрованным аутентификатором. Эта форма атаки известна как атака "встреча посередине". В различных исследованиях предлагаются более тонкие методы для усиления подхода, основанного на цепочке блоков. Например, Девис и Прайс описали следующий вариант: Hi = EMi [Hi-1] Hi-1 Возможен другой вариант: Hi = EHi-1 [Mi] Mi Однако обе эти схемы также имеют уязвимости при различных атаках. В более общем случае, можно показать, что некоторая форма "атаки дня рождения" имеет успех при любом хешалгоритме, включающем использование цепочки шифрованных блоков без применения секретного ключа. Дальнейшие исследования были направлены на поиск других подходов к созданию функций хеширования. 7.3. Защищенная функция хеширования SHA-1 Защищенная функция хеширования (Secure Hash Algorithm – SHA) была разработана Национальным Институтом Стандартов (NIST) и опубликована в виде федерального стандарта в 1993 году. Пересмотренная версия вышла в 1995. Эту версию обычно называют SHA-1. Алгоритм получает на входе сообщение произвольной длины и создает в качестве выхода дайджест сообщения длиной 160 бит. Алгоритм состоит из следующих шагов: Шаг 1: добавление недостающих битов. Сообщение дополняется таким образом, чтобы его длина стала равной 448 по модулю 512. Это означает, что длина добавленного сообщения на 64 бита меньше, чем число, кратное 512. Добавление производится всегда, даже если сообщение имеет нужную длину. Например, если длина сообщения 448 битов, оно дополняется 512 битами до 960 битов. Таким образом, число добавляемых битов находится в диапазоне от 1 до 512. Добавление состоит из единицы, за которой следует необходимое количество нулей. Шаг 2: добавление длины К сообщение, полученному на предыдущем шаге, присоединяется 64-битное представление длины исходного (до добавления) сообщения в битах В результате первых двух шагов создается сообщение, длина которого кратна 512 битам. Это расширенное сообщение представляется как последовательность 512-битных блоков Y0, Y1, . . ., YL-1, при этом общая длина расширенного сообщения равна L * 512 битам. Таким образом, длина полученного расширенного сообщения кратна шестнадцати 32-битным словам. 50 Рис. Структура расширенного сообщения Шаг 3: инициализация MD-буфера Используется 160-битный буфер для хранения промежуточных и окончательных результатов хэш-функции. Буфер может быть представлен как пять 32-битных регистра (A, B, C, D,E). Эти регистры инициализируются следующими шестнадцатеричными числами: А В C D E = = = = = 01234567 89ABCDEF FEDCBA98 76543210 C3D2E1F0 Шаг 4: обработка последовательности 512-битных блоков Основой алгоритма является модуль, состоящий из четырех циклических обработок по 20 элементарных шагов. Все четыре цикла имеют одинаковую структуру, но каждый цикл использует свою элементарную логическую функцию. Каждый цикл принимает в качестве входа текущий 512-битный блок Yq, обрабатывающийся в данный момент, и 160-битовое значение буфера ABCDE, обозначаемое SHAq, которое является промежуточным значением дайджеста, и изменяет содержимое этого буфера. Для получения SHAq+1 выход четырех циклов складывается по модулю 232 с SHAq. Сложение выполняется независимо для каждого из четырех слов в буфере. Алгоритм MD5 51 Алгоритм MD5 является разработкой Рона Ривеста (RFC 1321). Алгоритм получает на входе сообщение произвольной длины и создает в качестве выхода дайджест сообщения длиной 128 бит. По настоящее время этот алгоритм остается одним из самых распространеных алгоритмов хеширования. Однако в настоящее время длина его выхода 128 бит является недостаточно большой, чтобы противопостоять атакам прямого перебора. Кроме того, однаружены ряд уязвимостей MD5 против линейного и дифференциального криптоанализа. 7.4. Алгоритм HMAC Использование хеш-функций само по себе не решает проблемы обеспечения целостности и неизменности сообщений, поскольку хеш-значения не зависят от ключа и могут быть также подделаны. Поэтому необходимо строить свертки сообщений, зависящие от секретного ключа, которым владеют отправитель и получатель. В этой целью был разработан алгоритм построения свертки сообщений HMAC, строящий свертку сообщения в зависимости от ключа K. Этот алгоритм описан в документе RFC 2104 и обеспечивает выполнение следующих требований: 1. Возможность использования без модификации уже имеющихся функций хеширования, в частности, тех функций, для которых существуют проверенные на практике, открытые и широко доступные программные реализации. 2. Возмолжность легкой замены встроенной функции хеширования на более скоростную или более защищенную, если таковые потребуются. 3. Сохранение скорости работы алгоритма, близкой к скорости работы сответствующей функции хеширования, без значительного ухудшения показателей скорости. 4. Возможность применения ключей, и простота работы с ними. 5. Простота анализа стойкости механизма аутентификации, основанной на этом алгоритме. На рис. 7.1. дана общая схема работы алгоритма HMAC. В схеме использованы следующие обозначения: H – встроенная функция хеширования (например, SHA-1). М – подаваемое на вход сообщние (включая биты заполнения, требуемые алгоритмом хеширования) Yi – i-й блок М, 0 i L 1. L – число блоков в М. b – число битов в блоке, n – длина хеш-кода, генерируемого функцией H, K – секретный ключ. Если длина ключа больше b, то ключ подвергается хеш-преобразованию для получения ключа длины n. K+ – ключ K с добавленными впереди нулями, чтобы общая длина стала равна b. ipad – значение 00110110 (шестнадцатеричное 36), повторенное b/8 раз. opad – значение 01011010 (шестнадцатеричное 5C), повторенное b/8 раз. В целом, алгоритм HMAC может быть описан формулой HMAC K H [( K opad ) || H ( K ipad ) || M ] 52 Рис.7.1. Общая схема работы алгоритма HMAC. Следует обратить внимание на то, что связывание с ipod означает переключение половины битов К. Точно также, свящывание с opad означает также переключение половины битов К, но уже для другого набора. В итоге из К были получены два разных подключа, сгенерированные из ключа К. Алгоритм HMAC является простым, и время его работы ненамного превышает времени двухкратного вычисления функции H для каждого из L блоков, т.е. t HMAC 2L t H , где t H - время вычисления функции H. 7.5. Простая аутентификация на основе хеш-значений Простая аутентификация, используемая на локальном компьютере, заключается в том, что при загрузке операционной системы пользователю предлагается ввести свой идентификатор и пароль. В операционных системах Windows используется база данных пользователей sam (system authetication manager), хранящая идентификаторы всех пользователей и их пароли, преобразованные с помощью хеш-функции. Эта база данных находится в системной папке Windows\System32\Config, и доступ к ней при загруженной ОС блокируется. При вводе пользователем своего логина и пароля, пароль подвергается хешпреобразованию и сравнивается со значением, хранящемся в базе данных sam. Если значения хеш-сверток совпали, то пользователь допускается к работе, иначе, ему предлагается ввести свои логин и пароль повторно. И хотя окно с полями вводя имени и пароля может появляться сколь угодно долго, операционная система Windows осуществляет проверку только три раза, после чего пользователь теряет возможность входа в компьютер. Для повторения процедуры ввода необходима перезагрузка операционной системы. Действия взломшика для доступа к компьютеру могут заключаться в том, что он может загрузить другую операционную систему с дискеты или системного диска, скопировать базу данных sam и затем подвергнуть ее взлому с помощью программ типа SamInside, которые, перебирая всевозможные комбинации паролей со скоростью несколько миллионов вариантов в 53 секунду, позволяют вскрыть пароль длины 6-7 символов. Такая атака называется brute force (грубая сила). Если же пароль имеет простую структуру типа Nikolai_1987, то программы такого типа могут вскрыть его, составляя комбинации слов из загружаемого словаря и цифровых сочетаний. Если пользователь использует пароль сложной структуры, содержащий символы из разных алфавитов (например, английского и русского, а также спецсимволы), то такой пароль невозможно вскрыть при его длине 5-6 символов. Впрочем есть программы, которые обнуляют пароль любого пользователя и позволяют войти в компьютер с пустым паролем. Однако в этом случае, естественно, попытка взлома будет сразу замечена. От такой атаки нет защиты, кроме физического ограничения доступа к данному компьютеру или использования специальных аппаратных устройств аутентификации. 7.5. Сетевая аутентификация на основе слова- вызова. Если пользователь находится на удаленном расстоянии от сервера услуг, и доступ осуществляется через открытые сети, то передача пароля становится опасным. В этом случае используется вариант аутентификации, называемой вызовом (challenge). Он заключается в том, что при выходе на связь пользователь посылает сначала свой идентификатор. Получив индентификатор, сервер проверяет наличии такого пользователя по своей базе данных и затем возвращает пользователю случайное большое число N (обычно длины 16 байт), называемое словом–вызовом. Пользователь, получив это число, формирует пару <N, P>, где P обозначает пароль пользователя, подвергает ее хеш-преобразованию и отправляет полученное значение h=h(<N,P>) серверу. Сервер, получив свертку h, извлекает из базы данных пароль пользователя, который должен в этом случае храниться в открытом виде, выполняет то же преобразование h(<N,P) и сравнивает два полученных значения h. Если они совпали, то процедура аутентификация считается успешной. Рис. Схема аутентификации на основе слова- вызова. Эта схема безопасна для пользователя по той причине, что его пароль не пересылается по сети, а пересылается только его свертка со словом-вызовом. Длина слова-вызова достаточно велика, чтобы обеспечить невозможность восстановления пароля путем полного перебора. Слово-вызов повторно не используется, поэтому перехватив хеш в сети, взломщик не сможет им воспользоваться. При обрыве соединения или необходимости повторного сеанса, пользователь может запросить еще одно слово-вызов, либо выслать хеш, вычисленный от пары <N+1, P> в зависимости от действующего протокола связи. Оба варианта – безопасны. Такая простая схема аутентификации является простой и надежной, решая задачу безопасной аутентификации и давая возможность использовать пароль пользователя многократно. §7. Протокол расширенной аутентификации Kerberos 54 Протокол аутентификации Kerberos является основным механизмом аутентификации, используемым в среде Windows 2000/Server 2003. Этот протокол был разработан в Массачусетском технологическом институте (Massachusetts Institute of Technology, MIT) в начале 1980-х гг. Существует несколько версий протокола Kerberos. В среде Windows 2000/Server 2003 применяется пятая версия протокола Kerberos, спецификация которого определена в стандарте RFC 1510. Протокол Kerberos представляет собой набор методов идентификации и проверки истинности партнеров по обмену информацией (рабочих станций, пользователей или серверов) в открытой (незащищенной) сети. Процесс идентификации не зависит от аутентификации, выполняемой сетевой операционной системой, не основывается в принятии решений на адресах хостов и не предполагает обязательную организацию физической безопасности всех хостов сети. Усиленная безопасность Kerberos разработана для работы в условиях сети комьютеров, поддерживающих отдельные хосты с различными операционными системы при наличии в сети различных серверов услуг и предполагает возможности в сети ряда нарушений информационной безопасности следующего типа: 1. Пользователь может получить доступ к рабочей станции и выдавать себя за другого пользователя этой рабочей станции, 2. Пользователь может изменить сетевой адрес этой рабочей станции, чтобы пересылаемые им сообщения казались исходящими с другой рабочей станции, 3. Пользователь может перехватывать пересылаемые сообщения и воспроизводить их впоследствии, чтобы получить доступ к серверу или внести хаос в поток данных. Как следствие этих действий пользователь может получить доступ к услугам, на которые он не имеет прав. Для решения задачи надежной аутентификации пользователя на различных серверах услуг, функционирующих в сети, предложена оригинальная схема, соедержащая следующие элементы: 1. Центральный сервер аутентификации, хранящего все данные пользователей, их пароли и права доступа к различным информационным услугам данной сети, 2. Серверы выдачи мандатов (Ticket Granting Servers) TGS, 3. Серверы информационных услуг (например, почтовый сервер, сервер доступа в Интернет, служба сетевых принтеров и т.д.). Для обмена данными между сервером аутентификации и серверами услуг используется секретные ключи, уникальные для каждого из этих серверов. Рассмотрим сначала схему Kerberos версии 4. Введем следующие обозначения: С – клиент, AS – сервер аутентификации, TGS – сервер выдачи мандатов, V – сервер услуг, IDC – идентификатор клиента С, IDTGS – идентификатор TGS, KC – ключ С, AdC – сетевой адрес С, KTGS – секретный ключ TGS, используемый совместно AS и TGS, TS – временная метка (time stamp), S – срок действия мандата. Рассмотрим следующий диалог аутентификации клиента: (1) C AS : IDC, IDTGS, (2) AS C : EncKC ( M TGS ), где EncKC обозначает операцию шифрования данных с помощью ключа KС, МTGS- мандат TGS, M TGS EncKTGS ( IDC , ADC , IDTGS , TS1 , S1 ) 55 (3) C TGS : IDC, IDV, MTGS (4) TGS C : МандатV. В этом диалоге клиент отправляет серверу AS свой идентификатор и идентификатор сервера TGS, к которому ему надо получить доступ. В ответ сервер AS вырабатывает мандат, зашифрованный совместным с TGS секретным ключом. Этот мандат далее шифруется еще раз, на этот раз ключом клиента, что исключает доступ к мандату третьих лиц. Клиент расшифровывает мандат и отправляет его серверу TGS с указанием своего идентификатора и идентификатора сервера V, к которому ему требуется получить доступ. Отметим, что мандат М продолжает оставаться зашифрованным и не может быть изменен пользователем С. По сути С получает нечто, что он должен передать серверу TGS для получения услуг. Сервер TGS, расшифровав мандат, проверяет идентификатор пользователя и его сетевой адрес, а также срок действия мандата, после чего посылает С мандат MV на получение услуг сервера V. Эта схема предполагает, что клиент С аутентифицируется однократно на сервере AS в некоторый момент времени TS1, например, в начале рабочего дня, и получает мандат TGS длительного времени, определяемого сроком действия мандата S1, например, в течение всего рабочего дня. Мандат TGS сохраняется на рабочей станции клиента и может использоваться многократно для доступа к различным услугам сети. Каждый раз, когда клиенту требуется новую услугу, он предъявляет мандат серверу TGS, который выдает клиенту уже одноразовый мандат на доступ к конкретному сервису. Однако, в этой схеме есть существенный изъян, заключающийся в том, что мандат, пересылаемый от клиента С серверу TGS на шаге 3, может быть перехвачен противником и использоваться для доступа к услугам сети. Для предотвращения этой возможности предложен более защищенный вариант этого диалога. В этом диалоге сервер AS вырабатывает новый секретный ключ K C ,TGS , который передает клиенту С и серверу TGS для шифрования аутентификатора С, содержащего его имя и сетевой адрес: (1) C AS : (2) AS C : IDC, IDTGS, TS1 EncKC ( K C ,TGS , M TGS ), где M TGS EncKTGS ( K C ,TGS , IDC , ADC , IDTGS , TS 2 , S 2 ) (3) C TGS : IDV, MTGS, Aut EncC ,TGS ( IDC , ADC , TS3 ) (4) TGS C : МандатV. Описанная выше аутентификация требует доступа на чтение к базе данных Kerberos. Однако иногда записи базы данных могут быть модифицированы. Это происходит, например, при добавлении новых партнеров по обмену информацией или при изменении секретного ключа партнера. Изменения базы данных выполняются с помощью специального протокола обмена между клиентом и сервером Kerberos, применяющимся и при поддержке нескольких копий баз данных Kerberos. Для нормальной работы протокола Kerberos необходимо, чтобы каждый хост сети имел часы, которые были приблизительно синхронизированы с часами других хостов. Синхронизация необходима, чтобы было легче обнаружить факт передачи копии заранее перехваченного сообщения. Степень приблизительности синхронизации может быть установлена индивидуально для каждого сервера. Сам протокол синхронизации серверов сети должен быть защищен от атак злоумышленников. Протокол Kerberos версии 5. Версия 5 описывается в документе RFC 1510 и содержит ряд несущественных усовершенствований по отношению к версии 4, расширяющих возможности протокола. 56 Появилась новая возможность передачи (делегирования) полномочий, предоставляемых мандатам, другим участникам процесса. Основные отличия заключаются в следующем: 1. Клиент С при первом обращении к серверу AS добавляет в свой запрос некоторое случайное число – оказию (nonce), которое должен воспроизвести сервер AS, чтобы связать ответ сервера с запросом клиента, 2. Мандат M TGS , выдаваемый клиенту сервером AS, не шифруется вторично ключом клиента. Секретный ключ K C ,TGS для обмена данными между клиентом и сервером TGS в этом случае передается в виде EncKC ( K C ,TGS , îêàçèÿ , ãðàíèöà âðåìåíè , îáëàñòü TGS ) . Здесь оказия – то же случайное число, которое было выслано в первом запросе. Исключение двойного шифрования мандата позволяет уменьшить расход ресурсов на шифрование/ расшифровку мандата. Выделение области TGS позволяет ограничить область действия мандата. 3. Сам мандат включает в себя новый параметр – поле флагов. Эти флаги позволяют уточнить тип и способ применения мандата, например, может ли этот мандат быть передан владельцем другим лицам. 4. Аутентификатор клиента, передаваемый С серверу TGS на шаге 3, может содержать новые данные – сеансовый подключ, используемый однократно для работы с приложением, а также порядковый номер для нумерации сообщений, посылаемых клиенту. 5. Появилась возможность аутентификации не только клиента серверу, но и сервера клиенту, что исключает появление в сети поддельных серверов. Эти изменения, в целом, не меняют основных особенностей протокола Kerberos и не являются существенными для понимания. Аутентификация Kerberos в доменах Active Directory, управляемых ОС Windows. По мере роста и усложнения компьютерных сетей предприятия, построенных на основе систем Windows, становится необходимым применение протокола, обеспечивающего более совершенную и надежную аутентификацию пользователей при доступе к распределенным ресурсам. В операционных системах Windows 2000 и старше для этих целей применяется протокол аутентификации Kerberos версии 5, входящий в систему безопасности доменов Windows Server, тесно интегрированную с Active Directory. Реализация протокола Kerberos версии 5 в Windows основана на RFC 1510. Этот документ широко обсуждался и корректировался многими организациями, работающими в области создания и применения защищенных средств передачи информации по компьютерным сетям. Аутентификация Kerberos полностью отвечает требованиям к протоколам подобного назначения и позволяет создать высокопроизводительную и защищенную сеть предприятия. Программное обеспечение Kerberos, созданное Microsoft, поддерживает всех клиентов, удовлетворяющих RFC 1510. Однако полную поддержку сетей Windows 2000 осуществляет только клиент Kerberos, разработанный Microsoft, поскольку версия Kerberos Microsoft обладает рядом расширений. Системы Windows Server 2003 в полной мере используют все средства распределенной безопасности, внедренные в Windows 2000. Протокол Kerberos интегрирован в существующую модель распределенной безопасности Windows 2000/Server 2003. В этих системах используются расширения протокола Kerberos — так же, как и другие архитектуры безопасности, например ОСЕ и SESAME. Протокол Kerberos — один из протоколов безопасности, поддерживаемых Windows 2000/Server 2003. Кроме него, поддерживаются протоколы NTLM для совместимости с предыдущими версиями, SSL и стандарт IETF безопасности транспортного уровня. В качестве механизма безопасности применяется протокол защищенных переговоров (Simple Protected Negotiation, SPNEGO). Для обеспечения безопасности передачи данных на сетевом уровне применяется технология IP Security (IPSec). 57 Сердцем Kerberos в системе Windows является Центр распределения ключей (KDC – Key Distribution Center). Именно KDC отвечает за установление защищенной связи между клиентом и сервером посредством безопасного распределения криптографических ключей. В сетях Windows KDC работает в процессе локального диспетчера защиты (Local Security Authority, LSA), Lsass.exe на контроллерах домена. Все компьютеры и службы, входящие в данный домен, регистрируются в службе LSA и получают имя и пароль. Эти данные используются для взаимной аутентификации в системе клиент-сервер. Логически KDC разделен на службу аутентификации AS и службу предоставления мандатов (TGS). Функции этих служб были объяснены в предыдущих разделах. §9. Стандарт сертификации X.509. 9.1. Аутентификация пользователей на основе сертификатов Аутентификация на основе сертификатов является альтернативой использованию паролей и представляется естественным решением, когда число пользователей сети (пусть и потенциальных) измеряется миллионами. В таких условиях процедура предварительной регистрации пользователей, связанная с назначением и хранением их паролей, становится крайне обременительной, опасной, а иногда и просто нереализуемой. Аутентификация пользователя на основе сертификатов происходит примерно так же, как при пропуске людей на территорию большого предприятия. Вахтер разрешает проход на основании документа, который содержит фотографию и подпись данного сотрудника, удостоверенные печатью предприятия и подписью лица, выдавшего его. Сертификат — аналог этого документа и выдается по запросам сертифицирующими организациями при выполнении определенных условий. Он представляет собой электронную форму, в которой имеются такие поля, как имя владельца, наименование организации, выдавшей сертификат, открытый ключ владельца. Кроме того, сертификат содержит электронную подпись выдавшей организации — все поля сертификата, зашифрованные закрытым ключом этой организации. Использование сертификатов основано на предположении, что сертифицирующих организаций немного, и их открытые ключи могут быть обнародованы каким-либо способом, например с помощью тех же публикаций в журналах. Когда нужно удостоверить личность пользователя, он предъявляет свой сертификат в двух формах — открытой, то есть такой, в которой он получил его в сертифицирующей организации, и закрытой, зашифрованной с применением собственного закрытого ключа. Сторона, проводящая аутентификацию, берет из открытого сертификата открытый ключ пользователя и с его помощью расшифровывает закрытый сертификат. Совпадение результата с данными открытого сертификата подтверждает тот факт, что предъявитель действительно является владельцем закрытого ключа, парного с указанным открытым. Затем с помощью известного открытого ключа выдавшей сертификат организации производится расшифровка подписи этой организации в сертификате. Если в результате получается тот же сертификат — значит, пользователь действительно прошел регистрацию в этой сертифицирующей организации, является тем, за кого себя выдает, и указанный в сертификате открытый ключ действительно принадлежит ему. Сертификаты можно использовать не только для аутентификации, но и для авторизации, т.е. для предоставления избирательных прав доступа. Для этого в сертификат могут вводиться дополнительные поля, в которых указывается принадлежность его владельца к той или иной категории пользователей. Эта категория зависит от условий, на которых сертифицирующая организация выдает сертификат. Например, организация, поставляющая информацию через Internet на коммерческой основе, может выдавать пользователям, оплатившим годовую подписку на некоторый бюллетень, сертификаты определенной категории, а Web-сервер будет предоставлять доступ к страницам этого бюллетеня только при предъявлении данного сертификата. 58 При использовании сертификатов отпадает необходимость хранить на серверах корпораций списки пользователей с их паролями, вместо этого достаточно иметь на сервере список имен и открытых ключей сертифицирующих организаций. Может также понадобиться некоторый механизм отображения категорий владельцев сертификатов на традиционные группы пользователей, чтобы можно было использовать в неизменном виде механизмы управления избирательным доступом большинства операционных систем и приложений. Механизм получения пользователем сертификата хорошо автоматизируется в системе клиент— сервер. Рассмотрим пример, в котором браузер выполняет роль клиента, а специальный сервер сертификатов, установленный в сертифицирующей организации, — роль сервера. Браузер вырабатывает для пользователя пару ключей, оставляет закрытый ключ у себя и передает частично заполненную форму сертификата серверу. Для того чтобы еще неподписанный сертификат нельзя было подменить при передаче по сети, браузер зашифровывает его закрытым ключом. Сервер сертификатов подписывает полученный сертификат, фиксирует его в своей базе данных и возвращает владельцу каким-либо способом. Очевидно, что все возможные случаи предусмотреть и автоматизировать нельзя, — иногда бывает нужна неформальная процедура подтверждения пользователем своей личности и права на получение сертификата. Эта процедура требует участия оператора сервера сертификатов и осуществляется, например, путем доказательства пользователем оплаты услуги или его принадлежности к какой-либо организации. После получения сертификата браузер хранит его вместе с закрытым ключом и использует при аутентификации на тех серверах, которые поддерживают этот процесс. Microsoft реализовала поддержку сертификатов в браузере Internet Explorer и в WEB- сервере Internet Information Server. Кроме того, Microsoft разрабатала собственный сервер сертификатов, выдающий сертификаты стандарта X.509 различных степеней доверия. В состав пакетов MS Office входит программа Selfcert.exe, позволяющая пользователям создавать собственные сертификаты и использовать их для создания цифровых подписей электронных документов Word, Excel и PowerPoint. 9.2. Состав сертификата Электронный сертификат представляет собой цифровой документ, который связывает открытый ключ с определенным пользователем или приложением. Сертификаты выдаются специальными организациями, называемыми центрами сетификации (Certification AuthorityCA). Для защиты сертификата он шифруется с помощью секретного ключа CA. Возможность проверки истинности сертификата базируется на предположении, что открытый ключ CA является общедоступным, и любой пользователь может проверить сертификат, расшифровав его с помощью открытого ключа CA. Состав сертификата определяется станадартом X.509. Стандарт X.509 был разработан в 1988 году Международным союзом телекоммуникаций (International Telecommunication Union- ITU) и является частью стандартов X.500, определяющих стандарт службы каталогов. Под каталогом понимается сервер или распределенная система серверов, поддерживающих базу данных с информацией о пользователях. Позднее стандарт был переработан и опубликован в 1993 году. Третья версия стандарта появилась в 1995 году. Рекомендации X.509 базируются на использовании методов криптографии с открытым ключом. Стандарт не предусматривает конкретный алгоритм, хотя и рекомендует применять RSA. Сертификат X.509 содержит следующие элементы: 1. Версия. Номер версии сертификата, может принимать значения 1, 2 или 3, 2. Порядковый номер. Уникальный номер сертификата. 3. Идентификатор алгоритма подписи. Идентифицирует алгоритм, используемый для создания цифровой подписи сертификата. 4. Имя организации, выдавшей сертификат. 5. Срок действия сертификата. Содержит даты начала действия и срок окончания действия сертификата. 59 6. Имя владельца сертификата. 7. Открытый ключ владельца сертификата. 8. Цифровая подпись. Охватывает все предыдущие поля сертификата, которые подвергаются хеш-преобразованию, а затем шифрованию с использованием закрытого ключа сертифицирующей организации. Сюда включают также данные об алгоритме шифрования и необходимых параметрах. Подпись сертифицирующей организации предохраняет сертификат от изменения. Если все пользователи используют один и тот же центр сертификации, то данные о всех владельцах сертификатов и их открытых ключах можно хранить в одном каталоге. Но чаще выполняется случай, когда пользователи размещаются в разных географических областях и пользуются разными сертификационными центрами. В этом случае, строится иерархия сертификационных центров, описываемая тем же стандартом X.509. Каждый центр сертификации находится на определенном уровне этой иерархии и имеет своего предшественника, находящегося выше. Вышестоящий СА сертифицирует СА, находящиеся уровнем ниже точно также, как СА сертифицирует владельцев цифровой подписи. СА, находящие на одном уровне, могут заключать соглашения и взаимно сертифицировать друг друга. Лицо, проверяющее цифровой сертификат другого лица, может использовать эту цепочку сертификатов для выхода на сертификационный центр, находящийся в зоне действия проверяющего субъекта, которому он доверяет. Например, российский покупатель может проверить сертификат Интернет-продавца в далекой Бразилии через цепочку сертификатов, представленных продавцем или международными организацими торговцев с выходом на сертификат, выданный, например, Сбербанком России, который подтверждая последний сертификат цепочки своей цифровой подписью, берет на себя ответственность в случае финансовых потерь российского покупателя. Компоненты ИОК и их функции В состав компонент ИОК входят следующие компоненты: Центр Сертификации; Центр Регистрации; Конечные пользователи; Сетевой справочник. Центр Сертификации Центр Сертификации (или Удостоверяющий Центр) - основная управляющая компонента ИОК, предназначенная для формирования электронных сертификатов подчиненных Центров и конечных пользователей. Кроме сертификатов, ЦС формирует список отозванных сертификатов X.509 CRL (СОС) с регулярностью, определенной Регламентом системы. К основным функция ЦС относятся: Формирование собственного секретного ключа и сертификата ЦС; Формирование сертификатов подчиненных Центров; Формирование сертификатов открытых ключей конечных пользователей; Формирование списка отозванных сертификатов; Ведение базы всех изготовленных сертификатов и списков отозванных сертификатов; Центр Регистрации Опциональная компонента ИОК, предназначенная для регистрации конечных пользователей. Основная задача ЦР - регистрация пользователей и обеспечение их взаимодействия с ЦС. В задачи ЦР может также входить публикация сертификатов и СОС в сетевом справочнике LDAP. Пользователи Пользователь, приложение или система, являющиеся Владельцами сертификата и использующие ИОК. Сетевой справочник 60 Опциональная компонента ИОК, содержащая сертификаты и списки отозванных сертификатов и служащая для целей распространения этих объектов среди пользователей с использованием протокола LDAP (HTTP, FTP). Использование ИОК в приложениях ИОК используется для управления ключами и электронными сертификатами в приложениях (таких как электронная почта, Web приложения, электронная коммерция), использующих криптографию для установления защищенных сетевых соединений (S/MIME, SSL, IPSEC), или для формирования ЭЦП электронных документов, приложений и т.д. Кроме того, ИОК может быть использована для корпоративных приложений. Электронная почта и документооборот Защищенные электронная почта и документооборот используют криптографию для шифрования сообщений или файлов и формирования ЭЦП. Из наиболее известных и распространенных стандартов стоит отметить протокол S/MIME (Secure Multipurpose Internet Mail Extensions), который является расширением стандарта Internet почты MIME (Multipurpose Internet Mail Extensions). Web приложения Web броузеры и сервера используют ИОК для аутентификации и конфиденциальности сессии, а также для онлайновых банковских приложений и электронных магазинов. Наиболее распространенным протоколом в этой сфере является протокол SSL (Secure Sockets Layer). Протокол SSL не ограничивается применением только для защиты HTTP (Hypertext Transfer Protocol), а также может быть использован для FTP (File Transfer Protocol) и Telnet. ЭЦП файлов и приложений Использование ЭЦП для подписи приложений и файлов позволяет безопасно распространять их по сети Internet. При этом пользователь уверен в корректности полученного приложения от фирмы-разработчика. Стандарты в области ИОК Стандарты в области ИОК делятся на две группы: часть из них описывает собственно реализацию ИОК, а вторая часть, которая относится к пользовательскому уровню, использует ИОК, не определяя ее. На приведенном рисунке показана связь приложений со стандартами. Стандартизация в области ИОК позволяет различным приложениям взаимодействовать между собой с использованием единой ИОК. В особенности стандартизация важна в области: процедуры регистрации и выработки ключа; описания формата сертификата; описания формата СОС; описания формата криптографически защищенных данных; описания онлайновых протоколов. Основным центром по выпуску согласованных стандартов в области ИОК является рабочая группа ИОК (PKI working group) организации IETF (Internet Engineering Task Force), известная как группа PKIX (от сокращения PKI for X.509 certificates). Стандарты PKIX Спецификации PKIX основаны на двух группах стандартов: X.509 ITU-T (Международный комитет по телекоммуникациям) и PKCS (Public Key Cryptography Standards) firmy RSA Data Security. X.509 изначально был предназначен для спецификации аутентификации при использовании в составе сервиса X.500 директории. Фактически же, синтаксис электронного сертификата, предложенный в X.509 признан стандартом де-факто и получил всеобщее распространение независимо от X.500. Однако X.509 ITU-T не был предназначен для полного определения ИОК. В целях применения стандартов X.509 в повседневной практике пользователи, поставщики и комитеты по стандартизации обращаются к стандартам PKCS. PKIX группа издала следующие стандарты Internet (RFC): Internet X.509 Public Key Infrastructure Certificate and CRL Profile (RFC 2459) Internet X.509 Public Key Infrastructure Certificate Management Protocols (RFC 2510) 61 Internet X.509 Certificate Request Message Format (RFC 2511) Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework (RFC 2527) Internet X.509 Public Key Infrastructure Representation of Key Exchange Algorithm (KEA) Keys in Internet X.509 Public Key Infrastructure Certificates (RFC 2528) Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv2 (RFC 2559) Internet X.509 Public Key Infrastructure Operational Protocols: FTP and HTTP (RFC 2585) Internet X.509 Public Key Infrastructure LDAPv2 Schema (RFC 2587) X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP (RFC 2560) X.509 Стандарт X.509 ITU-T является фундаментальным стандартом, лежащим в основе всех остальных, используемых в ИОК. Основное его назначение - определение формата электронного сертификата и списков отозванных сертификатов. PKCS Из серии стандартов, изданных фирмой RSA Data Security, наиболее важными и используемыми в ИОК являются: PKCS #7 Cryptographic Message Syntax Standard; PKCS #10 Certificate Request Syntax Standard; PKCS #12 Personal Information Exchange Syntax Standard. Вместо устаревшего стандарта RSA PKCS #7, описывающего форматы криптографических сообщений, в июне 1999 года был принят RFC 2630 Cryptographic Message Syntax. Стандарты, основанные на ИОК Большинство стандартов, использующих криптографию, разработано с учетом использования ИОК. S/MIME Стандарт S/MIME определен IETF для обеспечения защищенного обмена сообщениями. S/MIME использует ИОК для формирования ЭЦП и шифрования информации. В группе стандартов S/MIME наиболее важными являются следующие: Cryptographic Message Syntax, Message Specification, Certificate Handling и Certificate Request Syntax. SSL и TLS Протокол SSL (разработанный фирмой Netscape) и соответствующий ему стандарт IETF TLS (RFC 2246) являются наиболее используемыми стандартами для обеспечения защищенного доступа к Web. Вместе с этим, SSL и TLS широко используются для создания клиент серверных приложений, не использующих Web. Оба эти протокола в своей основе используют ИОК. Secure Electronic Transactions (SET) Протокол SET был разработан фирмами Visa и MasterCard и предназначен для обеспечения системы электронных банковских расчетов с использованием пластиковых карт. В данном протоколе ИОК является фундаментом, на котором базируется вся система аутентификации участников расчетов. IPsec Протокол IPsec (Internet Protocol Security Protocol) разработан IETF как протокол для шифрования IP и является одним из основных протоколов, используемых для построения VPN. ИОК в протоколе IPsec используется для аутентификации и шифрования. В настоящее время протокол еще широко не распространен, но повсеместное развитие ИОК приводит к возрастанию количества реализаций IPsec. §10. Защита информации, передаваемой по сети 62 Часто информация, передаваемая по каналам связи, является конфиденциальной. Такая информация не должна попасть в посторонние руки. Между тем, данные, передаваемые от одного узла к другому, могут проходить через множество промежуточных узлов, на которых без ведома администратора (а иногда и с его согласия) могут быть установлены программы для доступа к проходящим данным, например, снифферы - программы для вылавливания паролей, или программы для чтения почтовых сообщений. Поэтому, надежная защита информации в сети предполагает ее шифрование средствами криптографии, которые не позволяют взломщику прочитать данные, даже если он получит к ним прямой доступ. 10.1. Организация защиты данных в сетях. Отметим в первую очередь, что конфиденциальная информация может быть разных типов: почтовые сообщения и электронные документы, прикрепляемые к письмам, данные WEB-страниц (хотя большинство WEB-страниц предназначены для широкого доступа и требуют только защиты от изменения, существует ряд материалов, к которым может получать доступ только привелигированная часть посетителей), базы данных, доступ к которым осуществляется через сеть по технологии «клиент- сервер» или, например, голосовая связь через Интернет (VoIP – voice over Internet). Методы защита данных во всех этих случаях будут состоять из двух основных процедур – надежной аутентификации и авторизации всех пользователей, работающих в сети, и шифрование конфиденциальной информации. Методы аутентификации были рассмотрены ранее, здесь мы рассмотрим основные методы защиты, связанные с шифрование данных. Отметим, что многие приложения, работающие с файлами, содержат собственные механизмы защиты данных. Например, операционная система Windows содержит средства шифрования файлов в в файловой системе NTFS c помощью ключа, составленного из пароля текущего пользователя. Пакет офисных программ MS Office также позволяет шифровать документы, электроные таблицы и презентации, используя встроенные средства. Все современные СУБД – системы управления базами данных, также предоставляют в распоряжение пользвателей широкий набор средств по защите данных, начиная от шифрования всей базы данных и кончая шифрованием отдельных таблиц, запросов, форм, процедур обработки данных и т.д. Перечисленные средства позволяют защитить информацию, настраивая гибкий доступ к данным путем аутентификации и авторизации на основе паролей и сертификатов, и шифрования/расшифровки данных с помощью методов криптографии. Этот подход имеет, однако, существенный недостаток, заключающийся в его громозкости. Для его реализации требуется создавать средства защиты для каждого сетевого приложения и настраивать его для работы в сети. Это увеличивает сложность соответствующих пакетов, их стоимость и такие накладные расходы, как время обработки данных, размер трафика и т.д. Во- многих случаях, задача защиты данных может быть решена более эффективно, если использовать шифрование не на уровне приложений, а на уровне действия протоколов TCP/IP, в момент когда разносортные данные были уже превращены в IP-пакеты, т.е. в наборы бит, снабженные заголовком IP, содержащим адреса отправителя и получателя. При таком подходе обеспечивается универсальность, позволяющая единым способом шифровать все данные, независимо от типов компьютеров, установленных в сети, от программного обеспечения и операционных систем, работающих на этих компьютерах. Одним из наиболее распространенных протоколов защиты данных на уровне IP является протокол IPsec. 10.2. Протокол IPsec. IPSec (Internet Protocol Security) - набор стандартов, разработанных специально для создания защищенных соединений "точка-точка". Стандарты были разработаны Internet 63 Engineering Task For (IETF) для организации защищенных соединений в общественных или частных сетях TCP/IP. Пользователь воспринимает сеть как надежно защищенную среду только в том случае, если он уверен, что его «собеседник» — именно тот, за кого он себя выдает (аутентификация сторон), что передаваемые пакеты не просматриваются посторонними лицами (конфиденциальность связи) и что получаемые данные не подверглись изменению в процессе передачи (целостность данных). Чтобы достичь соответствия перечисленным критериям, разработчики IPSec предлагают воспользоваться тремя инструментальными средствами защиты: протоколом аутентификации (Authentication Header, AH), который «привязывает» данные в составе пакета к своеобразной подписи, позволяющей удостовериться как в подлинности отправителя, так и в целостности принятых от него данных; протоколом Encapsulated Security Payload (ESP), отвечающим за шифрование содержимого отдельных пакетов (и даже некоторых IP-адресов, передаваемых в их составе); протоколами обмена ключами (Internet Key Exchange, IKE), которые предназначены для согласования используемых алгоритмов аутентификации и шифрования, ключей и продолжительности их действия, а также для защищенного обмена ключами. Программное обеспечение перечисленных протоколов (утилиты шифрования, цифровой подписи и пр.) может функционировать на серверах или компьютерах конечных пользователей. Однако чаще его устанавливают на маршрутизаторах или специальных устройствах — брандмауэрах, которые в архитектуре IPSec именуются шлюзами безопасности (security gateway). В соответствии с этим различают два режима использования протоколов IPSec — транспортный и туннельный. В транспортном режиме зашифрованные данные транспортируются непосредственно между хост-компьютерами, но защита распространяется только на пакеты четвертого и вышележащих уровней. В туннельном режиме ситуация выглядит несколько сложнее. Основная роль здесь отводится шлюзам безопасности, поскольку предполагается, что клиентские станции (или серверы) не поддерживают IPSec и отправляют в сеть обычный IP-трафик. Однако перед тем как достичь каналов глобальной сети, каждый IP-пакет сначала попадает в шлюз, который помещает этот пакет целиком в «оболочку» IPSec, зашифровывая его содержимое вместе с исходным IPзаголовком. Чтобы обеспечить возможность маршрутизации получившегося пакета, шлюз снабжает его новым IP-заголовком и только после этого отправляет в сеть. Шлюз, находящийся на противоположном конце соединения, дешифрует пакет и передает его на оконечное устройство в первоначальном виде. Описанная процедура и называется туннелированием. Она позволяет распространить действие средств защиты на сетевой уровень модели OSI, в частности скрыть истинные IP-адреса источника и получателя для уменьшения риска атак, основанных на детальном анализе трафика. Менее очевидная задача туннелирования — транспортировка через общедоступную сеть некорректных IP-адресов, которые в явном виде не были бы ею восприняты. IPSec представляет собой набор алгоритмов и протоколов с достаточно гибкой внутренней структурой, что позволяет производителям различных устройств, поддерживающих IPSec, самостоятельно выбирать оптимальные с их точки зрения ключи, алгоритмы и методы аутентификации. Набор протоколов и алгоритмов шифрования включает следующие позиции: IKE (Internet Key Exhange protocol) ISAKMP (Internet Security Association and Key Management Protocol) AH (Authentication Header Protocol) ESP (Encapsulating Security Payload Protocol) STS (Station-to-Station Protocol) HMAC (Hash Message Authentication Code) MD5 (Message Digest 5) SHA-1 (Security Hash Algorithm) 64 3DES (Triple Data Encryption Standard) XAUTH (Extended Authentication) AES (Advanced Encryption Standard) Два важнейших протокола применительно к IPSec - AH (Authentication Header) и ESP (Encapsulating Security Payload). Как ясно из названия, AH используется для аутентификации отправителя информации и обеспечения целостности данных - с целью убедиться, что данные не были изменены в процессе связи. AH не шифрует данные и не обеспечивает конфиденциальности, этот протокол лишь "подписывает" целый пакет данных. В отличие от AH, ESP способен обеспечить конфиденциальность информации, так как непосредственно шифрует данные совместно с проверкой подлинности и целостности. Отличие от AH состоит и в том, что ESP не подписывает каждый пакет, оперируя лишь данными. IPSec способен функционировать в двух режимах: транспортном и туннельном, которые представляют собой два разных подхода к обеспечению безопасности. В транспортном режиме шифруются только полезные данные сообщения - непосредственно информация, подлежащая передаче в процессе сеанса связи. В туннельном - шифрованию подлежат данные, заголовок и маршрутная информация. Нет необходимости говорить, что применение IPSec в транспортном режиме гораздо более рискованно, нежели в туннельном. Туннельный режим, как правило, используется при построении различных вариаций виртуальных частных сетей (VPN), предоставляя защиту всего трафика от отправителя к получателю. Виртуальные частные сети с IPSec представляют собой сетевые соединения, построенные с использованием криптографии на основе публичных и приватных ключей. Пользователи IPSec VPN генерируют публичные и приватные ключи, которые ассоциируются лишь с ними. Когда сообщение уходит от отправителя к получателю, оно автоматически подписывается приватным ключом пользователя, а получатель использует публичный ключ отправителя для того, чтобы дешифровать принятое сообщение. Конечные точки виртуальной частной сети действуют как базы данных, которые управляют и распространяют ключи и прочую служебную информацию подобно тому, как это делает Certificate Authority (CA). Преимущества и недостатки IPSec Наиболее типично применение IPSec для достижения конфиденциальности и целостности данных при их транспортировке по незащищенным каналам. Изначально IPSec предназначался для защиты данных в публичных сетях, однако его различные практические реализации нередко используются для увеличения безопасности частных сетей, так как компании не всегда могут быть уверены, что их корпоративные сети изначально не подвержены вторжениям извне. Хотя IPSec наиболее популярное и наилучшее решение для создания виртуальных частных сетей, имеются и некоторые ограничения. В случае его применения в транспортном режиме не исключается возможность атак со стороны, что вызвано некоторыми ограничениями протокола ISAKMP. Взлом сессии IPSec вполне вероятен, если не используется заголовок аутентификации AH. При таком типе атаки данные злоумышленника могут быть вставлены в полезную передающуюся информацию, например, в случае Unix-систем достаточно вставить в поток команду rm -R, чтобы получатель в итоге недосчитался многих, а то и всех файлов на жестком диске. Поскольку трафик IPSec маршрутизируем, различные практические реализации IPSec могут подвергнуться более "изящной" атаке - подмене изначального маршрута. Оговоримся, что данный вид атаки возможен лишь при использовании IPSec в транспортном режиме, если же он применяется для построения туннеля, вся маршрутная информация шифруется, и подобная атаки не будет иметь успеха. Специалисты компании AT&T Research отмечают, что многие потенциально слабые места IPSec являются следствием определенных недостатков алгоритмов шифрования, использо- 65 ванных в конкретной реализации IPSec. Следовательно, с увеличением надежности этих алгоритмов IPSec может стать намного более защищенным. Конкуренты IPSec Многие продукты, которые могут использовать IPSec, взаимодействуют с альтернативной технологией шифрования, именуемой "Уровень защищенных сокетов" (Secure Sockets Layer, SSL). Основное различие между IPSec и SSL в том, что IPSec работает на уровне сети, обеспечивая зашиту сетевого соединения от начала и до конца. SSL же действует на уровне приложений, обеспечивая защиту лишь выбранному приложению, например веб-браузеру или программе для работы с электронной почтой. Хотя как IPSec, так и SSL призваны обеспечить конфиденциальность обмена информацией, что достигается совершенно различными способами. SSL был разработан компанией Netscape для защиты трафика HTTP, проходящего через программу-браузер. SSL - протокол уровня отдельной сессии, и в этом отношении он, несомненно, проигрывает IPSec, который позволяет построить постоянный туннель, не зависящий от проходящего сквозь него сетевого трафика. Протокол SSL основан на клиент-серверной модели и обычно используется для защиты на отрезке "хост-хост". В связи с тем, что IPSec взаимодействует на сетевом уровне, возможны такие варианты, как "подсеть-подсеть", "сеть-сеть" или "сеть-хост". Это наводит на мысль, что IPSec допускает маршрутизацию, а SSL - нет. Хотя многие пользователи считают SSL и IPSec конкурирующими разработками, данное утверждение не совсем точно, поскольку IPSec и SSL призваны решать различные проблемы. Если для развертывания IPSec требуется предварительное планирование инфраструктуры, то с SSL все намного проще. Как правило, если и клиент, и сервер изначально способны работать с SSL, то процедура настройки защищенной сессии сводится к крайне тривиальному набору действий, доступному даже начинающему пользователю. Примеры применения IPsec. 1. Защищенный доступ к филиалу организации через Internet. Компания может построить защищенную виртуальную сеть в рамках сети Интернет или другой глобальной сети. 2. Защищенный доступ к сети Internet. Конечный пользователь, пользуясь телефонными проводами и модемом, может получать защищенный доступ к своему рабочему месту в компании. 3. Общение с партнерами. С помощью IPsec можно устанавливать защищенную связь с партнерами и другими компаниями, гарантируя аутентификацию и конфиденциальность. 4. Усиление электронных коммерческих транзакций. Средства IPsec могут служить дополнением к защите коммерческих транзакций, выполняемых другими средствами. 10.3. Спецификации IPsec. Спецификации IPsec определяются рядом документов. Наиболее важные из них были опубликованы в ноябре 1998 года. Это документы RFC с номерами 2401, 2402, 2406 и 2408. Они содержат RFC 2401 – обзор архитектуры защиты; RFC 2402 – описание расширений аутентификации пакетов IPv4 и IPv6; RFC 2406 – описание расширений шифрования пакетов IPv4 и IPv6; RFC 2408 – спецификации средств управления ключами. Поддержка этих возможностей обязательна для IPv6, и допустима, но не обязательна для IPv4. 66 10.3.1. Защищенные связи Ключевым моментом протокола IPsec является понятие защищенной связи (Security Assotiation). Связь представляет собой одностороннее отношение между отправителем и получателем, использующим защищенное соединение. Если необходим двухсторонний защищенный обмен, то необходимо создавать две защищенные связи. Отметим, что защищенная связь используется либо в режиме AH – заголовка аутентификации, либо в режиме ESP – защищенного содержимого IP-пакета, но не в обоих одновременно. Защищенная связь однозначно определяется следующими тремя параметрами: 1. Индекс параметров защиты – строка битов, присваиваемая данной защищенной связи. Передается в заголовках AH и ESP, чтобы принимающая сторона могла правильно обработать принимаемый пакет; 2. Адрес IP пункта назначения; 3. Идентификатор протокола защиты. Определяет, является ли данная защищенная связь связью AH или это ESP связь; Параметры защищенной связи. Защищенная связь характеризуется следующими параметрами: Счетчик порядкового номера. 32-битовое значение, используемое при генерации значений поля порядкового номера в заголовках AH или ESP; Флаг переполнения счетчика порядкового номера. При переполнении счетчика порядкового номера генерирует событие прекращения передачи пакетов а рамках этой защищенной связи. Окно защиты от воспроизведения. Используется для выявления повторных пакетов среди прибывающих пакетов AH или ESP; Информация AH. Алгоритм аутентификации, ключи, параметры продолжительности жизни ключей и другие необходимые параметры. Информация ESP. Алгоритм аутентификации и шифрования, ключи, значения инициализации, параметры продолжительности жизни ключей и другие необходимые параметры. Продолжительность жизни данной защищенной связи. Интервал времени, в течение которого действительна данная защищенная связь. Режим протокола IPsec. Туннельный, транспортный или задаваемый групповым символом. Максимальная единица передачи (Maximum Transmission Unit MTU). Максимальный размер пакета, который может быть передан без фрагментирования. Ассоциация потока данных с защищенными связями осуществляется с помощью базы данных политики защиты (Security Policy Database). В простейшей форме эта база данных представляет собой набор записей, определяющих некоторые подмножества потока IP и защищенные связи для этих потоков. Каждая запись состоит из наборов значений полей протокола IP и протоколов более высокого уровня (TCP, UDP, ICMP). Эти поля называются селекторами (например, селектором может быть IP-адрес получателя). Каждый передаваемый IP-пакет обрабатывается следующим образом: Сравниваются значения соответствующих полей пакета (селекторов) с полями базами данных. В случае успеха находится некоторое число защищенных связей, удовлетворяющих критерию отбора. Определяется защищенная связь и соответствующий индекс параметров защиты для данного пакета. Выполняются необходимые операции IPsec (т.е. обработка AH или ESP). 67 В качестве селекторов базы данных политики защиты могут быть следующие поля: Адрес IP пункта назначения; Адрес IP пункта отправления; Идентификатор пользователя (UserID); Гриф секретности данных; Протокол транспортного уровня; Протокол IPsec – AH, ESP или AH/ESP; Порты источника или порты адресата; 10.3.2. Транспортный и туннельный режимы IPsec. Каждый из протоколов AH и ESP поддерживают два режима использования: транспортный и туннельный. Транспортный режим. Транспортный режим служит дл защиты пакета вышележащего протокола (напомним, что выше находится транспортный уровень иерархии OSI). Примерами могут быть сегменты TCP (Transmission Control Protocol), UDP (User Datagram Protocol) или ICMP (Internet Control Message Protocol). Задачей транспортного режима является обычно обеспечение сквозной связи двух узлов (рабочих станций, например, или клиента и сервера). Протокол AH в этом режиме обеспечивает целостность документа, аутентификацию отправителя и оригинальность пакета. Протокол ESP может выполнять эти же функции, но главное он позволяет шифровать содержимое пакеты, что обеспечивает конфиденциальность данных. Туннельный режим. Туннельный режим обеспечивает защиту всего пакета IP (не только полезного содержимого, но и заголовка, т.е. скрывает адреса отправителя и получателя, тип данных и т.д. от потенциального взломщика). Протокол AH в этом режиме обеспечивает целостность всего IP-пакета (вместе с заголовком), аутентификацию отправителя и оригинальность пакета. Протокол ESP выполняет шифровать содержимое всего IP-пакета, что обеспечивает конфиденциальность полезного груза и данных, содержащихся в заголовке. Естественно, что при этом для пакета должен сформирован новый заголовок. 10.4. Режим AH протокола IPSec Действие IPsec в режиме AH заключается в добавлении в IP-пакету нового заголовка, являющего цифровой подписью (дайджестом) полей исходного IP-пакета. Ниже приведены данные, как изменяется IP-пакет после применения к нему протокола AH в транспортном и тунельном режимах (во всех примерах на месте названия протокола высшего уровня стоит TCP): Рис.1. IP-пакет до применения IPsec 68 Рис.2. Транспортный режим протокола AH Рис.3. Туннельный режим AH Рассмотрим ниже, как формируется заголовок AH. Он состоит из следующих полей: 1. Следующий заголовок (8 бит). Тип заголовка, следующего за AH. 2. Длина полезного содержимого (8 бит). Длина AH в 32-битовых словах, уменьшенная на 2. 3. Зарезервировано (16 бит). Для будущего использования. 4. Индекс параметров защиты (32 бита). Идентификатор защищенной связи. 5. Порядковый номер (32 бита). Порядковый номер пакета. 6. Данные аутентификации (переменной длины). 10.5. Режим ESP протокола IPSec Главное отличие этого режима состоит в том, что данные могут шифроваться. Рассмотрим состав пакета ESP: 1. Индекс параметров защиты (32 бита). Идентификатор защищенной связи. 2. Порядковый номер (32 бита). Порядковый номер пакета. 3. Полезный груз переменной длины. 4. Заполнитель (0-255 бит). 5. Длина заполнителя (8 бит) 6. Следующий заголовок (8 бит). Тип заголовка, следующего за AH. 7. Данные аутентификации (переменной длины). 69 Сервис ESP не привязывает алгоритм к каким-то определенным алгоритмам шифрования и аутентификации, хотя и требует, чтобы любая реализация поддерживала DES в режиме сцепления блоков CBC. В документации перечислен ряд алгоритмов, которые могут также прменяться для шифрования. Среди них следующие: Тройной DES с тремя ключами RC5 IDEA CAST Blowfish Если для алгоритма, используемого при шифровании, требуется синхронизация данных (например, вектор инициализации IV), то необходимые данные могут помещаться в начало поля полезного груза (в незашифрованном виде). Ниже мы покажем новый состав пакета, после применения ESP в транспортном и туннельном режимах (для IP-пакетов IPv4 и IPv6): а) Транспортный режим ESP 70 б) Туннельный режим ESP В контексте IPv6 данные ESP рассматриваются как предназначенный для сквозной пересылки полезный груз, не подлежащий проверке или обработке промежуточными маршрутизаторами. Поэтому заголовок ESP располагается после фрагментации. В IPv6 шифрование охватывает весь пакет TCP и концевик ESP, а аутентификации подлежит весь шифрованный текст и заголовок ESP. 10.6. Управление ключами IPSec Обычно для защищенной связи между двумя абонентами сети требуется 4 ключа: по паре ключейпередачи и приема информации для AH и ESP. IPsec подерживает два типа управления ключами: Ручное. Системный администратор вручную конфигурирует каждую систему ее ключей и ключей других сообщающихся с ней систем. Автоматизированное. Обеспечивает создание ключей по запросу в автоматическом режиме. Применяемый по умолчанию в IPsec протокол автоматизированного управления ключами называется ISAKMP/Oakley. Oakley представляет собой протокол обмена ключами, основанный на алгоритме ДифииХелмана, но обеспечивающем дополнительную защиту. ISAKMP (Internet Security Association and Key Management Protocol) обеспечивает схему управления ключами в Интернет и поддержку протокола согласования параметров защиты. Рассмотрим каждый из этих протоколов по-отдельности. Протокол Oakley Oakley представляет собой вариант обмена ключами по усовершенствованной схеме Диффи-Хелмана. Схема Диффи-Хелмана описана в разделе 5.3. Эта схема не предполагает никаких действий по проверке идентификаторов обменивающихся сторон, и поэтому может быть подвергнута атаке «третий посередине», когда третья сторона С выступает для А в роли абонента В, а для В – в роли А, и посылает им свои собственные параметры ключей, которыми А и В пользуются в дальнейшем для шифрования данных. Алгоритм Oakley не позволяет выполнить эту атаку путем аутентификации участников обмена. Кроме того, Oakley использует рецепты (cookies) для предотвращения атаки засорения, заключающейся в том, что противник от имени легального участника обмена многократно направляет запрос на генерацию ключей и вызывает загрузку системы получателя лишней работой по выработке параметров процедуры Диффи-Хелмана. Протокол Oakley характеризуется следующими основными моментами: 71 использование рецептов выбор параметров метода Диффи-Хелмана использование оказий для протовостояния атакам воспроизведения обмен ключами Диффи-Хелмана аутентификация участников обмена ISAKMP требует, чтобы рецепты, посылаемые инициирующей стороной, могли быть созданы только легальными пользователями. Рекомендуемый метод состоит в том, что рецепт содержит IP адрес источника, номер порта UDP и локально генерируемое секретное значение, сжатые хеш-функцией MD5 или SHA-1. Oakley поддерживает раличные алгебраические группы для обмена ключами ДиффиХелмана. На сегодняшний день поддерживаются следующие группы: 1. Возведение в степень в арифметике классов вычетов с 768-битовым модулем: q 2768 2704 1 264 2638 149686 a=2 2. Возведение в степень в арифметике классов вычетов с 1024-битовым модулем: q 21024 2960 1 264 2894 129093 a=2 3. Возведение в степень в арифметике классов вычетов с 1024-битовым модулем: параметры определяются пользователем. 4. Группа эллиптической кривой над конечным полем из 2155 элементов Генератор в шестнадцатиричном виде: X = 7В, Y = 1C8 Параметры эллиптической кривой в шестнадцатиричном виде: А = 0, Y = 7338F. 5. Группа эллиптической кривой над конечным полем из 2185 элементов Генератор в шестнадцатиричном виде: X = 18, Y = D Параметры эллиптической кривой в шестнадцатиричном виде: А = 0, Y = 1EE9. В алгоритме Oakley используются оказии, которые представляют собой случайные числа и шируются на стадиях обмена, чтобы защитить их при использовании. Пример обмена Oakley Oakley допускает разные сценарии обмена ключами. Рассмотрим вариант, называемый агрессивным обменом ключами (agressive key exchange). Такое название использовано потому, что требуется всего три обмена сообщениями. Шаг 1. Инициатор 1 передает получателю 2 рецепт, группу, которую собирается использовать, свой открытый ключ Диффи-Хелмана для данного обмена. указывает алгоритмы шифрования с открытым ключом, хеширования и аутентификации, которые собирается использовать в ходе обмена. идентификаторы – свой и второй стороны оказию, цифровую подпись, охватывающую все предыдущие поля. Шаг 2. Получив сообщение, сторона 2 проверяет подпись, используя открытый ключ 1. затем подтверждает сообщение, отсылая назад следущие данные: рецепт, идентификатор и оказию, полученые в первом сообщении, группу, свой открытый ключ Диффи-Хелмана, выбранные алгоритмы (из числа предложенных), свой идентификатор и оказию для этого обмена, цифровую подпись, охватывающую все предыдущие поля. 72 Шаг 3. Проверяет с помощью открытого ключа 2 соответствие цифровой подписи и сообщения 2. Пересылает обратно последнее сообщение, подписав его своей цифровой подписью (т.е. с использованием своего закрытого ключа). Протокол ISAKMP Протокол ISAKMP описан в RFC 2408. Он служит для определения процедур и форматов пакетов для организации, согласования, обновления и удаления ассоциаций безопасности SA (Security Associations). SA содержат все сведения, требуемые для выполнения различных типов сервиса обеспечения безопасности сети (услуги IP-уровня типа аутентификации заголовков и инкапсуляции содержимого, услуги транспортного и прикладного уровней, самообеспечение безопасности трафика согласования параметров). ISAKMP определяет содержимое (payload) обмена при генерации ключей и данных аутентификации. Эти форматы обеспечивают надежный способ обмена ключами и сведениями аутентификации независимо от метода генерации ключей, алгоритма шифрования и механизма аутентификации. Формат заголовков ISAKMP показан на рисунке: 8 12 16 24 32 Initiator cookie (Рецепт отправителя) (8 байтов) Responder cookie (Рецепт получателя) (8 байтов) Следующий элемент MjVer MnVer Тип обмена Флаги Идентификатор сообщения Размер Структура ISAKMP Следующий элемент Показывает тип первого элемента содержимого (payload) в данном сообщении. Поддерживаются следующие типы: 0 нет 1 Security Association (SA) 2 Proposal (P) - предложение 3 Transform (T) -0 преобразовать 4 Key Exchange (KE) - обмен ключами 5 Identification (ID) - идентификация 6 Certificate (CERT) - сертификат 7 Certificate Request (CR) - запрос сертификата 8 Hash (HASH) - смешать 9 Signature (SIG) - сигнатура, подпись 10 Nonce (NONCE) 11 Notification (N) - уведомление 12 Delete (D) - удалить 13 Vendor ID (VID) - идентификатор производителя 14-127 Reserved - зарезервированы 73 128-255 Private use - частное использование MjVer Показывает старшую часть номера версии используемого протокола ISAKMP. Реализации на основе RFC2408 должны использовать значение 1, а реализации на основе предварительных версий ISAKMP (Internet-Drafts) - 0. Никакая из реализаций не будет воспринимать пакеты с номером версии, превышающий номер версии данной реализации. MnVer Показывает младшую часть номера версии используемого протокола ISAKMP. Реализации на основе RFC2408 должны использовать значение 0, а реализации на основе предварительных версий ISAKMP (Internet-Drafts) - 1. Никакая из реализаций не будет воспринимать пакеты с номером версии, превышающий номер версии данной реализации. Тип обмена Показывает тип используемого обмена. Это поле диктует тип сообщений и содержимого при обмене ISAKMP. Поддерживаются следующие типы: 0 None 1 Base 2 Identity Protection 3 Authentication Only 4 Aggressive 5 Informational 6-31 ISAKMP Future Use 32-239 DOI Specific Use 240-255 Private Use Флаги Задает опции, установленные для обмена ISAKMP. E(ncryption) - бит 0 - указывает, что содержимое после заголовка зашифровано с использованием алгоритма, указанного в ISAKMP SA. C(ommit) - бит 1 - сигнализирует о синхронизации обмена ключами. Этот флаг используется для того, чтобы зашифрованная информация не была получена до завершения процесса организации SA. A(uthentication Only) - бит 2 - предназначен для использования в Informational Exchange с содержимым Notify и будет позволять передачу информации с проверкой целостности, но без шифрования. Все остальные биты устанавливаются в нулевые значения до передачи. Идентификатор сообщения Уникальный идентификатор протокола используется для идентификации состояния протокола в процессе согласования Phase 2 (фаза 2). Это число генерируется случайным образом инициатором согласования фазы 2. В случае одновременной организации SA (коллизия), значения этого поля будут явно отличаться, поскольку они генерируются независимо и, таким образом, две ассоциации безопасности будут находиться в процессе создания. Однако, ниоткуда не следует, что эти ассоциации будут завершены одновременно. В течение согласования фазы Phase 1 это поле должно иметь нулевое значение 0. Размер Размер сообщения (заголовок и содержимое) в октетах. Шифрование может расширять размер сообщения ISAKMP. §11. Защита WEB. 11.1. Угрозы нарушений защиты Web 74 Сегодня сервисы, представляемые всемирной сетью Интернет (Web), все более широко внедряются в нашу жизнь, привлекая новые и новые круги населения. Собственные Web-узлы имеют большинство коммерческих организаций, государственные учреждения, а также частные лица. Через Интернет можно теперь покупать товары, заказывать услуги, резервировать билеты, получать оперативную информацию о своих банковских счетах, выполнять работу, находясь дома или в любом другом, географически удаленном от работы, месте. Использование таких современных сервисов как сотовая связь, Интернет, Wi-Fi, спутниковая связь и навигация, позволяют современному специалисту значительно более эффективно использовать свое рабочее время, сокращая непроизводительные потери на связь, доступ к информации, выполнение электронных транзакций. Однако столкновение с фактами нарушениями безопасности собственных систем через сеть Интернет заставила многих пользователей кардинально пересмотреть взгляд на вопросы защиты. Массированное обсуждение в печати и средствах массовой информации случаев нарушений защиты банков, коммерческих фирм и граждан из-за действий хакеров, в результате которых был нанесен существенный экономический урон, подрывают веру граждан в безопасность Web и вызывают отток из электронной коммерции. Кроме того, потребности потребителей в удобной и безопасной схеме выполнения электронных расчетов через сети Интернет должны обеспечиваться надежными инструментами защиты, понятными людям, не имеющим специального образования. Все эти причины породили разработку и внедрение многочисленных инструментов защиты данных для работы пользователей в сети Интернет. В этом разделе будут рассмотрены две стандартные схемы защиты Web – SSL/TSL и SET, значение которых для электронной коммерции постоянно возрастает. Начнем с классификации угроз Интернет. В таблице, предоставленной ниже, приведены основные типы угроз нарушений защиты, представленных в WEB. Тип нарушения Целостность Конфиденциальность Доступность Угрозы Последствия Изменение пользовательских данных Внедрение «троянских» коней Изменение информации в памяти Измение потока сообщений на пути их передачи Перехват информации в сети Кража информации на сервере Получение информации о конфигурации системы Получение информации о клиентах, обращающихся к системе Прекращение сеанса доступа Перегрузка сервера Потеря информации Дискредитация компьютерной системы Уязвимость в отношении других угроз Потеря информации Нарушение тайны информации Разрушение системы защиты Невозможность Контрмеры Криптографические контрольные суммы Антивирусные средства Архивирование данных Шифрование, проксисерверы Web Установка файерволлов, брэндмауэров и систем обнаружения вторжений (IDS 75 потоком фальшивых попыток доступа выполнения работы Раздражение пользователей – intrusion detection systems) Существует несколько подходов к защите Web. Все эти подходы похожи по предоставляемым возможностям, но различаются по областям применения и размещению соответствующих средств защиты в стеке протоколов TCP/IP. Одним из способов защиты Web является использование протокола IPsec, рассмотренного в предыдущем разделе. Достоинством использования IPsec является его универсальность, позволяющая защищать либо весь поток информации, проходящий через данный узел, либо устанавливать фильтр для отбора информации, требующей защиты. Другим (также достаточно универсальным) решением является размещение средств защиты сразу над протоколом TCP. Примерами такого решения являются протоколы SSL (Secure Socket Layer) и TLS (Transport Layer Security) – более современная версия SSL. Рис.1. Размещение защиты на транспортном уровне. Реализация SSL/TLS возможна в двух вариантах. Более общим решением является внедрение средств SSL (TLS) непосредственно в транспортный протокол, что обеспечивает прозрачность (невидимость) защиты для приложений. Другим решением является внедрение SSL (TLS) в сами приложения, например, в браузер Internet Explorer, что обеспечивает большую гибкость. Еще одним примером реализации последнего подхода является протокол SET (Secure Electronic Transactions) – протокол защищенных транзакций. 11.2.Архитектура SSL Протокол SSL (Secure Socket Layer) был разработан в 1995 году фирмой Netscape, как протокол обеспечивающий защиту данных между сервисными протоколами прикладного уровня (HTTP, SNTP, FTP и т.д.) и транспортными протоколами (TCP/IP). SSL состоит из двух уровней, как показано на рисунке ниже: Рассмотрим общую схему работы протокола записи SSL. Этот протокол, получив сообщение для отправки, сначала фрагментирует данные, разбивая их на блоки подходящего разме- 76 ра, и при необходимости сжимает, вычисляет код аутентичности MAC, шифрует данные, добавляет заголовок и передает полученные пакеты сегменту TCP: Рис.3. Схема работы протокола записи SSL. На первом шаге производится фрагментация данных на блоки размеров не более 2 14 байт. Затем происходит необязательное сжатие (в протоколах SSLv3 и TLS сжатие по умолчанию не предусмотрено). Следующим шагом является вычисление кода аутентичности сообщения MAC. Для этого служит общий секретный ключ Kc. Формула вычисления MAC: MAC h( Kc || pad2 || h( Kc || pad1 || seq _ num || SSL.message)) , где pad1 – байт Ox36 (0011 0110), повторенный 48 раз при использовании MD5 и 40 раз для SHA1, pad2 – байт Ox5c (0101 1100), повторенный 48 раз при использовании MD5 и 40 раз для SHA1, seq_num – порядковый номер данного фрагмента, SSL.message – сообщение, состоящее из трех полей: типа протокола, использованного для сжатия, длины сжатого сообщения и самих (сжатых) данных, h – функция хеширования (MD5 или SHA1). Данный алгоритм похож на алгоритм HMAC. Различие в том, что в SSL заполнители pad связываются операцией конкатенации, а в HMAC – операцией XOR (исключючающее «или»). Дело в том, что HMAC в первоначальной редакции предлагал использование конкатенации, и эта редакция вошла в SSLv3, а окончательная версия HMAC установила операцию XOR. Далее происходит шифрование фрагмента с использованием симметричной схемы шифрования. Шифрование не должно увеличить длину фрагмента более, чем на 1024 байта, поэтому размер блока с учетом заголовка, не превысит 214+2048 байт. Допускается применение следующих алгоритмов шифрования: Алгоритм IDEA RC2-40 DES-40 DES 3DES Fortezza Блочное шифрование Длина ключа 128 40 40 56 168 80 Поточное шифрование Алгоритм Длина ключа RC4 – 40 40 RC4 – 128 128 Табл.1. Алгоритмы шифрования SSL. 77 Алгоритм Fortezza используется в схемах шифрования микропроцессорных карт (smart card). При использовании блочных алгоритмов может потребоваться заполнитель. В этом случае сразу за байтами заполнителя добавляется один байт, содержащий длину заполнителя. Завершаюшим шагом работы протокола является создание заголовка, содержащего следующие поля: Тип содержимого (8 бит). Определяет протокол вышестоящего уровня. Главный номер версии (8 бит). Номер протокола SSL (равен 3 для SSLv3) Дополнительный номер версии (8 бит). Для SSLv3 этот номер равен 0. Длина сжатого фрагмента (16 бит). Протокол изменения параметров шифрования Данный протокол является самым простым из трех протоколов вышестоящего уровня и служит для генерации сообщения, состоящего из 1 байта, для обновления комплекта шифров, используемых для данного соединения. Протокол извещения Протокол извещения (Alert Protocol) служит для передачи другой стороне, участвующей в обмене, извещений касающихся работы SSL. Любое сообщение этого протокола состоит из 2 байт. Первый байт содержит значение, обозначающее уровень предупреждения (1) или уровень неустранимой ошибки (2). Во втором случае соединение SSL немедленно разрывается. Второй байт содержит расшифровку ошибки или предупреждения. Примерами извещения являются illegal_parameter (неустранимая ошибка) или close_notify. Последним сообщением должны обменяться обе стороны для корректного завершения соединения. 11.3. Протокол квитирования SSL Протокол квитирования (Handshake Protocol) является самым сложным из трех протоколов верхнего уровня SSL. Этот протокол позволяет обеим сторонам провести взаимную аутентификацию и согласовать параметры алгоритмов шифрования. Работа этого протокола состоит из 4 основных этапов: 1. 2. 3. 4. Определение характеристик защиты. Аутентификация и обмен ключами сервера. Аутентификация и обмен ключами клиента. Завершение. Рассмотрим каждый этап подробнее. 1 этап. Определение характеристик защиты. На этом этапе инициализируется логическое соединение, и определяются характеристики защиты. Процесс инициируется клиентом, который посылает серверу сообщение client_hello со следующими параметрами: 1. Версия. Наивысшая версия SSL, подерживаемая клиентом. 2. Случайное значение. Состоит из 32-битового штампа даты/времени и 28-байтового случайного числа, генерируемого клиентом. Служит для предотвращения атак воспроизведения. 3. Идентификатор сеанса. 4. Комплект шифров. Список криптографических алгоритмов, поддерживаемых клиентом, в порядке убывания их приоритета. 78 5. Методы сжатия. Методы сжатия, поддерживаемые клиентом. Сервер возвращает клиенту сообщение server_hello, имеющее ту же структуру, что и client_hello, но поле Комплект шифров содержит алгоритмы, выбранные сервером. Первым элементом этого поля определяется метод обмена ключами (необходимы ключи для шифрования потока и создания MAC). SSL поддерживает следующие методы обмена ключами: RSA. Секретный ключ шифруется с помощью открытого ключа RSA. Для этого отправителю должен быть доступен сертификат открытого ключа получателя. Метод Диффи-Хелмана с фиксированными параметрами. Метод обмена, при котором сертификат сервера содержит открытые параметры алгоритма ДиффиХелмана, подписанные центром сертификации. Метод Диффи-Хелмана с одноразовыми параметрами. Анонимный метод Диффи-Хелмана. Тот же алгоритм, но без аутентификации. Уязвим к атаке «третий посередине». Fortezza. Метод, используемый в схеме шифрования Fortezza. Далее идет элемент CipherSpec, содержащий спецификации алгоритмов. Он состоит из следующих полей: Cipher Algorithm. Содержит один из алгоритмов шифрования, перечисленных в табл.1. MAC Algorithm. Алгоритм вычисления MAC (MD5 или SHA-1). Is Exportable. Признак экспортируемости (да/нет). Hash Size. Размер хеш-кода: 16 байт для MD5 и 20 байт для SHA-1. Key Material. Параметры вычисления ключей. 2 этап. Аутентификация и обмен ключами сервера. Данный этап начинается с отправки сервером своего сертификата или цепочки сертификатов X.509. Затем отправляется сообщение server_key_exchange, содержащее параметры шифрования для RSA или алгоритма DH. Для метода Диффи-Хелмана сервер высылает простое число p, служащее размерностью поля Галуа и первообразный корень a. После этого сервер может затребовать сертификат клиента,послав сообщение certificate_request. Это сообщение содержит два поля: тип сертификата и список центров сертификации, принимаемых сервером. В завершении этого этапа сервер посылает сообщение server_done и переходит в режим ожидания ответа клиента. 3 этап. Аутентификация и обмен ключами клиента. Клиент, получив сообщение сервера, сначала проверяет сертификат сервера. Потом, если сервер затребовал сертификат, он должен выбрать сертификат из списка принимаемых сервером. Если у клиента нет такого сертификата, он отправляет уведомление no_certificate. Следующим обязательным сообщением будет client_key_exchange, содержание которого зависит от ранее выбранных методов: RSA. Клиент генерирует 48-байтовый предварительный ключ и шифрует его с помощью открытого ключа из сертификата сервера. DH. Отправляются открытые параметры метода Диффи-Хелмана (т.е. y=aK mod p) Fortezza. Отправляются параметры алгоритма Fortezza. 4 этап. Завершение. На этом этапе сервер отправляет сообщение change_cipher_spec в рамках протокола изменения параметров сообщения. В ответ клиент оправляет сообщение finished, зашифрован- 79 ное алгоритмами, согласованными в предыдущей части. Получив это сообщение, сервер расшифровывает его. Если операция прошла успешно, то после этого сервер начинает передавать клиенту зашифрованные данные. 11.4. Протокол SET Другим протоколом выполнения безопасных транзакций в Интернете является SET (Security Electronics Transaction). SET основан на использовании цифровых сертификатов по стандарту Х.509. Протокол выполнения защищенных транзакций SET является стандартом, разработанным компаниями MasterCard и VISA при значительном участии IBM, GlobeSet и других партнеров. Он позволяет покупателям приобретать товары через Интернет, используя самый защищенный на настоящее время механизм выполнения платежей. SET является открытым стандартным многосторонним протоколом для проведения безопасных платежей с использованием пластиковых карточек в Интернет. SET обеспечивает кросс-аутентификацию счета держателя карточки, продавца и банка продавца для проверки готовности оплаты товара, целостность и секретность сообщения, шифрование ценных и уязвимых данных. Поэтому SET можно назвать стандартной технологией или системой протоколов выполнения безопасных платежей с использованием пластиковых карточек через Интернет. SET позволяет потребителям и продавцам подтвердить подлинность всех участников сделки, происходящей в Интернет, с помощью криптографии, применяя, в том числе, и цифровые сертификаты. В результате того, что многие компании занимаются разработкой собственного программного обеспечения для электронной коммерции, возникает еще одна проблема. В случае использования этого ПО все участники операции должны иметь одни и те же приложения, что практически неосуществимо. Следовательно, необходим способ обеспечения механизма взаимодействия между приложениями различных разработчиков. В связи с перечисленными выше проблемами компании VISA и MasterCard вместе с другими компаниями, занимающимися техническими вопросами (например IBM, которая является ключевым разработчиком в развитии протокола SET), определили спецификацию и набор протоколов стандарта SET. Эта открытая спецификация очень быстро стала де-факто стандартом для электронной коммерции. В этой спецификации шифрование информации обеспечивает ее конфиденциальность. Цифровая подпись и сертификаты обеспечивают идентификацию и аутентификацию участников транзакций. Цифровая подпись также используется для обеспечения целостности данных. Открытый набор протоколов используется для обеспечения взаимодействия между реализациями разных производителей. SET обеспечивает следующие специальные требования защиты операций электронной коммерции: секретность данных оплаты и конфиденциальность информации заказа, переданной вместе с данными об оплате; сохранение целостности данных платежей; целостность обеспечивается при помощи цифровой подписи; специальную криптографию с открытым ключом для проведения аутентификации; аутентификацию держателя по кредитной карточке, которая обеспечивается применением цифровой подписи и сертификатов держателя карточек; аутентификацию продавца и его возможности принимать платежи по пластиковым карточкам с применением цифровой подписи и сертификатов продавца; подтверждение того, что банк продавца является действующей организацией, которая может принимать платежи по пластиковым карточкам через связь с процессинговой системой; это подтверждение обеспечивается с помощью цифровой подписи и сертификатов банка продавца; 80 готовность оплаты транзакций в результате аутентификации сертификата с открытым ключом для всех сторон; безопасность передачи данных посредством преимущественного использования криптографии. Основное преимущество SET перед многими существующими системами обеспечения информационной безопасности заключается в использовании цифровых сертификатов (стандарт X.509, версия 3), которые ассоциируют держателя карточки, продавца и банк продавца с рядом банковских учреждений платежных систем VISA и MasterCard. SET позволяет сохранить существующие отношения между банком, держателями карточек и продавцами, и интегрируется с существующими системами, опираясь на следующие качества: открытый, полностью документированный стандарт для финансовой индустрии; основан на международных стандартах платежных систем; опирается на существующие в финансовой отрасли технологии и правовые механизмы. Кстати, совместный проект, реализованный компаниями IBM, Chase Manhattan Bank USA N.A., First Data Corporation, GlobeSet, MasterCard и Wal-Mart позволяет владельцам карточек Wal-Mart MasterCard, выпущенных банком Chase, приобретать товары на сайте Wal-Mart Online, который является одним из крупнейших узлов электронной коммерции США. Рассмотрим более детально процесс взаимодействия участников платежной операции в соответствии со спецификацией SET, представленный на рисунке с сайта компании IBM: На рисунке: Держатель карточки - покупатель делающий заказ. Банк покупателя - финансовая структура, которая выпустила кредитную карточку для покупателя. Продавец - электронный магазин, предлагающий товары и услуги. Банк продавца - финансовая структура, занимающаяся обслуживанием операций продавца. Платежный шлюз - система, контролируемая обычно банком продавца, которая обрабатывает запросы от продавца и взаимодействует с банком покупателя. Сертифицирующая организация - доверительная структура, выдающая и проверяющая сертификаты. Взаимоотношения участников операции показаны на рисунке непрерывными линиями (взаимодействия описанные стандартом или протоколом SET) и пунктирными линиями (некоторые возможные операции). Динамика взаимоотношений и информационных потоков в соответствии со спецификацией стандарта SET включает следующие действия: 81 1. Участники запрашивают и получают сертификаты от сертифицирующей организации. 2. Владелец пластиковой карточки просматривает электронный каталог, выбирает товары и посылает заказ продавцу. 3. Продавец предъявляет свой сертификат владельцу карточки в качестве удостоверения. 4. Владелец карточки предъявляет свой сертификат продавцу. 5. Продавец запрашивает у платежного шлюза выполнение операции проверки. Шлюз сверяет предоставленную информацию с информацией банка, выпустившего электронную карточку. 6. После проверки платежный шлюз возвращает результаты продавцу. 7. Некоторое время спустя, продавец требует у платежного шлюза выполнить одну или более финансовых операций. Шлюз посылает запрос на перевод определенной суммы из банка покупателя в банк продавца. Представленная схема взаимодействия подкрепляется в части информационной безопасности спецификацией Chip Electronic Commerce, созданной для использования смарт-карточек стандарта EMV в Интернете (www.emvco.com). Ее разработали Europay, MasterCard и VISA. Сочетание стандарта на микропроцессор EMV и протокола SET дает беспрецедентный уровень безопасности на всех этапах транзакции. Компания "Росбизнесконсалтинг" 20 июня 2000 г. поместила на своем сайте сообщение о том, что одна из крупнейших мировых платежных систем VISA обнародовала 19 июня 2000 г. свои инициативы в области безопасности электронной коммерции. По словам представителей системы, эти шаги призваны сделать покупки в Интернете безопаснее для покупателей и продавцов. VISA полагает, что внедрение новых инициатив позволит сократить количество споров по транзакциям в Интернете на 50%. Инициатива состоит из двух основных частей. Первая часть - это Программа аутентификации платежей (Payment Authentication Program), которая разработана для снижения риска неавторизованного использования счета держателя карточки и улучшения сервиса для покупателей и продавцов в Интернете. Вторая - это глобальная программа защиты данных (Global Data Security Program), цель которой - создать стандарты безопасности для компаний электронной коммерции по защите данных о карточках и их держателях. 11.5. Сравнительные характеристики протоколов SSL и SET Платежные системы являются наиболее критичной частью электронной коммерции, и будущее их присутствия в сети во многом зависит от возможностей обеспечения информационной безопасности и других сервисных функций в Интернете. SSL и SET - это два широко известных протокола передачи данных, каждый из которых используется в платежных системах Интернета. Сравним SSL и SET и оценим их важнейшие характеристики. Сначала рассмотрим функцию аутентификации. SSL обеспечивает только двухточечное взаимодействие. Напомним, что в процесс транзакции кредитной карточки вовлечены, по крайней мере, четыре стороны: потребитель, продавец, банк-эмитент и банк-получатель. SET требует аутентификации от всех участвующих в транзакции сторон. SET предотвращает доступ продавца к информации о пластиковой карточке и доступ банка-эмитента к частной информации заказчика, касающейся его заказов. В SSL разрешается контролируемый доступ к серверам, директориям, файлам и другой информации. Оба протокола используют современную криптографию и системы цифровых сертификатов, удостоверяющих цифровые подписи взаимодействующих сторон. SSL предназначен преимущественно для защиты коммуникаций в Интернете. SET обеспечивает защиту транзакций электронной коммерции в целом, что обеспечивает юридическую значимость защищаемой ценной информации. При этом через SET транзакция происходит медленней, чем в SSL, и ее стоимость намного выше. Последняя характеристика весьма актуальна для сегодняшнего российского рынка, на котором пока не считают риски и эксплуатационные расходы. 82 Следует добавить, что, используя SSL, потребители подвергаются риску раскрытия реквизитов своих пластиковых карточек продавцу. Внедрение и эксплуатация SET осуществляется много лет в нескольких десятках проектов во всем мире. Например, первая транзакция SET была проведена 30-го декабря 1996 в PBS (Датский банк) в совместном проекте IBM и MasterCard. Аналогичная работа проведена в 1997 г. в крупнейшем японском банке Fuji Bank, где пришлось адаптировать протокол к специфическому японскому законодательству. За прошедшее время подобные внедренческие проекты позволили отработать функции протокола и соответствующую документацию. Кстати, IBM имеет полный набор продуктов, который охватывает все ключевые аспекты комплексного использования SET в целом и обеспечивает развитую инфраструктуру: IBM Net.commerce Suite для продавцов, организующих интернет-магазины; IBM Consumer Wallet для держателей карточек; IBM Payment Gateway - шлюз платежей для банков; IBM Net. Payment Registry - продукт для аутентификации и сертификации. SET функционирует на разных вычислительных платформах таких компаний, как IBM, Hewlett Packard, Sun Microsystems и Microsoft. В свою очередь SSL используется в основном в Web-приложениях и для защиты коммуникаций в Интернете. Существует также свободно распространяемая версия SSL, называемая SSLeay. Она содержит исходный код на C, который может быть встроен в такие приложения, как Telnet и FTP. Благодаря этим качествам SSL получил широкое распространение в корпоративных интранет-сетях и в системах с небольшим количеством пользователей. Несмотря на технологическое совершенство протокола SET, его использование в мире весьма ограничено. Тому имеется множество причин, решающей среди которых является высокая стоимость внедрения системы электронной коммерции на базе протокола SET (стоимость SET-решения колеблется от $600 до 1500 тыс.). Протокол SSL обеспечивает лишь конфинденциальность данных транзакции при их передачи через сеть общего пользования, но при этом является существенно более дешевым для внедрения. В результате подавляющее число современных систем электронной коммерции используют протокол SSL. Эксперты и разработчики протокола SET ошиблись, предсказывая быстрое и повсеместное внедрение этого стандарта. Более того, ведутся настойчивые разговоры о том, что протокол SET уже является вчерашним днем и его шансы на выживание ничтожны. Такие разговоры начались еще летом 2000г., когда VISA International сделала заявление, в соответствии с которым протокол 3D SET (разновидность SET) становится стандартом для стран Евросоюза, Латинской Америки и некоторых других европейских стран, включая Россию. В то же время на самом крупном американском рынке в качестве стандарта был провозглашен протокол 3D SSL (другое название протокола - 3D Payer). Глава российского представительства Visa Int. Лу Наумовский согласен с тем, что SET не нашел спроса: "Это очень хорошая технология. Но, судя по реакции банков, не только российских, но и зарубежных, - она дороговата. Банку-эмитенту, использующему протокол SET для отслеживания операций по картам, приходится самому держать базу данных банков-эквайреров и торговых точек. Мы пытались найти более дешевую альтернативу этому протоколу". В мае 2001 г. были опубликованы спецификации на стандарт 3D Secure, претендующий на роль глобального стандарта аутентификации в платежной системе Visa. По решению Европейского союза в июле 2002 г. все интернет-магазины получили идентификацию на уровне этого протокола. Следовательно, банк-эквайрер таких интернет-магазинов должен иметь возможность предоставить им этот протокол. В случае отсутствия 3D Secure всю ответственность при спорных трансакциях несет он сам. Если он использует 3D Secure, а банк-эмитент нет, то ответственность берет на себя последний. Принцип работы 3D Secure в том, что есть три различных домена - банка-эмитента, интернет-магазина и Visa, через домен которой идет сообщение между покупателем, продавцом и 83 банками. Очень важно, что все сообщения идут через интернет. При этом Visa обеспечивает конфиденциальность информации. После того как покупатель нажимает на интернет-странице на лозунг Verified by Visa и вводит свой пароль, эта информация идет к банку-эмитенту и происходит идентификация. Банк-эмитент через домен Visa отправляет запрос в интернет-магазин, после чего этот магазин идентифицируется своим банком-эквайрером. Таким образом, данные держателя карты известны только банку-эмитенту. В то же время владелец карты уверен в том, что данный магазин имеет Verified by Visa, то есть сертифицирован Visa через банк-эквайрер. В том случае, если банк-эмитент не получит от домена Visa подтверждения, что магазин имеет Verified by Visa, транзакция не произойдет. Конечно, владелец карты может сделать покупки и в других, не имеющих статуса Verified by Visa, интернет-магазинах. Тогда ответственность по спорным сделкам несет банк-эмитент, и он должен предупреждать своих клиентов об этом. §12. Организация сетей GSM. 12.1. Основные части системы GSM, их назначение и взаимодействие друг с другом Начнем с рассмотрения скелета или блок-схемы сети GSM. При этом описании будем придерживаться принятых во всем мире англоязычных сокращений, давая при этом их русскую трактовку. Рис.12.1. Упрощенная архитектура сети GSM. Самая простая часть структурной схемы - переносной телефон, состоит из двух частей: собственно аппарата - МЕ (Mobile Equipment) и смарт-карты SIM (Subscriber Identity Module модуль идентификации абонента), получаемой при заключении контракта с оператором. Каждый сотовый телефон имеет собственный номер - IMEI (International Mobile Equipment Identity международный идентификатор мобильного устройства), который может передаваться сети по ее запросу. SIM, в свою очередь, содержит так называемый IMSI (International Mobile Subscriber Identity - международный идентификационный номер подписчика). Думаю, разница между IMEI и IMSI ясна - IMEI соответствует конкретному телефону, а IMSI - определенному абоненту. "Центральной нервной системой" сети является NSS (Network and Switching Subsystem подсистема сети и коммутации), а компонент, выполняющей функции "мозга" называется MSC (Mobile services Switching Center - центр коммутации). MSC в сети может быть и не один (в данном случае очень уместна аналогия с многопроцессорными компьютерными системами). MSC занимается маршрутизацией вызовов, формированием данных для биллинговой системы, управляет многими процедурами - проще сказать, что НЕ входит в обязанности коммутатора, чем перечислять все его функции 84 Следующими по важности компонентами сети, также входящими в NSS, являются HLR (Home Location Register - реестр собственных абонентов) и VLR (Visitor Location Register - реестр перемещений). HLR представляет собой базу данных об абонентах, заключивших с рассматриваемой сетью контракт. В ней хранится информация о номерах пользователей (под номерами подразумеваются, во-первых, упоминавшийся выше IMSI, а во-вторых, так называемый MSISDN-Mobile Subscriber ISDN, т.е. телефонный номер в его обычном понимании), перечень доступных услуг и многое другое - далее по тексту часто будут описываться параметры, находящиеся в HLR. В отличие от HLR, который в системе один, VLR`ов может быть и несколько - каждый из них контролирует свою часть сети. В VLR содержатся данные об абонентах, которые находятся на территории сети (причем обслуживаются не только свои подписчики, но и зарегистрированные в сети роумеры). Как только пользователь покидает зону действия какого-то VLR, информация о нем копируется в новый VLR, а из старого удаляется. Фактически, между тем, что есть об абоненте в VLR и в HLR, очень много общего - посмотрите списки, где приведен перечень долгосрочных и временных данных об абонентах, хранящихся в этих реестрах. Обратим внимание на принципиальное отличие HLR от VLR: в первом расположена информация обо всех подписчиках сети, независимо от их местоположения, а во втором - данные только о тех, кто находится на подведомственной этому VLR территории. В HLR для каждого абонента постоянно присутствует ссылка на тот VLR, который с ним (абонентом) сейчас работает (при этом сам VLR может принадлежать чужой сети, расположенной, например, на другом конце Земли). 12.2. Полный состав долгосрочных данных, хранимых в HLR и VLR. 1.Международный идентификационный номер подписчика (IMSI) 2.Телефонный номер абонента в обычном смысле (MSISDN) 3.Категория подвижной станции 4.Ключ идентификации абонента (Ki) 5.Виды обеспечения дополнительными услугами 6.Индекс закрытой группы пользователей 7.Код блокировки закрытой группы пользователей 8.Состав основных вызовов, которые могут быть переданы 9.Оповещение вызывающего абонента 10.Идентификация номера вызываемого абонента 11.График работы 12.Оповещение вызываемого абонента 13.Контроль сигнализации при соединении абонентов 14.Характеристики закрытой группы пользователей 15.Льготы закрытой группы пользователей 16.Запрещенные исходящие вызовы в закрытой группе пользователей 17.Максимальное количество абонентов 18.Используемые пароли 19.Класс приоритетного доступа 12.3. Полный состав временных данных, хранимых в VLR. 1.Временный номер мобильного абонента (TMSI) 2.Идентификаторы области расположения абонента (LAI) 3.Указания по использованию основных служб 4.Номер соты при эстафетной передаче 5.Параметры идентификации и шифрования NSS содержит еще два компонента - AuC (Authentication Center - центр авторизации) и EIR (Equipment Identity Register - реестр идентификации оборудования). Первый блок используется 85 для процедур установления подлинности абонента, а второй, как следует из названия, отвечает за допуск к эксплуатации в сети только разрешенных сотовых телефонов. Исполнительной, если так можно выразиться, частью сотовой сети, является BSS (Base Station Subsystem - подсистема базовых станций). Если продолжать аналогию с человеческим организмом, то эту подсистему можно назвать конечностями тела. BSS состоит из нескольких "рук" и "ног" - BSC (Base Station Controller - контроллер базовых станций), а также множества "пальцев" - BTS (Base Transceiver Station - базовая станция). Базовые станции можно наблюдать повсюду - в городах, полях (да где угодно) - фактически это просто приемно-передающие устройства, содержащие от одного до шестнадцати излучателей. Каждый BSC контролирует целую группу BTS и отвечает за управление и распределение каналов, уровень мощности базовых станций и тому подобное. Обычно BSC в сети не один, а целое множество (базовых станций же вообще сотни). Управляется и координируется работа сети с помощью OSS (Operating and Support Subsystem - подсистема управления и поддержки). OSS состоит из всякого рода служб и систем, контролирующих работу и трафик. 12.4. Регистрация в сети. При каждом включении телефона после выбора сети начинается процедура регистрации. Рассмотрим наиболее общий случай - регистрацию не в домашней, а в чужой, так называемой гостевой, сети (будем предполагать, что услуга роуминга абоненту разрешена). Пусть сеть найдена. По запросу сети телефон передает IMSI абонента. IMSI начинается с кода страны "приписки" его владельца, далее следуют цифры, определяющие домашнюю сеть, а уже потом - уникальный номер конкретного подписчика. Например, начало IMSI 25099… соответствует российскому оператору Билайн. (250-Россия, 99 - Билайн). По номеру IMSI VLR гостевой сети определяет домашнюю сеть и связывается с ее HLR. Последний передает всю необходимую информацию об абоненте в VLR, который сделал запрос, а у себя размещает ссылку на этот VLR, чтобы в случае необходимости знать, "где искать" абонента. Теоретически, при регистрации должен передаваться и номер IMEI, но есть большие сомнения насчет того, что мобильные операторы отслеживают IMEI используемых абонентами телефонов. Если рассматривать некую "идеальную" сеть, функционирующую так, как было задумано создателями GSM, то при получении IMEI сетью, он направляется в EIR, где сравнивается с так называемыми "списками" номеров. Белый список содержит номера санкционированных к использованию телефонов, черный список состоит из IMEI, украденных или по какойлибо иной причине не допущенных к эксплуатации телефонов, и, наконец, серый список "трубки" с проблемами, работа которых разрешается системой, но за которыми ведется постоянное наблюдение. 12.5. Пользовательский интерфейс мобильной станции С точки зрения пользователя, MS является средством предоставления некоторых услуг. Эти услуги предоставляются через обращения к сетевым службам (services), в терминах которых и описывается взаимодействие пользователя с сетью. Рассмотрим базовые службы, ориентированные на передачу информации непосредственно от человека (пользователя) или к нему (это службы голосовой связи и коротких сообщений), относящиеся к ним дополнительные службы и процедуры взаимодействия с собственно мобильной станцией, использующиеся для установления соединения с сетью и поддержки сетевых служб. Описание интерфейса пользователя и станции ведется в терминах логических процедур, на самом низком уровне представляющих из себя последовательность примитивов ввода (каждый такой примитив может соответствовать, например, нажатию одной кнопки) и вывода (индикации данных пользователю). Не все процедуры детально описаны в стандарте GSM. Регистрация пользователя в сети 86 Для получения доступа к сетевым службам после установления радиосвязи с какой-либо PLMN (VPLMN), пользователь должен быть зарегистрирован в одной из PLMN. После регистрации пользователь получает все множество услуг, предоставляемых ему данной PLMN (если это PLMN той же страны, что и VPLMN), или его подмножество, определенное соглашением между зарегистрировавшей его PLMN и VPLMN. Пользователь может запустить процедуру регистрации в любой момент времени. Если попытка зарегистрироваться на какой-либо PLMN оканчивается безуспешно из-за того, что идентификатор пользователя (IMSI) некорректен или неизвестен, то станция не будет производить новые попытки регистрации до следующего включения питания или вставки SIM. Если станция включена, но не зарегистрирована, и не происходит процедура регистрации, то станция должна выдавать пользователю сообщение "Нет обслуживания" ("No service"). Выбор PLMN для регистрации может проходить в автоматическом или ручном режиме по выбору пользователя. В автоматическом режиме станция перебирает доступные разрешенные PLMN в следующем порядке: HPLMN PLMN из списка "PLMN Selector", хранящегося в SIM, в указанном там же порядке. Прочие PLMN, в случайном порядке. PLMN называется разрешенной, если она не содержится в списке "Запрещенных PLMN", хранящемся в SIM. PLMN попадает в этот список, если в ответ на запрос регистрации на ней станция получает сообщение "PLMN запрещена", и удаляется из него после успешной регистрации в ручном режиме. Если станция зарегистрировалась в автоматическом режиме на PLMN своей страны, отличной от HPLMN, то она делает попытки зарегистрироваться на HPLMN с периодом, хранящимся в SIM (его устанавливает service provider ). Этот период может составлять от 6 минут до 8 часов и кратен 6 минутам. Специальное значение периода указывает, что такие попытки не должны производиться. В ручном режиме станция предлагает пользователю PLMN для регистрации в том же порядке, но запрещенные PLMN не исключаются из общего списка. Если регистрация на выбранной PLMN прошла безуспешно, но не из-за запрещенности PLMN или некорректности идентификатора пользователя, то при изменении Location Area станция должна вновь попытаться зарегистрироваться на выбранной PLMN. Классы доступа Все мобильные станции случайным образом разделены на десять равноправных классов доступа, с номерами от 0 то 9. В случае перегрузки сети или других чрезвычайных ситуаций станциям одного или нескольких классов может быть запрещен доступ в сеть, в том числе и для чрезвычайных звонков. Кроме того, станция может быть членом одного или нескольких из пяти специальных классов доступа, с номерами от 11 до 15: Класс 15 - Руководство PLMN; Класс 14 - Аварийные службы; Класс 13 - Общественные службы; Класс 12 - Служба безопасности; Класс 11 - Для использования PLMN. Мобильной станции разрешен доступ к сети, если станция принадлежит хотя бы к одному из классов, применимому в данной PLMN, доступ членам которого к сети разрешен. Применимость классов определяется следующим образом: Классы 0 - 9 применимы ко всем PLMN. Классы 11 и 15 применимы только к HPLMN. Классы 12 - 14 применимы ко всем PLMN своей страны. 87 Кроме того, существует еще один специальный класс доступа - класс 10, принадлежность к которому дает возможность осуществлять чрезвычайные звонки, если станция не принадлежит к одному из разрешенных классов или не имеет идентификатора пользователя (IMSI). Принадлежность к одному из специальных классов доступа также означает предоставление такого права. Информация о принадлежности станции тем или иным классам хранится в SIM-карте. Режим фиксированных номеров В данном режиме мобильная станция (если она его поддерживает) позволяет звонить только по тем номерам, которые хранятся в списке фиксированных номеров в SIM-карте (в списке могут присутствовать маски номеров). Вход и выход из режима, а также редактирование списка производится только при вводе PIN2. В нормальном режиме работы станции список может использоваться как телефонная книжка (без права записи). Служба коротких сообщений Задача данной службы состоит в передаче коротких сообщений пользователю (обязательно для реализации) и от него другим пользователям (может быть не реализовано). Короткое сообщение представляет из себя строку (в общем случае - алфавитно-цифровую) и должно принадлежать к одному из двух классов - личных или широковещательных сообщений. Для каждого посылаемого через сеть сообщения отправитель указывает, в какой момент времени попытки переслать сообщение адресату должны быть прекращены (если последний его не получил), по умолчанию это 24 часа. Личное сообщение может содержать до 160 символов и считается переданными после получения его мобильной станцией (независимо от того, прочитано оно или нет). Широковещательное сообщение может содержать до 93 символов и может быть послано только поставщиком услуг (service provider). Станция должна извещать пользователя о получении сообщения, а также о невозможности его получения из-за переполнения списка уже хранящихся в ней непрочитанных сообщений. Пользователь может отключить прием широковещательных сообщений, если они его не интересуют. 13. Защита сетей GSM. По своему замыслу, цифровая система GSM вполне могла бы быть чрезвычайно защищенной. В основе ее лежит свод документов под названием "Меморандум о понимании стандарта GSM" или MoU Groupe Special Mobile Standard. Этот Меморандум был подготовлен на излете Холодной войны по инициативе ведущих телекоммуникационных компаний Западной Европы. Разрабатывал техническую документацию GSM Европейский институт стандартов по телекоммуникациям (ETSI), а в создании схемы безопасности, в целом призванной защитить новую систему от перехвата, прослушивания и мошенничества, активное участие приняли спецслужбы стран НАТО. Основу системы безопасности GSM составляют три секретных алгоритма (официально так и не раскрытые, сообщаемые лишь производителям - поставщикам оборудования, операторам связи и т.д. под расписку о неразглашении): А3 - алгоритм аутентификации, защищающий телефон от клонирования; А8 - алгоритм генерации криптоключа, по сути дела, однонаправленная функция, которая берет фрагмент выхода от A3 и превращает его в сеансовый ключ для A5; A5 - собственно алгоритм шифрования оцифрованной речи для обеспечения конфиденциальности переговоров. В GSM используются две основные разновидности алгоритма А5. A5/1 - "сильная" версия шифра для избранных стран и A5/2 - ослабленная для всех остальных. В 2002 году для следую- 88 щего поколения мобильной связи, G3, создан совершенно новый криптоалгоритм, получивший название A5/3. Еще имеется вариант A5/0 - это когда режим шифрования вроде как включен, но в действительности его нет, поскольку вместо битов ключа используются одни нули.) Мобильные станции (телефоны) снабжены смарт-картой (SIM), содержащей A3 и A8, а в самом телефоне имеется чип с алгоритмом A5. Базовые станции также снабжены чипом с A5 и "центром аутентификации", использующим алгоритмы A3, A8 для идентификации мобильного абонента и генерации сеансового ключа шифрования. Алгоритм А3. В процедуру авторизации вовлечены две функциональные сущности: SIM карта - в мобильной станции и Центр Авторизации (Authentication Center). У каждого абонента существует секретный ключ, одна копия которого сохраняется в SIM карте, другая - в AuC. Во время авторизации, AuC генерирует 128 битовое случайное число (RAND), посылаемое мобильной станции. Далее это число комбинируется с секретным ключом (Ki), шифруется алгоритмом A3, и получаемое 32 битовое значение (Signed Response - SRES) посылается обратно AuC. Если число, полученное AuC совпадает с самостоятельно вычисленным, абонент считается авторизованным. То же начальное случайное число (RAND) и индивидуальный ключ авторизации абонента (KI) используются для вычисления 64 битового ключа шифрования (Kc), используя алгоритм A8, содержащийся в SIM-е. Этот ключ шифрования, вместе с номером TDMA фрейма, используют алгоритм A5 для создания 114 битовой последовательности, которая накладывается при помощи операции "исключающее или" (XOR) на 114 бит пакета (два 57 битных блока). Расшифровка в процессе передачи, таким образом, практически нереальна. Как будет показано позднее, ключ Kc используется для шифровки и расшифровки при передаче данных между MS и BS. Дополнительный уровень секретности обеспечивается периодическим изменением ключа Другой уровень секретности имеет дело непосредственно с оборудованием. Как упоминалось ранее, каждый мобильный GSM терминал идентифицируется уникальным IMEI номером. Список IMEI сети хранится в EIR. В результате запроса на IMEI в EIR возвращается один из следующих статусов: Белые страницы (White listed). Терминальному оборудованию позволяется подключиться к сети. Серые страницы (Grey listed). Терминальное оборудование находится под наблюдением сети (возможны проблемы). Черные страницы (Black listed). Было сообщение о краже терминального оборудования или данный тип не апробирован (некорректный для данной сети тип оборудования). Терминальному оборудованию не позволяется подключиться к сети Несколько замечаний относительно реализации алгоритмов шифрования, используемых в GSM· Перечисленные ниже замечания относятся к частичной реализации алгоритма A5, появившегося а Internet-е в июле 1994 года. A5 представляет из себя шифрование потока данных трех синхронизированных LFSR степеней 19, 22 и 23: P1 ( x) x19 x 5 x 2 x 1, P2 ( x) x 22 x 1, P3 ( x) x 23 x15 x 2 x 1, Сумма степеней всех трех сдвиговых регистров равна 64. 64 битовый ключ используется для инициализации содержимого сдвиговых регистров. Управление синхронизацией (тактированием) представляет собой пороговую функцию (threshhold function) от средних битов каждого из трех сдвиговых регистров. Более подробно эта процедура такова: В каждый момент времени t выбирается по одному значению среднего бита из каждого регистра (биты с номерами 9, 11 и 12 для L1, L2 и L3 соответственно) и вычисляется их сумма s. Вычисляется значение g(s)=1, если s 2 , и g(s)=0, если s 2 . В формировании итогового зна- 89 чения участвуют только те регистры, у которых значение среднего бита совпало со значением g(s). Пример, пусть значения средних битов равны, например, 1 1, 2 0, 3 1 . Тогда, s=2, g(s)=1, и в формировании итогового значения, которое используется для гаммирования, участвуют первый и третий регистры (второй регистр тоже сдвигается, но его значение не учитывается). Такое расписание работы регистров гарантирует, что в каждый момент времени участвуют два или все три регистра (проверьте это!). Первоначально происходит инициализация исходных значений регистров L1, L2 и L3 с помощью 64-битного секретного ключа К и 22-битного открытого ключа Т, который формируется заново для каждого нового сообщения. Ключ К заполняет исходные значения регистров, затем они выполняют 22 такта работы в соответствии с расписанием, описанным выше. Однако, вместо подстановки в старший разряд значения функции сдвига в каждый из трех регистров на i-ом такте подставляется i-ый бит ключа Т. После 22 тактов работы значения всех регистров полностью обновляются, т.к. максимальная длина регистра равна 23 – 1 = 22. Сеансы шифрования состоят из циклов по 428 тактов. Первые 100 тактов производятся «вхолостую», просто для перемешивания значений всех регистров, затем производится 114 тактов работы по передаче данных в одну сторону, затем опять 100 тактов холостой работы, а затем 114 тактов передачи данных в обратную сторону. В начале июля 2002 г. Ассоциация GSM утвердила новый алгоритм шифрования информации, передаваемой в GSM-сетях. Алгоритм, получивший индекс A5/3, призван заменить собой старые стандарты шифрования, первый из которых - A5 - был принят еще в 1987 г. Новый алгоритм был разработан совместными усилиями комитета по безопасности Ассоциации GSM, организацией 3GPP (3rd Generation Partnership Project) и комитетом по алгоритмам безопасности Европейского института по телекоммуникационным стандартам (ETSI). При этом A5/3 можно будет в использовать как в обычных, так и в модернизированных GSM-сетях, поддерживающих технологии связи 2.5G (GPRS) и 3G (HSCSD и EDGE). A5/3 реализуется на аппаратном уровне и учитывает особенности обработки сигналов в сотовых телефонах. При этом шифруется как голосовой трафик, так и данные, передаваемые по беспроводному каналу. Как утверждается в пресс-релизе Ассоциации, на сегодняшний день A5/3 обеспечивает практически 100процентную защиту от перехвата информации в GSM-сетях. 90 GSM - Глоссарий AMPS (Advanced Mobile Phone Service) AuC (Authentication Center) - центр авторизации AGCH (Access Grant Channel) - канал разрешения доступа BSS (Base Station Subsystem) - подсистема базовых станций BSC (Base Station Controller) - контроллер базовых станций BTS (Base Transceiver Station)- базовая станция BBCH (Broadcast Control Channel)- широковещательный управляющий канал CEPT (Conference of European Posts and Telegraphs)- Европейская Комиссия по Телекоммуникациям DES (Data Encryption Standard)- стандартное шифрование данных ETSI (European Telecommunication Standards Institute) EIR (Equipment Identity Register)- реестр идентификации оборудования FDMA (Frequency-Division Multiple Access) FCCH (Frequency Correction Channel)- канал коррекции частоты GSM (Groupe Special Mobile)-первоначальный смысл акронима GSM GSM-Global System for Mobile communications-значение акронима GSM сегодня GMSK (Gaussian-filtered Minimum Shift Keying) - фильтруемая по Гауссу минимальная манипуляция HLR (Home Location Register) - реестр собственных абонентов ISDN (Integrated Services Digital Network) - стандарт цифровых сетей IN (Intelligent Network) - стандарт цифровых сетей IMEI (International Mobile Equipment Identity )- международный идентификатор мобильного устройства IMSI (International Mobile Subscriber Identity) - международный идентификационный номер подписчика ITU (International Telecommunication Union) -международный консультативный комитет по телеграфии и телефонии LAI (Location Area Identity) -идентификаторы области расположения абонента МЕ (Mobile Equipment )- мобильное устройство MSC (Mobile services Switching Center )- центр коммутации MSISDN(Mobile Subscriber ISDN)- телефонный номер в его обычном понимании MAP(Mobile Application Part)- часть мобильных приложений MSRN(Mobile Station Roaming Number)- номер перемещающейся мобильной станции NSS (Network and Switching Subsystem)- подсистема сети и коммутации NIST(National Institutes of Standards and Technologies)- Национальный Институт Стандартов и Технологий OSS (Operating and Support Subsystem) - подсистема управления и поддержки PAGCH (PAGer Channel) - канал вызова PCH (Paging Channel) -канал пейджинга PCM (Pulse Coded Modulation)- импульсно-кодовая модуляция - ИКМ POTS (Plain Old Telephone Service) RACH (Random Access Channel)- канал случайного доступа SIM (Subscriber Identity Module) - модуль идентификации абонента(смарт-карта) SRES (Signed RESult) SACCH ( Slow Associated Control Channel ) -медленный ассоциированный управляющий канал SDCCH (Stand-alone Dedicated Control Channels) -выделенный управляющий канал SCH (Synchronisation Channel) -канал синхронизации SMS (Short Message Service ) SHA(Secure Hash Algorithm)- надежный хеш-алгоритм TACS (Total Access Communications System) TMSI (Temporary Mobile Subscriber Identity)-временный номер мобильного абонента TDMA(Time-Division Multiple Access) TCAP(Transaction Capabilities Application Part)- часть возможных транзакций UMTS (Universal Mobile Telecommunications System)- международный стандарт глобальной системы подвижной связи VLR (Visitor Location Register )- реестр перемещений Литература. 1. С.Г.Баричев, В.В.Гончаров, Р.Е.Серов. Основы современной криптографии – Москва, Горячая линия – Телеком, 2001 91 2. А.В.Беляев. "Методы и средства защиты информации" (курс лекций). http://www.citforum.ru/internet/infsecure/index.shtml 3. А. А. Болотов, С. Б. Гашков, А. Б. Фролов, А. А. Часовских, «Алгоритмические основы эллиптической криптографии». Учебное пособие. М.: Изд-во МЭИ. 2000 г., 100 с. 4. А.Володин. «Кто заверит ЭЦП», журнал «Банковские системы», ноябрь 2000, http://www.bizcom.ru/system/2000-11/04.html 5. Т.Илонен. Введение в криптографию (Ylonen Tatu. Introduction to Cryptography), http://www.ssl.stu.neva.ru/psw/crypto/intro.html 6. Н.Коблиц. Теория чисел и криптография, М.:, ТВР, 2001 http://gabro.ge/biblio/0708/0081/file/Cryptography/Koblic_-_Teoriya_Chisel_i_Cryptografiya.rar 7. О.Р. Лапонина. Криптографические основы безопасности, курс Интернет-университета, http://www.intuit.ru/department/security/networksec 8. Р.Лидл, Г.Нидеррайтер. Конечные поля, в 2 т., пер.с англ., М.: Мир, 1998, 438 с. 9. А.А. Молдовян, Н.А. Молдовян, Б.Я. Советов. Криптография. М., Лань, 2001 10. А.А. Молдовян, Н.А. Молдовян, Введение в криптосистемы с открытым ключом, БХВПетербург, 2005, с. 286 http://cyberdoc.nnm.ru/vvedenie_v_kriptosistemy_s_otkrytym_klyuchom 11. А.Г.Ростовцев. Алгебраические основы криптографии, СПб, Мир и Семья, 2000. 12. А.Г.Ростовцев, Е.Б.Маховенко. Теоретическая криптография . – СПб.: АНО НПО “Профессионал”, 2005, http://bookpedia.ru/index.php?newsid=1265 13. Г.Семенов. «Цифровая подпись. Эллиптические кривые». http://www.morepc.ru/security/crypt/os200207010.html?print 14. В.Столлингс. Основы защиты сетей. Приложения и стандарты, М.: Вильямс, 2002, 429 с. 14. Брюс Шнайер. Прикладная криптография, 2-е издание: протоколы, алгоритмы и исходные тексты на языке С, http://www.ssl.stu.neva.ru/psw/crypto/appl_rus/appl_cryp.htm 15. Dr. Michael Ganley, Thales eSecurity Ltd. Метод эллиптических кривых, http://www.racal.ru/rsp/eliptic_curve_cryptography.htm 16. В.М.Фомичев. Дискретная математика и криптология, Диалог-МИФИ, 2003, 399 с. 17. Сайт Криптографический ликбез - http://www.ssl.stu.neva.ru/psw/crypto.html 18. Jovan Dj. Golic. Cryptanalysis of Alleged A5 Stream Cipher, Beograd, Yugoslavia, http://jya.com/a5-hack.htm