На главную страницу  
+7 (499) 124-62-26
Решения Продукты Услуги Скачать Цены Open Source О компании
Защита информации в Internet
Электронная цифровая подпись на WEB-сайте
О криптографии
Понятия PKI
Криптография в Windows
Протокол TLS
Глоссарий терминов

Электронная цифровая подпись на WEB-сайте.


  1. Введение

    1. Что такое ЭЦП документа
    2. Разбор конфликтов, связанных с ЭЦП
    3. Придание ЭЦП юридической значимости с помощью PKI
    4. Российский стандарт ЭЦП
    5. Сферы применения ЭЦП
  2. WEB-сайт с ЭЦП

    1. Постановка задачи
    2. Схема решения
    3. Создание удостоверяющего центра
    4. Создание ключа и заявки PKCS#10 на сертификат
    5. Виды сертификатов для ЭЦП на WEB-сайте
    6. Получение сертификата в УЦ
    7. Модуль проверки и хранения ЭЦП (сервер)
    8. Модуль выработки ЭЦП (клиент)
    9. Настройка Web-форм сайта для подписи их клиентом
    10. Организация множественной ЭЦП
    11. Служба OCSP
    12. Служба временных меток TSA
    13. Арбитр
  3. Защита персональных данных на WEB-сайте

    1. Защита при передаче между клиентом и сервером
    2. Защита при хранении
  4. Демонстрационный стенд


Введение

Что такое ЭЦП документа

ЭЦП (электронная цифровая подпись), согласно Федеральному закону Российской Федерации от 25 марта 2011 года «Об электронной цифровой подписи», - это «информация в электронной форме, которая присоединена к другой информации в электронной форме (подписываемой информации) или иным образом связана с такой информацией и которая используется для определения лица, подписывающего информацию». Федеральный закон от 10 января 2002г. "Об электронной цифровой подписи" признается утратившим силу с 1 июля 2012г.

Попробуем разобраться в этом определении.

ЭЦП используется для подтверждения авторства документа - в этом ее выгода для отправителя документа. С другой стороны, ЭЦП, в случаях признания юридической значимости, обеспечивает неотказуемость автора от подписанного документа – и в этом ее выгода для получателя документа. В случае спорных ситуаций всегда может быть проведен разбор конфликтов, который однозначно определит автора подписанного документа и заставит его нести ответственность за подписанный документ.

Разбор конфликтов, связанных с ЭЦП

Основной проблемой при разборе конфликтов спортных ситуаций по документам, подписанным ЭЦП, является доказательство того факта, что «информация в электронной форме, которая присоединена к другой информации в электронной форме (подписываемой информации)» является юридически-значимой ЭЦП конкретного человека под конкретным документом.

Использование криптографических методов позволяет решить данную проблему. Если человеку выдать уникальный электронный ключ и затем произвести специальные преобразования с использованием данного электронного ключа и электронного документа, то результат этих преобразований (а это и есть ЭЦП) будет уникален для данной пары (ключ-документ). Таким образом, задача первого этапа разбора конфликтов - выявить, была ли данная подпись выработана с помощью данного электронного ключа или нет – решается методами криптографии.

Второй этап разбора конфликтов – это доказать, что данный электронный ключ является собственностью конкретного человека. Это доказательство придает ЭЦП юридическую значимость. Для решения данной организационной задачи – учета выданных ключей – используется PKI (инфраструктура открытого ключа).

Придание ЭЦП юридической значимости с помощью PKI

Электронный ключ ЭЦП состоит из двух частей – закрытой и открытой. Открытая часть выводится из закрытой, обратная операция невозможна. Таким образом, между закрытым и открытым ключом имеется однозначное соответствие. Закрытый ключ должен создаваться самим клиентом и храниться в секрете. Именно закрытый ключ служит для подписывания документов ЭЦП. Открытый ключ служит для проверки ЭЦП и раздается всем желающим проверить подпись.

Основным элементом PKI является Удостоверяющий центр. В Удостоверющем центре ведется реестр соответствия ключей и лиц, которые являются владельцами этих ключей. Для регистрации ключа клиент относит в УЦ открытую часть своего ключа вместе со своими идентификационными данными и получает сертификат соответствия, удостоверящий его владение именно этим ключом. Сертификат соответствия содержит открытый ключ и идентификационные данные клиента, и подписан ЭЦП Удостоверяющего центра. Таким образом, УЦ удостоверяет, что данный клиент был проверен и является тем, за кого себя выдает. При получении сертификата клиент в свою очередь подписывает специальные документы о достоверности выданного сертификата своей ручной подписью. Эти документы являются основным связуюшим звеном между конкретным человеком и «набор электронных символов», его ЭЦП.

