Безопасный ключ к «облаку»

в 11:02, , рубрики: cloud, pinpad, pkcs10, pkcs7, Блог компании Компания «Актив», информационная безопасность, облако, рутокен, рутокен web, рутокен эцп, эцп, метки: , , , , , , , ,

image
Концепция «облачных сервисов», к которым можно подключиться и получить определенную услугу, постепенно набирает популярность. Перевод ИТ-инфраструктуры организации в «облако» существенно снижает затраты на ее обслуживание. Правильная организация «облака» и способов взаимодействия с ним позволяют осуществить подобный переход практически безболезненно для конечных пользователей.

Не следует забывать, что при доступе к «облачным» сервисам пользователю необходимо предоставить
хотя бы минимальный «джентльменский набор», обеспечивающий безопасность использования сервиса.

В этот набор входят:

  • безопасная регистрация получателя услуги в «облаке»
  • аутентификация получателя услуги в «облаке»
  • электронная подпись данных
  • защита обмена информацией между получателем услуги и «облаком»
  • защита от атак, связанных с подменой «облака» (фишинг, спуфинг и т. п.)
  • обеспечение доверенной среды (операционная система, в которой работает получатель услуги, должна быть свободной от вирусов, программ-шпионов и иного вредоносного софта, защищена от удаленного управления USB-over-IP, либо наиболее значимые операции следует производить на отдельно подключаемом устройстве)

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

Программные интерфейсы криптографических USB-токенов

Для организации строгой аутентификации давно и успешно используются криптографические USB-токены, которые позволяют перейти к двухфакторной аутентификации. Первым фактором выступает наличие у пользователя самого идентификатора, вторым – знание пользователем уникального PIN-кода от токена. При этом в токене реализована защита от подбора PIN-кода: при исчерпании лимита попыток ввода неправильного PIN-кода идентификатор блокируется.

Разработаны специальные документированные интерфейсы, реализация которых производителями токенов позволяет использовать эти токены в приложениях. Самым важным стандартом такого рода является PKCS#11 (Cryptoki). Интерфейс PKCS#11 предназначен, в первую очередь, для доступа к аппаратной реализации криптографических алгоритмов на борту USB-токена или смарткарты, а также используется для записи/чтения данных на идентификатор и для его сервисного обслуживания (например, для смены PIN-кода). На момент написания статьи действующей версией стандарта PKCS#11 является 2.20, в которой
описано использование западных криптографических алгоритмов, однако существует драфт версии 2.30,
где содержится описание использования российских криптоалгоритмов.

PKCS#11 поддерживается многими популярными приложениями:

  • браузерами Mozilla FireFox и Safari Apple
  • приложениями для создания закрытой виртуальной сети OpenVPN, OpenSwan, StrongSwan
  • криптографическим пакетом OpenSSL
  • почтовыми клиентами Mozilla Thunderbird и Evolution
  • инструментом для управления ключами и сертификатами XCA
  • удостоверяющими центрами с web-интерфейсом OpenCA и EJBCA
  • приложением для шифрования файловой системы TrueCrypt
  • SSL-прокси sTunnel и многими другими

Кроме того, в популярных средствах разработки существуют специальные врапперы (обертки) для подключения библиотеки PKCS#11. Такие врапперы, в частности, имеются для популярных платформ Java и .NET.

Универсальный программный интерфейс токена, который описан в PKCS#11, позволяет приложениям одинаковым образом работать с токенами различных производителей.

Кроме общепринятых стандартов существуют проприетарные, реализация которых позволяет использовать
токены в приложениях вендора, создавшего этот стандарт. Наиболее известным проприетарным стеком стандартов работы с токенами является Microsoft CSP/CNG/MiniDriver. Этими интерфейсами пользуются приложения Microsoft и ряда других производителей:

  • Internet Explorer
  • Outlook/Outlook Express
  • MS CA
  • Cisco VPN Client
  • CheckPoint VPN Client и др.

image

USB-токены Рутокен

Токены позволяют обеспечить реальную безопасность и удобство при использовании облачных технологий. В России наиболее крупным производителем токенов является компания «Актив», выпускающая свою продукцию под торговой маркой Рутокен. Современные устройства Рутокен ЭЦП и Рутокен Web представляют собой компактные USB-устройства, внутри которых находится защищенная EEPROM-память полезным объемом до 64 Кб и защищенный микроконтроллер, реализующий отечественные криптографические алгоритмы и алгоритм RSA.

