Что такое открытый ключ электронной цифровой подписи
Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1
Итак, все чаще в кругах, работающих с документами все чаще звучат слова «электронный документ» и, связанное с ним почти неразрывно «электронная цифровая подпись», иначе — ЭЦП.
Данный цикл статей предназначен для того, чтобы раскрыть «тайное знание» о том, что это такое, когда и как это можно и нужно использовать, какие есть плюсы и минусы.
Естественно, статьи пишутся не для специалистов по криптографии, а для тех, кто эту самую криптографию будет использовать, или же только начинает ее изучение, желая стать специалистом, поэтому я старался максимально упростить понимание всего процесса, приводя аналогии и рассматривая примеры.
Зачем нам вообще что-то подписывать? Естественно, чтобы удостоверить, что мы ознакомились с содержимым, согласны (а иногда наоборот, не согласны) с ним. А электронная подпись еще и защищает наше содержимое от подмены.
Итак, начать, естественно, стоит с того, что такое электронная цифровая подпись.
В самом примитивном случае это — результат хэш-функции. Что это такое лучше меня разъяснит википедиа, в нашем же случае главное, что с высокой степенью вероятности ее результат не повторяется для разных исходных данных, а также что результат этой функции мало того, что короче исходных данных, так еще по нему исходную информацию восстановить нельзя. Результат функции называют хэшем, а применение этой функции к данным называют хешированием. Грубо, можно назвать хэш функцию архивированием, в результате чего мы получаем очень маленькую последовательность байт, но восстановить исходные данные из такого «архива» нельзя.
Итак, мы читаем файлик в память, хэшируем прочитанное. И что, уже получаем ЭЦП? Почти. Наш результат с большой натяжкой можно назвать подписью, но, все же, полноценной подписью он не является, потому что:
1. Мы не знаем, кто сделал данную подпись
2. Мы не знаем, когда была сделана подпись
3. Сама подпись не защищена от подмены никак.
4. Ну и да, хэш функций много, какая из них использовалась для создания этого конкретного хэша?
Поэтому применять к хэшу слово «подпись» еще нехорошо, будем называть его дальше просто хэш.
Вы посылаете ваш файл другому человеку, допустим, по почте, будучи уверенными, что он точно получит и прочитает именно то, что вы послали. Он же, в свою очередь, тоже должен хэшировать ваши данные и сравнить свой результат с вашим. Если они совпали — все хорошо. Это значит что данные защищены? Нет.
Ведь хэшировать может кто угодно и когда угодно, и вы никогда не докажете, что он хэшировал не то, что вы послали. То есть, если данные будут перехвачены по дороге злоумышленником, или же тот, кому вы посылаете данные — не очень хороший человек, то данные могут быть спокойно подменены и прохэшированы. А ваш получатель (ну или вы, если получатель — тот самый нехороший человек) никогда не узнает, что он получил не то, что вы отправляли, или сам подменил информацию от вас для дальнейшего использования в своих нехороших целях.
Посему, место для использование чистой хэш функции — транспорт данных в пределах программы или программ, если они умеют общаться между собой. Собственно, с помощью хэш функций вычисляются контрольные суммы. И эти механизмы защищают от случайной подмены данных, но не защищают от специальной.
Но, пойдем дальше. Нам хочется защитить наш результат хеширования от подмены, чтобы каждый встречный не мог утверждать, что это у него правильный результат. Для этого самое очевидное что (помимо мер административного характера)? Правильно, зашифровать. А ведь с помощью шифрования же можно и удостоверить личность того, кто хэшировал данные! И сделать это сравнительно просто, ведь есть ассиметричное шифрование. Да, оно медленное и тяжелое, но ведь нам всего-то и надо — зашифровать маленькую последовательность байт. Плюсы такого действия очевидны — для того, чтобы проверить нашу подпись, надо будет иметь наш открытый ключ, по которому личность зашифровавшего (а значит, и создавшего хэш) можно легко установить.
Суть этого шифрования в следующем: у вас есть закрытый ключ, который вы храните у себя. И есть открытый ключ. Открытый ключ вы можете всем показывать и раздавать, а закрытый — нет. Шифрование происходит с помощью закрытого ключа, а расшифровывание — с помощью открытого.
Приводя аналогию, у вас есть отличный замок и два ключа к нему. Один ключ замок открывает (открытый), второй — закрывает (закрытый). Вы берете коробочку, кладете в нее какую-то вещь и закрываете ее своим замком. Так, как вы хотите, чтобы закрытую вашим замком коробочку открыл ее получатель, то вы открытый, открывающий замок, ключик спокойно отдаете ему. Но вы не хотите, чтобы вашим замком кто-то закрывал коробочку заново, ведь это ваш личный замок, и все знают, что он именно ваш. Поэтому закрывающий ключик вы всегда держите при себе, чтобы кто-нибудь не положил в вашу коробочку мерзкую гадость и не говорил потом, что это вы ее положили и закрыли своим замком.
И все бы хорошо, но тут сразу же возникает проблема, а, на самом деле, даже не одна.
1. Надо как-то передать наш открытый ключ, при этом его должна понять принимающая сторона.
2. Надо как-то связать этот открытый ключ с нами, чтобы нельзя было его присвоить.
3. Мало того, что ключ надо связать с нами, надо еще и понять, какой зашифрованный хэш каким ключом расшифровывать. А если хэш не один, а их, скажем, сто? Хранить отдельный реестр — очень тяжелая задача.
Все это приводит нас к тому, что и закрытый ключ, и наш хэш надо хранить в каких-то форматах, которые нужно стандартизировать, распространить как можно шире и уже тогда использовать, чтобы у отправителя и получателя не возникало «трудностей перевода».
Как водится у людей, к чему-то единому прийти так и не смогли, и образовалось два больших лагеря — формат OpenPGP и формат S/MIME + X.509. Но об этом уже в следующей статье.
Как работать с электронной подписью?
Чтобы повысить эффективность работы и увеличить скорость бизнес-процессов, современные предприниматели переходят на электронный документооборот, ядром которого является электронная подпись. Тем, кто только начинает ею пользоваться, стоит сразу разобраться, как это делать и что учесть.
В предыдущей статье мы разобрались, где и как получить электронную подпись, и выяснили, что самой незащищенной является простая электронная подпись. Поскольку простая ЭП не содержит криптографические механизмы, алгоритмы и представляет собой, например, пару логин-пароль или SMS-код, то пользоваться ею довольно просто.
Гораздо больше вопросов вызывает использование усиленной ЭП, так как оно сопряжено с различными технологическими нюансами. Поскольку в основе усиленной ЭП лежат криптографические механизмы, то для того, чтобы все они работали, необходимы соответствующие инструменты: ПО, правильная реализация в информационной системе и др.
Все технологические вопросы, касающиеся использования ЭП, можно разделить на несколько базовых блоков:
Рассмотрим подробнее каждый блок задач.
Как начать работать с электронной подписью
Инструмент №1 — криптопровайдер
Это специальное ПО, реализующее все криптографические алгоритмы. Оно дает инструментарий для их использования: чтобы создавать ЭП, проверять ее, зашифровывать и расшифровывать информацию. Одни из самых известных криптопровайдеров — КриптоПро CSP и ViPNet CSP.
Инструмент №2 — сертификат ЭП и закрытый ключ к нему
Эти элементы можно получить в удостоверяющем центре (УЦ). Они хранятся на защищенном носителе, который внешне выглядит как флеш-накопитель, но на самом деле является специализированным электронным устройством, обеспечивающим безопасное хранение закрытого ключа пользователя и сертификата ЭП. Этот носитель называется токеном. При осуществлении криптографических операций криптопровайдер обращается к защищенному носителю для получения доступа к закрытому ключу ЭП.
Токены на российском рынке выпускают различные производители. Флагманами считаются Рутокен (компания «Актив»), JaСarta (компания «Аладдин Р.Д.»).
Инструмент №3 — настроенное рабочее место
Основной вопрос касается установки корневых сертификатов УЦ, выдавшего сертификат ЭП. При работе с квалифицированными сертификатами ЭП настройка корневых сертификатов часто связана с дополнительной задачей — установкой кросс-сертификатов Минкомсвязи. Такие сертификаты позволяют удостовериться в том, что УЦ действительно аккредитован, так как в требованиях к квалифицированной ЭП указано, что она обязательно должна быть выдана аккредитованным УЦ.
Следующий блок задач касается правильной настройки браузера. При работе с площадками и системами с веб-доступом необходимо настроить браузер таким образом, чтобы он позволял осуществлять все необходимые операции. Если мы попробуем начать работу с браузером, настроенным по умолчанию, то работа с ЭП будет недоступна из-за политик безопасности операционной системы.
Также часто требуется установка дополнительных надстроек или плагинов для браузера.
Наличие трех основных инструментов — криптопровайдера, закрытого ключа и сертификата ЭП и правильно настроенного рабочего места — обеспечивает корректную работу в 99% случаев. Компания СКБ Контур создала специальный сервис для автоматической настройки рабочего места клиента. Чтобы осуществить настройку, достаточно зайти по адресу sertum.ru, выбрать нужный тип информационной системы, с которой планируется работать, и дождаться окончания работы веб-диска.
Как работать с ЭП в электронных документах
Порядок подписания будет отличаться в зависимости от типа электронного документа, с которым мы работаем. В целом можно выделить два вида документов:
1. Электронные документы специализированного формата, которые позволяют встроить ЭП внутрь самого документа (документы Microsoft Word, PDF).
Чтобы встроить ЭП внутрь файла, иногда нужны дополнительные настройки, но часто достаточно обычной версии программы. В случае с Microsoft Word многое зависит от версии продукта: в версии до 2007 года включительно ЭП в документе можно создавать без дополнительных надстроек, для более поздних версий понадобится специальный плагин — КриптоПро Office Signature. Руководство по настройке ЭП для Microsoft Word/Excel можно найти на сайте УЦ СКБ Контур.
Для подписания PDF-файлов можно использовать программу Adobe Acrobat. При помощи данного функционала можно встраивать ЭП внутрь документа. Проверка созданной таким образом ЭП осуществляется также при помощи программ Adobe Reader и Adobe Acrobat.
2. Неформализованные электронные документы, не обладающие дополнительным инструментарием для встраивания ЭП.
Для электронного документа можно создать ЭП без встраивания в сам документ. Такая подпись будет называться отсоединенной и представлять собой отдельный электронный документ. Таким способом можно подписывать любые электронные документы, в том числе и в форматах Word и PDF.
Набор инструментов для реализации таких возможностей в целом не ограничивается каким-то одним решением. Существуют отдельные программы, которые устанавливаются на рабочее место и позволяют создавать и проверять ЭП, например, КриптоАРМ. Есть веб-решения, с помощью которых можно прямо в браузере создать ЭП, загрузив документ в форму на сайте, присоединив свой токен с закрытым ключом. На выходе вы получите отсоединенную ЭП. Такие возможности предоставляет сервис Контур.Крипто.
Каким требованиям должно соответствовать рабочее место, чтобы с него можно было работать с ЭП? С критериями можно ознакомиться по ссылке.
Проверка электронной подписи
Чтобы проверить ЭП в документах Microsoft Word и PDF, можно воспользоваться штатной программой, открыть в ней документ и посмотреть, корректна ЭП или нет.
Второй способ более универсальный — воспользоваться отдельным инструментарием для работы с ЭП — КриптоАРМ или Контур.Крипто. Нужно загрузить в программу электронный документ с ЭП, сертификат, при помощи которого создавалась ЭП, и осуществить проверку. Данные утилиты в соответствии с алгоритмом проверки ЭП осуществят все необходимые действия. Во-первых, инструментарий позволяет убедиться в том, что сертификат, при помощи которого создавалась ЭП, действующий. Во-вторых, можно удостовериться в том, что сертификат выпущен УЦ, которому мы доверяем. В-третьих, можно получить подтверждение, что ЭП действительно соответствует тому электронному документу, который загрузили.
Как работать с ЭП внутри различных информационных систем
Информационные системы могут представлять собой веб-сервис или настольное приложение. Поскольку каждое настольное решение имеет свои особенности реализации и правила настройки для работы с ЭП, разбирать общие сценарии не имеет смысла. Остановимся на более унифицированных веб-решениях.
Чтобы получить возможность работать с ЭП в электронной облачной системе, нужно правильно настроить браузер. В данном случае потребуется установка плагинов, дополнительных настроек, которые помогают работать с ЭП. Например, на электронной торговой площадке «Сбербанк-АСТ» используется штатный плагин от Microsoft — Capicom. На портале госуслуг устанавливается свой плагин, работающий во всех браузерах и осуществляющий работу с ЭП.
Работа с ЭП на определенном веб-портале осуществляется при помощи интерфейса этого портала. Интерфейсы могут быть разные, но базовые сценарии сходны — это загрузка или создание документа и последующее его подписание ЭП. Веб-портал использует плагин, который совершает необходимые операции по созданию или проверке ЭП, и результат работы попадает на серверы информационной системы.
Чтобы начать работать на электронной торговой площадке, пользователю необходимо пройти аккредитацию и приложить копии требуемых документов, подписанных ЭП. В дальнейшем, участвуя в электронных торгах, все действия подтверждаются при помощи ЭП, и эта информация в юридически значимом виде сохраняется на серверах электронной торговой площадки.
Часто в процессе работы c веб-ориентированными информационными системами у пользователей возникают вопросы: почему мой сертификат не принимается системой? как проверить подлинность сертификата? Ответы на первый вопрос могут быть разными, но основных, как правило, три:
Почему иногда сертификат не проходит проверку подлинности на портале госуслуг?
Обратите внимание на то, что Постановление Правительства РФ от 27.08.2018 № 996 расширило действие простой ЭП на портале госуслуг. Ранее ее использование ограничивалось выполнением лишь элементарных действий, например, просмотром личного кабинета. Более серьезные операции требовали применения усиленной ЭП. Но, чтобы ее получить, нужно оплатить стоимость флеш-носителя, на котором она выдается в УЦ. Предполагается, что это нововведение позволит сократить расходы заявителей, связанные с выпуском физического носителя сертификата ключа ЭП.
Если резюмировать все описанное выше, можно отметить, что работа с усиленной ЭП имеет некоторый технологический порог вхождения. Для преодоления этого порога можно пользоваться готовыми программными решениями по автоматической настройке рабочего места и началу работы с усиленной ЭП, что существенно облегчает процесс.
Не пропустите новые публикации
Подпишитесь на рассылку, и мы поможем вам разобраться в требованиях законодательства, подскажем, что делать в спорных ситуациях, и научим больше зарабатывать.
Как получить электронную подпись
И в каком случае какой вид пригодится
Электронная подпись (ЭП) — то же самое, что обычная подпись, но в электронном виде. Она приравнивает любой электронный документ к бумажному оригиналу.
Что такое электронная подпись
По сути подпись — это специально сгенерированный файл с цифрами, который крепится к электронному документу. Этот файл отвечает на три главных вопроса:
Раньше еще использовали термин «электронная цифровая подпись», но сегодня он устарел — в законе теперь пишут «электронная подпись»
Электронная подпись гарантирует, что документ подписал владелец электронной подписи. А неквалифицированная и квалифицированная подписи покажут, изменился ли документ после подписания.
Зачем нужна электронная подпись
Электронная подпись понадобится тем, кто собирается использовать в работе электронные документы, сдавать отчетность и получать услуги в интернете.
Вот как используют электронную подпись юридические лица:
А вот что могут сделать с электронной подписью обычные граждане:
Обычно физлица делают электронную подпись, чтобы передавать документы госслужбам — например, удаленно подают заявление на регистрацию по месту жительства или отправляют иск или доверенность в суд. Но на самом деле электронная подпись может заменить рукописную в любых случаях. Вот как, к примеру, ее можно использовать:
О том, как еще обычный человек может использовать электронную подпись на практике, мы рассказывали в другой статье.
Как устроена ЭП
Просмотреть подпись можно с помощью сертификата открытого ключа — электронного документа, в котором есть следующая информация:
Программа СКЗИ проверяет хэш-сумму и сравнивает ее с содержанием документа. Если все совпало, документ не меняли и подпись цела. Несовпадения означают, что документ изменили после того, как подписали. Тогда подпись автоматически считается недействительной и документ теряет юридическую силу.
Виды ЭП и их отличия
В законе описаны несколько видов электронной подписи: простая, неквалифицированная и квалифицированная.
Простая электронная подпись самая доступная. Это логин и пароль, которые подтверждают, что пользователь авторизовался в системе. C помощью этой подписи можно подтвердить обращение в органы власти или подписать заявку на услугу. Еще ей можно пользоваться во внутреннем документообороте компании и подписывать служебные письма.
Например, вы заходите в мобильный банк при помощи логина и пароля или подтверждаете оплату в интернете кодом из смс. По условиям договора с банком такая подпись равнозначна обычной подписи.
Простая электронная подпись уязвима, поэтому ее применяют не везде. Если вы работаете с имущественными и финансовыми документами, то лучше ее не использовать. Она подтвердит, что документ подписали, но не гарантирует, что его не меняли и что его подписал нужный человек. Это будет проверять арбитражный суд, если возникнет спорная ситуация.
Эту подпись используют в электронном документообороте. Ей подписывают договоры, контракты и агентские отчеты, но только если стороны заключили соглашение о доверии таким подписям и электронным документам.
Неквалифицированные подписи можно генерировать внутри компании или сервиса с помощью бесплатных инструментов. Государство не может контролировать неквалифицированную подпись: ее может выдать кто угодно, ей может владеть кто угодно и она не защищена средствами, которым доверяет государство. Именно поэтому в судебных инстанциях не принимают такие подписи.
Целостность подписи проверяют двумя способами:
Так определяют, что подпись не была утеряна, украдена или просрочена, когда ее использовали.
Сертификат квалифицированной подписи необходимо обновлять каждый год: помнить, когда она перестает действовать, и вовремя заказывать перевыпуск.
У квалифицированной подписи есть два важных преимущества.
Взломать квалифицированную подпись практически невозможно — это потребует слишком больших вычислительных ресурсов. Если вы потеряете закрытый ключ, по вашему сигналу удостоверяющий центр отзовет сертификат — подписывать документы с его помощью будет нельзя.
Ее можно использовать в любых операциях с электронными документами. Ей доверяют арбитражный суд и налоговая служба, поэтому чаще всего ей подписывают электронные счета-фактуры, налоговые декларации и договоры.
Где можно использовать электронную подпись
Простая | Неквалифицированная | Квалифицированная | |
---|---|---|---|
Внешние и внутренние электронные документы | + | + | + |
Документооборот с физическими лицами | + | + | + |
Госуслуги | + | — | + |
Документы для ИФНС в личном кабинете налогоплательщика | — | + | + |
ПФР и ФСС | — | — | + |
Арбитражный суд | — | — | + |
Как начать работать с квалифицированной электронной подписью
Чтобы начать работать с электронной подписью, необходимо подготовить свое рабочее место и приобрести сертификат подписи. Сертификат выдают быстро — в течение часа.
Еще для работы с квалифицированной подписью надо будет установить программу для криптозащиты информации (СКЗИ). Самые распространенные средства криптозащиты в России — это «Криптопро CSP», Signal-com CSP, «Лисси CSP», Vipnet CSP. Все они примерно одинаковые.
Какое конкретно СКЗИ потребуется и какие настройки будут нужны, вам скажут в удостоверяющем центре или МФЦ.
Как приобрести подпись юридическому лицу и ИП
Юридические лица получают квалифицированные сертификаты подписи в удостоверяющем центре или МФЦ.
Найти удостоверяющий центр можно в списках аккредитованных центров на сайте Минкомсвязи или на сайте e-trust.gosuslugi.ru. Выбирайте тот центр, у которого есть филиал в вашем городе. Удаленно электронную подпись получить нельзя, придется идти за подписью лично.
Чтобы получить электронную подпись, вам потребуются следующие документы:
Если подпись получает представитель, ему дополнительно потребуются:
Когда вы подпишете заявление, надо будет оплатить счет. Лучше платить наличными или банковской картой. Если будете платить банковским переводом, вам придется ждать, когда оплата пройдет. Срок ожидания зависит от того, как быстро банк обработает платеж: можно прождать несколько минут, а можно и несколько дней.
Как приобрести подпись физическому лицу
Обычные граждане могут пользоваться любой подписью — простой, неквалифицированной и квалифицированной. Как правило, простая подпись используется для авторизации на госуслугах, где можно заказывать информационные услуги в электронном виде. Неквалифицированной подписью можно пользоваться по договоренности для обмена документами с юридическими лицами. А с помощью квалифицированной подписи получают госуслуги, связанные с имущественными операциями. Например, ею можно подписать договор купли-продажи квартиры и подать его на государственную регистрацию. Или оформить юрлицо без посещения налоговых органов, назначить его директора и других должностных лиц.
Физическим лицам проще всего получить подпись в ближайшем МФЦ: рядом может не быть удостоверяющих центров, а МФЦ найдется всегда. Для этого надо записаться на прием и подготовить следующие документы:
Расходы на электронную подпись в Москве для физических лиц — 2150 Р
Токен | 1200 Р разово |
Электронная подпись | от 950 Р в год |
Программа СКЗИ | 0 Р |
Расходы на электронную подпись в Москве для юридических лиц — 2700—3600 Р
Токен | 1200 Р разово |
Электронная подпись | от 1500 Р в год |
Программа СКЗИ | 0 Р или коммерческая СКЗИ на выбор от 900 Р |
Как подписать документ электронной подписью
Например, так работает процесс подписания с помощью программы « Крипто-АРМ »:
Документы « Микрософт-офис » подписать еще проще:
Инструкция по установке ЭП на сайте поддержки Микрософт
Документы можно подписывать в электронной почте и облачных хранилищах — например, в «Дропбоксе» и на «Яндекс-диске». Для этого нужно установить специальное расширение для браузера. Такое расширение добавляет в интерфейс вашего файлового хранилища кнопку «Подписать».
В « Гугл-докс » плагины для электронной подписи можно найти во вкладке «Дополнения».
Как проверить подлинность подписи
Чтобы проверить подлинность подписи и неизменность документа, воспользуйтесь любым из бесплатных сервисов:
Можно ли передать подпись другому
Теоретически можно. По закону вы должны не допускать того, чтобы подпись попала в чужие руки без вашего согласия. Получается, другой человек может использовать вашу подпись, если вы согласились на это. Но ответственность за любой подписанный документ все равно несет владелец подписи.
Что делать, если потеряли электронную подпись
Если вы потеряли ключ от подписи или его украли, сразу обратитесь в удостоверяющий центр или МФЦ, который выдавал вам сертификат. Центр отзовет ваш сертификат, чтобы его не могли использовать мошенники. Еще обязательно сообщите об этом контрагентам, чтобы они знали, что вашей утерянной подписью могут воспользоваться злоумышленники.
Восстановить утерянный сертификат или ключ ЭП невозможно. Нужно получать новый: собирать документы и идти в удостоверяющий центр.
Как перевыпустить сертификат
Срок действия сертификата электронной подписи — год. Когда он подойдет к концу, выпустите новый сертификат. Для этого обратитесь с заявлением в удостоверяющий центр или МФЦ. Если в документах ничего не изменилось, нести их снова не нужно. Если какие-то документы поменялись, нужно принести оригиналы только этих документов.
Минутка технического занудства (слабонервным лучше сразу в конец пролистать, там чуть веселее):
> «В итоге она создаст уникальное сочетание данных документа — хэш-сумму. Уникальным оно будет благодаря закрытому ключу — особой последовательности символов, которая формирует файл подписи.»
Теперь немного про ключи и зачем нужны:
(Увы, весь пост не влез, продолжение ниже)
Итак, как все таки работает электронная подпись?
Parmigiano, это самое понятное описание принципов криптографии открытого ключа, которое я видел. Спасибо огромное!
Parmigiano, отличный сторителлинг. И спасибо за разъяснение! Немного поправим текст в части описания закрытого ключа. А то в ходе редакторских правок и попыток написать все понятным языком чуть упустили техническую точность.
Павел, да вы жёстко всё упустили. После этого начинаешь сомневаться, а корректны ли статьи ТЖ по другим тематикам, где я не специалист. Умилительно наблюдать столь скромную оценку труда Parmigiana, который является лучшим описанием принципов работы ключей для шифрования и контроля целостности простыми словами 😐