Магистер ([info]magister_) wrote,
@ 2008-04-15 00:37:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Электронная подпись для чайников

Мне кажется, «электронная подпись» в России мало распространена не по причине плохих законов, а потому что в самом этом вопросе мало кто разбирается. То есть – нужны внятные объяснения и инструкции.

1. Что вообще такое «электронная подпись».

Под «электронной цифровой подписью» понимается система взаимоотношений и программного обеспечения, обеспечивающая следующее:
1) аутентификацию: возможность однозначно идентифицировать совершающего действие;
2) целостность: информация должна быть защищена от несанкционированной модификации как при хранении, так и при передаче.
3) неотрекаемость: совершающий действие не может отказаться от совершенного действия.

2. Техническая реализация на базе RSA

Суть метода RSA в следующем: «ключ» к информации имеет две составляющие: «открытый ключ» и «закрытый ключ». Открытый – используется для шифрации и публичен, закрытый – используется для декодирования сообщений и секретен.

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

Для “подписи” документа не обязательно весь этот документ кодировать. Например, можно каким-либо методом создать “хэш” сообщения (например, методом MD5 хэш в 128 бит), т.е. как бы его “отпечаток”, что-то типа контрольной суммы, с помощью открытого ключа, а с помощью открытого ключа можно проверить, соответствует ли хэш этому документу – если он подвергся модификации, то соответствия не будет; если соответствует, значит, получен в точности тот самый документ, который был “подписан” этим отпечатком.

(Вообще говоря, возможна ситуация, что при искажении отпечаток не изменится, - но крайне маловероятна.)

Использование ключей для подписи документов регламентирует “сертификат”. С формальной точки зрения, электронный сертификат - цифровой документ (файл), который связывает ключ с определенным пользователем или приложением. Применяемые сейчас сертификаты описываются стандартом X.509 (см. RFC 3647).

Например, система WebMoney для каждого «кошелька» создаёт вам индивидуальный сертификат, и при установке программного обеспечения устанавливает на вашем компьютере свой (самой системы) сертификат – чтобы проверять сообщения от самой системы. Ваш личный сертификат содержит пару ключей (используется для «подписывания» документов), чужие сертификаты содержат открытые ключи.

Сайты интернета, использующие “защищенный” протокол доступа (https), предоставляют вам свои сертификаты. Эти сертификаты могут быть зарегистрированы в “сертификационном центре”, а ваше программное обеспечение может быть настроено так, чтобы “доверять” сайтам, зарегистрированным в сертификационных центрах. То есть, для заверения подлинности электронного сертификата используется электронная цифровая подпись доверенного центра (сертификационного центра). Если подписи доверителя нет - вы сами принимаете решение, доверять или нет.

3. Юридическая реализация

В соответствии с российским законодательством, сертификаты для электронной цифровой подписи признаются юридически значимыми (см. 1), если специальный "удостоверяющий центр" выдал сертификат ключа подписи (выдал как «…документ на бумажном носителе…»). Если срок этого сертификата не истек, то закон признает «неотрекаемость».

Система, использующая средства электронной цифровой подписи – должна быть сертифицирована (государством); если она не сертифицирована, то в случае понесения кем-либо убытков из-за неправильной работы иск можно предъявлять создателям и распространителям системы. (Т.е. не той фирме, которая у себя программу установила, а той, которая эту программу создала.) Т.е. если вы установили и используете систему не-собственной разработки, то в случае чего отвечает – разработчик либо его посредник (от кого вы это получили).

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

Удостоверяющий центр в этих отношениях подобен нотариальной конторе – он ведет реестр сертификатов и даёт ответы на официальные запросы относительно этих сертификатов. (Например, http://www.ekey.ru/, - уверяют, что имеют 150 отделений по всей стране.) Граждане и юридические лица имеют право получать сертификат (бумажный) в любом удостоверяющем центре.

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

Вот, вкратце, в чём суть закона об электронной цифровой подписи, принятого в начале 2002 года. На мой взгляд, очень хороший и удобный закон.



(Post a new comment)

Немного некорректно
[info]vzyckov
2008-04-14 08:45 pm UTC (link)
>аутентификацию: возможность однозначно идентифицировать совершающего действие;

Гораздо правильнее:

идентификацию и аутентификацию: возможность однозначно идентифицировать совершающего действие и подтвердить его права на заявленное действие (в данном случае, подтвердить авторство документа).

:D

(Reply to this)(Thread)

Re: Немного некорректно
[info]magister_
2008-04-14 09:23 pm UTC (link)
да нет: я могу посредством сертифицированной системы электронной подписи послать кому-нибудь текст романа любого автора.

(Reply to this)(Parent)(Thread)

Re: Немного некорректно
[info]vzyckov
2008-04-14 09:38 pm UTC (link)
В случае наличия у меня собственной сертифицированной подписи и открытого ключа, выложенного на сайте в общественный доступ, это будет противоправное действие. Которое классифицируется как тип атаки "маскарад" , если мне не изменяет память. :)

(Reply to this)(Parent)(Thread)

Re: Немного некорректно
[info]magister_
2008-04-14 09:42 pm UTC (link)
это я к тому, что подпись - идентифицирует ставящего её, но не идентифицирует авторство документа.

(Reply to this)(Parent)(Thread)

Re: Немного некорректно
[info]vzyckov
2008-04-14 10:18 pm UTC (link)
Да всё понятно, просто я немного поиграл в формализм.:)

(Reply to this)(Parent)


[info]stety
2008-04-14 08:53 pm UTC (link)
Самое прикольное - принят он в 2002-м году, но, как ни странно, многие клиент-банковские программы еще долгое время использовались без ЭЦП, где год, а где и подольше...

(Reply to this)(Thread)


[info]magister_
2008-04-14 09:26 pm UTC (link)
да и сейчас они де-факто работают по системе ЭЦП, а де-юре сертификаты (бумажные) не выдают.

(Reply to this)(Parent)

А что тут странного?
[info]alkor_
2008-04-15 09:28 am UTC (link)
Сам по себе "Закон об ЭЦП" ничего не значил -- ЭЦП использовали и до него. На свой страх и риск -- существовало несколько сотен Удостоверяющих Центров, которые удостоверяли непонятно что.

Нормально работать "Закон об ЭЦП" начинает с появлением Федерального Удостоверяющего Центра, который призван "всех отыскать, воедино созвать, и единою черною волей сковать" -- то есть, легитимизировать ЭЦП. В опытную эксплуатацию ФУЦ был ыыедён в июне 2005 года.

(Reply to this)(Parent)


[info]alexrat
2008-04-15 03:46 am UTC (link)
Только не shttp, а https

(Reply to this)(Thread)

Не-а ;)
[info]alkor_
2008-04-15 09:20 am UTC (link)
HTTPS (Hypertext Transfer Protocol over Secure Socket Layer) и S-HTTP (Secure hypertext transfer protocol) -- два конкурирующих (но в равной мере поддерживаемых) крипторасширения протокола HTTP.

Хотя HTTPS, конечно, популярнее.

(Reply to this)(Parent)


[info]oort
2008-04-15 05:10 am UTC (link)
«открытый ключ» и «закрытый ключ». Открытый – используется для дешифрации и публичен, закрытый – используется для кодирования сообщений и секретен.</i>
Наоборот и более полно: открытый -- публичен, используется для шифрования и проверки подписи, закрытый -- секретен (что тавтологично:), используется для подписывания и дешифрования.

(Reply to this)(Thread)


[info]magister_
2008-04-15 06:32 pm UTC (link)
ok.

(Reply to this)(Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…