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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline dima  
#1 Оставлено : 18 ноября 2010 г. 12:08:36(UTC)
dima

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

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

Здравствуйте.

Есть задача: из php (Linux) обращаться к soap-сервису (Windows) по гостовому https с авторизацией по клиентскому сертификату.

Клиент: Linux, CryptoPro CSP 3.6 R2.
Сервер: Windows 2003, IIS, CryptoPro CSP KC2 3.0.3293.

Решил на линуксе установить и настроить stunnel и работать через него. Вот конфиг:
Код:

; Certificate/key is needed in server mode and optional in client mode
cert = /tmp/test.cer

; Protocol version (all, SSLv2, SSLv3, TLSv1)
;sslVersion = SSLv3

; Some security enhancements for UNIX systems - comment them out on Win32
;chroot = /opt/cprocsp/var/lib/stunnel/
setuid = root
setgid = root
; PID is created inside chroot jail
pid = /var/opt/cprocsp/tmp/stunnel.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = rle

CAfile = /tmp/ca_cryptopro.cer

; Some debugging stuff useful for troubleshooting
debug = 7
output = /var/opt/cprocsp/tmp/stunnel.log

; Use it for client mode
client = yes

[https]
accept  = 192.168.170.177:9443
connect = test.pbki.ru:443
;connect = www.cryptopro.ru:9443
;TIMEOUTclose = 0

; vim:ft=dosini


Запустил stunnel. Страницы, не требующие клиентский сертификат, (просто гостовый https) работают, а страницы, которые требуют клиентский сертификат не открываются. stunnel.log:
Код:

