Перейти к содержанию

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

Как было показано ранее, при вступлении в кооператив пайщик получает ключ электронной подписи. Этот ключ криптографически связывается с графическим оттиском его собственноручной подписи на заявлении о вступлении в кооператив.

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

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

Криптография

Разберём подробнее принципы работы простой электронной подписи и её алгоритмов. В основе — эллиптическая кривая secp256k1, та же, что применяется в биткоине, и многих других блокчен-протоколах.

Публичный ключ выглядит как PUB_K1_..., приватный — как PVT_K1_..., подпись — как SIG_K1_....

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

Как создаётся подпись

Подписать можно строку, файл или их контрольную сумму. В ЦК, согласно стандартам, мы извлекаем контрольную сумму бинарных данных PDF документа по алгоритму sha256. Полученную строку длиной 64 символа мы подписываем, используя специализированный внутренний формат хранения подписи в документах.

Однако, в целом, алгоритм прост: приватный ключ + сообщение → криптографическая подпись SIG_K1_....

Как проверяется подпись

Сама подпись не раскрывает приватный ключ и не позволяет восстановить документ, она только связывает подписанта с конкретными данными, которые он подписывает. Верификация подписи делает обратное: сообщение + SIG_K1_... + PUB_K1_... → проверка, что владелец приватного ключа подписал именно эти данные.Если хоть что-то изменить в данных, подпись перестанет проходить проверку — это и даёт нам гарантию целостности.

Связка подписи и аккаунта

Кроме криптографической проверки целостности подписи мы проверяем то, что подпись принадлежит конкретному пайщику, который является участником электронного документа, который мы проверяем. Для этого у каждого пайщика есть аккаунт в блокчейне, который выдается ему при вступлении в кооператив.

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

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

С этого момента всё, что подписано приватным ключом этого аккаунта, считается юридически-значимым действием именно этого пайщика. Приватный ключ для подписи электронных документов, при этом, хранится в клиенте (в устройстве пользователя) и не передается на сервер.

Что мы подписываем

Подписывать можно любое сообщение. Практически мы подписываем:

  • контрольные суммы электронных документов;

  • метки времени при аутентификации входа;

Во всех случаях применяется один и тот же механизм: данные → подпись приватным ключом → проверка по публичному, уже привязанному к аккаунту в публичном реестре блокчейна.

Подробнее о формате и подписи электронных документов см. раздел фабрика документов