Тропинка через минное поле — Леонычев Юрий
- 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 сертификат
- 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