Подписване/проверка на публичен ключ

Разработвам приложение за управление на криптиране на файлове и имейли, използвайки (основно) PKI. Имам публичен ключодържател със списък от контакти и техните публични ключове.

Връщайки се към старите времена, когато използвах PGP, си спомням изискване за подписване на публични ключове с вашия личен ключ.

Това необходимо ли е за PKI и ако да, какво постига това подписване? Лоша практика ли е просто да съхранявате списък/база данни с имена на хора (и имейл) и техния публичен ключ? Със сигурност, ако публичният им ключ е - по някакъв начин - манипулиран с криптирането, ще се провали и докато избирате с кого изпращате или споделяте криптираните данни, дори ако „успешно манипулиране“ остане незабелязано, криптираните данни няма да свършат все пак в неподходящи ръце?


person Jonny Wilson    schedule 02.06.2013    source източник
comment
Как да разберете, че публичният ключ, който сте получили на първо място, е правилен?   -  person SLaks    schedule 02.06.2013
comment
Добре, добра гледна точка. И така, как подписването му доказва противното? Да кажем, че генерирате двойка ключове, изпратихте ми вашия публичен ключ и аз съхранявам това. Как мога да докажа, че това е валиден ключ?   -  person Jonny Wilson    schedule 02.06.2013
comment
Хората, които го подписват (надявам се) удостоверяват собственика.   -  person SLaks    schedule 02.06.2013
comment
Така че в моя горен пример, аз ви познавам, така че подписвам вашия публичен ключ? Това доказва, че е ВАШИЯТ ключ? Необходимо ли е да подписвате всеки публичен ключ на вашия ключодържател или това е просто „хубава“ функция? Предполагам, че питам, можете ли законно да използвате този публичен ключ за защита на данни, дори и да не е подписан? Така че никога не съм те срещал, но искам да ти изпратя защитени данни - все още ли е „безопасно“ да го направя?   -  person Jonny Wilson    schedule 02.06.2013
comment
Всичко зависи от това срещу какво се опитвате да защитите данните. Освен това да ме познаваш не е достатъчно; трябва да потвърдите, че никой MITM атакуващ не е променил ключа, който смятате, че е мой. en.wikipedia.org/wiki/Key_signing_party   -  person SLaks    schedule 02.06.2013
comment
Фундаментално е невъзможно да ми изпратите сигурно данни, освен ако нямам някакъв извънлентов начин да проверя дали знаете кой се представяте. (напр. доверена трета страна) blogs.msdn.com/b/ericlippert/archive/2011/09/27/   -  person SLaks    schedule 02.06.2013
comment
^^ Беше много интересно четиво! Имаше идеален смисъл дори в 4 сутринта! Благодаря ти.   -  person Jonny Wilson    schedule 02.06.2013


Отговори (1)


Цялата работа с подписването на публичен ключ с частен ключ е полезна, когато имате специална двойка ключове, която използвате само за подписване, и след това други двойки ключове, които използвате за криптиране. Тази специална двойка ключове е вашата „доверена“ двойка ключове, за която по някакъв начин се знае, че е легитимно прикрепена към вас (често чрез подписване от сертифициращ орган или чрез подписване на много доверени хора, че са потвърдили връзката й с вас.)

Вие използвате този „доверен“ частен ключ, за да подпишете вашия не съвсем доверен публичен ключ. По този начин хората могат да деподпишат/дешифрират вашия нов публичен ключ с вашия доверен публичен ключ. Това е математически възможно само ако е подписано от вашия доверен частен ключ.

Този процес помага на хората да са сигурни, че този нов публичен ключ действително принадлежи на вас.

person Jeff Wolski    schedule 02.06.2013