Конструктив USB-токена позволяет им функционировать практически на любом компьютере. Рутокен ЭЦП работает через стандартный CCID-драйвер и поэтому не требует установки драйверов при условии использования современных операционных систем (например, Windows, начиная с Vista), а Рутокен Web вообще работает через HID-драйвер, который имеется по умолчанию в любой ОС. Программное обеспечение для Рутокен содержит, в частности, кроссплатформенную библиотеку, реализующую интерфейс PKCS#11 вместе с расширением для российских криптографических алгоритмов:
шифрование по ГОСТ 28147-89, электронную подпись по ГОСТ Р 34-10.2001 и вычисление хэш-функции по ГОСТ Р 34-11.94.

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

Подобная «неприхотливость» как самого токена, так и его программного обеспечения позволяет организовать удобную интеграцию Рутокен с web-браузерами.

Решение Рутокен WEB

Решение Рутокен WEB, позволяющее реализовать строгую аутентификацию и электронную подпись для web-ресурсов, состоит из трех компонентов:

  • клиентских кроссплатформенных мультибраузерных плагинов
  • серверных компонентов
  • USB-токена Рутокен WEB (не требует установки драйверов)

Плагины представляют собой подключаемые к браузеру модули (ActiveX – для Internet Explorer и NPAPI – для остальных браузеров), реализованы для всех популярных браузеров и работают на всех распространенных клиентских платформах (Microsoft Windows, GNU/Linux, Mac OS X). Для установки плагинов на компьютеры пользователей не требуется прав системного администратора и особых навыков (one-click installer). Плагины созданы на базе библиотеки PKCS#11 и позволяют использовать функционал Рутокен непосредственно из скриптов или апплетов web-страницы.

image

Серверные компоненты реализованы для популярных средств разработки web-приложений ASP.NET, PHP, а также систем управления web-контентом 1C-Битрикс, Joomla, WordPress, и позволяют достаточно легко «прикрутить» Рутокен к web-ресурсу.

Для аутентификации пользователя в облаке с помощью решения Рутокен WEB используется адаптированный протокол ISO public-Key Two-Pass Unilateral Authentication Protocol. Как видно из названия, протокол построен на асимметричной криптографии, использует всего две транзакции (пересылки данных) и предназначен для односторонней аутентификации. Все криптографические операции реализованы при
помощи отечественных криптографических алгоритмов, а именно: хеширование в соответствии с ГОСТ Р 34.11-94, формирование и проверка электронной подписи в соответствии с ГОСТ Р 34.10-2001. Вернемся к описанному выше «джентльменскому набору» и рассмотрим, как он реализуется на базе решения Рутокен WEB

Безопасная регистрация получателя услуги в облаке

Безопасность регистрации получателя услуги в облачном сервисе заключается в том, что злоумышленник никаким образом не может узнать «секрет», по которому пользователь аутентифицируется в облаке.
При регистрации пользователь выбирает себе логин, а также генерирует ключевую пару: открытый
и закрытый ключи. После этого логин и открытый ключ пересылаются на сервер. Так как аутентификация построена на закрытом ключе, который никогда не покидает токен, даже кража злоумышленником открытого ключа не несет за собой никакой угрозы. Генерация ключевой пары и пересылка данных на сервер осуществляются автоматически с помощью плагина Рутокен WEB.

image

Аутентификация получателя услуги в «облаке»

Аутентификация пользователя – важный момент при использовании облачных технологий, так как именно наличие аутентификации обеспечивает защиту от несанкционированного доступа к личному кабинету пользователя, через который осуществляется предоставление услуги. С другой стороны, аутентификация дает «облаку» возможность обеспечивать индивидуальную работу с каждым пользователем.

Рассмотрим подробнее протокол аутентификации. Введем следующие обозначения:

  • S – имя сервера
  • U – имя пользователя (логин)
  • R s и R u – случайные числа
  • sigu (Message) – электронная цифровая подпись сообщения Message, сформированная пользователем
    с именем U
  • || – операция конкатенации строк
  • e u – открытый ключ пользователя
  • d u – закрытый ключ пользователя

