Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Schmopsel  
#1 Оставлено : 21 августа 2017 г. 9:48:50(UTC)
Schmopsel

Статус: Участник

Группы: Участники
Зарегистрирован: 09.06.2017(UTC)
Сообщений: 19

Здравствуйте!
При реализации авторизации по сертификату столкнулись с проблемой, что на сервер отправляется список cipher suites не содержащий КриптоПрошные. Сервер в hello возвращает сертификат КриптоПро, но из-за неверного cipher suite TLS соединение не удается. Нужно как-то в настройках соединения (используется AFNetworking 3.x) указать соответствующие настройки провайдера или что-то в этом роде.
Спасибо!
Offline Schmopsel  
#2 Оставлено : 22 августа 2017 г. 13:34:03(UTC)
Schmopsel

Статус: Участник

Группы: Участники
Зарегистрирован: 09.06.2017(UTC)
Сообщений: 19

Через nmap просканировал сервер, вот какие cipher suites доступны:
TLSv1.2:
| ciphers:
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA - unknown
| TLS_DH_RSA_WITH_AES_128_CBC_SHA - unknown
| TLS_GOSTR341001_WITH_28147_CNT_IMIT-draft - unknown
| compressors:
| NULL
| cipher preference: client

Интересует последний, ГОСТовский. Во фреймворке, в WinCryptEx.h нашел

// Macro to check for a special ALG_ID used in CRYPT_OID_INFO
#define TLS_CIPHER_2001_SUITE_NAME L"TLS_GOSTR341001_WITH_28147_CNT_IMIT"

Но где и как это используется не пойму.
Offline Schmopsel  
#3 Оставлено : 22 августа 2017 г. 14:26:18(UTC)
Schmopsel

Статус: Участник

Группы: Участники
Зарегистрирован: 09.06.2017(UTC)
Сообщений: 19

Я подключаюсь таким образом, в своем классе AFURLSessionManager

Прикладываю сертификат из хранилища root.sto, получаю его из панели PaneViewController.

NSSet *certificatesSet = [CryptoProCSP sharedInstance].certsContextSet;
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey withPinnedCertificates:certificatesSet];
securityPolicy.allowInvalidCertificates = true;
securityPolicy.validatesDomainName = false;
self.securityPolicy = securityPolicy;

И получаю такую ошибку:

[] nw_coretls_read_one_record tls_handshake_process: [-9801]
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)
Error Domain=NSURLErrorDomain Code=-1200 "Произошла ошибка SSL. Безопасное подключение к серверу невозможно."

Посмотрев хэндшейк обнаружил, что в моем hello нет нужного cipher cuite. Как сделать чтобы был?
Offline Schmopsel  
#4 Оставлено : 25 августа 2017 г. 11:32:56(UTC)
Schmopsel

Статус: Участник

Группы: Участники
Зарегистрирован: 09.06.2017(UTC)
Сообщений: 19

Что, никто не может сказать, как сделать TLS соединение к серверу, на котором стоит сертификат КриптоПро?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.