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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline yurm  
#1 Оставлено : 23 мая 2025 г. 9:55:52(UTC)
yurm

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

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

Добрый день.
На нашем предприятии используется прокси с авторизацией negotiate. КриптоПро 5.0.1.13. При проверке подписи, cptools правильно определяет прокси, но авторизацию не использует. Вроде в составе дистрибутива есть curl, но попытки подсунуть .curlrc не помогли. Можно как-то заставить его авторизоваться текущим пользователем или хотя бы каким-то фиксированным, но только для cptools?
Offline Зубов Иван  
#2 Оставлено : 23 мая 2025 г. 20:42:30(UTC)
Зубов Иван

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

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

Сказал «Спасибо»: 12 раз
Поблагодарили: 28 раз в 25 постах
Здравствуйте.

Отвечу по порядку.

Правка .curlrc не поможет и не должна была помочь. Следует разделять две сущности: утилиту curl и библиотеку libcurl. Утилита использует библиотеку, поэтому если что-то влияет на библиотеку, то оно как правило влияет и на утилиту. Обратное неверно: в утилите есть масса своих наворотов, и насколько я нагуглил, это как раз такой случай. Файл .curlrc – это про утилиту, а не про библиотеку. Один пользователь в апстриме curl попросил сделать подобное для библиотеки, но сейчас это не сделано.
Техническую поддержку оказываем тут
Наша база знаний
Offline Зубов Иван  
#3 Оставлено : 23 мая 2025 г. 20:55:17(UTC)
Зубов Иван

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

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

Сказал «Спасибо»: 12 раз
Поблагодарили: 28 раз в 25 постах
Наш код под капотом использует libcurl для многих сетевых обменов, в т.ч. вероятнее всего для тех, на которые вы хотели повлиять -- на сетевые обмены при построении и проверке цепочек сертификатов. Я же верно предположил?

На libcurl можно повлиять, выставив переменные окружения (http_proxy, https_proxy и подобное). Там можно указать адрес прокси, порт, имя пользователя и пароль. Это ведь именно те параметры, которые вас интересовали?

Это можно сделать в консоли перед запуском cptools или другой утилиты, возможно можно как-то вписать в ярлык для запуска cptools. Не очень удобно, действительно. Но дело в том, что обычно пользователям если и нужно задавать прокси, то сразу для всего профиля пользователя ОС. А если так, то выставление этих переменных можно вписать в системный файл инициализации сессии, как графической, так и консольной, чтобы у пользователя всегда была задана переменная с параметрами про прокси. И прокси будет прозрачно работать в CSP, curl и много где ещё -- на *nix в эти переменные окружения много кто смотрит. Если мне память не изменяет, я на Ubuntu даже где-то в графических настройках системы видел возможность задания глобального прокси для пользователя -- полагаю, именно через это оно и сделано.

Или вы хотите только для CSP задать опцию? Замечу, что не только для cptools -- cptools сам по себе вообще не делает сетевых обменов, насколько я понимаю. Сетевые обмены делают низлежащие библиотеки CSP. У вас есть потребность именно на них повлиять, чтобы у них прокси был задан где-то, а у всех остальных программ нет?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Зубов Иван за этот пост.
Санчир Момолдаев оставлено 22.07.2025(UTC)
Offline Зубов Иван  
#4 Оставлено : 22 июля 2025 г. 18:33:06(UTC)
Зубов Иван

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

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

Сказал «Спасибо»: 12 раз
Поблагодарили: 28 раз в 25 постах
В будущих версиях добавим параметры в конфиг:

Цитата:
[Parameters]
# строка с параметрами прокси
CurlProxy="abc.ru:3128"
# битовая маска настроек авторизации на прокси
CurlProxyAuth=127


Задать можно через cpconfig:
/opt/cprocsp/sbin/amd64/cpconfig -ini '\config\Parameters' -add string CurlProxy 'a'
/opt/cprocsp/sbin/amd64/cpconfig -ini '\config\Parameters' -add long CurlProxyAuth 1

Подробнее о параметрах:
https://curl.se/libcurl/c/CURLOPT_PROXY.html
https://curl.se/libcurl/c/CURLOPT_PROXYAUTH.html
https://curl.se/libcurl/c/CURLOPT_HTTPAUTH.html

Значения констант:
Цитата:
#define CURLAUTH_NONE ((unsigned long)0)
#define CURLAUTH_BASIC (((unsigned long)1)<<0)
#define CURLAUTH_DIGEST (((unsigned long)1)<<1)
#define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2)
/* Deprecated since the advent of CURLAUTH_NEGOTIATE */
#define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE
/* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */
#define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE
#define CURLAUTH_NTLM (((unsigned long)1)<<3)
#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4)
#ifndef CURL_NO_OLDIES
/* functionality removed since 8.8.0 */
#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5)
#endif
#define CURLAUTH_BEARER (((unsigned long)1)<<6)
#define CURLAUTH_AWS_SIGV4 (((unsigned long)1)<<7)
#define CURLAUTH_ONLY (((unsigned long)1)<<31)
#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE)
#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))


Тикет для отслеживания: CPCSP-14702. Спасибо за жалобу!
Техническую поддержку оказываем тут
Наша база знаний
thanks 2 пользователей поблагодарили Зубов Иван за этот пост.
nickm оставлено 22.07.2025(UTC), Санчир Момолдаев оставлено 22.07.2025(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.