2010.11.18 08:42:44 LOG5[14997:139957945534240]: stunnel 4.18 on x86_64-unknown-linux-gnu
2010.11.18 08:42:44 LOG5[14997:139957945534240]: Threading:PTHREAD Sockets:POLL,IPv4 Auth:LIBWRAP
2010.11.18 08:42:44 LOG6[14997:139957945534240]: file ulimit = 1024 (can be changed with 'ulimit -n')
2010.11.18 08:42:44 LOG6[14997:139957945534240]: poll() used - no FD_SETSIZE limit for file descriptors
2010.11.18 08:42:44 LOG5[14997:139957945534240]: 0 clients allowed
2010.11.18 08:42:44 LOG7[14997:139957945534240]: FD 5 in non-blocking mode
2010.11.18 08:42:44 LOG7[14997:139957945534240]: FD 7 in non-blocking mode
2010.11.18 08:42:44 LOG7[14997:139957945534240]: FD 8 in non-blocking mode
2010.11.18 08:42:44 LOG7[14997:139957945534240]: SO_REUSEADDR option set on accept socket
2010.11.18 08:42:44 LOG7[14997:139957945534240]: https bound to 192.168.170.177:9443
2010.11.18 08:42:44 LOG7[14998:139957945534240]: Created pid file /var/opt/cprocsp/tmp/stunnel.pid
2010.11.18 08:42:52 LOG7[14998:139957945534240]: https accepted FD=9 from 192.168.130.102:56828
2010.11.18 08:42:52 LOG7[14998:139957945530128]: client start
2010.11.18 08:42:52 LOG7[14998:139957945530128]: https started
2010.11.18 08:42:52 LOG7[14998:139957945530128]: FD 9 in non-blocking mode
2010.11.18 08:42:52 LOG7[14998:139957945530128]: TCP_NODELAY option set on local socket
2010.11.18 08:42:52 LOG7[14998:139957945530128]: FD 10 in non-blocking mode
2010.11.18 08:42:52 LOG7[14998:139957945530128]: FD 11 in non-blocking mode
2010.11.18 08:42:52 LOG7[14998:139957945530128]: Connection from 192.168.130.102:56828 permitted by libwrap
2010.11.18 08:42:52 LOG5[14998:139957945530128]: https connected from 192.168.130.102:56828
2010.11.18 08:42:52 LOG7[14998:139957945534240]: Cleaning up the signal pipe
2010.11.18 08:42:52 LOG6[14998:139957945534240]: Child process 15000 finished with code 0
2010.11.18 08:42:52 LOG7[14998:139957945530128]: FD 13 in non-blocking mode
2010.11.18 08:42:52 LOG7[14998:139957945530128]: https connecting
2010.11.18 08:42:52 LOG7[14998:139957945530128]: connect_wait: waiting 10 seconds
2010.11.18 08:42:52 LOG7[14998:139957945530128]: connect_wait: connected
2010.11.18 08:42:52 LOG7[14998:139957945530128]: Remote FD=13 initialized
2010.11.18 08:42:52 LOG7[14998:139957945530128]: TCP_NODELAY option set on remote socket
2010.11.18 08:42:52 LOG7[14998:139957945530128]: start SSPI connect
2010.11.18 08:42:52 LOG7[14998:139957945530128]: open file /tmp/test.cer with certificate
2010.11.18 08:42:52 LOG3[14998:139957945530128]: Credentials compleet
2010.11.18 08:42:52 LOG7[14998:139957945530128]: 96 bytes of handshake data sent
2010.11.18 08:42:52 LOG5[14998:139957945530128]: 987 bytes of handshake(in handshake loop) data received.
2010.11.18 08:42:52 LOG5[14998:139957945530128]: 210 bytes of handshake data sent
2010.11.18 08:42:52 LOG5[14998:139957945530128]: 31 bytes of handshake(in handshake loop) data received.
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Handshake was successful
2010.11.18 08:42:52 LOG5[14998:139957945530128]: PerformClientHandshake finish
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Server subject: E=dima@pbki.ru, C=RU, S=RT, L=Kazan, O=PBKI, OU=IT, CN=test.pbki.ru
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Server issuer: E=info@cryptopro.ru, C=RU, O=CRYPTO-PRO, CN=Test Center CRYPTO-PRO
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Protocol: TLS1
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Cipher: Gost 28147-89
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Cipher strength: 256
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Hash: Gost R 34.11-94
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Hash strength: 256
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Key exchange: 0xaa25
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Key exchange strength: 512
2010.11.18 08:42:52 LOG7[14998:139957945530128]: Handshake_done
2010.11.18 08:42:52 LOG7[14998:139957945530128]: add ssl read socket to pool
2010.11.18 08:42:52 LOG7[14998:139957945530128]: ssl_rd = 1, c->ssl_ptr = 0,c->sock_ptr=0,want_rd = 0
2010.11.18 08:42:52 LOG7[14998:139957945530128]: Enter pool section on transfer
2010.11.18 08:42:52 LOG7[14998:139957945530128]: data reciev from socket = 775
2010.11.18 08:42:52 LOG7[14998:139957945530128]: add ssl read socket to pool
2010.11.18 08:42:52 LOG7[14998:139957945530128]: ssl_rd = 1, c->ssl_ptr = 0,c->sock_ptr=775,want_rd = 0
2010.11.18 08:42:52 LOG7[14998:139957945530128]: Enter pool section on transfer
2010.11.18 08:42:52 LOG5[14998:139957945530128]: SSPI_write start
2010.11.18 08:42:52 LOG7[14998:139957945530128]: SSPI_write data is GET
2010.11.18 08:42:52 LOG7[14998:139957945530128]: send all data after encrypt
2010.11.18 08:42:52 LOG7[14998:139957945530128]: data send to ssl_socket =775
2010.11.18 08:42:52 LOG7[14998:139957945530128]: add ssl read socket to pool
2010.11.18 08:42:52 LOG7[14998:139957945530128]: ssl_rd = 1, c->ssl_ptr = 0,c->sock_ptr=0,want_rd = 0
2010.11.18 08:42:52 LOG7[14998:139957945530128]: Enter pool section on transfer
2010.11.18 08:42:52 LOG7[14998:139957945530128]: SSPI_read start
2010.11.18 08:42:52 LOG7[14998:139957945530128]: recv ok on SSPI_read err= 13
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Received 13 bytes from ssl socket
2010.11.18 08:42:52 LOG3[14998:139957945530128]: Couldn't decrypt, error 90321
2010.11.18 08:42:52 LOG3[14998:139957945530128]: error on SSPI_read
2010.11.18 08:42:52 LOG5[14998:139957945530128]: Connection reset: 775 bytes sent to SSL, 0 bytes sent to socket
2010.11.18 08:42:52 LOG7[14998:139957945530128]: free Buffers
2010.11.18 08:42:52 LOG7[14998:139957945530128]: delete c->hClientCreds
2010.11.18 08:42:52 LOG5[14998:139957945530128]: incomp_mess = 1, extra_data = 0
2010.11.18 08:42:52 LOG7[14998:139957945530128]: https finished (0 left) 


