anonymous@RULINUX.NET~# | Last login: 2024-11-24 18:58:12 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Talks | [RSS] |
Меня тут спросили про цифровую подпись, что я не могу придумать, что ответить. Я вообщем-то с ними дела не имел, так что у меня представления об ЭЦП в основном теоретические.
Присылают финансовый документ в электронном виде с электронной подписью. Вопрос - а откуда известно, что это именно их подпись, т.е. подпись именно этой конторы Рога и Копыта, а не скан с увеличением картинки из какого-то порнографического журнальчика? Т.е. существует ли какая-то процедура верификации этой подписи?
Насколько я понимаю, ЭЦП - это сертификат SSL, т.е. чтоб его верифицировать нужно обращаться к Certification Authority. А как это сделать? Писать письма - "Дорогой Марк Шаттлворт, я получил сертификат, подписанный вашей компанией ..." или есть какие-то специальные утилиты для этой цели
geekkoo(*) (2009-12-25 14:44:00)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2
|
|
|
Скрыть
Re: Цифровая подпись - объяснение для чайниковВсе такие системы базируются на шифроании с открытым ключом (т.н. несимметричные алгоритмы зашифрования - RSA, Ellyptic curves и т.п.). Смысл в том, что при использовании таких алгоритмов для зашифрования данных используется один ключ, а для расшифрования данных, зашифрованных первым ключом, используется другой ключ. Обратное преобразование также возможно (если емеется пара ключей А и Б, то зашифрованное ключом А может быть расшифровано ключом Б, а зашифрованное ключом Б может быть расшифровано ключом А). Механизм. Пользователи создают уникальные пары ключей. По одному ключу из этих пар каждый хранит в секрете, а второй сообщает своему контрагенту(ам) - например публикуя его везде, вплоть до объявления в газете если надо. Теперь, когда нужно отправить данные с подписью, отправитель (Рога и Копыта) может их просто зашифровать своим секретным ключом и отправить получателю. Принимающая сторона, получив сообщение якобы от конторы Рога и Копыта, пытается его расшифровать посредством известного ей открытого ключа. Если расшифровалось - значит можно не сомневаться, что сообщение действительно прислано конторой Рога и Копыта посколько оно могло быть зашифровано только ключом известным только этой фирме (вероятность коллизии существует, но это и есть устойчивость шифра). Реализация. Ассимметричные алгоритмы крайне прожорливы по части вычислительных ресурсов, поэтому никто не шифрует документы такими ключами. Тем более что характер информации может сильно различаться и на неких наборах данных секретный ключ _теоретически_ может быть скомпроментирован (злоумышленник сможет восстановить секретный ключ). Поэтому при необходимости шифрования сообщений - для каждой сессии вырабатывается свой короткий ключ для симметричного шифра (ГОСТ, DES, Rjndael - последний является стандартным в США и используется в AES) и уже этим ключом шифруется сообщение, а сам ключ шифруется открытым ключом принимающей стороны что бы та могла его расшифровать с помощью своего закрытого ключа известного только ей. Похожий механизм работает и в цифровой подписи: отправитель считает короткую хеш-сумму своего сообщения (MD5, SHA*) и зашифровывает результат своим закрытым ключом. Получатель извлекает сообщение, точно так же считает контрольную сумму, расшифровывает контрольную сумму присланную отправителем его же открытым ключом - если контрольные суммы совпали, аутентичность отправителя доказана. Обрати внимание, зашифрование сообщения и его подпись - это разные, несвязанные процессы. Письмо может быть зашифровано, но не подписано, или подписано, но не зашифровано, либо и подписано и зашифровано. Сертификат - это лишь структура данных, описывающая открытый ключ и другие атрибуты сертифицируемой стороны. Сам сертификат для безопасности тоже должен быть подписан. Часто достаточно "самоподписанных" сертификатов, при более широком применении используются сертификационные центры (CA - certification authority, как пример - Verisign), которые подписывают сертификаты своих клиентов и поддерживают рассылки CRL (Certificate Revocation Lists) для отзыва выданных ранее сертификатов если они становятся невалидными (скомпроментированы, заменены, потеряны или просто по таймауту). При использовании сертификатов, подписанных CA, пользователю достаточно установить сертификат одного из корневых CA в качестве доверенного что бы быть уверенным в том, что полученные сертификаты валидны (а то, что сертификат принадлежит Рогам и Ко будет написано в сертификате). Ну и CA объединяются в сложные иерархии и вообще в этой инфраструктуре всё непросто, для понимиания принципов ЭЦП они не нужны. Что ещё добавить, есть системы ЭЦП, базирующиеся на RSA и PKI - они используются наиболее широко: в SSL, SMIME и пр, но подписывать сообщения можно и с помощью систем на базе PGP - они не предоставляют такой мощной и гибкой структуры управления сертификатами, но по крайней мере позволяет проверить кем подписан ключ отправителя если мы изначально ничего не знаем про данный ключ. |
Скрыть
Re: Цифровая подпись - объяснение для чайниковНу, это примерно понятно , но каков алгоритм верификации подписи? Вот, допустим, пришла заявка на аукцион, там стоит цифровая подпись. Заявка не зашифрована, просто потому, что получатель с большой долей вероятности не представялет, что это такое (говорю-ж, чайники). Как узнать, какой алгоритм отправитель использовал для хэша, котрый он закодировал в подписи? Или даже более общий вопрос, где гарантия, что отправитель - это не какой-то бродяга с большой дороги, который сгенерировал себе самоподписанную пару ключей? Т.е. для этого (как я себе это представялю, может и неправильно) и существуют СА, которые могут подтвердить, что это не просто какой-то бродяга, а ого-го какой бродяга (по крайней мере он значится у них в списках). geekkoo(*)(2009-12-25 17:10:28)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2 |
Скрыть
Re: Цифровая подпись - объяснение для чайников> Ну, это примерно понятно , но каков алгоритм верификации подписи? Вот, допустим, пришла заявка на аукцион, там стоит цифровая подпись. Заявка не зашифрована, просто потому, что получатель с большой долей вероятности не представялет, что это такое (говорю-ж, чайники).
> Как узнать, какой алгоритм отправитель использовал для хэша, котрый он закодировал в подписи?
Подпись - это бинарная структурка, которая описывает кто (какой ключ) подписывал и как он это делал (какой хеш использован и т.п.). Пользователю это нахрен не нужно знать. Он скармливает сообщение валидатору (почтовый клиент это сам сделает) - а тот говорит всё ли хорошо с документом. Ниже я опишу более подробно. Если ты уверен, что тебе необходимо знать что находится внутри сертификата заданного типа, то придётся читать всякие портянки типа этой: https://www.pgpru.com/biblioteka/specifikacii/files?get=rfc4880.txt (ну и сам сайт посвящён теме, может тебе есть смысл его полистать) > Или даже более общий вопрос, где гарантия, что отправитель - это не какой-то бродяга с большой дороги, который сгенерировал себе самоподписанную пару ключей? Т.е. для этого (как я себе это представялю, может и неправильно) и существуют СА, которые могут подтвердить, что это не просто какой-то бродяга, а ого-го какой бродяга (по крайней мере он значится у них в списках).
Как видишь, оно разбито на части, одна из которых содержит собственно сигнатуру (подпись) сообщения. Когда я его открываю в KMail (сразу надо настроить gpg в разделе секъюрити КМейла), тот показывает мне, что сообщение подписано, но тут же выдаёт сообщение о том, что он не может проверить подпись: Он выдрал ИД ключа (0x37EB542B807222FD) из подписи, но это даже не открытый ключ, поэтому он ничего не может с ним сделать. Перед тем как начать трахаться с настройкой PGP я пошёл на http://wwwkeys.eu.pgp.net/ проверить - существует ли такой юзер вообще. Существует. И можно скачать его публичный ключ. Но он пока нахрен не нужен, потому что у меня ничего не настроено. Надо сперва свою инфраструктурку настроить. Поэтому запускаю KGpg и первым делом создаю свой собственный ключ. Заодно создаётся файл конфигурации gpg. Теперь, когда у меня есть свой ключ, я могу им подписывать сертификаты, которым доверяю. Поскольку KGpg успел сегфолтнуться пока я создавал ключ, убеждаюсь, что мой ключ присутствует в хранилище ключей Теперь мне надо как-то начать доверять человеку с ИД ключа 0x37EB542B807222FD. Для начала добавим его сертификат в список известных: Снова открываю письмо в КМайле и вижу что тот по-прежнему не в состоянии проверить подпись. Хорошо. В КМайл, в меню тулз, есть менеджер сертификатов (при выборе у меня запускается kleopatra) - запускаю его, вижу что этот Розениггер сидит в списке "другие сертификаты". Нажимаю правую кнопочку мыши и выбираю "certify certificate", ввожу пароль, которым был зашифрован мой приватный ключ - в результате сертификат перехал в список доверенных сертификатов. GPG использует мой закрытый ключ для того что бы подписать сертификат этого Роузниггера как сертификат, которому я доверяю - таким образом, не зная пароля, которым зашифрован мой приватный ключ, никто кроме меня не сможет заставить меня доверять каким-нибудь другим зловредным сертификатам с фальшивыми данными. Теперь я открываю письмо снова, и Кмайл мне сообщает, что "The signature is valid and the key is fully trusted." - стало быть нашёл в списке доверенных сертификатов открытый ключ этого парня, вытащил его открытый ключ, проверил совпадает ли текст с подписью и у него всё сошлось. Т.е. мы можем быть уверены что именно тот человек подписывал именно тот текст. Сохраняю письмо в файл на диске, ещё раз открываю что бы убедиться, что подпись по-прежнему валидна. Закрываю. Исправляю в тексте сообщения одну букву и открываю снова, результат: Стало быть не подписывал такой текст никакой К.Розиниггер. В принципе вот и всё. Я только не понял двух вещей - во-первых надо как-то настраивать Кмайл что бы он сам вытягивал сертификаты из keyserver'a и показывал бы что писмо корректно подписано, только сертификат не из доверенных. А во-вторых, сделал потом в консоли: получается клеопатра не обновила базу gpg что-ли - что-то неправильно это ИМХО или я чего-то не понимаю.
|
Скрыть
Re: Цифровая подпись - объяснение для чайниковТы наверное этот тред имеешь в виду: http://www.linux.org.ru/jump-message.jsp?msgid=3786511&cid=3786756 |
Скрыть
Re: Цифровая подпись - объяснение для чайниковНу, получается, что покупая сертификат у веризайна или ещё кого, мы вообще неизвестно за что платим. В смысле веризайн не может нам гарантировать даже того, что "по мнению веризайна компания Рога и Копыта это действительно компания Рога и копыта, а не Лапы и хвосты"? Что-то, по-моему, деятельность Марка Шатлворта и его последователй уже приближается к роду занятий, описанных в уголовном кодексе под названием мошенничество ... geekkoo(*)(2009-12-28 12:38:53)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2 |
Скрыть
Re: Цифровая подпись - объяснение для чайников>Ну, получается, что покупая сертификат у веризайна или ещё кого, мы вообще неизвестно за что платим. В смысле веризайн не может нам гарантировать даже того, что "по мнению веризайна компания Рога и Копыта это действительно компания Рога и копыта, а не Лапы и хвосты"? Что-то, по-моему, деятельность Марка Шатлворта и его последователй уже приближается к роду занятий, описанных в уголовном кодексе под названием мошенничество ...
нуну, может тебе еще и паспортные данные отправителя подпись должна выдавать? |
Скрыть
Re: Цифровая подпись - объяснение для чайников> Ну, получается, что покупая сертификат у веризайна или ещё кого, мы вообще неизвестно за что платим. В смысле веризайн не может нам гарантировать даже того, что "по мнению веризайна компания Рога и Копыта это действительно компания Рога и копыта, а не Лапы и хвосты"?
Если же ты понятия не имеешь про Рога и Ко: чо это за контора и можно ли им доверять - сертификат тебе не поможет. Только практический опыт работы с данной компанией и система гарантий по сделкам спасут покупателя в сети. Например пэйпэл гарантирует обязательства контрагентов, если тебя кинули на какую-то сумму - взяли скажем денег за товар, а товар не прислали - то денег тебе вернёт пэйпэл. Конторы, работающие с кредитными карточками тоже могут иногда защитить своего клиента. Но это другая задача, отличная от идентификации. > Что-то, по-моему, деятельность Марка Шатлворта и его последователй уже приближается к роду занятий, описанных в уголовном кодексе под названием мошенничество ...
Да, должен добавить, что сертификаты и верисайны используют PKI. В ГНУшной системе ключи для PGP подтверждаются другими пользователями. Т.е. ты можешь прийти на специальную пати со своим паспортом и попросить несколько человек подписать твой ключ, а сам подпишешь их ключи. Те, кто знает кого-либо из вас смогут доверять и ключам, подписанным вами. |
Скрыть
Re: Цифровая подпись - объяснение для чайников>Почему бы и нет? Если они финансовые документы цифровой подписью визируют...
anonymous(*)(2009-12-28 15:35:43)
Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16 |
Скрыть
Re: Цифровая подпись - объяснение для чайников> Нет , тот тред на ЛОР был году а 2007-8
> Хотя думаю те кто обнаруживают дыры в алгоритмах, крайне не охотно рассказывают о них.
|
Скрыть
Re: Цифровая подпись - объяснение для чайниковЯ думаю что любые другие незаконные способы рубления бабла дают более стабильный доход и может быть при этом даже более безопасны. Задолбаешься же искать заинтересованную в уязвимости сторону, настолько заинтересованную, что тебе от взлома перепадёт хоть сколько-нибудь весомый процентик и при этом не убьют. А с другой стороны хороший криптоаналитик, известный своими находками уязвимостей, думается, может заколачивать в энтерпрайзе нехилое бабло легально. Я не в курсе их зарплат, но их до сих пор мало вне военки - значит должны кататься как сыры в масле. |
Скрыть
Re: Цифровая подпись - объяснение для чайниковГы, да ты юморист, однака ... Ну, приди в банк за кредитом, и вместо своих паспортных данных предложи показать свою фоту в купальнике ... А потом на лоренеге расскажи, как далеко тебя тамошняя охрана вынесет и положит. >>гарантировать что документы, пришедшие от кого-то, под названием "рога и копыта", пришли действительно от "рога и копыта"
Вот и новость в тему подоспела; http://www.rbc.ru/rbcfreenews/20091228180503.shtml geekkoo(*)(2009-12-28 21:11:35)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2 |
Скрыть
Re: Цифровая подпись - объяснение для чайников>>Ну ты должен будешь как-то подтвердить ту информацию, которая будет подтверждаться сертификатом.
>>Только практический опыт работы с данной компанией и система гарантий по сделкам спасут покупателя в сети.
geekkoo(*)(2009-12-28 21:30:45)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2 |
Скрыть
Re: Цифровая подпись - объяснение для чайников>>> гарантировать что документы, пришедшие от кого-то, под названием "рога и копыта", пришли действительно от "рога и копыта"
> Вопрос, что тогда сертифицирует Марк Космонавт, причем делает это за немаленькие деньги, которые сравнимы уже с небольшой реальной сертификацией?
> Вот и новость в тему подоспела; http://www.rbc.ru/rbcfreenews/20091228180503.shtml
|
Скрыть
Re: Цифровая подпись - объяснение для чайников> Не кажется, что два утверждения противоречат друг другу?
> Я не спрашиваю, можно ли им доверять, просто что именно сертифицирует веризайн и другие? Т.е. можно считать, что веризайн как бы выступает в качестве нотариуса, которому показали какие-то учредительные документы, а он потом выдал сертификат на какое-то время, которым эта контора пользуется.
Обрати внимание - у меня опера показала пару "Unknown fieldname". Т.е. система расширяема, опера может и не знать о каких-то типах атрибутов. Теоретически можно внести любой новый вид атрибута, хоть с фильмом в качестве значения. Только авторити не согласится :о) > Т.е. пока веризайн не занес их сертификат в revocation list можно считать, что контора нормальная, так что-ли?
В большинстве случаев отзыв сертификата не означает что с конторой что-то ненормально. Мало ли - юр.адрес сменился или какой другой атрибут, или возникла угроза компроментации подписи или просто сертифицированный объект забыл свой пароль. Ну выпишут новый сертификат, а старый при этом отзывается.. > Вот этим кадрам пришла электронная заявка на аукцион с цифровой подписью. Аукцион по определению открытый, отказать отправителю, на основании, что они их не знают - не могут. Вот у них и вопрос - а как как убедиться, что это не какие-то шутники?
Да, если речь идёт о России и с точки зрения госзаказчега - не надо смотреть не на верисайн. раз есть закон об ЭЦП - есть и федеральный авторити с его собственными правилами (кстати бесплатный - нельзя же отнять право подписи) и, что крайне важно, утвержденные государством полиси PKI. Т.е. ты можешь уточнить у авторити, выдающего сертификаты на уровне РФ - что именно он сертифицирует, просто послав им официальный запрос. Полиси PKI - готов держать пари там конь ещё не валялся - описывают прикладные аспекты сертификации. В разных странах разные законы и они запрещают или вменяют разные вещи, в т.ч. набор атрибутов, которые может/должен включать сертификат, как они подтверждаются и, что пездец, какие алгоритмы могут/должны использоваться. На самом деле PKI и российское законодельство врядли совместимы - есть алгоритмы, которые признаёт государство, и для симметричных шифров - это алгоритм ГОСТ, а не DES или Rjndael какой-нибудь, ассиметричный вроде как основан эллиптических кривых, а вовсе не на RSA. По хешам я и вовсе понятия не имею, вроде там алгоритм на основе ГОСТ опять же. Средства зашифрования должны быть сертифицированы, никто не будет сертифицировать и пересертифицировать левые реализации негосударственных стандартов - невыгодно (госконторы будут пытаться протолкнуть какую-нибудь свою поделку), да и на соответствие чему сертифицировать вражеские алгоритмы, да и вышла новая версия OpenSSL - заново его пересертифицировать штоле? Короче там без "шутников" геморроя хватит надолго :) По поводу легальности криптографии мы тут уже обсуждали: http://www.lor-ng.org/message.php?newsid=3789&fid=9&page=0#25027 Кстати, забавно что на мертволорье кто-то именно сегодня вышел из анабиоза: http://www.linux.org.ru/view-message.jsp?msgid=4378711 (там в треде есть чья-то ссылка на компьютерру, но текст по этой ссылке писал какой-то идиот, всё обстоит с точностью до наоборот) |
|
|
|
Этот тред читают 4 пользователя: |
Анонимных: 4 Зарегистрированных: 0 |
Re: Цифровая подпись - объяснение для чайников
ЭЦП это как сертификаты SSL. Есть центры сертификации и пр.
Tunnel thread survival