Разработка → Будущее электронной подписи

nmk2002 22 июня 2015 в 03:32 8k

Электронная подпись является проверенным, надежным и, что немаловажно, юридически признанным способом подтверждения авторства и целостности документа. Но, к сожалению, пользователям не всегда удобно работать с ключами и сертификатами. Попробуйте вставить смарт-карту в iPad или смартфон. Конечно, производители придумывают всякие ухищрения вроде смарт-карт в форм-факторе microSD или Bluetooth токенов. Но и это не всегда соответствует ожиданиям пользователя.

Я бы хотел рассказать о более удобном способе электронной подписи.

Что же можно сделать


Конечно, электронная подпись невозможна без сертификата. Но нужно ли пользователю владеть лично своими ключами, чтобы их использовать и, например, подписывать документы? Большинство специалистов по информационной безопасности ответят, что ключи обязательно должны быть у пользователя и только так он может произвести подпись. До недавнего времени я бы и сам так сказал, пока не столкнулся с классом продуктов, предоставляющих облачную подпись. Да, слово «облачный» настолько избито маркетологами, что я, например, всегда очень скептически воспринимаю информацию, где оно встречается. Однако тут трудно придумать что-то другое.

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

Очевидным плюсом такого подхода является перенос Secure Element от пользователей, которые не очень-то приспособлены для правильного хранения и использования всяких смарт-картами, на сервер. Вот на сервере-то ключевая информация может храниться под защитой HSM. Это само по себе, не сильно отличается от хранения ключей на смарт-карте или токене. Но, согласитесь, научить всех пользователей правильно хранить ключевую информацию намного сложнее, чем обеспечить должный уровень безопасности сервера подписи. К тому же современные HSM из коробки предоставляют неплохие возможности для правильной работы с ключевой информацией.

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

На практике


Представьте, что пользователю нужно подписать документ своей цифровой подписью. Пользователь аутентифицируется на сервере подписи, предоставляя свой логин, пароль и одноразовый код. Затем пользователь просто отправляет документ, который хочет подписать, а удаленный сервер все делает сам. Документ подписан сертификатом (на самом деле, конечно, закрытым ключом) этого пользователя.

Почему так лучше


Чтобы развеять сомнения, нужно только ответить себе на один вопрос: зачем нужна электронная подпись? А нужна она для того, чтобы быть уверенным, что она поставлена владельцем и чтобы обеспечить целостность. Первое успешно достигается многофакторной аутентификацией. Неплохие примеры ее использования – работа с интернет-банком. Целостность, конечно, тоже обеспечивается благодаря той самой подписи, которую ставит сервер.

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

Что-то похожее уже было


Аналогичный процесс с вынесением Secure Element в облако сейчас наблюдается в области электронных платежей. Технология Host Card Emulation позволяет эмулировать платежную карту на смартфоне без привязки к Secure Element, как это было раньше. Secure Element переносится в облако банка или, так называемого, Token Service Provider. Такой подход значительно упрощает развитие мобильных платежей и избавляет от необходимости построения отношений доверия между производителями смартфонов и банками.
Проголосовать:
–1
Сохранить: