Криптографию — в массы!

Новое в продуктах
115918
0
Иван Вахрушев, старший проектировщик отдела программных разработок Департамента банковского ПО RS-Bank, R-Style Softlab
Сергей Реинт, старший программист отдела программных разработок Департамента банковского ПО RS-Bank, R-Style Softlab


ЭЦП — аналог собственноручной подписи и печати

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

По сути, ЭЦП представляет собой некую последовательность символов, полученную в результате определенного преобразования исходного документа (или любой другой информации) при помощи специального программного обеспечения. Любое изменение исходного документа делает ЭЦП недействительной. На практике ЭЦП уникальна для каждого документа и не может быть перенесена на другой документ; невозможность подделки электронной цифровой подписи обеспечивается очень большим объёмом математических вычислений, необходимым для её подбора.

Назначение удостоверяющих центров и сертификатов


Алгоритмы формирования и проверки ЭЦП основаны на ассиметричных схемах шифрования, при использовании которых генерируются два математически взаимосвязанных ключа: один из них считается секретным, другой — открытым. Сообщение, зашифрованное первым из ключей, можно расшифровать только вторым. Главная особенность этой пары ключей заключается в следующем: по секретному ключу легко вычисляется открытый, но по известному открытому ключу вычислить секретный практически невозможно.

Если некий субъект желает защитить информацию от несанкционированных изменений и/или подтвердить авторство, он зашифровывает её закрытым ключом и сохраняет зашифрованную копию вместе со своим открытым ключом. Другой субъект может удостовериться, что исходная информация не была изменена, и что она принадлежит автору, просто расшифровав копию (открытым ключом автора) и сравнив ее с оригиналом.

В данном случае незаметно внести изменения в исходную информацию злоумышленнику не удастся, так как он не владеет закрытым ключом автора и не сможет сгенерировать корректную подпись. Однако у него есть возможность заменить все три составляющие: зашифровать измененную информацию собственным закрытым ключом и приложить свой открытый ключ. Предотвратить подобную атаку позволит использование схемы взаимодействия с привлечением третьего субъекта, которым, как правило, выступает удостоверяющий центр — организация или подразделение, обеспечивающее взаимное доверие между участниками обмена электронными сообщениями, подписанными электронной цифровой подписью. Удостоверяющие центры выдают сертификаты.

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

Microsoft Cryptographic API: «Big Brother is watching you»


В операционных системах Microsoft порядок взаимодействия приложений с криптографическими модулями регламентирует документ, который называется Microsoft Cryptographic Application Programming Interface (Crypto API). Функции, описанные в нем, поддерживаются операционными системами MS Windows и содержатся в определенных модулях. Но эти модули не реализуют криптографические алгоритмы, а обращаются к другим модулям, называемым Cryptographic Service Providers (CSP, криптопровайдеры). Одновременно в операционной системе можно установить несколько криптопровайдеров.

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

Особенности реализации в RS-Bank v. 5.5


В АБС RS-Bank v. 5.5, начиная с версии 5.50.003.28, реализован механизм прикладного применения криптографии (МППК), используемый для защиты и подтверждения подлинности электронных документов.


Основными особенностями МППК являются:

  1. интеграция с Windows Crypto API;
  2. использование криптоплагинов для выполнения криптографических действий и поддержки разнообразных средств криптографической защиты информации (СКЗИ) и криптоалгоритмов, в том числе соответствующих стандарту ГОСТ Р 34.10-2001;
  3. осуществление криптодействий как на терминале пользователя, так и на сервере приложений;
  4. максимально возможная совместимость и адаптированность под АБС в отличие от сторонних решений;
  5. гибкость и расширяемость, доступность из макропрограмм на RSL;
  6. возможность назначения права подписи пользователям;
  7. аудит действий пользователей.

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

ТПК представляет собой позиционированный во времени выполнения прикладного бизнес-процесса момент, в который должно быть применено криптодействие в отношении конкретного экземпляра бизнес-объекта, обрабатываемого этим бизнес-процессом. Точки применения криптографии также делятся на начальные и ответные.

Некоторая совокупность начальных и ответных точек, обусловленная общим назначением в отдельно взятом прикладном бизнес-процессе и характеризующаяся набором одинаковых значений ряда основных свойств, образует криптографическое направление (рис. 1). Криптографическое направление предполагает наличие в исполняемом коде вызовов процедур криптодействий, обращающихся к настроенным точкам применения криптографии.


Рис. 1. Параметры криптографического направления

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

При разработке МППК возникла необходимость сохранять в одной таблице БД сведения об объектах, принадлежащих разным программным комплексам — RS-Bank (Учетное ядро), RS-Retail, RS-Loans. В связи с этим в системе появился унифицированный идентификатор объекта, позволяющий находить заданный объект, где бы он ни был. Основным требованием, предъявляемым к новому идентификатору, стала возможность его использования в качестве первичного ключа.

Унифицированный идентификатор объекта состоит из трех сегментов:

  1. идентификатор подсистемы (RS-Bank (Учетное ядро), RS-Retail, RS-Loans);
  2. тип объекта в пределах подсистемы;
  3. идентификатор объекта в пределах подсистемы.

Такая реализация позволила применять внутренние типы и алгоритмы идентификации объектов, определяемые каждым программным комплексом самостоятельно, избежать новых ошибок и дополнительных трудозатрат.

Когда в реальной жизни мы подписываем какой-либо бумажный документ, то все его содержимое у нас перед глазами, и никаких вопросов не возникает. Если же требуется подписать электронный документ, например проводку в МВОДБ, то невольно задумываешься: «А что же, собственно говоря, подписывается?» Ответ простой — БЦИ! И это не мантра и не заклинание, всё намного проще.

