Каждый пользователь сети Интернет, который хотя бы раз был зарегистрирован на каком-либо сайте или портале, в базе данных Интернет-магазина, на форуме и т.д. знает на практике о процессах идентификации и аутентификации пользователя. Действительно, вводя в веб-форме свое имя (login) и подтверждая его паролем (password), мы уже принимаем самое активное участие в этих процессах, хотя и не задумываемся для чего они нужны владельцам и разработчикам данных объектов информатизации. А ведь эти процессы играют огромную роль в построении систем защиты электронной коммерции и корпоративных веб-серверов.
Применение в системах электронной коммерции открытых каналов передачи данных и сети Интернет, обусловленное самой природой этих систем и случайным характером транзакций, заключаемых коммерческих сделок создают потенциальную угрозу проникновения нарушителей (злоумышленников) к активам как покупателей, так и продавцов. Поэтому одной из важнейших задач обеспечения информационной безопасности систем информационных технологий (ИТ) является использование методов и средств, позволяющих одной (проверяющей стороне), убедиться в подлинности другой (проверяемой стороны). Обычно для решения данной проблемы применяются специальные приемы, дающие возможность проверить корректность сообщений о том, что проверяемая сторона владеет определенным секретом.
С каждым зарегистрированным в системе ИТ субъектом (пользователем или процессом, действующим от имени пользователя) связана некоторая информация, однозначно идентифицирующая его. Это может быть число или строка символов, именующая данный субъект. Такую информацию называют идентификатором субъекта (login или имя). Имея идентификатор, зарегистрированный в системе пользователь считается легальным, остальные субъекты относятся к нелегальным.
Прежде чем получить доступ к ресурсам системы, пользователь должен пройти процесс первичного взаимодействия с системой ИТ, который включает две стадии – идентификацию и аутентификацию.
Идентификация – это процедура распознавания пользователя по его идентификатору (имени). Эта процедура выполняется в первую очередь, когда пользователь делает попытку войти в систему ИТ. Он сообщает системе по ее запросу свой идентификатор, и система поверяет в своей базе данных его наличие.
Аутентификация - это процедура проверки подлинности, позволяющая достоверно убедиться что пользователь является именно тем, кем он себя объявляет. При проведении аутентификации проверяющая сторона убеждается в подлинности проверяемой стороны; при этом проверяемая сторона тоже активно участвует в процессе обмена информацией. Обычно пользователь подтверждает свою идентификацию, вводя в систему уникальную, неизвестную другим пользователям информацию о себе (например, пароль или сертификат).
После того, как субъект идентифицирован и аутентифицирован, выполняется его авторизация. Эта процедура предоставления субъекту определенных прав и ресурсов в данной системе.
Применительно к системам электронной торговли процедура авторизации выглядит следующим образом:
- после успешного прохождения процедур взаимной идентификации и аутентификации, покупателю разрешается подключение через Интернет к веб-серверу магазина;
- магазин в ответ на запрос покупателя направляет ему счет, подписанный электронно-цифровой подписью (ЭЦП) магазина. С гражданско-правовой точки зрения этот счет является предложением заключить договор (оферта);
- покупатель подписывает своей ЭЦП предъявленный ему счет и отправляет его обратно в магазин, совершая тем самым акцепт.
В системах электронной коммерции выполняется взаимная аутентификация субъектов (продавец, покупатель), то есть взаимное подтверждение подлинности субъектов, связанных между собой через Интернет.
Для подтверждения своей подлинности субъект может предъявлять системе разные сущности. В зависимости от предъявляемых субъектом сущностей процессы аутентификации могут быть разделены на следующие категории:
- на основе знания чего-либо. Примером могут служить стандартные пароли, персональные идентификационные номера (PIN-коды), а также секретные и открытые ключи, знание которых демонстрируют в протоколах типа «запрос-ответ»;
- на основе обладания чем-либо. Обычно это магнитные карты, смарт-карты, сертификаты, устройства touch-memory и персональные генераторы, которые используются для создания одноразовых паролей;
- на основе каких-либо неотъемлемых характеристик. Данная категория включает методы, базирующиеся на проверке биометрических характеристик пользователя (голос, сетчатка глаз, отпечатки пальцев). В этой категории не используются криптографические методы и средства.
Процессы аутентификации можно также классифицировать по уровню обеспечиваемой безопасности. В соответствии с данным подходом процессы аутентификации разделяются на следующие типы:
- простая аутентификация (на основе использования паролей);
- строгая аутентификация (на основе использования криптографических методов и средств);
- процессы (протоколы) аутентификации, обладающие свойством доказательства с нулевым знанием.
При сравнении и выборе протоколов аутентификации необходимо учитывать следующие характеристики:
- наличие взаимной аутентификации – это свойство отражает необходимость обоюдной аутентификации между сторонами обмена информацией;
- вычислительная эффективность – количество операций, необходимых для выполнения протокола;
- коммуникационная эффективность – данное свойство отражает количество сообщений и их длину, необходимую для осуществления аутентификации;
- наличие третьей стороны – примером третьей стороны может служить доверенный сервер распределения симметричных ключей или сервер, реализующий дерево открытых сертификатов для распределения открытых ключей;
- основа гарантии безопасности – примером могут служить протоколы, обладающие свойством доказательства с нулевым знанием;
- хранения секрета – имеется в виду способ хранения критичной ключевой информации.
Следует отметить, что аутентификация должна применяется не только для установления подлинности пользователей, но и для проверки целостности сообщений и подлинности их источника. После того как произошла успешная взаимная аутентификация абонентов, приходит очередь аутентификации передаваемых по защищенному каналу данных. Каждый получатель информации (устройство, приложение или пользователь) должен иметь подтверждение, что полученные им данные были сформированы и отправлены именно тем отправителем, легальность которого была доказана во время предшествующей процедуры аутентификации.
Широкое распространение кредитных банковских карточек (смарт-карт) для оплаты товаров и услуг в сети Интернет потребовало обеспечения безопасной идентификации и аутентификации таких карт и их владельцев. Во многих приложениях главная проблема заключается в том, чтобы при предъявлении интеллектуальной карты оперативно обнаружить обман и отказать обманщику в допуске, ответе или обслуживании. Схемы простой аутентификации слабо соответствуют требованиям указанных приложений. Один из существенных недостатков протоколов простой аутентификации заключается в том, что после того, как доказывающий передаст проверяющему свой пароль, проверяющий может, используя данный пароль, выдать себя за проверяемого. Немногим лучше обстоит дело с протоколами строгой аутентификации. Дело в том, что участник А, отвечая на запросы участника В, обязан продемонстрировать знание секретного ключа; при этом передаваемая информация не может быть напрямую использована участником В. Тем не менее некоторая ее часть поможет участнику В получить дополнительную информацию о секрете участника А. Например, участник В имеет возможность так сформировать запросы, чтобы передаваемые ответы анализировались с целью извлечения из них дополнительной информации.
Для безопасной реализации процедур аутентификации разработаны протоколы аутентификации с нулевой передачей знаний. [1, 2, 3] Секретный ключ владельца карты становится неотъемлемым признаком его личности. Доказательство знания секретного ключа с нулевой передачей этого знания служит доказательством подлинности личности владельца карты. Аутентификацию с нулевой передачей знания можно реализовать при помощи демонстрации знания секрета, однако проверяющий должен быть лишен возможности получать дополнительную информацию о секрете доказывающего. Говоря точнее, протоколы аутентификации в виде доказательства с нулевым знанием позволяют установить истинность утверждения и при этом не передавать какой-либо дополнительной информации о самом утверждении. Данные протоколы являются примером систем интерактивного доказательства, в которых проверяющий и доказывающий обмениваются многочисленными запросами и ответами, обычно зависящими от случайных чисел (в идеальном случае такая зависимость может реализоваться в виде подбрасывания монеты), которые позволяют сохранить секрет в тайне. Классическим примером описания системы аутентификации с нулевой передачей знаний служит так называемая пещера Али-Бабы.
Пример системы аутентификации с нулевой передачей знаний (пещера Али-Бабы).
Пещера имеет один вход (см. на рис. выше), путь от которого разветвляется в глубине пещеры на два коридора, сходящихся затем в одной точке, где установлена дверь с замком. Каждый, кто имеет ключ от замка, может переходить от одного коридора в другой в любом направлении. Одна операция алгоритма состоит из последовательности шагов:
- Проверяющий становится в точку А.
- Доказывающий проходит в пещеру и добирается до двери (оказывается в точке С или D). Проверяющий не видит, в какой из двух коридоров тот свернул.
- Проверяющий приходит в точку В и в соответствии со своим выбором просит доказывающего выйти из определенного коридора.
- Доказывающий, если нужно, открывает дверь ключом и выходит из названного проверяющим коридора.
- 5. Итерация повторяется столько раз, сколько требуется для распознавания истинности утверждения «доказывающий владеет ключом от двери» с заданной вероятностью. После i-ой итерации, вероятность того, что проверяющий попросит доказывающего выйти из того же коридора, в который вошел доказывающий, равна (1/2)i .
Схему аутентификации с нулевой передачей знаний предложили в 1986 году У. Фейге, А. Фиат и А. Шамир. Она является наиболее известным доказательством идентичности с нулевой передачей конфиденциальной информации.
Для более четкого выявления основных концепций рассмотрим сначала упрощенный вариант схемы аутентификации с нулевой передачей знаний.
Прежде всего, выбирают случайное значение модуля n, который является произведением двух больших простых чисел. Модуль n должен иметь длину 512-1024 бит. Это значение n может быть представлено группе пользователей, которым придется доказывать свою подлинность. В процессе идентификации участвуют две стороны:
- сторона А, доказывающая свою подлинность;
- сторона В, проверяющая представляемое стороной А доказательство.
Для того чтобы сгенерировать открытый и секретный ключи для стороны А, доверенный арбитр (Центр) выбирает некоторое число V, которое является квадратичным вычетом по модулю n. Иначе говоря, выбирается такое число V, при котором сравнение
х2 ≡ V (mod n) (1)
имеет решение и существует целое число
V-1 mod n. (2)
Выбранное значение V является открытым ключом для А. Затем вычисляют наименьшее значение S, для которого
S ≡ sqrt (V-1) (mod n). (3)
Это значение S является секретным ключом для А.
Теперь можно приступить к выполнению протокола аутентификации:
1. Сторона А выбирает некоторое случайное число r, r<n. Затем она вычисляет
х = r2 mod n и отправляет х стороне В.
2. Сторона В посылает А случайный бит b.
3. Если b = 0, тогда А отправляет r стороне В. Если b = 1, то А отправляет стороне В
у = r * S mod n.
4. Если b = 0, сторона В проверяет, что х = r 2 mod n, чтобы убедиться, что А знает sqrt (x).
Если b = 1, сторона В проверяет, что х = у2 *V mod n, чтобы быть уверенной, что А знает sqrt (V-1).
Эти шаги образуют один цикл протокола, называемый аккредитацией. Стороны А и В повторяют весь цикл t раз при разных случайных значениях r и b до тех пор, пока В не убедится, что А знает значение S.
Если сторона А не знает значения S, она может выбрать такое значение r, которое позволит ей обмануть сторону В, если В отправит ей b = 0, либо А может выбрать такое r, которое позволит обмануть В, если В отправит ей b = 1. Но этого невозможно сделать в обоих случаях. Вероятность того, что А обманет В в одном цикле, составляет 1/2. Вероятность обмануть B в t циклах равна (1/2)t.
Для того чтобы данный протокол работал, сторона А никогда не должна повторно использовать значение r. Если А поступила бы таким образом, а сторона В отправила бы стороне А на шаге 2 другой случайный бит b, то В имела бы оба ответа А. После этого В может вычислить значение S, и для А все закончено.
Параллельная схема аутентификации позволяет увеличить число аккредитаций, выполняемых за один цикл, и тем самым уменьшить длительность процесса аутентификации.
Как и в предыдущем случае, сначала генерируется число n как произведение двух больших чисел. Для того чтобы сгенерировать открытый и секретный ключи для стороны А, сначала выбирают К различных чисел Vl, V2, ... VK, где каждое V, является квадратичным вычетом по модулю n. Иначе говоря, выбирают такое значение Vi, при котором сравнение
х2 ≡ Vi mod n (4)
имеет решение и существует:
Vi-1mod n. (5)
Полученная строка Vl, V2, ... VK является открытым ключом.
Затем вычисляют такие наименьшие значения Si ,что:
Si = sqrt (Vi-1) mod n. (6)
Эта строка Sl, S2, ... SK является секретным ключом стороны А. Протокол процесса аутентификации имеет следующий вид:
1. Сторона А выбирает некоторое случайное число r при условии, что r<n.
Затем она вычисляет х = r2 mod n и посылает х стороне В.
2. Сторона В отправляет стороне А некоторую случайную двоичную строку из
К бит: b1, b2,... bK.
3. Сторона А вычисляет у = r * (Sb1 * Sb2* ... * SKbk) mod n.
Перемножаются только те значения Si, для которых bi = 1. Например, если b1 = 1, то сомножитель S1 входит в произведение, если же b1 = 0, то Sl не входит в произведение, и т.д. Вычисленное значение у отправляется стороне В.
4. Сторона В проверяет, что х = у2 * (Vb1 * Vb2* ... * VKbk) mod n.
Фактически сторона В перемножает только те значения Vi для которых bi = 1. Стороны А и В повторяют этот протокол t раз, пока В не убедится, что А знает Sl, S2, ... SK.
Вероятность того, что А может обмануть В, равна (1/2)Kt.
Алгоритм аутентификации с нулевой передачей знания, разработанный Л. Гиллоу и Ж. Куискуотером, имеет несколько лучшие характеристики, чем предыдущая схема аутентификации. Вот на основе этого алгоритма мы и проанализируем схему покупки и проведения платежа в режиме он-лайн по технологии электронной коммерции (см. рис. 1). Но вначале приведем сам алгоритм Л. Гиллоу и Ж. Куискуотера:
Пусть сторона А - интеллектуальная карточка, которая должна доказать свою подлинность проверяющей стороне В. Идентификационная информация стороны А представляет собой битовую строку I, которая включает имя владельца карточки, срок действия, номер банковского счета и др. Фактически идентификационные данные могут занимать достаточно длинную строку, и тогда их хэшируют к значению I.
Строка I является аналогом открытого ключа. Другая открытая информация, которую используют все карты, участвующие в данном приложении - модуль n и показатель степени V. Модуль n является произведением двух секретных простых чисел.
Секретным ключом стороны А является величина G, выбираемая таким образом, чтобы выполнялось соотношение:
I * GV ≡ 1(mod n) (7)
Сторона А отправляет стороне В свои идентификационные данные I. Ее дальнейшая задача - доказать стороне В, что эти идентификационные данные принадлежат именно А. Чтобы добиться этого, сторона А должна убедить сторону В, что ей известно значение G.
Вот протокол доказательства подлинности А без передачи стороне В значения G:
- Сторона А выбирает случайное целое r, при котором 1 < r ≤ n - 1.
Она вычисляет Т = rv mod n и отправляет это значение стороне В.
2. Сторона В выбирает случайное целое d из расчета, что 1 < d ≤ n - 1, и отправляет это значение d стороне А.
3. Сторона А вычисляет
D = r * Gd mod n
и отправляет это значение стороне В.
4. Сторона В вычисляет значение
T’ = Dv Id mod n.
Если T ≡ T' (mod n), то проверка подлинности успешно завершена. Математические выкладки, использованные в этом протоколе, не очень сложны:
T = Dv Id = (r Gd)v Id = rv Gdv Id = rv (I Gv)d = rv ≡ Т (mod n), (8)
поскольку G вычислялось таким образом, чтобы выполнялось соотношение
I Gv ≡ 1 (mod n). (7)
Теперь перейдем непосредственно к рассмотрению схемы покупки и проведения платежа в режиме он-лайн по технологии электронной коммерции (см. рис. 1). В качестве математического алгоритма для детального рассмотрения данной схемы возьмем протокол аутентификации с нулевой передачей знания, разработанный Л. Гиллоу и Ж.. Куискуотером (см. выше).
В системе электронной коммерции кредитные Интернет-ориентированные платежные системы являются аналогами традиционных систем с платежами, работающих с кредитными карточками. Отличие состоит в проведении всех транзакций через Интернет и, как следствие, в необходимости дополнительных средств безопасности и аутентификации. При совершении покупки с использованием кредитной карточки система осуществляет авторизацию карточки и проверяет кредитоспособность клиента.
В системе электронной коммерции платежи совершаются при соблюдении ряда условий:
- Соблюдения конфиденциальности - при проведении платежей через Интернет покупатель хочет, чтобы его данные (например, номер кредитной карты) были известны только организациям, имеющим на это законное право;
- Сохранение целостности информации - покупатели и продавцы должны быть уверены, что все стороны, участвующие в сделке, являются теми за кого они себя выдают;
- Аутентификация - покупатели и продавцы должны быть уверены, что все стороны, участвующие в сделке, являются теми, за кого они себя выдают;
- Доступность средств оплаты - возможность оплаты любыми доступными средствами;
- Авторизация - процесс, в ходе которого требование на проведение транзакций одобряется или отклоняется платежной системой. Эта процедура позволяет определить наличие средств у покупателя;
- Гарантии рисков продавца - осуществляя торговлю в сети Интернет, продавец подвержен множеству рисков, связанных с отказами от товара и недобросовестностью покупателя. Величина рисков должна быть согласована с провайдером платежной системы и другими организациями, включенными в торговые цепочки, посредством специальных соглашений (страхованием рисков);
- Минимизация платы за транзакцию - плата за обработку транзакций заказа и оплаты товаров, естественно, входит в их стоимость, поэтому снижение цены транзакции увеличивает конкурентоспособность. Важно отметить, что транзакция должна быть оплачена в любом случае, даже при отказе покупателя от товара.
С учетом вышеизложенных требований рассмотрим принципы организации кредитной Интернет-ориентированной системы электронной коммерции. Схема покупки и проведения платежей в режиме онлайн по технологии электронной коммерции приведена на рис.1.
В проведении платежей через Интернет при совершении купли-продажи товаров участвуют:
- покупатель - клиент, имеющий компьютер с Web-браузером и доступом в Интернет, кроме того в компьютере клиента должно присутствовать специальное программное обеспечение (ПО), реализующие процедуры идентификации, аутентификации и авторизации, а также некоторые другие функции защиты (ЭЦП, VPN и др.) в зависимости от установленной политики безопасности;
- магазин – под ним понимается веб-сервер электронной коммерции, на котором ведутся каталоги товаров и услуг и принимаются заказы клиентов на покупку. Кроме того, как это отмечалось выше (клиентское ПО), на веб-сервере также устанавливается специальное ПО, исходя из требований политики безопасности платежной системы;
- банк-эквайер – банк, обслуживающий магазин. Каждый магазин имеет единственный банк-эквайер, в котором держит свой расчетный счет, оперирующий в системе электронной коммерции;
- процессинговый центр – сервер организации, обеспечивающий информационное и технологическое взаимодействие участников традиционной кредитной платежной системы;
- платежная система Интернет – электронные компоненты и процессы, используемые в качестве посредников между участниками электронной коммерции.
Рассмотрим поэтапную реализацию технологии электронной коммерции в соответствии со схемой, приведенной на рис.1:
- Покупатель с помощью своего веб-браузера подключается к веб-серверу магазина и формирует перечень товаров (корзину), которые он хочет купить (транзакция а).
- Далее покупатель обращается в процессинговый центр платежной системы с запросом на выдачу идентификатора I и в случае проверки его легитимности получает требуемый идентификатор (транзакции b и с).
- Вместе с запросом на выставление счета покупатель посылает параметр T (шаг 1 протокола доказательств, приведенного алгоритме Л. Гиллоу и Ж. Куискуотера). В зависимости от реализуемой политики безопасности, запрос на выставление счета может быть подписан ЭЦП покупателя (транзакция 1).
- В соответствии с шагом 2 протокола доказательств магазин (веб-сервер) формирует параметр d и вместе со счетом отправляет его покупателю (транзакция 2). В зависимости от реализуемой политики безопасности транзакция 2 может быть подписана ЭЦП магазина. В счете указывается:
- наименование товара (услуги);
- стоимость товара (услуги);
- код магазина;
- время и дату совершения операции;
- другое.
- Покупатель проверяет высланный магазином счет на наличие товара и соответствие его объявленной на сайте стоимости, вычисляет параметр D (шаг 3 протокола доказательств Л. Гиллоу и Ж. Куискуотера), подписывает все это своей ЭЦП (если это предусмотрено заданной политикой безопасности) и отправляет сформированный таким образом чек в магазин (транзакция 3).
- Получив таким образом сформированный магазином и покупателем электронный чек и идентификационные параметры I и D производит заключительную аутентификационную процедуру (шаг 4 протокола доказательств Л. Гиллоу и Ж. Куискуотера). Если процедура аутентификации произошла успешно (T ≡ T’(mod n)) магазин формирует запрос в процессинговый центр на авторизацию (транзакция 4).
- Процессинговый центр производит проверку подписанного чека:
- проверяет наличие в системе магазина и покупателя (если это определено политикой безопасности);
- проверяет ЭЦП покупателя и магазина (если это определено политикой безопасности);
- сохраняет копию чека в базе данных.
В случае положительного результата проверки чек отправляется в банк покупателя (транзакция 5).
- Банк покупателя (эмитент кредитной карты) проверяет остаток и лимиты средств на счете покупателя. В результате проверки формируется разрешение или запрет проведения платежа. Банк покупателя передает результат авторизации процессинговому центру платежной системы (транзакция 6).
9. При разрешении платежа:
- процессинговый центр передает магазину разрешение на оказание услуги (отпуск товара), транзакция 7+;
- банк покупателя переводит денежные средства со счета покупателя на счет магазина (транзакция 8, эмитент-эквайер);
- магазин оказывает услугу (отпускает товар), транзакция 10.
- При запрете платежа:
- процессинговый центр передает магазину отказ от проведения платежа (транзакция 7+);
- покупатель получает отказ с описанием причины (транзакция 7-).
Следует подчеркнуть, что в данной схеме покупатель полностью контролирует процесс совершения покупки. Клиент имеет возможность проверять свои платежи, сравнивать выписку по своему счету с результатами прохождения платежей в магазинах. Для этого он запрашивает выписку о состоянии своего счета, подписав запрос собственной цифровой подписью. Банк проверит код покупателя и его подпись и, если все окажется в порядке, в защищенном виде направит выписку покупателю. Получив это сообщение, покупатель в свою очередь проверит подпись банка и декодирует выписку. Это гарантирует подлинность и конфиденциальность информации о состоянии счета.
Хотя перечисленные действия кажутся на первый взгляд слишком сложными, однако, при более внимательном рассмотрении становится ясно, что без тщательной проверки и контроля покупатели и продавцы не могут быть уверенны в безопасности электронных сделок. Именно боязнь мошенничества – главная причина, тормозящая развитие электронной коммерции.
Литература:
1. Menezes A.J., Van Oorschot P.C., Vanstone S.A. Handbook of Applied Cryptography. CRC Press, 1999- 816 p.
2. Schneier B. Applied Cryptography. John Wiley&Sons, Inc. 1996. – 758 p.
3. Соколов А.В., Шаньгин В.Ф. Защита информации в распределенных корпоративных сетях. М.:ДМК Пресс, 2002. – 656 с
АРТАМОНОВ ВЛАДИМИР АФАНАСЬЕВИЧ, АРТАМОНОВА ЕЛЕНА ВЛАДИМИРОВНА.
Отправить статью в социальные сети, на печать, e-mail и в другие сервисы: