Ответ
MITM-атака (Man-in-the-Middle, "человек посередине") — это тип кибератаки, при которой злоумышленник тайно перехватывает, а возможно, и изменяет обмен данными между двумя сторонами, которые считают, что общаются напрямую друг с другом.
Как это работает в мобильном контексте: Атакующий может разместиться в публичной Wi-Fi-сети и перенаправлять трафик приложения через свой сервер, расшифровывая его, если используется незащищённое соединение (HTTP).
Пример уязвимого кода (НЕ ДЕЛАЙТЕ ТАК):
// Использование HTTP делает данные открытыми для перехвата
let insecureURL = URL(string: "http://api.example.com/login")!
// Логин и пароль могут быть считаны атакующим
Методы защиты в iOS-приложениях:
- Всегда используйте HTTPS (TLS/SSL): Это базовое требование. Включите App Transport Security (ATS).
- Certificate Pinning (Закрепление сертификата): Привяжите приложение к конкретным сертификатам или публичным ключам вашего сервера, чтобы предотвратить использование поддельных сертификатов.
// Пример настройки URLSessionDelegate для проверки сертификата class PinningDelegate: NSObject, URLSessionDelegate { func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) { // Проверка соответствия ожидаемому сертификату // ... } } - Для критически важных операций используйте двухфакторную аутентификацию (2FA), которая усложнит атаку даже при перехвате пароля.