Проверьте свойства SSL ASIHTTPRequest - PullRequest
1 голос
/ 05 января 2011

Меня спросили, могу ли я проверить некоторые свойства SSL-сертификата во время соединения для улучшения производительности.

Пожалуйста, смотрите прикрепленное изображение с сайта PayPal:

enter image description here

есть ли способ прочитать эти значения? Если я могу получить их, просматривая сеть с помощью своего браузера, могу ли я прочитать их, подключившись к серверу с помощью NSURLConnection, NSData или (что наиболее важно) ASIHTTPRequest?

Конечно, сертификат, над которым я работаю, действителен, но не подписан / недоверен. Улучшает ли этот вид проверки безопасность приложения?

Ответы [ 2 ]

1 голос
/ 17 декабря 2013

Для ASIHTTPRequest ответом будет нет.

Для NSNURLConnection эти значения можно прочитать, используя

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge

Мой ответ на аналогичный вопрос вы можете увидеть здесь: ASIHTTPRequest получить сертификат сервера

Этот вид техники называется SSL Pinning. Это делает SSL-соединение сильнее. Вы можете прочитать больше здесь: https://www.isecpartners.com/blog/2013/february/ssl-pinning-on-ios.aspx

0 голосов
/ 05 января 2011

Если ваша цель - повысить производительность, вы хотите приступить к проверке сертификатов ДО того, как рукопожатие SSL будет завершено.Согласование симметричного ключа для соединения является вычислительно дорогой частью установления соединения.

Вы можете проверить практически все в сертификате ПОСЛЕ установления SSL-соединения.Хитрость с точки зрения производительности заключается в переходе в состояние, в котором вы можете сбросить соединение ДО того, как рукопожатие будет завершено.

У меня есть две мысли: 1 - посмотреть, какие библиотеки SSL вы можете использовать на своем сервере, и какие ограниченияони позволят вам сделать.Обычно библиотеки SSL позволяют:

  • ограничивать подключение к доверенным сертификатам
  • проверять текущую действительность

Некоторые библиотеки более высокого уровня также позволяют вам делатьпроверка OCSP или проверка CRL для проверки текущего статуса.

Большинство библиотек позволят вам подключиться и написать свою собственную проверку - но вам нужно действительно покопаться в деталях и выяснить, позволяет ли вам сделать проверку до илипосле того, как соединение установлено.

2 - Еще один способ улучшить производительность SSL - настроить серверы так, чтобы они повторно использовали общие ключи из предыдущих сеансов.Это исключает стоимость установки, когда те же две точки восстанавливают соединение.Если у вас нет безопасного хранилища, это подвергнет вашу систему риску.Но это может быть приемлемой сделкой, если вы правильно защитите хранилище ключей.

Это во многом зависит от вашей среды - № 2 не является выигрышем в среде с МНОГО соединений - вы не сможетечтобы утилизировать соединения достаточно, чтобы оправдать хранение информации.

...