Таким образом, для проверки подписи и идентификации подписанта достаточно сертификата подписанта. То есть подписант подписывает документ своим закрытым ключом, а затем посылает получателю этот подписанный документ и свой сертификат, содержащий открытый ключ. Таким образом получатель сможет проверить, что подпись действительно была сделана закрытым ключом подписанта и получит идентификационные данные подписанта из сертификата. Клиент должен защищать свой закрытый ключ от компрометации. Именно с этой целью создаются различные аппаратные ключевые хранилища с повышенным уровнем защиты, например, USB-устройство ruToken.

Российский стандарт ЭЦП

Стандарты на ЭЦП являются двухуровневыми. На первом уровне располагается непосредственно ЭЦП от документа. Второй уровень заключает в себе ЭЦП и все документы, необходимые для придания ЭЦП юридической значимости: сертификат подписанта или цепочку сертификатов, время создания подписи и т.п.

Российским стандартом ЭЦП первого уровня является ГОСТ 34-10.2001. Российским стандартом ЭЦП второго уровня является PKCS#7 с возможностью добавления временных меток TSA.

Сферы применения ЭЦП

  • интернет-банк
  • электронная торговая площадка
  • системы корпоративного документооборота
  • электронная почта
  • сдача отчетностей в различные федеральные службы
  • авторское право

WEB-сайт с ЭЦП

Постановка задачи

Предположим в вашей организации принято решение перейти на систему электронного документооборота, построенную на web-технологиях. При этом основными местами, в которых требуется ЭЦП являются:

  • ЭЦП файлов произвольного формата при загрузке их на web-сайт пользователем через форму ввода
  • ЭЦП текстовых данных, введенных пользователем в форму ввода на web-сайта
  • ЭЦП выложенного на web-сайта документа несколькими пользователями

Сопутствующей задачей является защита конфиденциальной информации и персональных данных, которая разбивается на следующие подзадачи:

  • криптографическая защита передачи данных между рабочим местом пользователя и web-сайтом
  • аутентификация пользователя по цифровому сертификату для доступа в его личный кабинет
  • криптографическая защита хранимой на сервере информации
Давайте попытаемся понять, как можно решить обозначенные задачи с наименьшими затратами времени и средств, обойтись без обучения пользователей и минимизировать дальнейшую техническую поддержку.

Схема решения

Создание удостоверяющего центра

  • выделить сервер, на котором будет развернут Удостоверяющий центр. Опционально могут быть развернуты службы временных меток и online-проверки статуса сертификата. УЦ и указанные службы в целях э кономии могут быть использовать один сервер, который должен быть доступен online. Целесообразность этих служб мы обсудим ниже.

  • установить на сервер продукт МагПро КриптоПакет

  • создать ключ УЦ и заявку на корневой сертификат УЦ с помощью утилиты mkkey из состава МагПро КриптоПакет. Ключ может быть создан на защищенном устройстве, например, на ruToken. После создания ключа УЦ требуется обеспечить его безопасность организационными методами. Наиболее безопасным вариантом является хранение ключа на устройстве ruToken и поключение его к серверу только при выдаче сертификатов. Сертификат УЦ представляет из себя файл. Этот файл впоследствии будет выдаваться всем клиентам УЦ при получении ими сертификата.

  • создать корневой сертификат УЦ с помощью утилиты openssl из состава МагПро КриптоПакет.

  • создать в файловой системе структуру директорий, в которых будут храниться в виде файлов выданные сертификаты пользователей, выданные сертификаты серверов, заявки на сертификаты. Следует организационными методами (например, с помощью ACL) обеспечить правильные права доступа к эти директориям. Сертификаты будут выдаваться в виде файлов в формате PEM. Следует иметь в виду, что имена файлов сертификатов лучше делать понятными, чтобы в дальнейшем облегчить задачу поиска сертификатов.

Создание ключа и заявки PKCS#10 на сертификат

Для получения сертификата пользователем УЦ могут использоваться две схемы: централизованная и удаленная. При централизованной схеме пользователь приходит в УЦ и ему выдают файл, в котором находятся ключ и сертификат. Затем он этот файл складывает на флешку. Данная схема является простой и удобной, но небезопасной, так как позволяет узнать ключ пользователя сотрудникам УЦ. Но в ряде случаев использование данной схемы является опраданным.

Наиболее безопасной схемой получения сертификата является распределенная. Пользователь создает ключ, создает заявку PKCS#10 на сертификат, которая содержит его открытый ключ и идентификационные данные. Эту заявку пользователь подписывает своим закрытым ключом и относит в УЦ. УЦ проверяет подпись под заявкой, сверяет идентификационные данные пользователя, например, с паспортными и выдает сертификат. Затем производится распечатка сертификата и пользователь подписывает ручной подписью документ о соответствии выданного сертификата.

В рамках обсуждаемого решения генерация ключей и создание заявки производится с помощью специальной программы из состава МагПро КриптоПакет. Данная программа входит в пользовательский комплект МагПро КриптоТуннель.

Данная программа обладает гибкой системой конфигурирования, с помощью которой можно создавать заявки на совершенно различные виды сертификатов, расширять стандартный набор идентификационной информации, добавлять в сертификаты роли и права пользователей, например, для разграничения доступа на web-ресурсах; добавлять в заявку различные атрибуты.

После создания ключа пользователь должен обеспечить его безопасное хранение

Виды сертификатов для ЭЦП на WEB-сайте

В нашем портале будут использоваться несколько видов сертификатов:

  • корневой сертификат УЦ

    Данный сертификат используется для проверки всех остальных сертификатов участников Web-портала.

  • сертификат TLS-аутентификации сервера

    Данный сертификат используется для проверки сервера клиентом при создании защищенного TLS-соединения при передаче подписанных документов на web-сайт

  • сертификат TLS-аутентификации клиента

    Данный сертификат используется для проверки клиента сервером и для доступа клиента в его личный кабинет при создании защищенного TLS-соединения при передаче подписанных документов на web-сайт

  • сертификат ЭЦП клиента

    Данный сертификат клиент добавляет в свою ЭЦП, и таким образом, проверяющая сторона может проверить подпись и идентифицировать подписанта

  • сертификат подписи OCSP-сервера

    Данным сертификат OCSP-сервер добавляет в свой подписанный ответ для его удостоверения

  • сертификат подписи TSA-сервера

    Данным сертификат TSA-сервер добавляет в свой подписанный ответ для его удостоверения и придания ему юридической значимости

Все эти виды сертификатов можно создать с помощью утилиты из МагПро КриптоПакет и УЦ на базе МагПро КриптоПакет.

Получение сертификата в УЦ

При получении заявки от пользователя администратор УЦ создает резервную копию его заявки. Затем проверяет заявку и с помощью утилиты openssl создает сертификат пользователя, подписывает его на ключе УЦ и так же обеспечивает его резервное копирование. Кроме того, для обеспечения юридической значимости администратор производит распечатку информации из сертификата (получение этой информации обеспечивается с помощью утилиты openssl.exe) и получает ручную подпись пользователя под этой распечаткой. Затем выдает пользователю его сертификат в файле.

Итак, на данный момент мы смогли развернуть УЦ и научились создавать ключи пользователей, принимать от них заявки на сертификаты и выдавать сертификаты по полученным заявкам. Получение и соответствие сертификата пользователь удостоверяет своей ручной подписью, и поэтому можно утверждать, что у нас развернута PKI, обеспечивающая юридическую значимость ЭЦП пользователя

Следующей задачей является использование развернутой PKI для решения прикладной задачи – организации безопасной передачи с помощью браузера подписанных электронных документов на Web-сайт и прием их в обработку на Web-сайт.

Модуль проверки и хранения ЭЦП (сервер)

Обычно Web-сайт развернут на некотором web-сервере (Apache, IIS, nginx и т.п.). Данный сайт содержит личный кабинет для каждого пользователя, который зарегистрирован на сайте. Для доступа в личный кабинет пользователь должен пройти процедуру аутентификации. Обычно аутентификация заключается в вводе догина и пароля, согласованных при регистрации пользователя.

Кроме того, для загрузки электронных документов на сервер используется web-форма ввода.

Для того, чтобы к этой системе «прикрутить» проверку ЭЦП загружаемых на сайт документов, обеспечить защиту соединений между браузером пользователя и сайтом, а так же обеспечить строгую криптографическую аутентификацию пользователя для доступа в личный кабинент на сервер следует установить продукт МагПро КриптоСервер.

