Из доклада вы узнаете, как безопасно передавать данные между мобильным приложением и бэкендом. А также поймете, что SSL для этого недостаточно безопасен и до идеального решения нужно сделать ещё много шагов.
4. Ближе к реальности
Операционная система
4
Приложение
Мой
сервис
Логи и крэшдампы Чужой
Метрика
Карты
WebView
Хранилище сертификатов
Библиотека для SSL/TLS
сервис
Непонятное
облако
Чужой
сервис
Мой сайт
CA
http://lurkmore.to/Файл:Spherical_Derpy.png
5. Перечислим и задумаемся
5
1. Наше приложение
2. Наш сервис
3. Наш сайт
4. Сторонние сервисы и облака
5. Операционная система устройства
6. Летающий пони
7. Первые шаги
7
1. Только шифрование – только хардкор
2. (протокол) => (протокол)S
3. Никакой самодельной криптографии
8. Типичная ошибка
• Нет проверки сертификатов
NSMutableURLRequest *request = [self requestWithMethod:@"GET" p
ath:requestURL parameters:nil];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation al
loc] initWithRequest:request];
operation.allowsInvalidSSLCertificate = YES;
9. Кто может перехватить трафик?
9
iOS
http://support.apple.com/en-us/
ht5012
209 сертификатов всего
Ищем: “government”
Issuer: C=US, O=U.S.
Government, OU=DoD, OU=PKI,
CN=DoD CLASS 3 Root CA
China Information Center (?)
Android
http://kurrytran.blogspot.ru/
2013/05/how-to-get-root-certification.
html
Домашнее задание –
проверить, сколько
сертификатов и чьих в вашем
устройстве
10. Чуть дороже
10
1. Пининг сертификатов (в данном случае своего CA)
2. Использование стойких криптоалгоримов (никакого SSLv3,
стараемся использовать ECDSA)
11. Экстремальный вариант
11
1. Свой Intermediate CA
2. Несколько доверенных Intermediate CA с сертификатами на
всех нужных платформах
3. Возможность динамического изменения списка «запиненных»
4. Черные и белые списки
13. CA = Certificate Authority
13
• Для нас это тот, кто сделает нам сертификат
• А ещё тот, кто может его внезапно отозвать
• И тот, из-за кого может сломаться весь SSL
15. Требования к CA
15
1. Корневой сертификат на всех нужных устройствах
2. Короткая цепочка сертификатов
3. Современная криптография ECDSA
4. Возможность купить EV сертификат
17. Сервисы третьей стороны
17
• Если они уже работают по SSL – всё нормально
• Если нет, то что делать?
18. Решение
18
• Всегда есть альтернатива
• Существуют возможности для тонкой настройки
• Пишем сами?
19. Полезные ссылки iOS
19
• Начать можно отсюда: https://clck.ru/9NAav
• Теория и практика: https://clck.ru/9NAbB
• Список корневых сертификатов: https://clck.ru/9NAYz
• Пининг сертификатов: https://clck.ru/9NAbV
20. Полезные ссылки Android
20
• Как готовить SSL: https://clck.ru/9NAXy
• Пининг сертификатов: https://clck.ru/9NAY4
• Как извлечь список корневых сертификатов:
http://bit.ly/11P4NJa