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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline rfigurin  
#1 Оставлено : 19 сентября 2013 г. 12:28:17(UTC)
rfigurin

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.07.2013(UTC)
Сообщений: 42
Российская Федерация
Откуда: Нижний Новгород

Сказал(а) «Спасибо»: 2 раз
Здравствуйте.

Схема работы следующая - iOS приложение создает секьюр туннель (stunnel) с сервером (на сервере Trusted TLS).
Проблема в слишком большом времени обработки каждого запроса (от 12 секунд и больше).
В логах при каждом запросе мы видим подозрительное "зависание" на 10-11 секунд.
Запустил приложение в TimeProfile, вижу, что запуск stunnel занимает не более 1.5 секунд работы процессора.

Конфиг stunnel:
pid = /var/mobile/Applications/4C7D3B90-8286-4CD3-9D9E-CA573E05E713/Documents/../Library/stunnel.pid
socket = a:SO_REUSEADDR=1
foreground = yes
debug = 4
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
[lk3app]
client = yes
accept = localhost:9443
connect = 10.0.1.144:443
mutual_auth=yes
cert=/var/mobile/Applications/4C7D3B90-8286-4CD3-9D9E-CA573E05E713/Documents/client.cer
verify=2

Логи с iOS приложения:
2013.09.19 13:15:57 LOG5[39644:82022400]: stunnel 4.18 on arm-apple-darwin
2013.09.19 13:15:57 LOG5[39644:82022400]: Threading:PTHREAD Sockets:SELECT,IPv4
2013.09.19 13:15:57 LOG6[39644:82022400]: file ulimit = 256 (can be changed with 'ulimit -n')
2013.09.19 13:15:57 LOG6[39644:82022400]: FD_SETSIZE = 1024 (some systems allow to increase this value)
2013.09.19 13:15:57 LOG5[39644:82022400]: 0 clients allowed
2013.09.19 13:15:57 LOG7[39644:82022400]: FD 15 in non-blocking mode
2013.09.19 13:15:57 LOG7[39644:82022400]: FD 16 in non-blocking mode
2013.09.19 13:15:57 LOG7[39644:82022400]: FD 17 in non-blocking mode
2013.09.19 13:15:57 LOG7[39644:82022400]: SO_REUSEADDR option set on accept socket
2013.09.19 13:15:57 LOG7[39644:82022400]: lk3app bound to 127.0.0.1:9443
2013.09.19 13:15:57 LOG7[39644:82022400]: Created pid file /var/mobile/Applications/4C7D3B90-8286-4CD3-9D9E-CA573E05E713/Documents/../Library/stunnel.pid
2013.09.19 13:15:58 LOG7[39644:82022400]: lk3app accepted FD=25 from 127.0.0.1:57433
2013.09.19 13:15:58 LOG7[39644:803954688]: client start
2013.09.19 13:15:58 LOG7[39644:803954688]: lk3app started
2013.09.19 13:15:58 LOG7[39644:803954688]: FD 25 in non-blocking mode
2013.09.19 13:15:58 LOG7[39644:803954688]: TCP_NODELAY option set on local socket
2013.09.19 13:15:58 LOG5[39644:803954688]: lk3app connected from 127.0.0.1:57433
2013.09.19 13:15:58 LOG7[39644:803954688]: FD 32 in non-blocking mode
2013.09.19 13:15:58 LOG7[39644:803954688]: lk3app connecting
2013.09.19 13:15:58 LOG7[39644:803954688]: connect_wait: waiting 10 seconds
2013.09.19 13:15:58 LOG7[39644:803954688]: connect_wait: connected
2013.09.19 13:15:58 LOG7[39644:803954688]: Remote FD=32 initialized
2013.09.19 13:15:58 LOG7[39644:803954688]: TCP_NODELAY option set on remote socket
2013.09.19 13:15:58 LOG7[39644:803954688]: start SSPI connect
2013.09.19 13:15:58 LOG5[39644:803954688]: mutual auth in on. try to read the certificate
2013.09.19 13:15:58 LOG7[39644:803954688]: open file /var/mobile/Applications/4C7D3B90-8286-4CD3-9D9E-CA573E05E713/Documents/client.cer with certificate
2013.09.19 13:16:09 LOG3[39644:803954688]: Credentials complete
2013.09.19 13:16:09 LOG7[39644:803954688]: 126 bytes of handshake data sent
2013.09.19 13:16:17 LOG5[39644:803954688]: 1448 bytes of handshake(in handshake loop) data received.
2013.09.19 13:16:17 LOG5[39644:803954688]: 714 bytes of handshake(in handshake loop) data received.
2013.09.19 13:16:17 LOG5[39644:803954688]: 2190 bytes of handshake data sent
2013.09.19 13:16:19 LOG5[39644:803954688]: 31 bytes of handshake(in handshake loop) data received.
2013.09.19 13:16:19 LOG5[39644:803954688]: Handshake was successful
2013.09.19 13:16:19 LOG5[39644:803954688]: PerformClientHandshake finish
2013.09.19 13:16:19 LOG5[39644:803954688]: Server subject: CN=10.0.1.144, O=My Company, C=RU, E=test@test.ru
...

Лог с сервера:
[Thu Sep 19 13:12:56 2013][info] [client 10.0.1.77] Connection to child 6 established (server 10.0.1.144:443)
[Thu Sep 19 13:12:56 2013] [info] Seeding PRNG with 144 bytes of entropy
[Thu Sep 19 13:13:14 2013] [debug] ssl_engine_io.c(1907): OpenSSL: read 11/11 bytes from BIO#7fc1df01af60 [mem: 7fc1df01b050] (BIO dump follows)
[Thu Sep 19 13:13:14 2013] [debug] ssl_engine_io.c(1840): +-------------------------------------------------------------------------+
[Thu Sep 19 13:13:14 2013] [debug] ssl_engine_io.c(1879): | 0000: 16 03 01 00 79 01 00 00-75 03 01 ....y...u.. |
[Thu Sep 19 13:13:14 2013] [debug] ssl_engine_io.c(1885): +-------------------------------------------------------------------------+
[Thu Sep 19 13:13:14 2013] [debug] ssl_engine_io.c(1907): OpenSSL: read 115/115 bytes from BIO#7fc1df01af60 [mem: 7fc1df01b05b] (BIO dump follows)
[Thu Sep 19 13:13:14 2013] [debug] ssl_engine_io.c(1840): +-------------------------------------------------------------------------+
...

Вопрос - чем это вызвано и можно ли это время уменьшить?
Offline Татьяна  
#2 Оставлено : 18 октября 2013 г. 14:04:30(UTC)
Татьяна

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
По итогам переписки с пользователем выяснилось, что время тратилось на построение цепочки сертификатов -- в сертификате пользователя было много ссылок на корневой сертификат, точки распространения списка отзывов, адрес OCSP-службы и т.п.
При этом большинство адресов было не доступно(ссылки на внутренние ресурсы, которые не были доступны из интернета). Именно на обращения по этим адресам и выкачивание данных для построения цепочки и тратилось время.
Татьяна
ООО Крипто-Про
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.