× Функционирование и эксплуатация Государственной интегрированной информационной системы управления общественными финансами "Электронный бюджет" (ГИИС ЭБ).

401 Ошибка авторизации

23 июль 2018 08:26 #8058 от Blaze
Blaze ответил в теме 401 Ошибка авторизации

openssl 1.0 и выше с модулем гост...

Где такой ГОСТ модуль можно раздобыть?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

23 июль 2018 10:02 - 23 июль 2018 10:25 #8060 от two_oceans
two_oceans ответил в теме 401 Ошибка авторизации

Alex_04 пишет: Тест КК в КриптоПро на рабочей флешке пользователя и на флешке, куда восстановили исходный КК из его резервной копии, проходит на "ура" - значит с ним всё в поряде.

Это "обычный" тест, хорошо бы расширенным из тех тем криптопро погонять.

Alex_04 пишет: Что можно сделать с Континентом TLS - ?

Это может выясниться если узнаем суть проблемы.

Alex_04 пишет: Нормально ли в джинне - как узнать, коль до него дело не доходит?

То есть у само джинна функции проверки нет, только через сайт. Как я и опасался - пока пропускаем шаг.

Alex_04 пишет: Не совсем понял мысль - поясните, плиз.

Мысль в том, чтобы использовать другую программу для теста подключится ли к серверу ЭБ через нее или нет. Если подключится и 401 не будет, будет "200 ОК", то виноват Континент. Если не подключится или будет другая ошибка, то надо смотреть дальше в чем загвоздка.
ВНИМАНИЕ: Спойлер!
Если не хотите возиться с настройкой openssl, то аналогичный функционал есть в консольной утилите csptest (в комплекте поставки криптопро 4.0, у меня нашлась в папке C:\Program Files\Crypto Pro\CSP), в ней можно сделать много чего, в том числе сымитировать SSL/TLS сервер и SSL/TLS клиент. Если нужно для анализа сохранить полученные файлы безопаснее скопировать утилиту в другую папку, например, в папку профиля пользователя, путь к который в командной строке без админских прав указан сразу. В простейшем виде команда для подключения к серверу вроде
csptest -tlsc -server zakupki.gov.ru -file auth/secure -v
, но можно менять порт, сертификат, протокол, пин-код, не сохранять полученный файл и т.д. В выводе можно увидеть в том числе и код ответа HTTP "Reply status:" будет он 401 * или 200 OK или 403 Forbidden. Для примера взят адрес zakupki.gov.ru/auth/secure, на котором ЕИС запрашивает сертификат и показывает выбор полномочия организации (как выясняется из вывода csptest сначала предлагается негостовское соединение и TLS 1.0, если установилось, то renegotiate переговоры с запросом гост-сертификата и TLS 1.2). У меня нет подходящего доступе к ЭБ, чтобы посмотреть адрес на котором 401 при соединении через континент. В значение после -file нужно поставить тот адрес на котором выходит ошибка (после 127.0.0.1:8080/ первая наклонная черта пропускается), а в значение после -server тот адрес, на который континент подключается. После -user и -cert можно указать отпечатки (из свойств сертификата копируем, вставляем в консоль и убираем лишние пробелы) сертификатов для первого и второго подключения, если сертификат не указан, то первое подключение будет без клиентского сертификата, а при втором будут перебраны первые 3 попавшихся сертификата из хранилища Личные.

Blaze пишет:

openssl 1.0 и выше с модулем гост...

Где такой ГОСТ модуль можно раздобыть?

У меня есть сборка 1.0.2h с двумя такими модулями (один в комплекте был, второй от криптопро), ГОСТ-2001 поддерживают. от криптопро gost_capi для 2001, gostengy для 2012 ссылка на саму свежую библиотеку в конце второго сообщения темы и на последних страницах. примерно вот С 1.1 и ГОСТ-2012 пока руки не дошли разобраться.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

23 июль 2018 16:55 #8066 от Blaze
Blaze ответил в теме 401 Ошибка авторизации
two_oceans, спасибо за информацию.
Решил у себя подружить "подружить" gost_capi с OpenSSL в Linux-е.
Увы, ничего из этого не вышло. Написал в той же теме КриптоПро см. здесь

Но больше всего меня радует это:

Какие версии TLS поддерживаются?

TLS 1.0 (при использовании нашей версии OpenSSL можно использовать до TLS 1.2 включительно)

Очередные грабли, теперь уже от КриптоПро.
OpenSSL важная библиотека в ОС, а захочешь ГОСТ шифрование, нужно собирать OpenSSL пакет из их репозитория github.com/deemru/openssl
Иначе максимум TLS 1.0 по госту будет работать. Гениально :huh:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