Предусловия протокола: на сервере хранится открытый ключ e u пользователя с именем U. Пользователь U хранит в секрете свой закрытый ключ d u.

Выполнение протокола:
S > U: R s;
U > S: R s || R u || sigu(R s || R u).

Сервер генерирует и отправляет пользователю случайное число R s. Клиент генерирует случайное число
R u, формирует сообщение R s || R u, подписывает его при помощи собственного закрытого ключа d u и высылает серверу. Сервер проверяет электронную подпись (ЭП) при помощи открытого ключа пользовате-
ля eu и в случае успешной проверки аутентифицирует клиента.

image

Как можно видеть, протокол более чем прост и нагляден. Кража аутентификационных данных с сервера вида U, е u не представляет собой угрозы. Этот факт гарантируется самой концепцией криптографии с открытым ключом. Прослушивание и сохранение данных, пересылаемых между сервером и пользователем, также не дает злоумышленнику никаких знаний о секрете пользователя – его закрытом ключе d u. Действительно, располагая набором сообщений со сформированными ЭП (пусть и очень объемным набором), вычислить закрытый ключ за разумный период времени не представляется возможным. Закрытый ключ хранится только у пользователя и ни при каких обстоятельствах никуда не пересылается. Сервер всегда уверен, что пользователь сформировал ответную часть R s || R u || sigu(R s || R u) именно при текущем сеансе аутентификации, потому что в ней содержится случайное число R s, сгенерированное сервером также при текущем сеансе аутентификации. Следовательно, данная особенность предотвращает возможные атаки нарушителя, связанные с повтором ранее отправленных сообщений. Отметим, что генерация пользователем своего случайного числа R u защищает его от подписи сообщений, сформированных третьей стороной без его участия (например, сервером или злоумышленником, который может представиться сервером).

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

Электронная подпись данных

Электронная подпись данных и файлов в рамках решения Рутокен WEB осуществляется по
ГОСТ Р 34-10.2001. Следует отметить, что в плагине реализована возможность подписи с использованием цифровых сертификатов в формате PKCS#7, формирование заявки на сертификат в формате PKCS#10 и импорт сертификата в токен. Таким образом, существует возможность интеграции решения Рутокен WEB c инфраструктурой PKI.

Защита обмена информацией между получателем услуги и «облаком»

Для обеспечения необходимого баланса между безопасностью и удобством пользователя в решении
Рутокен WEB в настоящее время реализуется возможность шифрования «для адресата» только нужной ин-
формации с использованием алгоритма шифрования ГОСТ 28147-89. Адресатом в большинстве случаев
является сам сервер. Пользователь может через web-форму отправлять на сервер секретные текстовые данные или файл.

Плагин позволяет зашифровать только этот текст или файл. Затем зашифрованное сообщение можно по-
ложить в скрытое (hidden) поле формы и по открытому каналу передать на сервер. Протокол шифрования устойчив к атаке «man-in-the-middle». Нужная информация шифруется на сессионном ключе. Сессионный ключ является уникальным для каждой сессии и создается с помощью аппаратного датчика случайных чисел, находящегося на борту Рутокен WEB. Затем этот сессионный ключ шифруется, упаковывается в один пакет
с зашифрованной на нем информацией, и этот пакет отправляется на сервер.

Для шифрования сессионного ключа используется ключ согласования. Он вырабатывается аппаратно «на борту» Рутокен WEB с помощью закрытого ключа клиента и открытого ключа сервера по схеме VKO GOST R 34-10.2001 (RFC 4357). Сервер со своей стороны производит выработку ключа согласования на основе своего закрытого ключа и открытого ключа клиента, после этого расшифровывает сессионный ключ, а с помощью него – переданную в HTTP-запросе информацию.

С другой стороны, решение Рутокен WEB позволяет серверу распространять информацию в зашифрованном виде. Сервер вырабатывает единый для всех клиентов сессионный ключ и на нем шифрует данные. При GET-запросе аутентифицированного клиента происходит выработка ключа хранения с помощью открытого ключа клиента и закрытого ключа сервера по схеме VKO GOST R 34-10.2001 (RFC 4357). Сессионный ключ шифруется на ключе хранения. Затем зашифрованные данные, зашифрованный сессионный ключ и открытый ключ сервера упаковываются в один пакет, который пересылается клиенту в HTTP-ответе. У клиента, таким образом, на руках оказывается все необходимое для расшифровывания данных.

Обратите внимание: шифрование данных – самая ресурсоемкая операция в протоколе – осуществляется один раз, что позволяет существенно снизить нагрузку на сервер.

Защита от атак, связанных с подменой «облака»

Атака «man-in-the-middle», при которой злоумышленник подключается к соединению между клиентом и сервером, может выражаться в подмене сервера. Эту же цель преследуют такие приемы, как фишинг, спуфинг и др. Подмена сервера приводит к тому, что хакер получает возможность манипулировать действиями пользователя. Безусловно, наиболее простым и правильным способом аутентификации сервера является строгая криптографическая аутентификация сервера в рамках протокола SSL/TLS. Но без установки криптопровайдера, реализующего шифрсьюты с использованием российских криптоалгоритмов в протоколе TLS, аутентификация проводится с использованием западных криптоалгоритмов. Кроме того, использование криптопровайдера отменяет кроссбраузерность, так как реализуемые им шифрсьюты доступны только браузеру Internet Explorer и некоторым версиям браузера Google Chrome.

Следует отметить, что в этом направлении ведутся определенные работы, в частности, производителями СКЗИ добавлена поддержка TLS c российскими криптоалгоритмами в популярный браузер Mozilla FieFox

Доверенная среда

Доверенная операционная система

Эта опция, очевидно, является необязательной. Действительно, в ряде случаев у пользователя уже имеется операционная система, которой он доверяет. Но в ситуации, когда приходится использовать непроверенный компьютер, возможность загрузить на него доверенную ОС не является лишней. Сегодня существует множество разновидностей ОС GNU/Linux, которые умеют грузиться и работать с флешки (USB Live). Кроме того, на отечественном рынке существуют операционные системы, созданные на базе Linux, проверенные на отсутствие недекларированных возможностей и имеющие сертификат ФСТЭК. Использование Рутокен со встроенной FLASH-памятью позволяет создать комплексное решение, где ОС работает в режиме USB Live, а для криптографических операций используется микроконтроллер Рутокен. Создание образа Linux, в кото-рый уже интегрирован браузерный плагин, входящий в решение Рутокен WEB, а также системные компоненты, необходимые для работы USB-токена Рутокен WEB, – тривиальная задача. Однако при этом для
доступа к «облаку» пользователь сразу получает web-браузер, настроенный на взаимодействие с Рутокен и работающий в доверенной среде.

Использование отдельного устройства для проведения наиболее важных операций

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

image

Так как PIN-код вводится не на компьютере, а на самом устройстве, вредоносное ПО не сможет его перехватить. Рутокен PINPad содержит дополнительный USB-разъем, через который к нему можно подключить USB-токен Рутокен ЭЦП. При этом для проведения криптографических операций будут использоваться криптографические функции, реализованные именно в Рутокен ЭЦП. Так как Рутокен ЭЦП сертифицирован в ФСБ как СКЗИ класса КС2, то представленная схема предоставляет возможность формировать под документом квалифицированную подпись, согласно ФЗ-63.

Рутокен PINPad позволяет эффективно противостоять как традиционным хакерским атакам (фишинг, спуфинг, вирусы), так и новым их видам, нацеленным на системы, использующие USB-токены с неизвлекаемыми ключами: подмена подписываемых документов в опера-тивной памяти компьютера, несанкционированный доступ к функциям токена через удаленное управление или USB-over-IP и др. В то же время совместное использование Рутокен PINPad и Рутокен ЭЦП позволяет обеспечить юридическую значимость проводимых транзакций.

Облачный сервис имеет смысл проектировать таким образом, чтобы самые важные операции (например, финансовые переводы) происходили в доверенной среде, предоставляемой устройством Рутокен
PINPad.

Таким образом, использование продукции Рутокен позволяет обеспечить необходимый уровень безопасности при работе с облачными технологиями. При этом безопасность реализуется удобным для пользователей образом.

Автор: VicTun

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js