<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Что такое SSL Pinning и зачем он нужен?

Что такое SSL Pinning и зачем он нужен?

SSL Pinning — это техника безопасности, используемая в мобильных и веб-приложениях для усиления защиты от атак типа "Man-in-the-Middle" (MitM). Она позволяет убедиться, что клиент (например, мобильное приложение) устанавливает соединение только с доверенным сервером, даже если злоумышленник попытается подделать сертификат через поддельный прокси или скомпрометированный сертификат.

Как работает HTTPS без SSL Pinning

Когда клиент устанавливает HTTPS-соединение, происходит стандартная проверка SSL-сертификата сервера. Эта проверка включает:

  • Проверку, что сертификат выдан доверенным центром сертификации (CA);
  • Сравнение доменного имени в сертификате с фактическим адресом;
  • Проверку срока действия сертификата.

Однако система доверия к CA может быть уязвимой. Если злоумышленник сможет добавить собственный CA в систему (например, на скомпрометированном устройстве), он может выдать поддельный, но «доверенный» сертификат и перехватывать трафик.

Что делает SSL Pinning

SSL Pinning добавляет дополнительный уровень проверки: клиент «прикрепляет» (pin) конкретный сертификат или публичный ключ сервера, с которым он должен работать. При попытке подключения к серверу клиент сравнивает полученный сертификат с ранее сохранённым (ожидаемым). Если они не совпадают — соединение отклоняется, даже если сертификат в целом валиден по стандартным правилам HTTPS.

Варианты реализации

Существует два основных подхода к SSL Pinning:

1. Pinning сертификата

Приложение сохраняет сам SSL-сертификат сервера. При подключении сравнивает полученный сертификат с сохранённым.

  • Плюсы: Просто реализовать.
  • Минусы: Требует обновления приложения при обновлении сертификата.

2. Pinning публичного ключа

Сохраняется не весь сертификат, а его публичный ключ.

  • Плюсы: Публичный ключ может не меняться даже при обновлении сертификата (например, при переиздании от того же CA).
  • Минусы: Реализация сложнее, требует вычисления хэшей ключей.

Примеры

На Android (Java / Kotlin)

CertificatePinner certificatePinner = new CertificatePinner.Builder()
    .add("example.com", "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")
    .build();

OkHttpClient client = new OkHttpClient.Builder()
    .certificatePinner(certificatePinner)
    .build();

На iOS (Swift)

// URLSessionDelegate метод
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge,
                completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    // Получить серверный сертификат и сравнить с локально сохранённым
}

Преимущества

  • Защита от поддельных сертификатов и MitM-атак;
  • Повышение доверия к соединениям в средах с потенциально скомпрометированными устройствами.

Недостатки

  • Неудобство при обновлении сертификатов: любое изменение требует выпуска новой версии приложения (если пинning реализован жёстко);
  • Возможные проблемы с производительностью и сложностью поддержки;
  • При ошибочной реализации можно заблокировать доступ к собственному серверу.

Лучшие практики

  • Используйте pinning публичного ключа, а не всего сертификата;
  • Храните несколько «пинов» (основной + резервные), чтобы облегчить обновление сертификатов;
  • Устанавливайте разумные сроки жизни сертификатов;
  • Реализуйте механизмы отката/обновления на клиенте (если возможно).

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

Эта мера не заменяет HTTPS, но делает его гораздо более устойчивым к целому классу атак.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.