24 июль 2018 02:08 - 24 июль 2018 02:35 #8067 от two_oceans
two_oceans ответил в теме 401 Ошибка авторизации

Blaze пишет: Решил у себя подружить "подружить" gost_capi с OpenSSL в Linux-е

ВНИМАНИЕ: Спойлер!
Итого: в любом случае Linux ов много и не факт что версия openssl именно "стандартная", лучше бы использовать gostengy и на практике проверить есть ли поддержка гост TLS 1.2, а то может быть все действительно гениально и просто работает без всяких пересборок из криптопрошного репозитория.
Спасибо сказали: Blaze

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

24 июль 2018 20:02 - 24 июль 2018 20:12 #8074 от Blaze
Blaze ответил в теме 401 Ошибка авторизации

two_oceans пишет: Итого: в любом случае Linux ов много и не факт что версия openssl именно "стандартная", лучше бы использовать gostengy и на практике проверить есть ли поддержка гост TLS 1.2, а то может быть все действительно гениально и просто работает без всяких пересборок из криптопрошного репозитория.

У меня openssl стандартный 100% - это же Slackware чистой воды.
О результате загрузки модуля gostengy написал здесь
Вопрос продублирую, так как возможно Вы знаете ответ.
# openssl engine
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 174535 $)
Библиотека gostengy погрузилась и можно-ли это считать успехом (теперь я могу использовать любой браузер с ГОСТ шифрованием)?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

25 июль 2018 02:28 - 25 июль 2018 03:35 #8076 от two_oceans
two_oceans ответил в теме 401 Ошибка авторизации

Blaze пишет: У меня openssl стандартный 100% - это же Slackware чистой воды.

Скорее всего так, но как обычно "есть нюансы". Вроде того, кто, когда, с какими опциями и каким компилятором собирал. Заранее все детали учесть сложно.

Blaze пишет: Библиотека gostengy погрузилась и можно-ли это считать успехом

Определенно успех по сравнению с gost_capi. Не факт, что динамический модуль будет активен постоянно, но обычно срабатывает (если команда позволяет, перестраховываюсь и указываю). Список можно отфильтровать
openssl ciphers | tr ":" "\n" | grep -i gost
для Linux или
openssl ciphers -v | findstr "GOST"
для Windows. У меня (под Windows, сборки openssl 1.0.2h/1.1.0 не криптопрошные) с gost_capi 2016 года в списке шифров присутствуют GOST94-GOST89-GOST89 и GOST2001-GOST89-GOST89 (помечены как SSLv3), с gost_capi из вчерашнего ответа только GOST2001-GOST89-GOST89. Проверил с gostengy, есть GOST2001-GOST89-GOST89 и GOST2012-GOST8912-GOST8912 (помечены TLSv1) между DHE-PSK-AES256-CDC-SHA и AES256-SHA. То есть раз в списке госта нет, успех видимо неполный.

Blaze пишет: теперь я могу использовать любой браузер с ГОСТ шифрованием?

Затрудняюсь ответить, так как подробно не изучал поведение браузеров в Linux. Если браузеры используют системные библиотеки openssl и единый файл конфигурации, то по идее да.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

25 июль 2018 10:26 #8084 от Blaze
Blaze ответил в теме 401 Ошибка авторизации
Исход такой - требуется собрать openssl из их репозитория github.com/deemru/openssl
Как будет время, попробую заняться этим вопросом.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

26 июль 2018 06:45 #8101 от two_oceans
two_oceans ответил в теме 401 Ошибка авторизации
Печально. Тогда что-то мне непонятно откуда у меня взялась версия openssl на которой gostengy добавляет шифр. По маркировке 1.1.0.0 то есть 1.1.0 без литер (неужели криптопрошная сборка без подписи криптопро). Насколько помню, собирать из исходника я бросил где-то на полпути, когда по их рекомендациям надо было скачать полгига утилит для сборки исходников Си.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

26 июль 2018 08:40 #8103 от Blaze
Blaze ответил в теме 401 Ошибка авторизации
two_oceans, для каждого Linux дистрибутива нужно собирать вручную пакеты.

Если вы используете официальный OpenSSL, то в него закралась ошибка с инициализацией списка шифров, подробнее здесь: www.cryptopro.ru/forum2/default.aspx?g=posts&m=92961#post92961

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

26 июль 2018 10:11 - 26 июль 2018 10:24 #8104 от two_oceans
two_oceans ответил в теме 401 Ошибка авторизации
В курсе, лет надцать назад пробовал собрать драйвер звуковой карты под LInux и вышел облом из-за отсутствия исходников операционки в дистрибутиве. Выше упомянул что бросил собирать openssl и это было под Windows, а не под Linux и где-то скачал бинарные файлы. Судя по описанию, тексту проблемы в цитате по ссылке скачанная версия или криптопрошная или уже патченная или версия до того самого коммита. Скорее последнее.
ВНИМАНИЕ: Спойлер!
С другой стороны, под Linux изначально есть компилятор Си. Однако и под nix-based операционками есть удобные системы распространения пакетов как у дебиан. Там в принципе надо только репозиторий добавить/сменить если чего-то нет в официальном и не волноваться бинарники скачает или исходники скомпилирует. Просто команда с консоли и пакет стоит, подгружены зависимости и зачищено лишнее, намного лучше чем в Windows.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

