<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

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

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

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

Подпишитесь на мой канал на 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):

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