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

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

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


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

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

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

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

На практике


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

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


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

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

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


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

Комментарии (41)


  1. institor
    22.06.2015 04:18
    +4

    Глядя на то, как обращаются с ЭП люди, я порой задаюсь вопросом: а не параноик ли я? Может, так и надо? Выдавать ключи и сертификаты в открытом виде на флешке (в лучшем случае, в архиве с паролем). Писать пин-коды на токенах, или оставлять дефолтный 1234. Может, ну их нафиг, эти токены, кому они вообще нужны? Хранить все в реестре! Понапридумывали тут, понимаешь, сложностей. Подписи какие-то, компьютеры, ключи электронные, бабки плати каждый год… Отметки времени еще какие-то, кому они нужны? Вот в кадастровой палате просто выдали сотрудникам сертификаты до 2027 года, зачем заморачиваться с перевыпуском? (а до этого были обычные, сроком на год, поэтому документы росреестра, подписанные в тот период, уже юридически не признать. Кстати, был период, когда они выдавали документы, подписанные просроченной подписью. Где-то месяц.)
    Надо быть проще! еще проще! Чтоб самый тупой пользователь смог все подписать, а дальше гори огнём!
    Все-таки я, наверное, параноик…


    1. Maysoft
      22.06.2015 06:50

      Абсолютно с вами согласен, но:

      1. грамотность пользователей в области ЭП растет на глазах, и это снимает ряд проблем поднятых вами;
      2. банки демонстрируют возможности совершения операций без ЭП, используя многофакторную идентификацию;
      3. государство само еще не готово к работе с ЭП, тот пример с сертификатами до 2027 года — наглядное тому подтверждение.

      Я думаю, мы только в начале пути: на нас сейчас отрабатывают эту технологию, поэтому и складывается впечатление абсурда. Совсем недавно трудно было понять смысл слова «Электронное правительство», теперь это вполне понятные государственные и муниципальные электронные услуги. Но, несмотря на весь прогресс в этой области, существует огромный пласт технических проблем. В качестве примера, приведу, поднятый вами случай: что делать с электронными документами, подписанными уже просроченным сертификатом (ключом). Сейчас они считаются недействительными, то есть у документа есть срок жизни. Представьте себе свидетельство о рождении, которое каждый год надо продлять. Вместе с тем, в Японии каждый совершеннолетний гражданин имел собственную печать еще во времена, когда компьютеров не было. Зачем, когда можно обойтись подписью — спросите вы. Другая культура — другие понятия. Вот и сейчас мы на переломе, когда жить по-старому уже нельзя, а по-новому не получается.


      1. BaRoN
        22.06.2015 10:15

        Чтоб ты жил в эпоху перемен!, — говаривали хитрые китайцы.


  1. Daemon_Hell
    22.06.2015 05:51
    +10

    Главная проблема для такого сервиса — доверие к самому сервису. Никто не мешает владельцу сервиса подписать произвольный документ от имени произвольного пользователя.


    1. nmk2002 Автор
      22.06.2015 10:38
      -1

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


  1. awoland
    22.06.2015 06:05

    И именно поэтому действительно и по-настоящему защищенной системой может считаться только система с «нулевым» доверием. Все прочие, включая и описываемую в статье — всего лишь симулякры…


    1. institor
      22.06.2015 06:12

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


  1. ystr
    22.06.2015 07:29
    +4

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


  1. bolk
    22.06.2015 09:41

    Это не будущее ЭП, это её настоящее.


  1. Disen
    22.06.2015 10:04
    +5

    То есть Вы предлагаете передавать свой персональный закрытый ключ, который используется для подписи в юридически значимом документообороте какой-то третьей, пусть и доверенной (условно), стороне? Вы действительно считаете, что сервер с какой-то многофакторной аутентификацией надежнее клиентских персональное устройств?

    Если у пользователя возникают проблемы с наипросторнейшей процедурой подключения токена или смарт-карты, вводом PINа и непосредственно подписью, то стоит ли вообще его наделять правом подписи?

    Да, использование ЭП требует от пользователя соблюдения определенных правил, но это не повод добровольно отказаться от своего закрытого ключа в угоду кажущегося удобства.


    1. nmk2002 Автор
      22.06.2015 11:04
      -3

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

      Для меня то, что вы пишете звучит как: «Коробка автомат? Да вы что? Как можно доверять переключение передач какой-то сторонней системе? Водители должны сами все контролировать!»


      1. Yaruson
        22.06.2015 11:47

        До недавнего времени я и не подозревал, что пользуюсь электронной подписью, когда оплачиваю сотовую связь через интернет-банк, пока не увидел «Простая электронная подпись Ким Н.Г. от 31.12.9999» в платёжном поручении. Здесь код подтверждения в SMS является частью реализации облачной ЭП, о которой говорится в статье. Это удобно и, доверяя своему банку, я этим пользуюсь.

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


  1. Ivan_83
    25.06.2015 15:26

    1. Когда генерируешь самодписной средствами OpenSSL.
    На тех же вебсерверах они лежат, для работы TLS.

    2. Да, я в курсе что туда можно много чего понапихать.

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

    en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm
    «Elliptic Curve Digital Signature Algorithm (ECDSA) offers a variant of the Digital Signature Algorithm (DSA)»
    У них там понятия ЭЦП, есть DSA, насколько я понимаю. Про то это ныне устаревший алгоритм я знаю.

    Я не плачу за собственную подпись, и не хочу платить за собственную цифровую подпись, потому что считаю это в корне не правильным.
    Так же меня не устраивают все эти CA, которые кому то принадлежат, я их не знаю и доверия у меня к ним нет.
    Если бы был вариант мульти СА, когда мою цп заверяют одновременно разные СА, например Россия, США, Китай и ещё кто нибудь, то это хотя бы от части могло что то гарантировать.


    1. Yaruson
      25.06.2015 16:41
      -1

      Если бы был вариант мульти СА
      В этом плане мне нравится PGP.
      Кстати, существуют ли «центры сертификации» для него (неё?), подписывающие сертификаты пользователей автоматически или даже с ручной проверкой?


    1. grossws
      25.06.2015 18:20

      Догадываюсь, что вы пытались ответить мне, но перенести в соответствующую ветку не сможете.

      1. Когда генерируешь самодписной средствами OpenSSL.
      На тех же вебсерверах они лежат, для работы TLS.
      Приведите пример создания сертификата, когда в теле сертификата оказывается приватный ключ. Результат с двумя сконкатенированными PEM-блоками в base64 не считаются.

      С юридической точки зрения CA не обязателен.
      Для части документов это так. Часть документов (например, счета-фактуры) следует подписывать квалифицированной подписью, чтобы они были приняты к рассмотрению при расчёте налогов. А часть документов можно спокойно подписывать простой электронной подписью, если договор или доп. соглашение устанавливает такую договорённость между коммерческими организациями. Судя по описанной арбитражной практике такая подпись вполне работает как аналог собственноручной + печати. Насчёт взаимодействия физик-физик или юрик-физик — не знаю. Стоит также добавить, что некоторые договора могут заключаться только на бумаге (по ГК РФ).

      Аналогично, взаимодействие с некоторыми площадками (всякие ФНС, ФСС, госзакупки), порталами госуслуг и т. п. может требовать квалифицированной подписи, согласно 63-фз, что потребует получить сертификат у аккредитованного УЦ.

      Если бы был вариант мульти СА, когда мою цп заверяют одновременно разные СА, например Россия, США, Китай и ещё кто нибудь, то это хотя бы от части могло что то гарантировать.
      Хотите WoT — используйте PGP/GnuPG, там люди удостоверяют, что вы — это вы (и что они видели, как минимум какой-нибудь id, удостоверяющий личность). Была ещё инициатива cacert.org, там тоже через сеть доверия удостоверяли личность.

      en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm
      «Elliptic Curve Digital Signature Algorithm (ECDSA) offers a variant of the Digital Signature Algorithm (DSA)»
      У них там понятия ЭЦП, есть DSA, насколько я понимаю. Про то это ныне устаревший алгоритм я знаю.
      Непонятно, что вы хотели этим сказать. ЭЦП (digital signature) != DSA, т. к. DSA — частный алгоритм ЭЦП. ECDSA — то же самое, но на группе точек эллиптической кривой, а не в конечном поле целых чисел. Если посмотреть на страницу, посвящённую DSA, то там сказано:
      The Digital Signature Algorithm (DSA) is a Federal Information Processing Standard for digital signatures.