Архитектурно решение будет выглядеть следующим образом:

КриптоСервер устанавливается перед защищаемым Web-сервером. При этом Web-сервер настраивается таким образом, что принимает входящие соединения только от КриптоСервера (см. инструкцию по настройке). КриптоСервер принимает входящие HTTS-соединения, расшифровывает их и переадресует на Web-сервер. Кроме этого, КриптоСервер добавляет в HTTP-запрос заголовок X509-Cert, в котором передает цифровой сертификат клиента, прошедшего процедуру аутентификации. Этот сертификат затем используется для доступа клиента в его личный кабинет. Для проверки ЭЦП под передаваемыми документами в КриптоСервер входит утилита openssl, которая позволяет проверить разичные виды подписей, получить из конверта PKCS#7 сертификат подписанта или цепочку сертификатов и т.п. Для проверки ЭЦП web-страница приема документов должна произвести вызов данной утилиты.

Модуль выработки ЭЦП (клиент)

Основный задачей пользователя при доступе на Web-сайт является загрузка электронных документов и текстовых данных на сайт, а так же скачивание электронных документов с сайта. Для защиты web-соединения с сайтом по протоколу SSL/TLS и для online подписи данных, передаваемых на сайт, на клиентском рабочем месте следует использовать МагПро КриптоТуннель.

Основные достоинства КриптоТуннеля:

  • обеспечивает защиту web-соединений между любым браузером и сайтом по протоколу SSL/TLS c поддержкой российских криптоалгоритмов

  • позвoляет аутентифицировать пользователя по цифровому сертификату для доступа в личный кабинет пользователя

  • позволяет подписывать документы online при загрузке на сайт без использования CSP и Active X

  • поддерживает online-проверку статуса сертификата (OCSP)

  • поддерживает получение доверенных временных меток под ЭЦП (TimeStamp)

  • поддерживает различные USB-Tokenы и смарт-карты для хранения ключей

  • не требует установки на пользовательских местах, распространяется копированием

  • может храниться на обычной флешке и запускаться с нее

  • не требует для работы прав системного администратора

  • поддерживает работу с любым web-браузером (Internet Explorer, Mozilla FireFox, Google Chrome, Opera, Safari Apple и т.д.)

  • не имеет «привязки» к одному компьютеру – пользователь может использовать один комплект для использования в офисе и дома - экономия денежных средств

  • имеет простой и понятный пользовательский интерфейс, что позволяет обойтись без обучения пользователей

  • позволяет минимизировать затраты на техническую поддержку пользователей

  • может работать на большом спектре операционных систем (кроссплатформенное решение)

Для демонстрации возможностей КриптоСервера и КриптоТуннеля мы развернули демонострационный стенд.

Настройка Web-форм сайта для подписи их клиентом

КриптоТуннель осуществляет подпись данных и файлов, передающихся через Web-форму, если эта Web-форма специальным образом промаркирована.

То есть Web-форма должна содержать поле с заданным именем. Это имя прописывается в конфигурационном файле КриптоТуннеля и после этого КриптоТуннель начинает подписывать данные или файл, которые передаются в этом поле. Кроме того, в одном из hidden полей Web-формы может задаваться тип подписи (ATTACHED или DETACHED), а в другом hidden поле - URL службы доверенных временных меток. Имена этих полей так же должны быть заданы в конфигурационном файле КриптоТуннеля. Если подпись имеет тип DETACHED, то в конфигурационном файле КриптоТуннеля следует задать имя поля, в котором эта DETACHED-подпись будет отправлена на сервер. Там же следует задать имя поля, в котором на сервер будет отправлена временная метка.

Это ВСЕ действия, которые требуется произвести для того, чтобы КриптоТуннель начал подписывать данные и файлы, передаваемые через Web-форму. Не требуется писать каких-либо дополнительных скриптов, вызывать Active X и т.п.

Организация множественной ЭЦП

Множественная ЭЦП требуется в том случае, если документ должен быть подписан несколькими лицами. В этом случае документ обычно выкладывается на сайте таким образом, чтобы он был досупен только пользователям, ЭЦП которых требуется. Подобное разделение доступа обепечивается с помощью аутентификации пользователей по цифровому сертификату.

При использовании КриптоТуннеля пользователю не придется скачивать документ, а потом подписывать и снова загружать документ на сервер – все эти операции КриптоТуннель сделает автоматически при нажатии на кнопку на web-странице.

