I hate overtime #как_это_работает Котаны, у меня тут чутка прибавилось желания жить свободного времени и я решил вдохнуть в этот канальчик вторую жизнь и начну, пожалуй, с теперь (надеюсь) постоянной рубрики «как это работает». Так уж получилось, что я щас работаю в достаточно…
#как_это_работает
(продолжение)
и так, электронные подписи.
Как мы с вами выяснили, их бывает 3: простая(ПЭП), усиленная неквалифицированная(УНЭП) и усиленная квалифицированная(УКЭП). Собственно что это такое и почему их 3? Давайте начнем с простого, т.е. с ПЭП. На самом деле, ПЭП — это просто надпись на заборе «здесь был Вася». Т.е. прямо на документе рисуется некий штамп, который позволяет идентифицировать подписанта. Прям максимально тупой аналог автографа на бумаге. Ну ок, в чем проблема, зачем еще 2 подписи? На самом деле проблемы 2: во-первых, после подписания ПЭПом документ может быть изменен. Т.е. ПЭП по-дефолту никак не контролирует изменения документа после подписания. Ну ок, скажете вы, давайте добавим в ПЭП временную метку, или, еще лучше, хэш документа. Это конечно поможет, но есть еще и вторая проблема — лигитимность подписи. Дело в том, что подписывает ПЭПом сама система документооборота, которая не является СКЗИ и вообще-то не обеспечивает никаких функций безопасности, поэтому и подделать эту подпись абсолютно не проблема. И вот тут-то вот на сцену выходят усиленные подписи (УНЭП и УКЭП). Вот эти подписи уже формируются через взрослую криптографию и происходит это в специально-обученной программе Удостоверяющий Центр (или просто УЦ). Проще всего представить все это безобразие как некую пару ключей ассиметричного шифрования (тем более, что именно так и было в прошлой редакции закона о подписях). Т.е. у нас есть задача: всегда знать, что документ был подписан определенным лицом, ну и мы так-то отлично умеем ее решать. Даем «лицу» секретный ключ, которым он зашифрует(подпишет) документ, а всем остальным дадим публичный ключ, с помощью которого они смогут пойти и проверить подпись и вуаля! На самом деле, документ даже не шифруют, а от него берут хеш и хеш шифруют, формируя как раз ту самую подпись, которую просто кладут рядом с документом или даже встраивают в документ. Примерно так и работают УНЭП и УКЭП. Для того что бы гарантировать, что документ не будет изменен после подписания, в подписи присутствуют таймстампы. Ну кажется все, ща заживем, осталось только разобраться почему усиленных подписей аж целых 2. Тут все дело в этом самом УЦ, он в этой схеме выполняет аж 3 функции: во-первых, он выпускает те самые приватные ключи, которые позволяют подписывать документы, во-вторых, он готов эти ключи у себя хранить, а в-третьих, если очень попросить(и передать хеш документа), то может даже и подписать документ усиленной подписью с меткой времени и прочими крипто-прибаутками. Осталось всего-то ничего, этот УЦ у себя завести и вот тут вот интересное: если для работы с УНЭПами вам достаточно просто купить КриптоПро DSS или что-то похожее, то если вы хотите УКЭПы, то вам придется еще и вызвать товарищ-майора и пройти с ним в отделение 10 кругов ада, что бы ваш УЦ стал квалифицированным. Поэтому, УЦ для УКЭПов крайне мало и подавляющее большинство пользуется каким-нибудь Госключем, а УЦ для УНЭПов хоть и побольше, но тоже не в каждой избушке свой, потому что стоят они как крыло самолета, благо на просторах необъятной хватает SaaSных УЦ.
Ну ок, завели/нашли/украли себе УЦ, подписывать-то как? Вот тут все зависит от УЦ и его фичей, например, часто ваша подпись может лежать в некоем контейнере(читай КриптоПро CSP) прямо у вас на компьютере. Когда вам понадобилось что-то подписать, ваш клиент (читай браузер с КриптоПро плагином) вытаскивает подпись и прилепляет ее на документ. Классно-великолепно…а как быть, если у нас подписывает, например, мобильное приложение? Заставлять всех пользователей мобильный КриптоПро ставить? Что бы не хранить ключи локально в специальных криптоконтейнерах мы можем попросить за нас это делать УЦ. В этом случае, когда мы будем что-то подписывать, мы просто расчитаем хеш документа и отправим его в УЦ. УЦ каким-то образом нас поймет кто мы такие, найдет у себя наш ключ и подпишет им документ. Вуаля, мы великолепны! Теперь мы умеем гонять документы по процессам и даже подписывать их подписями. Теперь осталось всего-ничего: научиться их хранить