nomadmoon: (Default)
[personal profile] nomadmoon
Как и обещал - пост про цифровые подписи.
Что мы знаем про цифровые подписи? Из школьного курса информатики нам известно что есть такое явление как асимметричное шифрование. В нем участвуют два набора данных, два ключа. Публичный и приватный.



Публичным можно шифровать, приватным расшифровывать. Приватным можно подписывать, публичным проверять подпись.

Если вы зашифровали что то публичным ключем, то расшифровать обратно тем же ключем вы уже не сможете. Фарш невозможно провернуть назад, такскть. Расшифровать можно только приватным ключом.

Примерно та же фигня с подписью - приватным подписываем, публичным проверяем.

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

Генерить ключи можно кучей открытых и не очень утилит, как правило это openssl под юнихами и puttygen под виндовсами.

Как ни удивительно, в школьном курсе информатики не рассказывают что такое сертификат публичного ключа. Сертификат ключа это структура, в которой объединены публичный ключ, кой какая информация о том чей этот ключ (хотя бы ФИО, может какие то паспортные данные). И все это подписано приватным ключом какой нибудь Очень Уважаемой Организации. Сделано это для того чтобы использование вашей подписи имело хоть какой то административный смысл. А то цифроподпишете что нить, а потом будете мазаться что я не я и подпись не моя. Ан нет, у Очень Уважаемой Организации все ходы записаны.

В использовании цифровой подписи в повседневной жизни я вижу две проблемы.
Первая - кто удостоверяет подписи. В текущей редакции закона об ЭЦП подписи удостоверяет Удостоверяющий Центр. Удостоверяющие Центры есть, как минимум, у ТрансТелекома и Контура. Есть еще какие то, кому интересно спросите у гугля.

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

Во вторых, насколько я понимаю, сертификаты выдаются юридическим лицам. В то время как документы как правило подписывают люди. Как говорится "у каждого косяка есть имя и фамилия".

Как мне кажется сделать более разумно?

Ну, во первых, нужно чтобы сертификаты выдавала паспортно-визовая служба. Та же, которая выдает паспорт. Это логично по ряду причин:
- ПС знает о вас все, там есть в архивах ваша фотка, они умеют отличить поддельный паспорт от настоящего. Кому же как не им быть уверенными что они подписывают сертификат именно вам, а не какому то хрену с горы.
- сотрудники ПС и так дали клятву (или что у них там) о неразглашении, безопасности, проходят инструктажи и вообще абы кого не берут паспорта выдавать.
- у ПС _уже_есть_ своя защищенная сеть, с выделенными каналами, шифрованными VPN-туннелями, паролями и прочими игрушками взрослых сисадминов.
- ПС есть в любой жопе - паспорт то у всех есть, да?

Во вторых нужно выдавать его определенному человеку. Какая разница, подписываешь ты расписку что должен другу Васе 200 баксов или контракт на миллион? Один фиг ты подтверждаешь что понимаешь свои права и обязанности.
UPD Как пишет [livejournal.com profile] leonwolf, а он знает что пишет по 1-ФЗ сертификат выдается исключительно и только на ФИЗИЧЕСКОЕ лицо.


Второй вопрос более интересный и технический. Заключается он в том что приватный ключ нужно с одной стороны хранить как урановые стержни в свинцовом сейфе, а с другой стороны - как то показывать его шифровальной программе, ибо без него она ничего не зашифрует и не подпишет. Самый тупой путь - это использовать "большой комп" и программы на нем. Путь этот считается очень косячным, поскольку как ключ не прячь, а где то в системе он все равно есть. Поэтому злонамеренный вирус может его выдрать и послать хакеру, после чего хакер от вашего имени выпишет себе чек на миллион долларов и скроется на Багамах пить текилу в окружении прекрасных латинос. Вирусы и дыры, понятно, на большом компе есть везде. Даже под якобы защищенными линуксами. А уж винда и вообще одно сплошное решето. Осознав эту проблему техническая мысль пошла дальше и изобрела токен. Токен это такая фигня, похожая на флэшку. Однако кроме флэш-памяти эта штука содержит маленький цифровой процессор с намертво прошитой программой шифрования/подписи. В общем берете вы это токен, особым образом прошиваете туда свой приватный ключ, а потом с помощью спецпрограммы и этого ключа все шифруете. Выглядит это так - программа берет файл, посылает его в USB порт, где торчит токен. Токен это дело шифрует своим маленьким процессором. Сам, *ля, без ансамбля. И возвращает уже зашифрованный файл. Сам ключ с большого компа никак не увидеть и не скопировать. Для большого компа это выглядит как послал файл в USB порт получил оттуда подпись. Или зашифрованный файл, смотря что требовалось.

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

В общем рассуждал я вчера о том как нам реорганизовать процесс цифровой подписи и пришел к выводу что нужно делать как в mp3 плеере. Закачал на девайс, отключил его от порта, выбрал файл (как трек в плеере), подписал. Потом подумал что хорошо бы сделать как с современном mp3 плеере с большим экраном, чтобы можно было еще текст документа прочитать с экранчика девайса, убедиться что это то что нужно и подписать. И тут в моих мыслях произошел эволюционный скачок и родилось решение:
Е-БУК!

Девайс созданный специально для чтения. _Уже_ умеющий показывать все распространенные текстовые форматы. PDF, RTF, TXT, FB2. Спецдевайс, на котором никогда не будут запускаться программы сторонних производителе, значит флэшку можно всегда смело принудительно монтировать с параметром noexec. Значит никаких вирусов. Осталось только дополнить его программой для подписи и прошить в него ключ. И сделать опцию подписать.



Вот таким я вижу будущее цифровой подписи.

Реквестирую поправки, мнения, и указания на ошибки, особенно от юзера [livejournal.com profile] leonwolf

Date: 2009-12-23 03:42 am (UTC)
From: [identity profile] leonwolf.livejournal.com
и, в принципе, это пресловутая модель Эстонии и Бельгии.
более того, действительно, легко решается проблема с "правоотношениями, в которых может применяться..." - ЭЦП это только подпись, а все остальное пусть разруливается в конкретной информационной системе через механизмы проверки полномочий, а задача УЦ - только личность удостоверить.
да, наверное, это наиболее правильно.

Profile

nomadmoon: (Default)
nomadmoon

April 2017

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 25th, 2025 09:11 am
Powered by Dreamwidth Studios