1. Введение
2. Основные проблемы торговли через Интернет
3. Открытый торговый протокол Интернет - IOTP версия 1.0
3.1. Коммерция в Интернет
3.1.1. Преимущества IOTP
3.1.2. Основы IOTP
3.2. Введение
3.2.1. Торговые роли
3.2.2. Торговый обмен
3.2.2.1. Предложение
3.2.2.2. Платежный обмен
3.2.2.3. Обмен доставки
3.2.2.4. Аутентификационный обмен
3.2.3. Обзор базового уровня IOTP
3.3. Структура протокола
3.3.1. Обзор
3.3.1.1. Структура сообщений IOTP
3.3.1.2. Операции IOTP
3.3.2. Сообщение IOTP 3.3.2.1. Пролог документа XML
3.3.3. Блок ссылок операции (Transaction Reference Block)
3.3.3.1. Идентификационная компонента транзакции
3.3.3.2. Идентификатор сообщения
3.3.3.3. Компонент Related То
3.3.4. ID-атрибуты
3.3.4.1. Определение ID-атрибутов сообщений IOTP
3.3.4.2. Определения ID-атрибута для блока и компонента
3.3.4.3. Пример использования ID-атрибутов
3.3.5. Элемент References
3.3.6. Расширение IOTP
3.3.6.1. Дополнительные XML-элементы
3.3.6.2. Скрытые вложенные данные (Opaque Embedded Data)
3.3.7. Элемент PackagedContent
3.3.7.1. Формирование HTML
3.3.7.2. Пакетирование XML
3.3.8. Идентификация языков
3.3.9. Безопасные и небезопасные узлы в сети
3.3.10. Аннулированные транзакции
3.3.10.1. Аннулирование транзакций
3.3.10.2. Обработка аннулированных транзакций
3.4. Обработка ошибок IOTP
3.4.1. Технические ошибки
3.4.2. Рабочие ошибки
3.4.3. Глубина ошибки
3.4.3.1. Транспортный уровень
3.4.3.2. Уровень сообщения
3.4.3.3. Уровень блоков
3.4.3.3.1. Проверки атрибутов блочного уровня и элементов
3.4.3.3.2. Проверки согласованности компонентов и блоков
3.4.3.3.3. Переходные технические ошибки
3.4.3.3.4. Рабочие ошибки блочного уровня
3.4.4. Идемпотентность, последовательность обработки и поток сообщений
3.4.5. Последовательность обработки для роли сервера
3.4.5.1. Инициализация транзакций
3.4.5.2. Обработка входных сообщений
3.4.5.2.1. Проверка структуры и идентификация сообщений
3.4.5.2.2. Выявление и обработка дублированных сообщений
3.4.5.2.3. Обработка недублированных сообщений
3.4.5.2.4. Проверка ошибок в последовательности блоков
3.4.5.2.5. Обработка входного сообщения, лишенного ошибок
3.4.5.3. Аннулирование транзакции
3.4.5.4. Повторная посылка сообщений
3.4.6. Последовательность обработки для роли клиента
3.4.6.1. Операции инициализации
3.4.6.2. Обработка входных сообщений
3.4.6.2.1. Поиск ошибки в последовательности блоков
3.4.6.3. Аннулирование операции
3.4.6.4. Повторная передача сообщений
3.5. Соображения безопасности
3.5.1. Принятие решения о применении электронной подписи
3.5.2. Симметричная и асимметричная криптография
3.5.3. Конфиденциальность данных
3.5.4. Безопасность платежного протокола
3.6. Цифровые подписи и IOTP
3.6.1. Как IOTP использует цифровые подписи?
3.6.1.1. Пример подписи IOTP
3.6.1.2. Элементы OriginatorInfo и RecipientInfo
3.6.1.3. Использование подписей для подтверждения корректного завершения операций
3.6.2. Проверка корректности вычисления подписи
3.6.3. Проверка платежа или доставки
3.6.3.1. Проверка того, что блок запроса послан правильной организацией
3.6.3.1.1. Платеж
3.6.3.1.2. Доставка
3.6.3.2. Проверка компонентов Correct, присутствующих в блоке запроса
3.6.3.3. Проверка авторизованности операции
3.6.3.3.1. Проверка корректности дайджестов подписи
3.7. Торговые компоненты
3.7.1. Компонент протокольных опций
3.7.2. Компонент запроса аутентификации
3.7.3. Компонент отклика аутентификации
3.7.4. Компонент запроса информации торговой роли
3.7.5. Компонент заказа
3.7.5.1. Содержимое описания заказа
3.7.5.2. Временные метки OkFrom и OkTo
3.7.6. Компонент Organization
3.7.6.1.ID организаций
3.7.6.2. Элемент торговая роль
3.7.6.3. Элемент контактной информации
3.7.6.4. Элемент личного имени
3.7.6.5. Элемент почтового адреса
3.7.7. Компонент списка видов платежей
3.7.7.1. Элемент Brand
3.7.7.2. Элемент протокола вида платежа
3.7.7.3. Элемент Protocol Amount
3.7.7.4. Элемент валютной суммы
3.7.7.5. Элемент платежного протокола
3.7.8. Компонент выбора вида платежа
3.7.8.1. Информационный элемент выбора вида платежа
3.7.8.2. Элемент Amount Info протокола выбора вида платежа
3.7.8.3. Информационный элемент валютной суммы выбора вида платежа (Brand Selection Currency Amount Info)
3.7.9. Компонент платежа (Payment!)
3.7.10. Компонент платежной схемы
3.7.11. Компонент платежной расписки
3.7.12. Компонент Payment Note
3.7.13. Компонент доставки
3.7.13.1. Элемент Delivery Data
3.7.14. Информационный компонент доставки покупателя
3.7.15. Компонент Delevery Note
3.7.16. Компонент Status
3.7.16.1. Коды завершения предложения
3.7.16.2. Коды завершения платежа
3.7.16.3. Коды завершения доставки
3.7.16.4. Коды завершения аутентификации
3.7.16.5. Неопределенные коды завершения
3.7.16.6. Коды завершения информационного запроса транзакции
3.7.17. Компонент данных торговой роли
3.7.17.1. Кто получает компонент данных о торговой роли
3.7.18. Компонент типа информационного запроса
3.7.19. Компонент Signature (подпись)
3.7.19.1. Использование элементов подписи и атрибутов IOTP
3.7.19.2. Компонент подписи отклика предложения
3.7.19.3. Компонент подписи платежной расписки
3.7.19.4. Компонент подписи отклика доставки
3.7.19.5. Компонент подписи запроса аутентификации
3.7.19.6. Компонент подписи отклика аутентификации
3.7.19.7. Компонент подписи информационного запроса
3.7.19.8. Компонент подписи
3.7.19.9. Компонент подписи запроса Ping
3.7.20. Компонент Certificate
3.7.21. Компонент Error
3.7.21.1. Общие принципы обработки ошибок
3.7.21.2. Коды ошибок
3.7.21.3. Элемент положения ошибки
3.8. Торговые блоки
3.8.1. Блок опций торгового протокола
3.8.2. Блок выбора ТРО
3.8.3. Блок отклика Offer
3.8.4. Блок запроса аутентификации
3.8.5. Блок отклика аутентификации
3.8.6. Блок состояния аутентификации
3.8.7. Блок платежного запроса
3.8.8. Блок платежного обмена
3.8.9. Блок платежного отклика
3.8.10. Блок запроса доставки
3.8.11. Блок отклика доставки
3.8.12. Торговый блокинформационного запроса
3.8.13. Торговый блок информационного отклика
3.8.14. Блок запроса Ping
3.8.15. Блок отклика Ping
3.8.16. Блок подписи
3.8.16.1. Блок подписи в отклике предложении
3.8.16.2. Блок подписи в платежном запросе
8.16.3. Блок подписи в платежном отклике
3.8.16.4. Блок подписи в запросе доставки
3.8.16.5. Блок подписи в отклике доставки
3.8.17. Блок ошибки
3.8.18. Блок Cancel
3.9. Транзакции IOTP
3.9.1. Транзакции аутентификации и платежа
3.9.1.1. Документальный обмен аутентификации
3.9.1.1.1. Принципы обработки сообщений
3.9.1.1.2. Сообщение запроса аутентификации и ТРО
3.9.1.1.3. Сообщение-отклик аутентификации IOTP
3.9.1.1.4. Сообщение состояния аутентификации
3.9.1.2. Обмен документами предложения
3.9.1.2.1. Документальный обмен предложения, зависящего от вида платежа Обработка сообщений
3.9.1.2.2. Документальный обмен предложения, независимого от вида платежа Принципы обработки сообщений
3.9.1.2.3. Сообщение ТРО Блоки подписи и состояния аутентификации
3.9.1.2.4. Сообщение IOTP выбора ТРО
3.9.1.2.5. Сообщение-отклик на предложение IOTP Блок отклика предложения (блок отклика OFFER) Блок подписи (отклик предложения)
3.9.1.2.6. Сообщение ТРО и отклика Offer
3.9.1.3. Обмен документами при платеже
3.9.1.3.1. Принципы обработки сообщений
3.9.1.3.2. Сообщение платежного запроса
3.9.1.3.3. Сообщение платежного обмена IOTP
3.9.1.3.4. Платежное сообщение отклика
3.9.1.4. Обмен документами при доставке
3.9.1.4.1. Принципы обработки сообщений
3.9.1.4.2. Сообщение запроса доставки IOTP
3.9.1.4.3. Сообщение-отклик доставки
3.9.1.5. Обмен документами в процессе платежа и доставки
3.9.1.5.1. Принципы обработки сообщений
3.9.1.5.2. Сообщение платежного запроса IOTP
3.9.1.5.3. Сообщение платежного обмена IOTP
3.9.1.5.4. Сообщение платежного отклика и отклика доставки
3.9.1.6. Базовая транзакция аутентификации
3.9.1.7. Базовая транзакция депозита
3.9.1.8. Базовая транзакция покупки
3.9.1.9. Базовая транзакция возврата денег
3.9.1.10. Базовая транзакция отзыва платежа
3.9.1.11. Базовая транзакция обмена ценностями
3.9.1.12. Допустимые комбинации документальных обменов
3.9.1.13. Комбинирование аутентификации с другими транзакциями
3.9.2. Инфраструктурные транзакции
3.9.2.1. Базовая транзакция запроса состояния транзакции IOTP
Технические ошибки в исходных сообщениях
Технические ошибки в блоке информационного запроса
Сообщения информационного запроса транзакции
Блок ссылок транзакции Блок подписи (информационный запрос)
Блок SIGNATURE(отклик информационного запроса)
3.9.2.2. Базовая транзакция Ping
3.10. Получение логотипов
3.10.1. Размер Logo
3.10.2. Насыщенность цвета логотипа
3.10.3. Примеры логотипа для сетевой позиции
3.11. Виды платежа
3.11.1. Определения и выбор вида платежа
3.11.1.1. Определение платежного инструмента
3.11.1.2. Определение вида платежа
3.11.1.3. Определение двойственного вида платежа (Dual Brand))
3.11.1.4. Определение стимулирующего вида оплаты
3.11.1.5. Идентификация льготных видов платежа
3.11.1.5.1. Идентификация поощрительных видов платежа продавцом/кассиром
3.11.1.5.2. Выбор покупателем льготных видов платежа
3.11.1.5.3. Рекомендации для ID видов платежа в программе покупателя
3.11.2. Примеры видов платежа
3.11.2.1. Простой пример, базирующийся на кредитной карте
3.11.2.2. Список платежей с помощью кредитной карты, включая льготные платежи
3.11.2.3. Пример выбора вида платежа
3.11.2.4. Список видов платежа, базирующихся на комплексных электронных деньгах
3.12. Соображения IANA
3.12.1. Коды, контролируемые
3.12.2. Коды, не контролируемые
3.13. Определения типов данных протокола IOTP
3.14. Словарь IOTP
3.15. Ссылки IOTP
4. Платежные системы
Модель электронных монет Модель электронных чеков Модель электронных переводов
4.1. Протокол микроплатежей МРТР (Mico Payment Transfer Protocol)
4.2. MicroMint
4.3. Безопасный протокол электронных платежей SЕТ
4.3.1. Обработка сообщений
4.3.1.1. Оттиски (Thumbprins)
4.3.2. Обработка ошибок
4.3.3. Работа с сертификатами
4.3.4. Основной протокол
4.3:5. Информационные сертификатные запросы и обработка
статуса
OID имен(ASN.1)
Владелец карты
Продавец
Расчетный центр
Центр сертификации владельца карты
Центр сертификации продавца
Центр сертификации расчетного центра
Геополитический центр сертификации
Центр сертификации платежной системы (Brand!)
Корневой центр сертификации
4.3.6. Профайлы сертификатов
4.3.7. BrandCRLIdentifier
4.3.8. Запросы и отклики сертификатов
4.3.9. Рассылка CRL
4.3.10. Получение BCI
4.3.11. Структуры данных
TransID
4.3.11.1. Платежная инструкция
Структура SaleDetail
4.3.11.2. Поля Date
4.3.12. Поток платежных сообщений
4.3.13. Обработка запросов/откликов инициализации платежа
4.3.14. Обработка заказа-покупки
4.3.15. Обработка информационных запросов
4.3.16. Запрос/отклик платежа (СарRеq/СарRеs)
4.3.17. Управление платежными линиями (Ваtch)
4.4. Протокол для работы с кредитными картами CyberCash версия 0.8
4.4.1.1. Обзор системы
4.4.1.1. Соображения безопасности
4.4.4.1.2. Аутентификация и идентификация личности
4.4.4.1.3 Конфиденциальность
4.4.4.1.4. Работа с кредитной картой
4.4.2. Формат заголовка общего сообщения
4.4.2.1. Формат сообщения
4.4.2.2. Детали формата
4.4.2.3. Части тела сообщения
4.4.2.4. Открытая часть
4.4.2.5. Скрытая часть
4.4.2.6. Завершающая часть
4.4.2.7. Примеры сообщений
4.4.3. Подписи и хэши
4.4.3.1. Цифровые подписи
4.4.3.2. Хэш-коды
4.4.4. Форматы специальных сообщений
4.4.4.1. Регистрация персоны и нахождение приложения
4.4.4.1.1. R1 - регистрация
4.4.4.1.2 R2 - отклик регистрации
4.4.4.1.3. GА1 - get-application (получение приложения)
4.4.4.1.4. GА2 - отклик получения приложения (bind-credit-card)
4.4.4.2. Привязка кредитных карт (Binding Credit Cards)
4.4.4.2.1. ВС1 - подключение кредитной карты
4.4.4.2.2. ВС4 - отклик подключения кредитной карты (bind-credit-card-response)
4.4.4.3. Сообщения покупателя о покупке, содержащие данные о кредитной карте
4.4.4.3.1. PR1 - запрос платежа (payment-request)
4.4.4.3.2. СН1 - платеж через кредитную карту (credit-card-payment)
4.4.4.3.3. СН2 - отклик оплаты с помощью карты (charge-card-response)
4.4.4.4. Сообщения продавца о покупке, связанные с кредитной картой
4.4.4.4.1. СМ 1 - auth-only (аутентификация)
4.4.4.4.2. СМ2 - auth-capture
4.4.4.4.3. Сообщение СМЗ - post-auth-capture
4.4.4.4.4. Сообщение об удалении СМ4
4.4.4.4.5. СМ5 - возврат
4.4.4.4.6. СМ6 - отклик на операцию оплаты (charge-action-responce)
4.4.4.4.7 Последовательности сообщений ММ*
4.4.4.4.8. СD1 - запрос данных о кредитной карте
4.4.4.4.9 СD2 - отклик на данные кредитной карты
4.4.4.5. Прикладные сообщения и уведомления об ошибках
4.4.4.5.1 Р1 - ping
4.4.4.5.2. Р2 - отклик на ping
4.4.4.5.3. ТQ1- запрос состояния транзакции
4.4.4.5.4. ТQ2 - аннулирование транзакции
4.4.4.5.5. ТQ3 - отклик транзакции (transaction-response)
4.4.4.5.6. UNK1 - неизвестная ошибка
4.4.4.5.7. DL1 - диагностическая запись
4.4.4.5.8. DL2 - диагностические журнальные записи продавца (merchant-diagnistic-log)
4.4.4.6. Таблица описанных сообщений
4.4.5. Дальнейшие разработки
4.4.5.1 Процесс авторизации кредитной карты и расчета
4.4.6. Соображения безопасности
Ссылки
4.5. Смарт-карты ЕМV
4.5.1. Команды
4.5.2. Элементы данных и файлы
4.5.3. Соображения безопасности
4.5.4. Динамическая аутентификация данных
4.5.5. Безопасный обмен сообщениями
5. Коммуникации с использованием криптографии
5.1. Алгоритм Rivest-Shamir-Adleman (RSА)
5.2. Процедура обмена ключами (Diffie-Hellman)
5.3. Алгоритм Эль-Гамаля
6. Электронная подпись
7. Симметричная система шифрования DES
8. Аутентификация в Интернет
8.1. Введение
8.2. Определения и терминология, используемые в данном документe
8.3. Аутентификационные технологии
8.3.1. Отсутствие аутентификации
8.3.2. Аутентификационные механизмы, уязвимые для пассивных атак
8.3.3. Аутентификационные механизмы, уязвимые для активных атак
8.3.4. Аутентификационные механизмы, не уязвимые для пассивных атак
8.4. Криптография
8.4.1. Симметричная криптография
8.4.2. Асимметричная криптография
8.4.3. Криптографические контрольные суммы
8.4.4. Цифровые подписи (сигнатуры)
8.5. Аутентификация пользователя на ЭВМ
8.5.1. Защита против пассивной атаки является необходимой
8.5.2. Защита периметра
8.5.3. Защита от активных атак является крайне желательной
8.6. Раздача ключей и управление
8.7. Аутентификация сетевых услуг
8.8. Будущие направления Ссылки
9. Протокол аутентификации Нидхэма-Шредера
в случаях симметричной и асимметричной системы шифрования
10. Протокол TLS версия 1.0
10.1. Введение
10.2. Цели
10.3. Цели данного описания
10.4. Язык представления
10.4.1. Базовый размер блока
10.4.2. Разное
10.4.3. Векторы
10.4.4. Числа
10.4.5. Нумерованный тип
10.4.6. Сконструированные типы
10.4.6.1. Варианты
10.4.7. Криптографические атрибуты
10.4.8. Константы
10.5. НМАС и псевдослучайные функции
10.6. Протокол записей TLS
10.6.1. Состояния соединений
10.6.2. Уровень записей
10.6.2.1. Фрагментация
10.6.2.2. Сжатие и восстановление записи
10.6.2.3. Защита поля данных записи
10.6.2.3.1. Нуль или стандартный поточный шифр
10.6.2.3.2. Блочный шифр СВС
10.6.3. Вычисление ключа
10.6.3.1. Пример генерации экспортного ключа
10.7. Протокол диалога TLS
10.7.1. Протокол изменения спецификации шифра
10.7.2. Протокол оповещения
10.7.2.1. Оповещения закрытия
10.7.2.2. Оповещения об ошибках
10.7.3. Обзор протокола диалога
10.7.4. Протокол диалога
10.7.4.1. Сообщения Неllо
10.7.4.1.1. Запрос Не11о
10.7.4.1.2. Не11о клиента
10.7.4.1.3. Не11о сервера
10.7.4.2. Сертификат сервера
10.7.4.3. Сообщение ключевого обмена сервера
10.7.4.4. Запрос сертификата
10.7.4.5. Не11о done сервера
10.7.4.6. Сертификат клиента
10.7.4.7. Сообщение обмена ключами клиента
10.7.4.7.1. Сообщение зашифрованного RSA предмастерного секретного кода
10.7.4.7.2. Общедоступный Diffie-Hellman-ключ клиента
10.7.4.8. Верификация сертификата
10.7.4.9. Сообщение Finished
10.8. Криптографические вычисления
10.8.1. Вычисление мастерного секретного кода
10.8.1.1.RSA
10.8.1.2. Алгоритм Diffie-Hellman
А. Значения протокольных констант
А 1. Уровень записей
А 2. Сообщение об изменении спецификации шифра
А 3. Сообщения уведомления (Аlert)
А 4. Протокол диалога
А 4.1. Сообщения Не11о
А 4.2. Аутентификация сервера и сообщения обмена ключами
А 4.3. Аутентификация клиента и сообщения обмена ключами
А 4.4. Завершающее сообщение диалога (finished)
А 5. Коды CipherSuite
А 6. Параметры безопасности
В. Словарь
С. Определения CipherSuite
D. Замечания о реализации
В 1. Временные ключи RSA
В 2. Генерация псевдослучайных чисел и стартовые коды (Seeding)
В 3. Сертификаты и аутентификация
В 4. Шифровые наборы
Е. Совместимость с SSL
Е 1. Не11о клиента версия 2
Е 2. Исключение атак понижения версии посредником (man-in-middle)
Р. Анализ безопасности
Р 1. Протокол диалога
Р 1.1. Аутентификация и обмен ключами
P1.1.1. Анонимный обмен ключами
Р 1.1.2. Обмен ключами по схеме RSA с аутентификацией
Р 1.1.3. Обмен ключами по схеме Диффи-Хелмана с аутентификацией
Р 1.2. Атаки понижения версии
Р 1.3. Регистрация атак против протокола диалога
Р 1.4. Возобновляемые сессии
Р1.5. MD5, SHA
Р 2. Защита прикладных данных
С. Патентное заявление
11. Протокол SSL 2.0
11.1. Спецификация протокола записей SSL
11.1.1. Формат заголовка записи SSL
11.1.2. Формат информационных записей SSL
11.2. Спецификация протокола диалога SSL
11.2.1. Протокол диалога SSL
Фаза 1
Фаза 2
11.2.2. Типовой протокол обмена сообщениями
11.2.2.1. При отсутствии идентификатора сессии
11.2.2.2. Идентификатор сессии найден клиентом и сервером
11.2.2.3. Использован идентификатор сессии и аутентификация клиента
11.2.3. Ошибки
11.2.4. Сообщения протокола диалога SSL
11.2.5. Протокольные сообщения клиента
11.2.6. Протокольные сообщения сервера
11.2.7. Протокольные сообщения Клиент/Сервер
Приложение А. ASN.1 синтаксис сертификатов
Приложение В. Идентификаторы объектов и типов атрибутов
В 1. Выбранные типы атрибутов
В 2. Идентификаторы объекта
Приложение С. Значения протокольных констант
С 1. Коды версии протокола
С 2. Коды протокольных сообщений
С 3. Коды сообщений об ошибках
С 4. Значения вида шифра
С 5. Коды типа сертификата
С.6. Коды типов аутентификации
С.7. Верхние/нижние ограничения
Приложение D. Атаки
D 1. Раскрытие шифров
D 2. Атака открытого текста
D 3. Атака отклика
D 4. Человек посередине
Приложение Е. Термины
12. Электронные магазины и "электронный" бизнес, примеры реализации
проектов.
Заключение
Литература и ссылки