Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Безопасность соединения

REDMADROBOT
September 11, 2018
5.4k

Безопасность соединения

REDMADROBOT

September 11, 2018
Tweet

Transcript

  1. 02

  2. 02

  3. 02

  4. 02

  5. 02

  6. 02

  7. 02

  8. - Открытый ключ для шифрования АСИММЕТРИЧНОЕ Шифрование 03 Вот каким

    ключом шифровали, таким и расшифровывайте! CИММЕТРИЧНОЕ
  9. - Открытый ключ для шифрования - Закрытый ключ для расшифровки

    АСИММЕТРИЧНОЕ Шифрование 03 Вот каким ключом шифровали, таким и расшифровывайте! CИММЕТРИЧНОЕ
  10. 04

  11. 04

  12. 04

  13. 04

  14. 04

  15. 05

  16. 05

  17. 05

  18. 06

  19. 06

  20. 06

  21. 07

  22. 07

  23. 07

  24. 07

  25. 07

  26. 07

  27. 07

  28. 07

  29. 11

  30. 11

  31. 19

  32. 19

  33. URLSession 21 func urlSession( _ session: URLSession, didReceive challenge: URLAuthenticationChallenge,

    completionHandler: @escaping (URLSession.AuthChallengeDisposition,URLCredential?) -> Void) { let serverTrust: SecTrust = challenge.protectionSpace.serverTrust ... completionHandler(.cancelAuthenticationChallenge, nil) }
  34. Alamofire 22 public static func certificates( in bundle: Bundle =

    Bundle.main) -> [SecCertificate] public static func publicKeys( in bundle: Bundle = Bundle.main) -> [SecKey] let serverTrustPolicy = ServerTrustPolicy.pinCertificates( certificates: ServerTrustPolicy.certificates(), validateCertificateChain: true, validateHost: true)
  35. - fingerprint - открытый ключ Виды пиннинга 24 на какой

    сертификат пиннимся на что пиннимся в сертификате
  36. Пиннинг - Плюсы: - перевыпуск сертификата - отказ от цепочки

    доверия - можно перейти к другому CA - Минусы: - дольше храним/не меняем ключ 27 на открытый ключ конечного сертификата
  37. Итог - Декабристы, TLS и цепочка доверия - MITM over

    TLS - SSL Pinning - Когда и как пинниться 28