Как работят клиентските сертификати?

Работя с доставчик на REST услуги и те искат да използвам клиентски сертификат, предоставен от тях, когато правя HTTP повикване.

Как клиентският сертификат постига удостоверяване?
Ако някой има копие на клиентския сертификат, той също може да бъде удостоверен, нали?
Клиентският сертификат предлага ли нещо друго освен удостоверяване?
Как се различават от удостоверяване на потребителско име/парола?


person Suneel    schedule 08.05.2014    source източник


Отговори (1)


Как клиентският сертификат постига удостоверяване?

Като е подписан от някой, на когото партньорът се доверява (включително самоподписване), или е подписан от някой, на когото има доверие от някой, на когото партньорът има доверие, и т.н.

Ако някой има копие на клиентския сертификат, той също може да бъде удостоверен, нали?

погрешно Те също ще имат нужда от частния ключ.

Клиентският сертификат предлага ли нещо друго освен удостоверяване?

No.

Как се различават от удостоверяването с потребителско име/парола?

Много по-сигурно. Не е възможно отгатване на парола.

Въпреки това Няма такова нещо като „клиентски сертификат, предоставен от тях“. Процесът на генериране на клиентски сертификат започва от вас. Вие генерирате двойка ключове и заявка за подписване на сертификат (CSR) и ги подписвате от CA. Или генерирате самоподписан сертификат. След това Вие предоставяте вашият сертификат на тях. Ако те предлагат да изпълните всички тези стъпки и да ви предостави получената двойка ключове и сертификат, те не знаят какво говорят и трябва да бъдат строго наказани за нарушения на сигурността. Частният ключ е частен само ако никой друг няма копие.

person user207421    schedule 08.05.2014
comment
Благодаря. Как сървърът удостоверява клиента, след като клиентът даде публичния ключ чрез сертификата? С други думи, за какво се използва частният ключ на клиентския сертификат? - person Suneel; 09.05.2014
comment
Клиентът предоставя не само своя сертификат, но и цифров подпис върху сертификата (и някои други неща), подписан от неговия личен ключ. Сървърът проверява това с публичния ключ. Това доказва, че клиентът притежава този сертификат, но само ако никой друг няма или е имал достъп до частния ключ. Ето защо „осигурено от тях“ е напълно и напълно невалидно и несигурно. Те не могат да генерират сертификат без частен ключ и ако генерират частния ключ, той не е частен. - person user207421; 09.05.2014
comment
SSL сертификатът не е много по-различен от потребителско име/парола. И двамата са просто неща, които знаете и които никой друг не трябва да знае. SSL сертификатът в основата си е просто асиметрична двойка ключове (публичен/частен ключ); може да се познае с груба сила точно като двойка потребителско име/парола. - person Granger; 19.02.2015
comment
@Granger Има големи разлики. SSL сертификатът не е тайна и сертификатът, подписан от някой друг, също носи потвърждение на вашата самоличност от някой друг. - person user207421; 13.08.2015
comment
@EJP - Считам, че концепцията за SSL сертификат включва частния ключ (напр. .pfx срещу .cer). Що се отнася до проблема със самоличността, всичко в сигурността зависи от доверието, включено в този първоначален обмен, независимо дали се използва симетрично или асиметрично криптиране. И както всеки друг таен номер в компютрите, те могат да бъдат атакувани с груба сила. Асиметричните ключове са по-дълги от симетричните, защото са по-лесни за кракване (напр. 2048 срещу 128). И двете имат своето място и са много полезни. - person Granger; 14.08.2015
comment
@Granger Можете да прецените каквото искате, но SSL сертификатът, който се изпраща от сървър към клиент, не съдържа частния ключ. - person user207421; 03.09.2015