Для чего нужен отпечаток эцп
Идея электронно-цифровой подписи (ЭЦП) возникла в середине 70-х, но активно её стали использовать только с развитием интернета. Для многих ЭЦП до сих пор остаётся непонятной штукой. Объясняем, что это такое и как пригодится в быту.
В чём польза электронно-цифровой подписи (ЭЦП)? — Она позволяет зафиксировать и удостоверить содержание цифрового документа. Фактически, сделать то же самое, что мы делаем, подписывая бумажный документ авторучкой.
Цифровым документом может быть не только текст, например, в rtf- или pdf-файле, но и любой иной компьютерный файл, содержащий графику, звук, видео, программу. Своей подписью их можно защитить от изменения и подтвердить авторство.
ЭЦП особенно полезна, а иногда просто необходима при взаимодействии с разными организациями: коммерческими, государственными и прочими. Она позволяет легко и быстро удостоверить документ-файл и переслать его контрагенту на любое расстояние.
Несмотря на уже продолжительную практику использования цифровых подписей, многие не совсем понимают их сути и поэтому совершают ошибки или действуют нерационально.
Мы объясним суть предмета. При этом, мы не будем углубляться в математические основы криптографии, а расскажем только самое важное для практического применения электронно-цифровой подписи.
«В быту» электронно-цифровой подписью часто называют её носитель: флэшку, смарт-карту, таблетку touch memory или дискету.
Это совсем неверно, потому что к ЭЦП имеют отношение лишь файлы, размещённые на этих носителях. Всего их три: 1) секретный ключ; 2) публичный (открытый) ключ и 3) сертификат публичного ключа.
В принципе, эти файлы можно разместить, где угодно — хоть в какой-нибудь папке на жёстком диске вашего компьютера. Но при этом надо помнить о том, что секретный ключ должен всегда оставаться… в секрете! То есть хранить его нужно в месте, совершенно недоступном посторонним лицам.
Однако и эти файлы сами по себе электронно-цифровой подписью не являются. Но они используются для постановки подписи под тем или иным документом.
Например, подпись текста: «Я, Пётр Петрович Петров, 20 октября 2018 года взял взаймы у Ивана Ивановича Иванова 100 (сто) рублей. Обязуюсь вернуть указанную сумму не позже 20 ноября 2018 года» могла бы выглядеть так:
Взяли текст, который требовалось заверить подписью. Затем по специальному математическому алгоритму к нему применили секретный ключ подписывающего. И в результате, образовалась представленная цепочка символов, получить которую мог только владелец секретного ключа.
В наших примерах имеются допущения и упрощения, которые могут вызвать критику специалиста в области криптографии и защиты информации. Они сделаны намеренно, чтобы обилие подробностей не заслонило самые важные моменты.
Для обработки электронно-цифровой подписи используется пара криптографических ключей: секретный и публичный.
Секретный — позволяет зашифровать содержание подписываемого документа в уникальную последовательность символов, то есть заверить документ.
Открытый — позволяет расшифровать подпись и, тем самым, её проверить.
Число вариантов ключей и их сочетаний столь велико, что сегодня подобрать подходящие к конкретному документу даже с использованием самых мощных компьютеров (из числа имеющихся) практически невозможно. То есть злоумышленник не сможет подделать чужую подпись или незаметно изменить содержание документа.
Если потребуется, подбор ключей можно усложнить, увеличив их длину. Сейчас считаются безопасными ключи с длиной от 2048 битов.
Математически пара ключей создаётся так, что операции с ними возможны только в одном направлении. Если для шифрования использовался секретный ключ, для расшифровки нужен — открытый. Если для шифрования использовался открытый ключ, для расшифровки нужен — секретный.
Такой порядок соответствует двум способам использования пары.
Важно запомнить, что ассиметричные алгоритмы устроены так, что зашифрованные данные практически невозможно восстановить даже, если у вас есть ключ, которым эти данные были зашифрованы. — Для расшифровки обязательно нужен другой ключ из пары.
Теперь мы знаем, как удостоверить документ электронно-цифровой подписью. Но как удостоверить её саму?
В материальном мире свою подпись можно подтвердить, например, паспортом, в котором есть её образец, и в котором указаны персональные данные её владельца.
При этом важными обстоятельствами являются следующие: 1) паспорт трудно подделать; 2) паспорт изготовлен учреждением, которому доверяют (или должны доверять) на всей территории действия паспорта.
«Паспортом» электронно-цифровой подписи является её сертификат, в котором зафиксированы:
- электронно-цифровая подпись удостоверяющего цента.
Некоторый диссонанс в восприятии ЭЦП может возникать из-за того, что подпись каждого нового документа одного и того же лица всякий раз выглядит по-разному, в то время, как в материальном мире внешний вид подписи более или менее постоянен.
Это связано с тем, что ЭЦП зависит не только от её владельца, но и от содержания подписываемого документа. Подпись не только удостоверяет документ, но и фиксирует его. При любых изменениях в документе, которые могут быть внесены в него после его подписания, подпись перестанет ему соответствовать.
В случае ЭЦП постоянным элементом является её публичный ключ, который связан с владельцем подписи. И эту связь подтверждает её сертификат, полученный в удостоверяющем центре.
Соответственно, область действия ЭЦП совпадает с областью доверия к удостоверяющему центру (УЦ), который выдал её сертификат.
Если удостоверяющий центр учреждён каким-то предприятием, его сертификаты будут признаваться только в рамках этого предприятия.
Если удостоверяющий центр аккредитован Министерством связи, его сертификаты будут иметь юридическое значение на всей территории страны.
Список УЦ, аккредитованных правительством Российской Федерации, опубликован на сайте Минкомсвязи.
Не все удостоверяющие центры, указанные в этом реестре, выдают сертификаты ЭЦП всем желающим. Некоторые из них обслуживают только юридические лица, другие — вроде, банков, телекоммуникационных операторов и т.п. — выдают сертификаты только своим клиентам.
Однако найти центр, который обслуживает всех и выдаст вам сертификат за определённую плату, не очень сложно.
Нам осталось уточнить, какие услуги удостоверяющих центров вам действительно могут потребоваться.
Если вы обратитесь в удостоверяющий центр и сообщите ему, что нужна электронная подпись, вам предложат примерно следующее:
- сертификат вашей электронно-цифровой подписи (файл);
- носитель для хранения вашей электронно-цифровой подписи (например, флэшку);
- программу для операций с вашей электронно-цифровой подписи.
Напомним, сертификат — это файл, который удостоверяет ваш публичный ключ, которым можно проверить подписанный вами документ. И этот файл — главное, что требуется от удостоверяющего центра!
В зависимости от финансового аппетита руководства удостоверяющего центра, получение файла с сертификатом может стоить от нескольких сотен до нескольких тысяч рублей.
Любопытно, что некоторые удостоверяющие центры пытаются связать свой сертификат с местом его использования. За этим стоит довольно странная логика, напоминающая примечания на некоторых справках о месте их предъявления. — А что, содержание справки должно зависеть от какого-то места?
Настоящая «цифровизация» страны начнётся лишь тогда, когда получение универсального сертификата ЭЦП любым желающим будет простым, удобным и недорогим.
Важно уточнить и подчеркнуть, что сертификат содержит лишь публичный ключ владельца ЭЦП. Секретный ключ должен находиться только у владельца подписи. На практике же, оба ключа часто генерируются работником удостоверяющего центра, и это является поразительным нарушением фундаментальной логики электронно-цифровой подписи.
Почему сложился такой порядок? — Очень многие из числа получающих сертификат ЭЦП, к сожалению, не понимают её сути. Пару ключей можно и нужно генерировать самостоятельно, а на удостоверение требуется передавать только публичный ключ!
Вот сокращённый пример реального сертификата электронно-цифровой подписи:
Да, это смайлик. Человек использует смайлик в качестве личной подписи.
Ходит легенда, что раньше, чтобы совершить сделку, достаточно было «дать слово» и «ударить по рукам». Сегодня, порой, можно услышать, что и подпись, и печать ничего не значат.
Информационные технологии спешат на помощь и чтобы хоть как-то упорядочить процесс идентификации и скрепления сделок пытаются ввести электронную цифровую подпись. А совсем скоро всем вошьют чип в каждой симке будет ЭЦП и можно будет заключать сделки без паспорта физического присутствия. Ну, а если потерял телефон, то и квартиру потерял (шутка).
Секретная лаборатория «MegaLabs» от МегаФона давно проводит эксперименты по «скрещиванию» ЭЦП и sim-карты. Представляем вашему вниманию немного истории «подписей».
Биометрия
Вот многие индусы не умеют писать. Тогда в дело идут усы и хвост «пальчики». «Подпись» документа 1952 года.
Электронная подпись также может относиться к электронным формам подтверждения личности, для чего используется биометрическая «подпись» или идентификация путем распознавания биологических особенностей человека. Для таких подписей применяют способ, когда определенные биометрические показатели или их сочетание используются в качестве подтверждающего документа. Это могут быть отпечатки пальцев, геометрия руки (длина пальцев и размер ладони), узоры радужной оболочки глаза или узоры сетчатки. Все они собираются с помощью электронных датчиков определенного вида.
Поскольку эти физические характеристики уникальны у каждого человека, то любую из них, теоретически, можно использовать в качестве электронной подписи. Использовать биометрические показатели такого типа в качестве паролей бесполезно, так как их нельзя изменить, если они будут скомпрометированы. Тем не менее, эти данные могут быть пригодны в качестве одного из видов электронной подписи.
Единственный минус в том, что их уже научились подделывать, и на сегодняшний день очень мало гарантий, что человек, который предположительно подписал документ именно тот, кому принадлежит биометрическая подпись.
К сожалению, любой из этих показателей легко подменить при формировании повторного электронного сигнала и предъявить компьютерной системе, ответственной за прикрепление электронной подписи к документу, в качестве подтверждения. Технологий перехвата данных, зачастую, для этого достаточно.
Так, если говорить конкретно об отпечатках пальцев, то японскому профессору с группой аспирантов удалось подделать все считыватели отпечатков пальцев, какие только можно найти в свободной продаже, с помощью обычной пищевой химии, применив немного изобретательности и конфетного геля, из которого делают мармеладных медвежат. И им не понадобились никакие фактические пальцы, чтобы успешно обмануть все эти устройства. Вдобавок, несколько немецких журналистов на «CeBit Сonference» смогли одурачить несколько моделей сканеров радужной оболочки глаза, используя импровизированные маски.
Россия
В 2002 году для обеспечения большей криптостойкости алгоритма взамен ГОСТ Р 34.10-94 был введён одноимённый стандарт ГОСТ Р 34.10-2001, основанный на вычислениях в группе точек эллиптической кривой. В соответствии с этим стандартом, термины «электронная цифровая подпись» и «цифровая подпись» являются синонимами.
В России юридически значимый сертификат электронной подписи выдаёт удостоверяющий центр. Правовые условия использования электронной цифровой подписи в электронных документах регламентирует Федеральный закон Российской Федерации от 6 апреля 2011 года № 63-ФЗ «Об электронной подписи».
После становления ЭП при использовании в электронном документообороте между кредитными организациями и кредитными бюро в 2005 году активно стала развиваться инфраструктура электронного документооборота между налоговыми органами и налогоплательщиками. Начал работать приказ Министерства по налогам и сборам РФ от 2 апреля 2002 года № БГ-3-32/169 «Порядок представления налоговой декларации в электронном виде по телекоммуникационным каналам связи».
Многие российские компании осуществляют свою торгово-закупочную деятельность в Интернете, через системы электронной торговли, обмениваясь с контрагентами необходимыми документами в электронном виде, подписанными ЭП.
Это значительно упрощает и ускоряет проведение конкурсных торговых процедур. В силу требований Федерального закона от 5 апреля 2013 года № 44-ФЗ «О контрактной системе. », государственные контракты, заключаемые в электронном виде, должны быть подписаны усиленной электронной подписью.
С 1 июля 2013 года Федеральный закон от 10 января 2002 года № 1-ФЗ утратил силу, на смену ему пришёл Федеральный закон от 6 апреля 2011 года № 63-ФЗ «Об электронной подписи». В результате было введено определение трех видов электронных подписей:
Простой электронной подписью является электронная подпись, которая посредством использования кодов, паролей или иных средств подтверждает факт формирования электронной подписи определенным лицом.
Усиленной неквалифицированной электронной подписью является электронная подпись, которая:
- получена в результате криптографического преобразования информации с использованием ключа электронной подписи;
- позволяет определить лицо, подписавшее электронный документ;
- позволяет обнаружить факт внесения изменений в электронный документ после момента его подписания;
- создается с использованием средств электронной подписи.
- ключ проверки электронной подписи указан в квалифицированном сертификате;
- для создания и проверки электронной подписи используются средства электронной подписи, получившие подтверждение соответствия требованиям, установленным в соответствии с 63-ФЗ
Говорят, что в Америке закон «о цифровой подписи» был подписан цифровой подписью. Некоторые анонимусы закупаются симками «свободными» от ЭЦП в прок, а для бизнеса ЭЦП и ЭДО экономит много времени, поэтому технологии быть.
Цифровой документооборот входит в нашу жизнь уверенными шагами и если для юридических лиц это уже суровые будни, то многие физические лица могли с этим еще не столкнуться. Но со временем оставаться в стороне становится всё сложнее и нужно приспосабливаться к меняющимся условиям, иначе можно получить не совсем приятные последствия.
Заключение договоров — дело привычное. Их заключают в банках, в больницах, при покупке мебели, оплате обучения. Прочитать договор, проверить реквизиты юридического лица, с которым заключается договор, убедиться в наличии печати и подписи — стандартная процедура, которая уменьшает риск обмана. Однако приобретённые навыки работы с бумажными договорами не могут просто так перейти в цифровой мир в силу специфики электронных документов.
В этой статье хочется рассказать о своем опыте знакомства с российскими электронными подписями (ЭП), которые используются для подписания договоров с физическими лицами в том числе и страховыми компаниями, а также подводных камнях, на которые наткнулся при этом.
Для меня эта история началась при заключении договора со страховой компанией ООО СК “Сбербанк страхование”. После оформления мне показались подозрительными некоторые факты (небольшой спойлер: всё оказалось хорошо) и я стал разбираться, как же мне проверить, что полученный документ действительно выдан страховой компанией, а не некими третьими лицами.
После расчёта суммы в калькуляторе на сайте и заполнения формы с паспортными и контактными данными мне на электронную почту пришло письмо, в котором кроме общей информации, полезных ссылок и контактов было 3 вложения: памятка, правила страхования и сам полис. Я ознакомился с документами, оплатил страховку и стал ждать подписанную версию полиса.
Звонок в контакт центр принёс информацию о том, что присланный полис и является финальным документом с ЭП страховой компании. Мне показалось странным, что компания отдаёт уже подписанный документ еще до факта оплаты клиентом и я стал проверять полученный pdf файл.
Все манипуляции с PDF документом приведены в чистой версии ОС Windows 10, русская домашняя редакция, как наиболее вероятной среде работы простого пользователя. Набор софта, используемый в статье, также является непрофессиональным и доступным для всех.
Для начала я открыл документ в просмотрщике Foxit Reader, который использую как основной:
Это выглядит очень и очень подозрительно — документ модифицирован непонятно кем, сертификат также не является доверенным. Система не может проверить цепочку доверия для данного сертификата и помечает его недействительным.
Кроме имени организации, которой выдан сертификат, видно наименование выдавшей его организации, ООО “ИТК”. Поиск по запросу “ООО ИТК сертификат” вывел меня на страницу Установка корневого сертификата Удостоверяющего центра ООО «ИТК». Это официальный сайт ООО «Интернет Технологии и Коммуникации», который является одним из удостоверяющих центров, выдающих сертификаты ЭП.
Следуем инструкции: нам нужно пройти по ссылке и скачать с Google Drive (!) RAR архив (!!) «Корневой квалифицированный.rar» (который ещё надо найти чем открыть, пришлось ставить 7-zip) и видим там 2 сертификата: корневой и промежуточный. Корневой выдан Минкомсвязи самим себе, а промежуточный — министерством для ООО “ИТК”. Устанавливаем их, соглашаемся с добавлением корневого сертификата (краем глаза замечая, что sha1 отпечаток устанавливаемого ключа и картинки в инструкции совпадает, но про такое сравнение в пунктах установки ничего нет).
Снова открываем сертификат из документа. И чуда не произошло, цепочка доверия от корневого до конечного не строится!
Изучаем ЭП подробнее: в Foxit Reader есть дополнительная информация о свойствах подписи:
Ага, алгоритм хеширования ГОСТовский, ЭП создана в КриптоПро PDF. Возможно, Windows не знает про ГОСТ шифрование и поэтому ему нужен дополнительный криптопровайдер.
Идём на сайт КриптоПро, регистрируемся, скачиваем пробную версию КриптоПро CSP 5.0 на 3 месяца. Что будет дальше — не совсем понятно, возможно всё превратится в тыкву, посмотрим.
Снова открываем просмотр сертификата ЭП:
Выглядит уже лучше. Видно, что система считает сертификат действительным, построена цепочка от корневого сертификата через промежуточный.
В Adobe Acrobat Reader DC проверка тоже не успешна:
И на этом вроде бы можно остановиться: Foxit Reader подтверждает, что документ не был изменен после подписания, руками можно проверить, что сертификат подтверждается системой и действителен. Но всё же хочется довести дело до конца, чтобы хотя бы одна программа сказала: да, документ действителен, всё хорошо.
Вспоминаем, что полис подписан в программе КриптоПро PDF. Вероятно, что раз она может создавать такие подписи, то уж наверняка должна их и проверять. Ставим.
+1 триал версия на 90 дней, хотя вроде бы надпись при установке успокаивает, что при использовании продукта в Adobe Acrobat Reader DC лицензия не нужна.
Подведем промежуточный итог. Для проверки действительности ЭП на документе нужно:
- Узнать, какой удостоверяющий центр выдал сертификат, которым подписан документ, установить его промежуточный и, если такого еще нет, корневой сертификат (в нашем случае из rar архива с Google Drive);
- Установить в систему криптопровайдер (вероятно, существуют другие криптопровайдеры, которые обучат Windows ГОСТовским криптоалгоритмам) КриптоПро CSP с триалом на 3 месяца и неизвестностью после;
- Для проверки подписи из Adobe Acrobat Reader DC установить КриптоПро PDF (без CSP он не ставится).
- Нужно как-то найти и скачать корневой и промежуточный сертификаты. Непонятно, откуда его можно скачать официально, а поиск в сети может привести к установке левых сертификатов, через которые мошенники могут атаковать незадачливого пользователя;
- Нужно понять, какого софта не хватает в системе и где его взять, из коробки ничего не работает. В данной статье приведены примеры на основе продуктов КриптоПро только потому, что это название встретилось в информации о создании ЭП. Нужно изучать тему в поиске аналогов;
- Проверка полноценно заработала только в Adobe Acrobat Reader DC, в Foxit Reader проверка ЭП неполная, нет долгожданной зелёной галочки. Нужно копать дальше, вероятно есть решения.
Порывшись в почте, я нашел еще один электронный договор. По счастливой случайности, им тоже оказался страховой полис, но на этот раз еОСАГО от АО “Тинькофф Страхование”. Открываем сертификат, смотрим выпустившую сертификат организацию. Ей оказывается АО “Тинькофф банк”. Да, оказывается у них есть свой УЦ, который выдает сертификаты дочерним организациям (у Сбербанка тоже есть свой УЦ, но в дочерних структурах он не используется).
По отработанному алгоритму идём в поисковую систему с запросом “тинькофф сертификат”, находим официальный сайт УЦ АО Тинькофф Банк. Тут нас встречает изобилие ссылок на корневые сертификаты, списки отозванных сертификатов и даже видеоинструкция по их установке. Скачиваем “Цепочка корневых сертификатов УЦ АО Тинькофф Банк ГОСТ Р 34.10.2012”, на этот раз ссылка ведёт не на сторонний сервис, а на сайт банка. Формат файла P7B не очень известный, но открывается Windows без установки стороннего софта и показывает находящиеся в нём сертификаты. Здесь уже привычный корневой сертификат от Минкомсвязи (другой, не тот, что в первом случае) и промежуточный сертификат УЦ банка.
Ставим оба, проверяем сертификат в полисе. Но нет, сертификат не является доверенным, т.к. система не может подтвердить поставщика сертификата. На сайте УЦ было 2 ссылки на 2 цепочки сертификатов, один для ГОСТ Р 34.10.2001, другой для ГОСТ Р 34.10.2012. Полис был выпущен в этом году, логичнее бы его подписать уже более современным криптоалгоритмом (тем более уже есть версия ГОСТ от 2018 года, алгоритмы обновляются довольно часто), но давайте проверим старый.
В новом файле формата P7B оказывается уже 3 файла сертификатов. Можно поставить все 3, однако стоит заметить, что сертификат “Головного удостоверяющего центра” мы поставили в первой главе из RAR архива ООО “ИТК”, они идентичны. А сертификат с не очень говорящим названием “УЦ 1 ИС ГУЦ” поставил КриптоПро CSP, т.к. галочка об установке корневых сертификатов была установлена по-умолчанию в его инсталляторе. Единственным новым является сертификат АО “Тинькофф Банк”, который мы и ставим.
После установки сертификатов из “Цепочка корневых сертификатов УЦ АО Тинькофф Банк ГОСТ Р 34.10.2001” путь в сертификате прорисовался и система радостно сообщила, что он является доверенным. Adobe Acrobat Reader DC также подтвердил, что подпись действительна.
На этом приключения с проверкой ЭП на полисе еОСАГО завершаются. Заметно, что после того, как в системе уже установлен необходимый софт, а пользователь понимает принципы работы и поиска промежуточных сертификатов, то проверка подписи занимает уже меньше времени.
Но проблемные места по-прежнему видны: необходимо искать в интернете официальные сайты удостоверяющих центров, разбираться в инструкциях по установке сертификатов. Даже при установленных корневых сертификатах необходимо искать промежуточный, иначе цепочка доверия будет не полной и система не сможет подтвердить достоверность подписи.
Проделав всю эту работу, меня не покидало чувство, что вся система построена не очень безопасно, требует от пользователя кучу дополнительных операций и доверия многим факторам: от поисковой системы, которая может не выдать первой строкой официальный сайт УЦ, до работы самого персонала УЦ, который выкладывает сертификаты без контрольных сумм на сторонние веб сервисы в проприетарных форматах контейнеров.
За дополнительной информацией я пошёл на сайт Минкомсвязи и нашёл такую страницу. Там можно скачать XLS файл, в котором будут перечислены все имеющие в настоящий момент аккредитацию УЦ, а также УЦ с приостановленной и прекращенной аккредитацией. В списке аккредитованных находится 494 УЦ, что немало.
У сертификатов есть поле точки распространения списка отзывов (CRL), в котором прописан путь получения списка отозванных сертификатов. При проверке ЭП на каком-то документе кроме установки промежуточного и корневых сертификатов нужно также установить и последний список отозванных и обновлять его перед каждой проверкой (данная процедура автоматизируется специализированным софтом, но штатные средства вроде бы так не умеют). На портале e-trust у каждого сертификата указан путь к такому списку и он может отличаться от того, что написано в самом сертификате. Чему верить? Не совсем понятно.
В заключение статьи хочется отметить, что проверка ЭП на электронных документах по силам каждому, однако это не совсем тривиальный процесс, требующий некоторых знаний. Возможно, что в будущем этот процесс упростится. Кроме этого остается открытым вопрос проверки ЭП на мобильных устройствах, а ведь они сейчас стали основным инструментом пользователей, давно опередив персональные компьютеры.
После написания статьи осталось несколько открытых вопросов, которые хотелось бы обсудить с сообществом:
- аналоги КриптоПро, особенно opensource инструменты для создания и проверки ЭП;
- добавление валидации ЭП не только в Adobe Acrobat Reader DC, но и в Foxit Reader и другие;
- оставшиеся за пределами данной статьи проблемы, которые также важны и требуют внимания, но не проявились в моём случае.
UPD 1: После написания статьи мне подсказали, что есть ещё один криптопровайдер, ViPNet CSP, который тоже может помочь с ГОСТовскими криптоалгоритмами в системе. Одновременная установка его с КриптоПро CSP под вопросом.
Оговорюсь сразу — я почти дилетант в вопросах, связанных с электронной цифровой подписью (ЭЦП). Недавно, движимый естественным любопытством, я решил немного разобраться в этом и нашел в Интернете 100500 статей на тему получения сертификатов ЭЦП в различных удостоверяющих центрах, а также многочисленные инструкции по использованию различных готовых приложений для подписания документов. Кое-где при этом вскользь упоминалось, что неквалифицированную подпись можно изготовить самостоятельно, если воспользоваться услугами «опытного программиста».
Мне тоже захотелось стать хоть немного «опытным» и разобраться в этой кухне изнутри. Для интереса я научился генерировать PGP-ключи, подписывать документы неквалифицированной подписью и проверять ее достоверность. Понимая, что никакой Америки не открыто, я, тем не менее, предлагаю этот краткий туториал для таких же, как и я, дилетантов в вопросах работы с ЭЦП. Я постарался особо не углубляться в теорию и в детали, а написать именно небольшое и краткое введение в вопрос. Тем, кто уже работает с ЭЦП, это вряд ли будет интересно, а вот новичкам, для первого знакомства — в самый раз.
Оборотная сторона «подписи»
Французского священника немного попытали и сожгли, а суду в качестве доказательства его вины представили некий документ — «договор с Дьяволом», будто бы подписанный рукой обвиняемого.
В «договоре» Урбен Грандье «заключал соглашение» с целым рядом демонов, в том числе Сатаной, Люцифером, Астаротом, Левиафаном и Вельзевулом, чтобы получить «любовь женщин, цветы девственности, милость монархов, почести, наслаждения и власть».
Сейчас появились графологическая экспертиза и верификация подписи, так что костра можно не опасаться.
Росчерк пера
Подпись — уникальная совокупность символов, написанных от руки, с применением определенных оформительных приёмов, служащая для идентификации человека.
В российском законодательстве нет регламентирующего положения о личных подписях. С подписями бардак, в общем.
Хорошая подпись (личная подпись) имеет следующие свойства.
- Устойчивость к подделке.
- Повторяемость.
- Идентифицируемость (подпись обычно напоминает имя, фамилию или псевдоним человека).
- Быстрота написания.
Тугра Махмуда II, элементы показаны в порядке выписывания; цветом указано их значение по словам: «Махмуд хан, сын Абд ал-Хамида, победоносный навеки»
Про подделку подписей на Хабре
Но технологии могут служитт и «злоумышленникам».
Электронная цифровая подпись
В 1976 году Уитфилдом Диффи и Мартином Хеллманом было впервые предложено понятие «электронная цифровая подпись», хотя они всего лишь предполагали, что схемы ЭЦП могут существовать («New Directions in Cryptography»)
В 1977 году Рональд Ривест, Ади Шамир и Леонард Адлеман разработали криптографический алгоритм RSA, который без дополнительных модификаций можно использовать для создания примитивных цифровых подписей (A method for obtaining digital signatures and public-key cryptosystems)
После RSA были разработаны другие ЭЦП, такие, как алгоритмы цифровой подписи Рабина (GHR, Secure Hash-and-Sign Signatures Without the Random Oracle), Меркле.
В 1984 году Шафи Гольдвассер, Сильвио Микали и Рональд Ривест первыми строго определили требования безопасности к алгоритмам цифровой подписи. Ими были описаны модели атак на алгоритмы ЭЦП, а также предложена схема GMR (доказуемо-стойкую), отвечающая описанным требованиям (Криптосистема Гольдвассер — Микали).
Генерирование открытого и секретного ключей
Итак, вы решили самостоятельно изготовить усиленную неквалифицированную электронную подпись и научиться подписывать ею свои документы. Начать необходимо, конечно, с генерирования пары ключей, открытого (public key) и секретного (private key).
Существует множество стандартов и алгоритмов асимметричного шифрования. Одной из библиотек, реализующих эти алгоритмы, является PGP (Pretty Good Privacy). Она была выпущена в 1991 году под проприетарной лицензией, поэтому имеются полностью совместимые с ней свободные библиотеки (например, OpenPGP). Одной из таких свободных библиотек является выпущенная в 1999 году GNU Privacy Guard (GnuPG, или GPG). Утилита GPG традиционно входит в состав почти всех дистрибутивов Линукса; для работы из-под Windows необходимо установить, например, gpg4win. Ниже будет описана работа из-под Линукса.
Сначала сгенерируем собственно ключи, подав (из-под обычного юзера, не из-под root'а) команду
В процессе генерирования вам будет предложено ответить на ряд вопросов:
- тип ключей можно оставить «RSA и RSA (по умолчанию)»;
- длину ключа можно оставить по умолчанию, но вполне достаточно и 2048 бит;
- в качестве срока действия ключа для личного использования можно выбрать «не ограничен»;
- в качестве идентификатора пользователя можно указать свои фамилию, имя и отчество, например, Иван Иванович Иванов ; адрес электронной почты можно не указывать;
- в качестве примечания можно указать город, либо иную дополнительную информацию.
После ввода вами всех запрошенных данных утилита GPG попросит вас указать пароль, необходимый для доступа к секретному ключу. Дело в том, что сгененрированный секретный ключ будет храниться на вашем компьютере, что небезопасно, поэтому GPG дополнительно защищает его паролем. Таким образом, не знающий пароля злоумышленник, даже если и получит доступ к вашему компьютеру, подписать документы от вашего имени не сможет.
Сгенерированные ключи (во всяком случае, открытый, но можно также и секретный, на тот случай, если ваш компьютер внезапно сломается) необходимо экспортировать в текстовый формат:
Понятно, что private.key вы должны хранить в секрете, а вот public.key вы можете открыто публиковать и рассылать всем желающим.
Что такое электронная подпись
Все термины и определения приведены в законе, поэтому изложим всё, как говорится, своими словами, не претендуя при этом на абсолютную юридическую точность формулировок.
Электронная цифровая подпись (ЭЦП) — это совокупность средств, позволяющих однозначно удостовериться в том, что автором документа (или исполнителем какого-то действия) является именно то лицо, которое называет себя автором. В этом смысле ЭЦП полностью аналогична традиционной подписи: если в обычном «бумажном» документе указано, что его автор Иванов, а внизу стоит подпись Петрова, вы справедливо можете усомниться в авторстве Иванова.
Электронная подпись бывает простая и усиленная. Простая подпись не предполагает использование стандартных криптографических алгоритмов; все способы аутентификации (установления авторства), которые были придуманы до эпохи ЭЦП — это по сути и есть простая электронная подпись. Если вы, например, зарегистрировались на сайте госуслуг, удостоверили свою личность путем явки в многофункциональный центр, а затем направляете через этот сайт обращения в различные государственные органы, то ваши логин и пароль от сайта госуслуг и будут в данном случае вашей простой электронной подписью.
Мне однажды встречался такой способ удостоверения подлинности электронных документов в одной организации: перед рассылкой документа изготавливался его хэш и подписывался в базу хэшей (обычный текстовый файл, лежащий на сервере). Далее любой желающий удостовериться в подлинности электронного документа заходил на официальный сайт этой организации (в официальности которого ни у кого сомнений не возникало) и с помощью специального сервиса проверял, содержится ли хэш проверяемого документа в базе. Замечательно при этом, что сам документ даже не нужно было загружать на сервер: хэш можно вычислить на клиентской стороне в браузере, а на сервер послать только маленький fetch- или ajax-запрос с этим хэшем. Безусловно, этот немудрёный способ можно с полным основанием назвать простой ЭЦП: подписью в данном случае является именно хэш документа, размещенный в базе организации.
Поговорим теперь об усиленной электронной подписи. Она предполагает использование стандартных криптографических алгоритмов; впрочем, таких алгоритмов существует достаточно много, так что и здесь единого стандарта нет. Тем не менее де-факто усиленная ЭЦП обычно основана на асимметричном шифровании (абсолютно гениальном, на мой взгляд, изобретении Ральфа Меркла), идея которого чрезвычайно проста: для шифрования и расшифровывания используются два разных ключа. Эти два ключа всегда генерируются парой; один называется открытым ключом (public key), а второй — секретным ключом (private key). При этом, имея один из двух ключей, второй ключ воспроизвести за разумное время невозможно.
Представим себе, что Аня хочет послать Боре (почему в литературе по криптографии обычно фигурируют Алиса и Боб? пусть будут Аня и Боря) секретную посылочку, закрытую на висячий замочек, и при этом на почте работают злые люди, которые хотят эту посылочку вскрыть. Других каналов связи, кроме почты, у Ани и Бори нет, так что ключ от замочка Аня передать Боре никак не может. Если она пошлет ключ по почте, то злые люди его, конечно, перехватят и вскроют посылочку.
Ситуация кардинально меняется, если изобретен замок с двумя ключами: один только для закрывания, а второй — только для открывания. Боря генерирует себе пару таких ключей (открытый и секретный) и открытый ключ шлет по почте Ане. Работники почты, конечно, потирая руки, делают себе копию этого ключа, но не тут-то было! Аня закрывает замок на посылке открытым ключом Бори и смело идет на почту. Работники почты вскрыть посылку открытым ключом не могут (он использовался для закрывания), а Боря спокойно открывает ее своим секретным ключом, который он бережно хранил у себя и никуда не пересылал.
Вернемся к усиленной электронной подписи. Предположим, некий Иван Иванович Иванов захотел подписать документ с помощью ЭЦП. Он генерирует себе два ключа: открытый и секретный. После этого изготавливает (стандартным способом) хэш документа и шифрует его с использованием своего секретного ключа. Можно, конечно, было зашифровать и весь документ, но полученный в результате такого шифрования файл может оказаться очень большим, поэтому шифруется именно небольшой по размеру хэш.
Полученный в результате такого шифрования файл и будет являться усиленной электронной подписью. Её еще называют отсоединенной (detach), так как она хранится в отдельном от документа файле. Такой вариант удобен тем, что подписанный отсоединенной ЭЦП файл можно спокойно прочитать без какой-либо расшифровки.
Что же теперь отправляет Иван Иванович получателям? А отправляет он три файла: сам документ, его электронную подпись и открытый ключ. Получатель документа:
- изготавливает его хэш с помощью стандартного алгоритма;
- расшифровывает электронную подпись, используя имеющийся у него открытый ключ Ивана Ивановича;
- убеждается, что хэш совпадает с тем, что указан в расшифрованной электронной подписи (то есть документ не был подменен или отредактирован). Вуаля!
Всё, казалось бы, хорошо, но есть одно большое «но». Предположим, что некий злодей по фамилии Плохиш решил прикинуться Ивановым и рассылать документы от его имени. Ничто не мешает Плохишу сгенерировать два ключа, изготовить с помощью секретного ключа электронную подпись документа и послать это всё получателю, назвавшись Ивановым. Именно поэтому описанная выше ЭЦП называется усиленной неквалифицированной: невозможно достоверно установить, кому принадлежит открытый ключ. Его с одинаковым успехом мог сгенерировать как Иванов, так и Плохиш.
Из этой коллизии существует два выхода. Первый, самый простой, заключается в том, что Иванов может разместить свой открытый ключ на своем персональном сайте (или на официальном сайте организации, где он работает). Если подлинность сайта не вызывает сомнений (а это отдельная проблема), то и принадлежность открытого ключа Иванову сомнений не вызовет. Более того, на сайте можно даже разметить не сам ключ, а его отпечаток (fingerprint), то есть, попросту говоря, хэш открытого ключа. Любой, кто сомневается в авторстве Иванова, может сверить отпечаток ключа, полученного от Иванова, с тем отпечатком, что опубликован на его персональном сайте. В конце концов, отпечаток можно просто продиктовать по телефону (обычно это 40 шестнадцатеричных цифр).
Второй выход, стандартный, состоит в том, что открытый ключ Иванова тоже должен быть подписан электронной подписью — того, кому все доверяют. И здесь мы приходим к понятию усиленной квалифицированной электронной подписи. Смысл ее очень прост: Иванов идет в специальный аккредитованный удостоверяющий центр, который подписывает открытый ключ Иванова своей электронной подписью (присоединив предварительно к ключу Иванова его персональные данные). То, что получилось, называется сертификатом открытого ключа Иванова.
Теперь любой сомневающийся может проверить подлинность открытого ключа Иванова с помощью любого из многочисленных сервисов Интернета, то есть расшифровать его сертификат (онлайн, с помощью открытого ключа удостоверяющего центра) и убедиться, что ключ принадлежит именно Иванову. Более того, Иванову теперь достаточно послать своим корреспондентам только сам документ и его отсоединенную подпись (содержащую и сведения о сертификате): все необходимые проверки будут сделаны желающими онлайн.
Справедливости ради необходимо отметить, что и неквалифицированная ЭЦП может быть сертифицирована: никто не мешает какому-то третьему лицу (например, неаккредитованному удостоверяющему центру) подписать открытый ключ Иванова своей ЭЦП и получить таким образом сертификат открытого ключа. Правда, если удостоверяющий центр не аккредитован, степень доверия к подписи Иванова будет полностью зависеть от степени доверия к этому центру.
Всё замечательно, да вот только услуги удостоверяющих центров по изготовлению для вас подписанных (снабженных сертификатом центра) ключей стоят денег (обычно несколько тысяч рублей в год). Поэтому ниже мы рассмотрим, как можно самостоятельно изготовить усиленную ЭЦП (неквалифицированную, не снабженную сертификатом открытого ключа от аккредитованного удостоверяющего центра). Юридической силы (например, в суде) такая подпись иметь не будет, так как принадлежность открытого ключа именно вам никем не подтверждена, но для повседневной переписки деловых партнеров или для документооборота внутри организации эту подпись вполне можно использовать.
Печати
Скрепление документов печатью относится к дополнительным требованиям, которым должна соответствовать простая письменная форма сделки (статья 160 Гражданского кодекса Российской Федерации). Такие дополнительные требования могут предъявляться только в определенных законом, иными правовыми актами или соглашением сторон случаях. При этом наличие подписи лица, совершающего сделку в простой письменной форме, на документе, выражающем содержание сделки, является обязательным требованием во всех случаях.
Именная барельефная печать байвэнь, читается сверху вниз, справа налево: Е Хао Минь Инь (дословно «Печать Е Хаоминя»)
Пинтадеры из Древней Мексики и Эквадора
С неолита и по настоящее время используются керамические штампы, называемые в археологии пинтадера (исп. pintadera, от pintar — писать красками, изображать). С их помощью наносили узоры на различные поверхности, в том числе, и на человеческое тело.
Оттиск печати Войска Донского, 1704 год (слева) и стандартизированная печать (кит. 公章) организаций КНР (справа).
Государственная печать Ивана Грозного, XVI век (слева) и печать сосновой смолой на велени, на метке или «хвосте» английского акта 1638 года (справа).
Проверка подписи
Вряд ли, конечно, вам самому придется проверять достоверность собственной электронной подписи, но если вдруг (на всякий случай) вам захочется это сделать, то нет ничего проще:
В реальности гораздо полезнее опубликовать где-нибудь в открытом доступе (например, на вашем персональном сайте или на сайте вашей организации):
- открытый ключ public.key для того, чтобы все желающие могли проверить (верифицировать) вашу подпись с использованием, например, той же GPG;
- веб-интерфейс для проверки вашей подписи всеми желающими, не являющимися специалистами.
Описанию такого веб-интерфейса (причем без использования серверных технологий, с проверкой подписи исключительно на клиентской стороне) и будет посвящена последняя часть моего краткого туториала.
К счастью для нас, имеется свободная библиотека OpenPGP.js; скачиваем самый маленький по размеру (на момент написания данного туториала — 506 КБ) файл dist/lightweight/openpgp.min.js и пишем несложную html-страничку (для упрощения восприятия я удалил все описания стилей и очевидные meta-тэги):
Понятно, что файл с открытым ключом public.key и файл библиотеки openpgp.min.js должны лежать в той же папке, что и эта страничка.
Вся работа по верификации подписей будет производиться подключенным скриптом validate.js :
Вот, собственно, и всё. Теперь вы можете в соответствии с пунктом 5.23 ГОСТ 7.0.97–2016 разместить на документе (в том месте, где должна стоять собственноручная подпись) вот такую красивую картинку:
Квалифицированная электронная подпись (КЭП) стала настоящей «палочкой-выручалочкой» для тех, кто регулярно работает с документами. Она представляет собой юридически достоверный цифровой аналог обычной подписи на бумаге. С её помощью можно дистанционно заверить документы, которые в прошлом необходимо было подписывать от руки при личном посещении ведомства: налоговые декларации, документы для получения ипотеки и кредитов, акты, подтверждающие право на недвижимость и многие другие.
Раньше для получения электронной подписи нужно было посетить аккредитованный удостоверяющий центр, но с развитием биометрических технологий и этот процесс постепенно переходит в онлайн. Теперь, вместо того чтобы тратить несколько часов на дорогу в удостоверяющий центр и обратно, можно оформить электронную подпись за 15 минут даже не выходя из дома . Рассказываем, как это устроено.
Электронная цифровая подпись состоит из пары ключей: открытого и закрытого. Открытый ключ находится в публичном доступе, а закрытый известен только владельцу цифровой подписи. Алгоритмы асимметричной криптографии позволяют шифровать информацию одним из ключей и расшифровывать другим. Чтобы сгенерировать пару ключей, не нужно специальное оборудование и навыки. При желании это можно сделать самостоятельно без помощи специалистов. Тогда зачем посещать удостоверяющий центр?
Чтобы у электронной подписи появилась юридическая сила, нужно не только сгенерировать ключи, но и подтвердить личность владельца. Для этого удостоверяющие центры выдают сертификат, который содержит набор дополнительных свойств: срок действия ключа, текстовое описание владельца, набор служебных идентификаторов.
Квалифицированная электронная подпись, полученная по биометрии, ничем не отличается от подписи, полученной традиционным способом — лично в удостоверяющем центре.
Чтобы выдать сертификат ключа проверки электронной подписи, удостоверяющий центр должен идентифицировать клиента. Раньше существовал только один способ сделать это — проверить паспорт при личном визите заявителя в удостоверяющий центр. После принятия Федерального закона № 476 «О внесении изменений в Федеральный закон об электронной подписи» от 27 декабря 2019 года и ряда подзаконных актов появился новый способ юридически значимой проверки личности — идентификация в Единой биометрической системе . Такая проверка проводится онлайн и занимает всего несколько секунд. Квалифицированная электронная подпись, полученная по биометрии, ничем не отличается от подписи, полученной традиционным способом — лично в удостоверяющем центре.
Благодаря новой услуге выигрывают все: клиенты могут получить сертификат проверки ключа электронной подписи, не тратя время на дорогу в удостоверяющий центр, а удостоверяющие центры — расширить географию привлечения клиентов и оказывать услуги людям со всей страны.
Подписание документа
Нет ничего проще, чем создать отсоединенную ЭЦП в текстовом (ASCII) формате:
Файл с подписью будет создан в той же папке, где находится подписываемый файл и будет иметь расширение asc . Если, например, вы подписали файл privet.doc , то файл подписи будет иметь имя privet.doc.asc . Можно, следуя традиции, переименовать его в privet.sig , хотя это непринципиально.
Если вам не хочется каждый раз заходить в терминал и вводить руками имя подписываемого файла с полным путем, можно написать простейшую графическую утилиту для подписания документов, например, такую:
Читайте также: