Pull to refresh

Comments 27

Спасибо за подробную статью. А не планируете рассказать о XML-DSig?
Планирую, но это, скажем так, некоторый шаг в сторону от изначального пути развития подписи. И про ее историю тоже. Просто сначала нужно закончить вводные статьи, а затем уже переходить к частностям
спасибо что пишете о сложном доступным языком
буду рекомендовать читать интересующейся этой темой друзьям
Не за что, надеюсь, помогает :)
Из Вашей статьи не понятны некоторые моменты:
Если захэшировать идентификатор вместе с остальными параметрами, тогда любой злоумышленник может скопировать Вашу и подпись, и подписыватся ей направо и налево. Какая же это секьюрность?
Сертификат выдается перманентно или на сессию?
Хотя бы в одном из представленных алгоритмов Третья сторона учавствует в процессе подписывания и сверки результата, или просто выдает сертфикаты?

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

Подписать что-либо можно только закрытым ключём, который есть только у вас. В сертификате же содержится открытый ключ, который может только расшифровывать и не более.
Тогда зачем морока с хэшем, идентификатором и прочим?
Если мы используем ассиметричное шифрование, то нам нужен только timestamp или еще, что-то для гарантии времени подписи, а все остальное по боку.
К тому же, я передаю свой публичный ключ со всем пакетом, что мешает злоумышленнику взять мою подпись и подложить свой публичный ключ?
Ибо левым публичным ключём вы не сможете расшифровать то, что было зашифровано моим закрытым. Т.е. не сможете расшифровать хеш, а значит и не сможете его проверить -> подпись недействительна.

Единственное, если вы полностью замените всю подпись своей и подсунете свой сертификат. Но это уже будет именно ваш сертификат, а не первоначальный. Т.е. если изначально подпись была Васи Пупкина, то теперь будет Владимира Иванова. Соответственно, конечный человек, которому предназначался документ это дело узреет и поймёт, что он получил совсем не то, что ожидал от Васи, а какую-то левую хрень от Владимира…

Есть ещё конечно вариант, что в своём сертификате вы как хитрый злоумышленник подпишитесь так же Васей Пупкиным, чтобы конечный адресат ничего не заподозрил. И чтобы это было невозможно, как раз и используют «третью сторону» в виде удостоверяющего центра, который не подтвердит валидность вашего фиктивного сертификата, и конечный адресат опять же поймёт, что получил какую-то хрень, вместо оригинала.
Как-то так =)
Не понятно. Если сертификат это идентификатор, тогда я могу использовать: чужое имя, чужой сертификат. Т.е. я использую расшифрованную подпись и подписываю ей свой злоумышленный документ, при этом все выглядит как надо, кроме использования другого ключа для шифрования\расшифрования.
Я знаю как это обойти и сделать секьюрно, но об этом нет ни слова в статье. В связи с чем у меня и возникли вопросы, которые озвучены в первом комментарии. Я считаю, что тема статьи раскрыта не полностью.
Ну, во-первых, к вопросу подмены. Можно подробнее? Как планируется обходить удостоверяющий центр, который подтверждает валидность сертификата?

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

В статье проведена аналогия между номером и серией паспорта и сертификатом. Возьмем ее в основу.
Допустим я перехватываю подписанный пакет, извлекаю его содержимое и имею на руках: сертификат, чужой публичный ключ, хэш функцию и захэшированный документ.
Дальше я шифрую своим ключом: хэш функцию, хэш, сертификат и отсылаю все это дело Вам, с моим публичным ключом, представившись как lol4ever. Вы расшифровываете пакет и спрашиваете в центре: «А у lol4ever действительно сертифика с номером XXXX», они отвечают: «Да, все верно, данный пользователь имеет именно этот сертификат». Вы удостоверившись, в том, что документ был подписан именно lol4ever. Я злорадно потираю руки. Profit!
Вот как работает алгоритм описанный в статье.
Что-то мне подсказывает, что не так то просто создать свой сертификат «с номером ХХХХ». Что удостоверяющие центры тоже не дураки… Но утверждать не буду… =)