Сертификаты клиента и сервера выпущены тестовым УЦ КриптоПро. Корневые сертификаты установлены и на клинете и на сервере. На клиенте пробовал подписывать данные с помощью установленного клиентского сертификата - работает. На клиенте сертификаты установлены для root-а. Запускаю stunnel также под root-ом.
Перенес клиентский контейнер на свой рабочий компьютер (Windows Vista), https с авторизацией по сертификату работает.

Подскажите в чем может быть проблема?
Offline Татьяна  
#2 Оставлено : 27 декабря 2010 г. 16:01:03(UTC)
Татьяна

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

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

Поблагодарили: 40 раз в 37 постах
попробуйте подключиться к тому же серверу с двухсторонней аутентификацией при помощи утилиты csptest

csptestf -tlsc -server "адрес сервера" -user "CN сертификата пользователя" -v


что получаете?

Отредактировано пользователем 28 декабря 2010 г. 16:03:34(UTC)  | Причина: Не указана

Татьяна
ООО Крипто-Про
Offline Ахат  
#3 Оставлено : 18 февраля 2011 г. 19:19:09(UTC)
Ахат

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

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

Сказал(а) «Спасибо»: 5 раз
Тогда работает, вот что она выдала:

CSP (Type:71) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Linux CPU:AMD64 FastCode:NoHardwareSupport.
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6497 OS:Linux CPU:AMD64 FastCode:NoHardwareSupport.
./csptestf -tlsc -server test.pbki.ru -port 443 -file test/index.html -user сОНКМНЛНВЕММНЕ КХЖН айх -v

Client certificate:
Subject: E=dima@pbki.ru, C=RU, S=пр, L=йЮГЮМЭ, O=оайх, OU=-, CN=сОНКМНЛНВЕММНЕ КХЖН айх
Issuer : E=info@cryptopro.ru, C=RU, O=CRYPTO-PRO, CN=Test Center CRYPTO-PRO

5 algorithms supported:
[0] 1.2.643.2.2.21 (п⌠п·п║п╒ 28147-89)
[1] 1.2.643.2.2.3 (п⌠п·п║п╒ п═ 34.11/34.10-2001)
[2] 0x801f
[3] 1.2.643.2.2.20 (п⌠п·п║п╒ п═ 34.10-94)
[4] 1.2.643.2.2.19 (п⌠п·п║п╒ п═ 34.10-2001)
Cipher strengths: 256..256
Supported protocols: 0x80
ClientHello: RecordLayer: TLS, Len: 91
Cipher Suites: (00 80) (00 32) (01 31) (00 00)
96 bytes of handshake data sent
989 bytes of handshake data received
210 bytes of handshake data sent
31 bytes of handshake data received
Handshake was successful
SECPKG_ATTR_NAMES: C=RU, S=RT, L=Kazan, O=PBKI, OU=IT, CN=test.pbki.ru, E=dima@pbki.ru

Server certificate:
Subject: C=RU, S=RT, L=Kazan, O=PBKI, OU=IT, CN=test.pbki.ru, E=dima@pbki.ru
Issuer : E=info@cryptopro.ru, C=RU, O=CRYPTO-PRO, CN=Test Center CRYPTO-PRO

Protocol: TLS1
Cipher: 0x661e
Cipher strength: 256
Hash: 0x801e
Hash strength: 256
Key exchange: 0xaa25
Key exchange strength: 512