Служба OCSP

Часто случается, что УЦ отзывает сертификат пользователя (например, если ключ пользователя был украден злоумышленником). При этом остальные пользователи должны быть оповещены об отзыве этого сертификата, для того чтобы они перестали ему доверять. Существует несколько способов оповестить пользователей об отзыве.

Наиболее простым способом является раздача списков отзыва (CRL). То есть УЦ создает и периодически обновляет специальный файл, который пользователи так же периодически скачивают.

Другим способом является использование службы online проверки статуса сертификата – службы OCSP. Для проверки статуса любого сертификата КриптоТуннель и КриптоСервер автоматически формируют OCSP-запрос, отправляют по сети этот запрос службе. Служба проверяет сертификат, подписывает результат проверки своей ЭЦП и возвращает клиенту ответ. Клиент смотрит ответ, проверяет под ним подпись и принимает решение – доверять ли данному сертификату или нет.

Создание службы OCSP возможно с помощью утилиты openssl из состава МагПро КриптоПакет. Следует иметь в виду, что выбор между CRL и OCSP всегда остается на усмотрение создателей сайта. CRL – немного дешевле, OCSP – немного безопаснее.

Следует отменить, что КриптоТуннель и КриптоСервер поддерживаеют как OCSP, так и CRL.

Служба временных меток TSA

Основным назначением службы временных меток является подтвержение того факта, что документ был подписан ЭЦП не позже времени, указанного во временной метке.

Для создания временной метки КриптоТуннель создает TSA-запрос, к которому прикладывает хэш от ЭЦП; отправляет этот запрос службе TSA. Служба TSA добавляет к этому хэшу текущее время и подписывает результат своей ЭЦП. Таким образом, создается доверенная временная метка.

Для создания online-службы доверенных временных меток следует использовать продукт МагПро TSA. При этом URL службы временных меток задается Web-страницей, на которой находится Web-форма подписи

Клиентская часть TSA встроена в КриптоТуннель. При получении временной метки на ЭЦП все действия производятся автоматически, без привлечения пользователя.

Арбитр

Арбитр - это специальная программа, которая используется при разборе конфиликтов по ЭЦП.

Арбитр позволяет визуализировать идентификационные данные сертификата, который находится в подписи PKCS#7; визуализировать цепочку доверия и время создания ЭЦП (TimeStamp). Для разбора конфликта Арбитр проверяет подпись под указанным документом и выявляет, была ли она произведена владельцем сертификата.

Следует заметить, что для самой возможности разбора конфликтов документы и их подписи должны храниться в электронном архиве в течение длительного времени.

Защита персональных данных на WEB-сайте

Данные, которыми обмениваются между браузер клиента и сайт, могут содержать персональные данные и конфиденциальную информацию. Если в защите конфиденциальной информации заинтересованы все пользователи сайта, то защита персональных данных является требованием закона ФЗ152-ФЗ "О персональных данных".

При использовании сайта данные подвергаются угрозе при передаче их через Internet и при их дальнейшем хранении на сервере сайта.

Защита при передаче между клиентом и сервером

Internet является небезопасным каналом передачи информации. Основной угрозой при передаче данных через Internet является атака "man in the middle", то есть злоумышленник подключается к линии между клиентом и сервером и подменяет передающуюся информацию. Единственным способом защиты данных в Internet является шифрование этих данных. Так как шифрование представляет собой криптографический способ защиты информации, то на него распространяются требования ФСБ к средствам криптографической защиты информации - наличие сертификата ФСБ.

Для криптографической защиты соединений между браузером пользователя и Web-сайтом (Web-соединений) используется протокол SSL/TLS. МагПро КриптоТуннель обеспечивает защиту данных по этому протоколу полностью соответствующую требованиям ФСБ. Таким образом, МагПро КриптоТуннель представляет собой сертифицированное решение, полностью отвечающее требованиям к техническим средствам защиты персональных данных.

Защита при хранении

При хранении данных в электронном архиве сайта эти данные должны храниться в зашифрованном виде. Создание защищенного электронного архива - это тема отдельной статьи.

Демонстрационный стенд

Для демонстрации WEB-сайта с ЭЦП и защитой Web-соединений мы развернули Демонстрационный стенд.
 
Copyright © ООО "Криптоком". 2001-2011. All Rights Reserved.