Тут уже и мне интересно, что скажет автор статьи, каким образом защищена эта часть, ибо ну не может же быть всё так просто %)
Так а зачем мне его создавать, если этот сертификат есть в сообщении? Я его не создаю, я его копирую. И да, я уверен, что не все так просто, и что все там защищено в определенной степени. Но меня волнует вопрос, почему этого нет в статье? Ведь без этого статья в большей степени является водой, чем полезным материалом.
Вообще странно, что стало модно писать кучу статей прелюдий, чтобы потом напсиать суть. Я считаю, что статья должна быть полноценной, т.е полностью покрывать определенный аспект, тут я этого не вижу.
Дык ещё в самом начале я написал, что ежели вы перешифруете всё это дело своим ключём, то и сертификат нужен будет ваш, т.к. первоначальный сертификат может расшифровать только зашифрованное мной (моим закрытым ключём, который есть только у меня).

А просто скопировав сертификат, вы не сможете перешифровать данные так, чтобы они были дешифрованы ключём из этого же сертификата.

Тут простая система. Есть 2 ключа, условно названные закрытым и открытым. Зашифрованное одним, может быть расшифрованно только вторым и наоборот. Т.е. данные зашифрованные открытым ключём, открытым же ключём невозможно расшифровать. А в случае копирования сертификата, всё, что у вас есть, это как раз только открытый ключ (ибо закрытый лежит только у меня, и я его никуда и никому не даю). И всё, что вы им можете сделать, это лишь подтвердить валидность подписи.

P.S. Кол-во слов «открытый» просто зашкаливает %) Но не смог по-другому выразить мысль…
Так стоп, это уже Ваши домыслы, причем мне они не ясны. В статье картинка с тремя полями, одно из полей это «Информация о владельце». Я могу ее просто скопировать. Причем тут шифрование? Оно тут вообще не вяжется. Давайте математику включим:
E1(H) — хэш зашифрованный приватным ключом 1. Я ее дешифрую публичным ключом 2: D2(E1(H)) = H. На этом этапе у меня есть: F — хэш функция, H — хэш, P2- публичный ключ(чужой). Достаем подпись: F(H) = S. Хотя подпись можно было не создавать. Выбираем жертву и отсылаем ей сообщение M(P4, E3(H), F). Где P4 — это мой публичный ключ, а E3 это сообщение которое зашифровано приватным ключом 3(моим). Что в данном случае может сделать третья сторона? Как она докажет, что мой пакет не легитимен?
*«подпись не создавать» читать как «подпись не доставать» :)
если я правильно понял, то новый сертификат будет выдан на ваше имя, и врядли вы сможете доказать (центру сертификации) что вы Вася Пупкин с такими-то личными данными, центр на то и центр сертификации, что бы подтвердить вашу личность.
UFO landed and left these words here
Ну это же для «чайников» пишут! Зачем им формулы да подробности — не поймут ведь!
Вы слегка торопите события. Все, что вы сейчас спросили, безусловно, важные вещи, вот только одно но: это уже подробности одного из форматов, а о них в следующей статье
Кстати, есть ли возможность использовать ЭЦП в Chrome при использовании gmail?
Хм. А поконкретнее? Подписывать сами письма? Вроде б в гмайле такого еще нет (исторически не пользуюсь гмайлом, поэтому точно сказать не могу). А сами отправляемые файлы подписывать — да легко
Аналог https://addons.mozilla.org/ru/firefox/addon/592/
Почитал про аддон. Специфичная штука, работает странно, хотя никакой принципиальной сложности в поддержке работы с S/MIME для почты нет.

А на тему поддержки работы хромом — вопрос, скорее, к гуглу. С помощью скриптов реализовать «прямую» поддержку S/MIME очень сложно, так что навряд ли она появится. Если уж потребовалась работа с ЭЦП и шифрованием в почте, то лучше пользоваться почтовыми клиентами
На одном дыхании прочил обе части. Шикарные статьи в которых выносится проблематика и решение, прекрасные и ненавязчивые аналогии, да и вообще всё очень прекрасно расписано. Надеюсь тему не забросите и продолжите писать. Читать очень интересно. Спасибо огромное.
Не за что.
Не заброшу, в ближайшие пару дней будет следующая статья
Only those users with full accounts are able to leave comments. Log in, please.