БЦИ, или блок целевой информации, — это байтовый блок, полученный путем преобразования значащих данных электронного документа с помощью заданного метода. БЦИ содержит данные, которые используются при выполнении криптодействия для подтверждения подлинности документа. Как правило, БЦИ несет в себе только юридически значимые атрибуты электронного документа, причем конкретный набор этих атрибутов определяется пользователем (рис. 2).


Рис. 2. Формирование БЦИ

В RS-Bank v. 5.5 подписание объектов цифровой подписью ведется в разрезе операционистов. Каждый пользователь в рамках одного криптографического направления может подписать объект только единожды. Повторное наложение ЭЦП возможно, но сводится к удалению старого значения и сохранению нового. При этом пользователь должен обладать правом электронной подписи, задаваемым в подсистеме «Системный сервис» (рис. 3).


Рис. 3. Наделение пользователя правом наложения ЭЦП

Работа МППК в распределенной архитектуре обеспечивается посредством сервера криптозащиты rscpcom.d32 (криптосервера), реализованного по технологии RSCOM и способного работать одновременно с произвольным количеством криптоплагинов.

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


Рис. 4. Настройка точек применения криптографии

В зависимости от настроек начальных и ответных ТПК криптосервер с плагинами должен быть установлен и настроен во всех необходимых конфигурациях. А их может быть множество. Например, для одного криптосредства начальное криптодействие может выполняться с использованием криптосервера и плагинов на рабочей станции, а ответное – на сервере приложений; для другого криптосредства и начальные, и ответные действия могут производиться на рабочей станции и т.д.

Все выполняемые криптографические действия (и успешные, и неуспешные) заносятся в отдельный журнал, который доступен из модуля «Системный сервис» (рис. 5).


Рис. 5. Журнал криптографических действий

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

Отличительной особенность АБС RS-Bank v. 5.5 всегда был и остается язык RSL, тесно интегрированный в систему и позволяющий значительно расширять и модифицировать её возможности. Естественно мы позаботились о том, чтобы функционал МППК также был доступен из RSL (рис. 6). Ещё никогда криптография не была так близко!


Рис. 6. Пример обращения к МППК средствами RSL

Ни один механизм или инструмент не имеет права на существование, если он не используется в системе. Это правило справедливо и применительно к МППК. В настоящий момент есть два варианта использования МППК в АБС RS-Bank v. 5.5: подписание документов в подсистеме «Многовалютный ОДБ» (МВОДБ) и подписание xml-сообщений, отправляемых в ГИС ГМП. Давайте рассмотрим их подробнее.

Подписание документов МВОДБ при проводке

Предположим, что все необходимые настройки для использования криптографии в АБС выполнены. Открыв список проведенных или архивных документов от имени пользователя, имеющего право наложения ЭЦП, выполним команду «Действия / Подписать документ ЭЦП [Ctrl + S]» (рис. 7).


Рис. 7. Запуск команды «Подписать документ ЭЦП»

Утвердительно ответив на вопрос о желании наложить ЭЦП, увидим, что номер текущего пользователя записан в поле ЭЦП. Нажав в данной графе клавишу [F3], мы сможем просмотреть список всех пользователей, подписавших данный документ (рис. 8).


Рис. 8. Просмотр списка пользователей, подписавших документ

Теперь, при попытке изменить и сохранить документ заново мы увидим предупреждение: «Документ подписан ЭЦП. Редактирование или откат запрещены» (рис. 9).


Рис. 9. Предупреждение о невозможности изменить подписанный документ

Поведение системы при редактировании подписанного документа определяется настройкой реестра «ЭЦП\РЕДАКТИРОВАНИЕ ДОКУМЕНТОВ С ЭЦП». Проверить актуальность присутствующей на документе подписи можно также из списка проведенных документов командой «Действия / Проверить ЭЦП [Ctrl + A]» (рис. 10).


Рис. 10. Проверка действительности ЭЦП

В случае если поля, входящие в БЦИ документа, будут изменены (умышленно или случайно), подпись на документе перестанет быть действительной.

Для удобства пользователей все подписанные ЭЦП документы можно просмотреть в режиме «Документы с ЭЦП» (рис. 11). Из этого режима возможна работа сразу со всеми подписями на документе: верификация и откат.


Рис. 11. Список подписанных ЭЦП документов

Подписание сообщений в ГИС ГМП

Вторым по очередности и первым по значимости стал этап внедрения МППК в подсистеме «Электронный обмен», где с его помощью подписываются xml-сообщения, отправляемые в ГИС ГМП. Именно здесь раскрылись замечательные возможности МППК по масштабируемости и расширяемости: был разработан новый криптоплагин cpSMEV.dll, использующий платформу .NET компании Microsoft. Реализация, основанная на новейших технологиях, позволила компании в кратчайшие сроки предоставить клиентам новый функционал, соответствующий требованиям законодательства РФ.

В заключении ещё раз подчеркнем: механизм прикладного применения криптографии в АБС RS-Bank v. 5.5 позволяет организовывать защищенный электронный документооборот, подтверждать авторство и целостность самых разнообразных бизнес-объектов. Внедрение МППК продолжится и уже в ближайшее время охватит ещё большее количество бизнес-процессов. Криптография пришла в RS-Bank v. 5.5 всерьёз и надолго.


Все статьи

Комментарии



Подписка на рассылку
Сортировать
Теги:
Все теги
Выберите интересующий Вас продукт компании
Любой продукт
Сортировать по году:
2015 2016 2017 2018 2019