Лыцарь пичальнава образа - В убийстве виновна пуля! [entries|archive|friends|userinfo]
silly_sad

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

В убийстве виновна пуля! [Mar. 25th, 2010|09:39 am]
Previous Entry Add to Memories Tell A Friend Next Entry
LinkLeave a comment

Comments:
From:[info]silly_sad
Date:March 25th, 2010 - 10:53 am
(Link)
> Юзер там увидит не кучу левых букв.

а каким же святым духом возникнет воздействие на хэш функцию?
у неё случайно открылся второй аргумент?
[User Picture]
From:[info]vitus-wagner.livejournal.com
Date:March 25th, 2010 - 10:56 am
(Link)
Открылся алгоритм получения коллизий. Который позволяет взять два разных текста и подописывать к ним в хвост дополнительные байты, чтобы получилась одинаковая хэш-функция. При этом эти дополнительные байты это не просто так - а вполне валидные открытые ключи RSA.
From:[info]silly_sad
Date:March 25th, 2010 - 10:58 am
(Link)
> подописывать к ним в хвост дополнительные байты

а теперь вернитесь на два комента выше и прочитайте мои слова:
"юзер увидит левые символы"

s/левые/дополнительные/
s/символы/байты/
[User Picture]
From:[info]vitus-wagner.livejournal.com
Date:March 25th, 2010 - 11:18 am
(Link)
Надо дочитывать до конца то, что я пишу. (может если до конца дочитывать и на фишинг попадаться не будешь)

В любом сертификате есть 32 или 64 байта нечеловекочитаемых символов. Открытый ключ называются.

Коллизия строится подбором таких двух ключевых пар RSA, что
открытый ключ А вместе с текстом X дает ту же хэш-сумму, что открытый ключ B вместе с текстом У. (ну на самом деле не текстом, а ASN.1 структурой данных сертификата, но это не важно).

Злоумышленник имеет в своем распоряжении закрытые ключи от обоих ключевых пар, поэтому может послать в УЦ заявку с текстом X и открытым ключом A, честно подписав ее закрытым ключом A.

Получив сертификат, он отрезает от него подпись, подцепляет его к паре из текста Y и открытого ключа B и получает сертификат на ключевую пару B. Закрытый ключ B у него есть, так что он вполне может доказать клиенту TLS что он Y.


From:[info]silly_sad
Date:March 25th, 2010 - 11:55 am

верно ли я понял схему?

(Link)
(A,kA),(B,kB) -- key pairs of a fisher
(C,kC) -- key pair of a CA
X,Y -- some certificate text


sign :: Text->Privkey->Signature
check :: Text->Signature->Pubkey->Boolean

fisher --> CA : ((X,A) , sign (X,A) kA)
fisher <-- CA : ( ((X,A) , sign (X,A) kA) , sign ((X,A) , sign (X,A) kA) kC )

fisher --> User : ( ((Y,B) , sign (Y,B) kB) , sign ((X,A) , sign (X,A) kA) kC )

WHERE 
check ((Y,B) , sign (Y,B) kB) (sign ((X,A) , sign (X,A) kA) kC) C == true