27 июль 2018 10:20 - 27 июль 2018 10:55 #8116 от Blaze
Blaze ответил в теме 401 Ошибка авторизации
Собрал openssl под гост.
root@porteus:~# openssl engine
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 174535 $)
root@porteus:~# openssl ciphers | tr ":" "\n" | grep -i gost
GOST2012-GOST8912-GOST8912
GOST2001-GOST89-GOST89
root@porteus:~# openssl version -a
OpenSSL 1.1.0h  27 Mar 2018
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  bn(64,64) md2(char) rc4(16x,int) des(int) blowfish(ptr) 
compiler: gcc -DZLIB -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/etc/ssl\"" -DENGINESDIR="\"/usr/lib64/engines-1.1\""  -Wa,--noexecstack
OPENSSLDIR: "/etc/ssl"
ENGINESDIR: "/usr/lib64/engines-1.1"
root@porteus:~#
Как время будет, протестирую сайт госзакупок в браузере Спутник =)

Update. Единственное что корректно открылось это ФЗС. Однако после выбора личного сертификата выдало ошибку.
Ссылка на скриншоты dropmefiles.com/VQBCM
Скриншоты с выбором сертификата удалил - лень замазывать данные.

Nmap при этом выдает следующее:
nmap --script ssl-enum-ciphers -p 443 zakupki.gov.ru
Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-27 13:54 Local time zone must be set--see zic manual page
Nmap scan report for zakupki.gov.ru (31.173.38.227)
Host is up (0.017s latency).

PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers: 
|   SSLv3: 
|     ciphers: 
|       TLS_GOSTR341001_WITH_28147_CNT_IMIT-draft - unknown
|     compressors: 
|       NULL
|     cipher preference: indeterminate
|     cipher preference error: Too few ciphers supported
|   TLSv1.0: 
|     ciphers: 
|       TLS_GOSTR341001_WITH_28147_CNT_IMIT-draft - unknown
|     compressors: 
|       NULL
|     cipher preference: indeterminate
|     cipher preference error: Too few ciphers supported
|   TLSv1.1: 
|     ciphers: 
|       TLS_GOSTR341001_WITH_28147_CNT_IMIT-draft - unknown
|     compressors: 
|       NULL
|     cipher preference: indeterminate
|     cipher preference error: Too few ciphers supported
|_  least strength: unknown

Nmap done: 1 IP address (1 host up) scanned in 0.76 seconds

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

27 июль 2018 16:52 - 27 июль 2018 18:42 #8120 от Blaze
Blaze ответил в теме 401 Ошибка авторизации
Кстати, по этому вопросу я писал в теме zakupki.gov.ru/forum/posts/list/454701.page (требуется регистрация)

Глянул логи браузера Спутник и увидел следующие ошибки:
ERROR:ssl_client_socket_impl.cc(1314)] trying to load gostssl lib libgostssl.so
ERROR:ssl_client_socket_impl.cc(1319)] ok when trying to load gostssl lib
ERROR:ssl_client_socket_impl.cc(1142)] handshake failed; returned -1, SSL error code 1, net_error -3072
ERROR:ssl_client_socket_impl.cc(1142)] handshake failed; returned -1, SSL error code 1, net_error -3072
ERROR:ssl_client_socket_impl.cc(1142)] handshake failed; returned -1, SSL error code 1, net_error -2
ERROR:ssl_client_socket_impl.cc(1142)] handshake failed; returned -1, SSL error code 1, net_error -2
в /opt/sputnik-browser/ лежит библиотека libgostssl.so но она не подгружается, хотя я ее добавил в загрузку принудительно.

Написал в поддержку Спутник браузера corp.sputnik.ru/browser/feedback
ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

27 июль 2018 19:02 - 27 июль 2018 19:47 #8122 от Wmffre
Wmffre ответил в теме 401 Ошибка авторизации

Wmffre пишет: В моём казначействе такая ошибка

401 Ошибка авторизации 
Описание: 
         Ошибка установления защищенного канала по протоколу TLS 
Техническое описание: 
         TCP соединение разорвано (TLS:1321, TLS:1179, TLS:258, TLS:309)
встретилась у одного сотрудника...

По этому поводу зарегистрировал проблему...
После представления затребованной информации проблему перевели в статус "Ожидание" с комментарием, что информация о проблеме передана вендору.

