Как Safari (на iOS) решает, когда предоставлять сертификат клиента SSL

Я установил сертификат клиента SSL в версию Safari, которая поставляется с iOS 11.4.1. Очевидно, это позволяет мне получить доступ к защищенному сайту, как и ожидалось.

Существуют ли какие-либо конкретные проблемы с конфиденциальностью , которые могут возникнуть в результате этой установки? В частности, как Safari решает, когда предоставлять веб-сайтам такие сертификаты, как мой? В идеале я хотел бы иметь конфигурацию, в которой Safari привязывает сертификат к определенному сайту (или URL-адресу) и представляет сертификат (т. е. пытается выполнить аутентификацию с его помощью) только тогда, когда я посещаю этот сайт. Это возможно?

Ответы (2)

Safari (или любой другой веб-клиент) не предоставляет сертификат клиента, если только он не запрошен веб-сайтом. Так что ваш клиентский сертификат в безопасности. Сервер всегда запрашивает сертификат, отправляя свой собственный сертификат. Поэтому ваш браузер увидит, что сертификат не соответствует тому, который у вас есть, и приведет к сбою, если только сервер не отправит правильный сертификат, соответствующий вашему, в этом случае вы можете быть уверены, что находитесь на хорошем сайте.

Значит ли это, что клиент сначала проверяет сертификат сервера, и только если эта проверка проходит успешно, он представляет свой собственный сертификат (сертификаты)?
Да, клиент проверяет сертификат сервера, используя свой закрытый ключ, а затем представляет свой открытый ключ. Обратите внимание, что ваш открытый ключ является общедоступным: нет никаких проблем, если он просочился, в этом вся прелесть шифрования с открытым ключом. Если кто-то завладеет вашим открытым ключом, и это произойдет, как и предполагалось, они ничего не смогут с ним сделать, если у них нет закрытого ключа, который вы никогда не представляете, вы используете его только для локальной расшифровки.
Спасибо. Меня беспокоит конфиденциальность (сертификат клиента SSL может быть представлен на слишком широкой основе, например, «универсальный файл cookie»), а не криптография с открытым ключом как таковая. Если вы можете указать на документацию, в которой объясняется, при каких обстоятельствах Safari (версия для iOS) предоставляет какие сертификаты («профили») каким сайтам, я приму ваш ответ.

Этот принятый ответ неверен. Это относится к сертификатам сервера, а не сертификатам проверки подлинности клиента.

Ответ заключается в том, что Safari запрашивает вас, когда веб-сервер настроен на проверку подлинности сертификата.

В каждом браузере, который я видел, браузер не будет предлагать вам выбрать сертификат, если у него нет сертификатов, подписанных центром сертификации, которому доверяет сервер.

Он запрашивает на Mac, но не запрашивает на IOS, а выбирает первый установленный. И это раздражает, если у кого-то (например, у меня) несколько сертификатов.