- •7.5.2. Трехфазное подтверждение
- •7.6. Восстановление
- •7.6.1. Основные понятия
- •7.6.2. Создание контрольных точек
- •7.6.3. Протоколирование сообщений
- •7.7. Итоги
- •Глава 8
- •8.1. Общие вопросы защиты
- •8.1.1. Угрозы, правила и механизмы
- •8.1.2. Вопросы разработки
- •8.1.3. Криптография
- •8.2. Защищенные каналы
- •8.2.1. Аутентификация
- •8.2.2. Целостность и конфиденциальность сообщений
- •8.2.3. Защищенное групповое взаимодействие
- •8.3. Контроль доступа
- •8.3.1. Общие вопросы контроля доступа
- •8.3.2. Брандмауэры
- •8.3.3. Защита мобильного кода
- •8.4. Управление защитой
- •8.4.1. Управление ключами
- •8.4.2. Управление защищенными группами
- •8.4.3. Управление авторизацией
- •8.5. Пример — Kerberos
- •8.6. Пример — sesame
- •8.6.1. Компоненты системы sesame
- •8.6.2. Сертификаты атрибутов привилегий
- •8.7. Пример — электронные платежные системы
- •8.7.1. Электронные платежные системы
- •8.7.2. Защита в электронных платежных системах
- •8.7.3. Примеры протоколов
- •8.8. Итоги
- •Глава 9
- •9.1. Corba
- •9.1.1. Обзор
- •9.1.2. Связь
- •9.1.3. Процессы
- •9.1.4. Именование
- •9.1.5. Синхронизация
- •9.1.6. Кэширование и репликация
- •9.1.7. Отказоустойчивость
- •9.1.8. Защита
- •9.2. Dcom
- •9.2.1. Обзор
- •9.2.2. Связь
- •9.2.3. Процессы
- •9.2.4. Именование
- •Синхронизация
- •Репликация
- •Отказоустойчивость
- •9.2.8. Защита
- •9.3. Globe
- •9.3.1. Обзор
- •9.3.2. Связь
- •9.3.3. Процессы
- •9.3.4. Именование
- •9.3.5. Синхронизация
- •9.3.6. Репликация
- •Отказоустойчивость
- •9.4. Сравнение систем corba, dcom и Globe
- •9.4.1. Философия
- •Процессы
- •9.4.4. Именование
- •Синхронизация
- •Кэширование и репликация
- •Отказоустойчивость
8.7.2. Защита в электронных платежных системах
Должно быть понятно, что защита играет в электронных платежных системах важную роль. Никому не понравится неавторизованный доступ к его банковскому счету, и никто не обрадуется продавцу, обвиняющему вас в неуплате. Это позволяет нам утверждать, что защита в платежных системах играет значительно более важную роль, чем в других типах распределенных систем.
Общие требования
Давайте рассмотрим для начала некоторые из наиболее очевидных требований к защите моделей платежей, представленных на рис. 8.40. В системах на основе наличных денег наиболее широко распространены автоматические кассовые машины (Automatic Teller Machines, ATM), или банкоматы, которые работают в контакте с одной из банковских баз данных. Когда Алиса хочет получить деньги в своем банке, она должна сначала аутентифицировать себя. Она может использовать специальный маркер в форме карты с магнитной полосой или чипом. Эта карта, считываемая банкоматом, защищена персональным идентификационным номером (Personal Identification Number, PIN). Алиса должна набрать свой номер PIN, после чего ATM связывается с банком. Если аутентификация оказалась успешной, Алисе разрешается получить определенную сумму денег. Дополнительную информацию по банкоматам и PIN можно найти в [119].
Существует и другой подход. Алиса может, не прибегая к помощи банкомата, использовать для перевода денег со своего счета домашний персональный компьютер. В любом случае, если у Алисы есть деньги, она может заплатить тем или иным способом. Один из способов, применяемых в электронных системах, — использование смарт-карты, которая может хранить цифровые деньги (digital money), существующие в форме битов. С другой стороны, Алиса может указать, что предпочитает хранить свои цифровые деньги локально, на собственном жестком диске.
Использование цифровых денег в схемах, разработанных для наличных, требует надежной защиты от мошенничества. В частности, нужно предотвратить возможность использования цифровых денег более одного раза или возможность изготовления фальшивых денег. Другими словами, мы явно нуждаемся в механизме обеспечения целостности.
Когда Алиса использует свои цифровые деньги, чтобы заплатить Бобу, Боб должен быть в состоянии проверить подлинность денег. Цифровые деньги считаются подлинными, если Боб может пойти в свой банк и положить их на счет. А банк Боба хочет быть уверен, что эти деньги «реальны» и ни Боб, ни Алиса ничего с ними «не накрутили». В некоторых случаях это означает, что банк Боба должен будет связаться с банком, который изначально выпустил эти деньги. Затем последует традиционная процедура аутентификации, в ходе которой банк Боба будет аутентифицировать банк Алисы.
Теперь обсудим систему, основанную на использовании чеков или кредитных карт. Снова нетрудно увидеть, что необходимым условием прохождения платежа являются стандартные требования аутентификации и авторизации чека или кредитной карты, которые Алиса выдала или предъявила. Когда Боб принимает оплату электронным чеком, он хочет, чтобы чек был защищен от подделок. Его банк также хочет быть уверен, что в чек не вносились исправления.
Однако можно указать на необходимость более строгих требований к защите от отказа в оплате, чем в случае систем на основе наличных денег. Так, например, стандартный способ покупки товаров через Интернет — посылка заказа с указанием номера кредитной карты. Хотя номер кредитной карты часто шифруется до пересылки его продавцу, он не является эквивалентом подписи на чеке или данных считывания в случае платежа кредитной картой. Таким образом, относительно легко (теоретически) отрицать сам факт заказа. Защита от отказа в оплате может быть реализована, например, путем требования к покупателю передавать в своей части транзакции цифровую подпись.
В связи с возможностью отказа от оплаты мы особенно жестко требуем, чтобы транзакция происходила атомарно — это гарантирует, что она либо будет проведена полностью, либо не произойдет вообще. Это требование вытекает из того факта, что после того, как Алиса заплатит магазину Боба, следует защищать не только Боба от отказа Алисы признать факт посылки заказа. Алиса также должна быть защищена от отказа Боба признать факт оплаты. Если система подтвердит Алисе, что оплата была произведена, это должно означать, что Боб получил деньги и не сможет впоследствии отказаться от этого факта.
Хотя мы сосредоточили свое внимание на вопросах защиты, следует понимать, что электронные платежные системы предполагают также и требование надежности доступа. В частности, система в целом должна быть легкодоступной и иметь высокую степень надежности.
Закрытость
Хотя запросы к требованиям защиты в электронных платежных системах выше, чем в традиционных распределенных системах, они в принципе могут быть реализованы с использованием описанных выше технологий. Однако существует одна проблема, которая заслуживает особого внимания и нередко выделяет электронные платежи из общего ряда приложений — это закрытость.
Просто защитить платеж от любопытных глаз относительно просто — достаточно воспользоваться стандартными методами шифрования. Трудно обеспечить анонимность. В стандартных системах платежей анонимный платеж несложен: Алиса просто передает Бобу мешок денег в обмен на купленные ей товары. Никаких вопросов. Алисе обычно нет необходимости знать, кто такой Боб, а Боба абсолютно не интересует, кто такая Алиса. Единственное, что имеет значение — товар и деньги.
Дело усложняется, если Алиса и Боб используют электронную платежную систему. Одна из первых вещей, которую следует рассмотреть, — это защита микроданных. Микроданные (microdata) — это малые элементы данных, которыми сопровождается каждая транзакция. Если собрать их вместе, они способны открыть одну из сторон, вовлеченных в эту транзакцию. Рассмотрим, например, анонимный платеж, в ходе которого записывается имя хоста, инициировавшего этот платеж, и время оплаты. Сравнение этой информации с записями о входах в систему позволит сразу же определить личность покупателя. Другая информация, доступ к которой обычно можно получить таким образом, — это определенные значения атрибутов, которые постепенно приводят нас к получению полного профиля интересов этого человека.
На практике защита системы от нарушения закрытости состоит в том, чтобы сделать покупателя анонимным. Делать анонимным продавца обычно нет необходимости. Анонимность в данном случае означает невозможность аутентификации покупателя в ходе или по окончании транзакции. Иногда может быть необходимо опознать личность, например, в случае дискуссии. Такая ситуация называется условной анонимностью (conditional anonymity).
Имеется и другой подход, состоящий в сокрытии личности покупателя под псевдонимом. Псевдоним — это альтернативное имя, используемое в ходе транзакции или серии транзакций. Псевдоним обладает специфическим свойством: пользователя фактически можно идентифицировать по псевдониму, но узнать истинные данные пользователя но псевдониму покупателя в принципе невозможно. Обычно псевдонимы используются для реализации условной анонимности.
Чтобы сообразить, как скрыть от платежной системы лишние данные, рассмотрим сначала систему на основе традиционных методов платежа [81]. Каждый столбец на рис. 8.42 содержит атрибут транзакции, который следовало бы скрыть. Мы выделили пять атрибутов: личность продавца, личность покупателя, дата транзакции, уплаченная сумма и информация об оплачиваемом предмете. В каждой строке указана одна из сторон, вовлеченных в транзакцию. Мы выделяем три стороны: продавец, покупатель и банк. Кроме того, представим себе идеально расположившегося наблюдателя (известного как Чак), который просто отслеживает происходящие транзакции. Так, например, в случае покупки товаров в магазине Чак может быть следующим человеком в очереди.
Для каждого участника транзакции определяется элемент, показывающий, насколько хорошо он будет знать конкретный атрибут. Так, например, покупателю в платежной системе на основе наличных видны продавец, дата транзакции и сумма, а также купленный товар. Однако продавец, как обычно в случае покупки товара в магазине, не слишком нуждается в знании личности покупателя.
Интересно отметить, что банк на самом деле не знает ничего, хотя у него и могут возникнуть некоторые соображения о сумме платежа в результате простого наблюдения за тем, сколько денег продавец в результате транзакции положит на счет. Другими словами, саму транзакцию записать невозможно, а это делает покупателя полностью анонимным. Продавцу в случае особо крупных транзакций анонимным быть ни к чему. Большинство банков по закону обязаны делать записи о транзакциях, в ходе которых продавец кладет деньги в банк.
Теперь рассмотрим традиционные транзакции с кредитными картами? Что касается сокрытия информации, несложно заметить, что абсолютно все атрибуты, перечисленные на рис. 8.42, будут видны всем участникам. Однако наблюдатель испытает некоторые затруднения при аутентификации покупателя, и вдобавок банк никогда не получит информации о том, что именно приобретено покупателем. Это дает нам таблицу, представленную на рис. 8.43 [81].
Понятно, что оплата кредитной картой не обеспечивает особой закрытости, оставляя нам лишь анонимность. Электронные версии платежных систем должны предоставлять как минимум такой же, а по возможности и больший уровень защиты. Например, обычно недопустимо, чтобы номер кредитной карты пересылался по открытым сетям в виде простого текста.