Устали ждать, поэтому пользователю пересоздали ЭЦП, с новосозданной он нормально зашел в ЭБ. Но при этом обращение не стали закрывать. И вот обращение было закрыто с комментарием приблизительно следующего содержания:

Для устранения проблемы необходимо обновить Континент TLS Клиент до версии 2.0. Для её получения необходимо обращаться в региональный отдел РСиБИ.

Только вот сотрудники отдела РСиБИ пока не в курсе, что у них есть Континент TLS Клиент версии 2.0 для выдачи. На FTP (Общероссийском) в локалке выложили дистрибутив (неполный, только инстоллятор и минимум документации) Континент_TLS_VPN_клиент_2.0.984. Пробовал его устанавливать в виртуалке (входить не пробовал, так как ЭЦП у меня нет) - там демо-период 14 дней, после которых необходимо запрашивать лицензию через интернет, либо лицензировать через файл ключа, а в противном случае, как написано в инструкции, работать Континент TLS Клиент через 14 дней перестанет.

Из документации (Release Notes) к версии Континент_TLS_VPN_клиент_2.0.984 системные требования к операционной системе:

Windows 10 (кроме выпуска Home Edition);
Windows 8.1;
Windows 7 SP1 (кроме выпусков Starter и Home Edition)

Устанавливать я попробавал сразу на Windows XP, установилось без ошибок, а как там в личном кабинете - не знаю, так как нет ЭЦП.
Там ещё есть занимательная фраза:

Перед установкой ПО TLS-клиент должны быть установлены последние обновления ОС Windows.

В TLS Client - User Guide эта информация подана так:

Внимание! До начала инсталляции ПО TLS-клиента должны быть установлены последние обновления ОС Windows. Иначе в процессе установки TLS-клиента появится сообщение об ошибке и инсталляция будет прервана.

Windows XP SP3 в моей виртуалке был полностью обновлен, так что ошибок при инсталляции не было:)
Дальше интересное из Release Notes:

22. Если на компьютере используется UEFI с возможностью включения/отключения опции безопасной загрузки (Secure Boot), перед установкой TLS-клиента данную опцию необходимо отключить. В противном случае установка TLS-клиента завершится с ошибкой.

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

Auto screen capture + mencoder - бесплатные(GPL) программы для создания видео действий пользователя для техподдержки.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

30 июль 2018 04:43 - 30 июль 2018 05:17 #8126 от two_oceans
two_oceans ответил в теме 401 Ошибка авторизации

Blaze пишет: Кстати, по этому вопросу я писал в теме zakupki.gov.ru/forum/posts/list/454701.page (требуется регистрация)

Что-то вообще не открывается тема. Зарегистрировался, вошел, перешел снова и все равно на оглавление перенаправляет.
ВНИМАНИЕ: Спойлер!

Blaze пишет: в /opt/sputnik-browser/ лежит библиотека libgostssl.so но она не подгружается, хотя я ее добавил в загрузку принудительно.

Ну вот про это я и говорил "если браузер использует системную openssl и единый файл настроек". По названию очень похоже, что это аналог libssl от Спутника. По логу она загружается успешно, но не работает.
ВНИМАНИЕ: Спойлер!

Для устранения проблемы необходимо обновить Континент TLS Клиент до версии 2.0.

То есть вариант "Сделать что-то с континентом" тоже может решить проблему? Хорошо бы это проверить.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

30 июль 2018 08:16 - 30 июль 2018 08:17 #8130 от Blaze
Blaze ответил в теме 401 Ошибка авторизации
two_oceans, достаточно очистить кэш в браузере и страница откроется zakupki.gov.ru/forum/posts/list/454701.page
Это же федеральный форум, что еще от него ожидать )))
Если, что продублировал (немного подкоректировал) данный материал в сообщении www.cryptopro.ru/forum2/default.aspx?g=posts&m=93759#post93759

Про Яндекс диск и облако mail.ru согласен. Просто нехотелось забивать этим место.
Перезалил сюда file.sampo.ru/5z64zg/

Сделал символическую ссылку ln -s /lib64/libssl.so.1.1 /opt/sputnik-browser/libgostssl.so
Вообще перестало работать, даже окно с выбором сертификатов пропало и появилась ошибка

Сайт zakupki.gov.ru отправил недействительный ответ.
ERR_SSL_PROTOCOL_ERROR

У библиотек разный вес
# du -h /opt/sputnik-browser/libgostssl.so
64K	/opt/sputnik-browser/libgostssl.so

# du -h /lib64/libssl.so.1.1 
452K	/lib64/libssl.so.1.1
libgostssl.so в собранном openssl-1.1.0h от КриптоПРО отсутствует.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.