Header: 5, Trailer: 4, MaxMessage: 16379

HTTP request: GET /test/index.html HTTP/1.0
User-Agent: Webclient
Accept:*/*


Sending plaintext: 68 bytes
77 bytes of application data sent
13 bytes of (encrypted) application data received
An error occurred in running the program.
/dailybuilds/mybuild/CSP/samples/csptest/WebClient.c:2178:Can not open file for writing: test/index.html
Error number 0x80092004 (2148081668).
Cannot find object or property.
Decrypted data: 0 bytes
Server requested renegotiate!
100 bytes of handshake data sent
524 bytes of handshake data received
524 bytes of handshake data received
433 bytes of handshake data received
1026 bytes of handshake data sent
35 bytes of handshake data received
Handshake was successful
279 bytes of (encrypted) application data received
Reply status: HTTP/1.1 200 OK
An error occurred in running the program.
/dailybuilds/mybuild/CSP/samples/csptest/WebClient.c:2178:Can not open file for writing: test/index.html
Error number 0x0 (0).
Decrypted data: 270 bytes
No data in socket: OK if file is completely downloaded
Sending Close Notify
11 bytes of handshake data sent
1 connections, 270 bytes in 0.139 seconds;
Total:
[ErrorCode: 0x00000000]

Была ошибка 0x80092004: "Object or property not found" (но это, как понимаю, уже при попытке сохранить страницу).
Offline Татьяна  
#4 Оставлено : 21 февраля 2011 г. 15:13:59(UTC)
Татьяна

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

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

Поблагодарили: 40 раз в 37 постах
вообще по второму логу видно, что:
-был получен файл test/index.html
-его не смогли записать на диск, поскольку в текущей директории нет поддиректории test
-сервер запросил renegotiation
-после повторного установления соединения вместо
Цитата:

An error occurred in running the program.
/dailybuilds/mybuild/CSP/samples/csptest/WebClient.c:2178:Can not open file for writing: test/index.html
Error number 0x80092004 (2148081668).
Cannot find object or property.
Decrypted data: 0 bytes


получаем
Цитата:
An error occurred in running the program.
/dailybuilds/mybuild/CSP/samples/csptest/WebClient.c:2178:Can not open file for writing: test/index.html
Error number 0x0 (0).
Decrypted data: 270 bytes


то есть, на этот раз всё расшифровалось. В случае с stunnel всё ломается на renegotiate (оттуда убрана поддержка renegotiate из соображений безопасности). Ввиду особенностей работы iis это может быть пересмотрено -- скорее всего будет новая версия stunnel с renegotiate .
Татьяна
ООО Крипто-Про
Offline cross  
#5 Оставлено : 21 февраля 2011 г. 17:27:55(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
В свое время в связи с обнаружением уязвимости в некоторых способах использования протокола TLS(ссылка), поддержка renegotiate была убрана из stunnel. В скором времени верну обратно. Хотя это на самом деле тупняк IIS, просит второй раз сертификат клиента когда он уже был предоставлен в первый раз.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline dima  
#6 Оставлено : 22 февраля 2011 г. 11:31:22(UTC)
dima

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

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

cross написал:
В скором времени верну обратно.

Когда можно ждать stunnel с поддержкой renegotiate.
Offline Татьяна  
#7 Оставлено : 22 февраля 2011 г. 21:02:06(UTC)
Татьяна

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

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

Поблагодарили: 40 раз в 37 постах
Скорее всего, в конце этой недели или на следующей неделе.
Татьяна
ООО Крипто-Про
Offline MMax21  
#8 Оставлено : 28 февраля 2011 г. 10:48:59(UTC)
MMax21

Статус: Новичок

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

Татьяна написал:
Скорее всего, в конце этой недели или на следующей неделе.


Сроки изменились, судя по всему?
Offline cross  
#9 Оставлено : 2 марта 2011 г. 19:59:21(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Нет, не изменились.
Смотрите анонс.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.