Certificate и public key pinning: когда нужен и чем опасен?
Суть
Обычная проверка TLS доверяет любому сертификату, который выдан доверенным удостоверяющим центром (УЦ) на нужное имя. Пиннинг сужает доверие: приложение принимает только заранее известный сертификат или публичный ключ. Он защищает от MITM, когда атакующий может выпустить «настоящий» с точки зрения системы сертификат: через скомпрометированный УЦ, корпоративный прокси или корневой сертификат, который пользователя уговорили установить.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep