Идентификатор сессии с использованием curl_7_35

Вопрос или проблема

Я хочу использовать curl, чтобы получить идентификатор сессии. Есть ли способ получить идентификатор сессии с помощью curl? Ранее я использовал Open SSL для захвата идентификатора сессии. Сейчас я не хочу этого делать.

Я попытался отправить эту команду:

curl_7_35_0 -v -k -tls1.2 --sessionid 'not_sure_what_to_use_here' https://30.1.1.101/ssl_ecdhe.txt

Я что-то упускаю здесь? Если да, пожалуйста, сообщите мне.

Вывод с OpenSSL:

Cli31(runs)# /usr/local/ssl/bin/openssl s_client -connect 30.1.1.101:443 -tls1_2 -servername 20.1.1.1 -reconnect -crlf

CONNECTED(00000003)
depth=0 C = US, ST = California, L = San Jose, O = A10Networks Inc., OU = QA, CN = www.automationserver.com, emailAddress = [email protected]
verify error:num=18:self signed certificate
verify return:1
depth=0 C = US, ST = California, L = San Jose, O = A10Networks Inc., OU = QA, CN = www.automationserver.com, emailAddress = [email protected]
verify return:1
---
Цепочка сертификатов
 0 s:/C=US/ST=California/L=San Jose/O=A10Networks Inc./OU=QA/CN=www.automationserver.com/[email protected]
   i:/C=US/ST=California/L=San Jose/O=A10Networks Inc./OU=QA/CN=www.automationserver.com/[email protected]
---
Сертификат сервера
-----BEGIN CERTIFICATE-----
MIICkTCCAjigAwIBAgIJAMSTNrUEbSQ4MAkGByqGSM49BAEwgaUxCzAJBgNVBAYT
AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhTYW4gSm9zZTEZMBcG
A1UECgwQQTEwTmV0d29ya3MgSW5jLjELMAkGA1UECwwCUUExITAfBgNVBAMMGHd3
dy5hdXRvbWF0aW9uc2VydmVyLmNvbTEjMCEGCSqGSIb3DQEJARYUaW5mb0BhMTBu
ZXR3b3Jrcy5jb20wHhcNMTQxMTE0MDk0ODU2WhcNMjQxMTExMDk0ODU2WjCBpTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExETAPBgNVBAcMCFNhbiBK
b3NlMRkwFwYDVQQKDBBBMTBOZXR3b3JrcyBJbmMuMQswCQYDVQQLDAJRQTEhMB8G
A1UEAwwYd3d3LmF1dG9tYXRpb25zZXJ2ZXIuY29tMSMwIQYJKoZIhvcNAQkBFhRp
bmZvQGExMG5ldHdvcmtzLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEIt
e+YKJNyZtyshcoELz8raSxvviLnYElxSdhedUSWluLOdV7RQFvcA7vUSSXpJkKCN
LFSsN3ZuLe0bEOfe/RyjUDBOMB0GA1UdDgQWBBRdh99xn941eV8A/zYpsSWKE8vW
cjAfBgNVHSMEGDAWgBRdh99xn941eV8A/zYpsSWKE8vWcjAMBgNVHRMEBTADAQH/
MAkGByqGSM49BAEDSAAwRQIhAOvWNfesjT2CPQjEDato2C84lEXeOGx8wKxDKKLV
7kxfAiBDcWCPPXPQLfW/PtEn+yrRNyrd2KDKk3uU3CvviFJt6w==
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=San Jose/O=A10Networks Inc./OU=QA/CN=www.automationserver.com/[email protected]
issuer=/C=US/ST=California/L=San Jose/O=A10Networks Inc./OU=QA/CN=www.automationserver.com/[email protected]
---
Имена CA клиентских сертификатов не отправлены
Алгоритм подписи пиров: SHA256
Временный ключ сервера: ECDH, P-256, 256 бит
---
SSL рукопожатие прочитало 1010 байт и записало 475 байт
---
Новый, TLSv1/SSLv3, шифр ECDHE-ECDSA-AES128-SHA
Открытый ключ сервера имеет 256 бит
Поддерживается безопасное повторное согласование
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
    Протокол  : TLSv1.2
    Шифр      : ECDHE-ECDSA-AES128-SHA
    ID-сессии: 0AABABCBB2C24ABD3D5BD4B84A1914EC563E3D518108A89487A6B056BB879CC4
    Контекст ID-сессии: 
    Мастер-ключ: BCD8B034C67DB603132FB69295FEB996628502A08BE9E58BAF03D365A8FFCC03E117A4D836BB782AAA2D65424686BB2A
    Аргумент ключа: Нет
    Личность PSK: Нет
    Подсказка идентификации PSK: Нет
    Имя пользователя SRP: Нет
    Время начала: 1503310272
    Таймаут    : 7200 (сек)
    Код возврата проверки: 18 (самоподписанный сертификат)
---
разорвать соединение и затем переподключиться
CONNECTED(00000003)
---
Повторно использовано, TLSv1/SSLv3, шифр ECDHE-ECDSA-AES128-SHA
Поддерживается безопасное повторное согласование
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
    Протокол  : TLSv1.2
    Шифр      : ECDHE-ECDSA-AES128-SHA
    ID-сессии: 0AABABCBB2C24ABD3D5BD4B84A1914EC563E3D518108A89487A6B056BB879CC4
    Контекст ID-сессии: 
    Мастер-ключ: BCD8B034C67DB603132FB69295FEB996628502A08BE9E58BAF03D365A8FFCC03E117A4D836BB782AAA2D65424686BB2A
    Аргумент ключа: Нет
    Личность PSK: Нет
    Подсказка идентификации PSK: Нет
    Имя пользователя SRP: Нет
    Время начала: 1503310272
    Таймаут    : 7200 (сек)
    Код возврата проверки: 18 (самоподписанный сертификат)
---
разорвать соединение и затем переподключиться
CONNECTED(00000003)
---
Повторно использовано, TLSv1/SSLv3, шифр ECDHE-ECDSA-AES128-SHA
Поддерживается безопасное повторное согласование
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
    Протокол  : TLSv1.2
    Шифр      : ECDHE-ECDSA-AES128-SHA
    ID-сессии: 0AABABCBB2C24ABD3D5BD4B84A1914EC563E3D518108A89487A6B056BB879CC4
    Контекст ID-сессии: 
    Мастер-ключ: BCD8B034C67DB603132FB69295FEB996628502A08BE9E58BAF03D365A8FFCC03E117A4D836BB782AAA2D65424686BB2A
    Аргумент ключа: Нет
    Личность PSK: Нет
    Подсказка идентификации PSK: Нет
    Имя пользователя SRP: Нет
    Время начала: 1503310272
    Таймаут    : 7200 (сек)
    Код возврата проверки: 18 (самоподписанный сертификат)
---
разорвать соединение и затем переподключиться
CONNECTED(00000003)
---
Повторно использовано, TLSv1/SSLv3, шифр ECDHE-ECDSA-AES128-SHA
Поддерживается безопасное повторное согласование
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
    Протокол  : TLSv1.2
    Шифр      : ECDHE-ECDSA-AES128-SHA
    ID-сессии: 0AABABCBB2C24ABD3D5BD4B84A1914EC563E3D518108A89487A6B056BB879CC4
    Контекст ID-сессии: 
    Мастер-ключ: BCD8B034C67DB603132FB69295FEB996628502A08BE9E58BAF03D365A8FFCC03E117A4D836BB782AAA2D65424686BB2A
    Аргумент ключа: Нет
    Личность PSK: Нет
    Подсказка идентификации PSK: Нет
    Имя пользователя SRP: Нет
    Время начала: 1503310272
    Таймаут    : 7200 (сек)
    Код возврата проверки: 18 (самоподписанный сертификат)
---
разорвать соединение и затем переподключиться
CONNECTED(00000003)
---
Повторно использовано, TLSv1/SSLv3, шифр ECDHE-ECDSA-AES128-SHA
Поддерживается безопасное повторное согласование
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
    Протокол  : TLSv1.2
    Шифр      : ECDHE-ECDSA-AES128-SHA
    ID-сессии: 0AABABCBB2C24ABD3D5BD4B84A1914EC563E3D518108A89487A6B056BB879CC4
    Контекст ID-сессии: 
    Мастер-ключ: BCD8B034C67DB603132FB69295FEB996628502A08BE9E58BAF03D365A8FFCC03E117A4D836BB782AAA2D65424686BB2A
    Аргумент ключа: Нет
    Личность PSK: Нет
    Подсказка идентификации PSK: Нет
    Имя пользователя SRP: Нет
    Время начала: 1503310272
    Таймаут    : 7200 (сек)
    Код возврата проверки: 18 (самоподписанный сертификат)
---
разорвать соединение и затем переподключиться
CONNECTED(00000003)
---
Повторно использовано, TLSv1/SSLv3, шифр ECDHE-ECDSA-AES128-SHA
Поддерживается безопасное повторное согласование
Сжатие: НЕТ
Расширение: НЕТ
ALPN не согласован
SSL-сессия:
    Протокол  : TLSv1.2
    Шифр      : ECDHE-ECDSA-AES128-SHA
    ID-сессии: 0AABABCBB2C24ABD3D5BD4B84A1914EC563E3D518108A89487A6B056BB879CC4
    Контекст ID-сессии: 
    Мастер-ключ: BCD8B034C67DB603132FB69295FEB996628502A08BE9E58BAF03D365A8FFCC03E117A4D836BB782AAA2D65424686BB2A
    Аргумент ключа: Нет
    Личность PSK: Нет
    Подсказка идентификации PSK: Нет
    Имя пользователя SRP: Нет
    Время начала: 1503310272
    Таймаут    : 7200 (сек)
    Код возврата проверки: 18 (самоподписанный сертификат)
---
GET /ssl_ecdhe.txt HTTP/1.0

read:errno=104

Я не думаю, что существует опция --sessionid для curl или что-то подобное, что вы могли бы использовать здесь. Это также не имело бы смысла, так как идентификатор сессии TLS (и токен сессии) оба относятся к внутренним состояниям SSL из существующего рукопожатия TLS, которого у клиента curl нет.

Ответ или решение

Получение идентификатора сессии TLS с помощью curl версии 7.35 — это не самая тривиальная задача, поскольку curl изначально не предоставляет прямых инструментов для извлечения информации о сессии TLS, таких как идентификатор сессии (Session ID). Это связано с тем, что сессия TLS управляется на более низком уровне, и curl не предоставляет интерфейсы для взаимодействия с этими данными, в отличие от OpenSSL.

Факты и понимание текущего состояния

F (Fact, Факт): Вы хотите извлечь идентификатор сессии TLS с удаленного сервера по протоколу HTTPS без использования OpenSSL. В прошлом вы успешно пользовались OpenSSL для достижения этой цели.

R (Relevance, Актуальность): Эта задача может быть полезной, например, при диагностике сетевых соединений или проверке безопасности соединений. Однако, curl предназначен в первую очередь для простых HTTP-запросов и не предоставляет прямого параметра для извлечения идентификаторов сессий TLS.

Определение методов и решений

O (Offer, Предложение): Хотя curl сам по себе не может предоставить идентификатор сессии TLS, существуют некоторые обходные методы, которые могут быть полезными:

  1. Трассировка TCP: Использование сторонних инструментов, таких как tcpdump или Wireshark, для монитора и анализа сетевого трафика. Эти инструменты могут захватывать пакеты, в которых будут видны идентификаторы сессии внутри записей протокола TLS.

  2. Интеграция с OpenSSL: Несмотря на ваше желание избегать OpenSSL, можно комбинировать выводы curl и OpenSSL для достижения цели. Например, после выполнения команды curl, запустите всесторонний анализ сессии через OpenSSL, чтобы проверить повторное использование сессий.

Применение конкретных техник

R (Resolve, Решение проблемы): Если использовать curl версии 7.35, чтобы найти информацию о сессии через стандартные возможности инструмента, вам, скорее всего, придётся внести изменения в более глубинную часть кода или переключиться на использование более специализированных библиотек для работы с TLS.

Краткое резюме и заключительные мысли

E (End, Завершение): С учетом всех обстоятельств, curl является удобным инструментом для большинства HTTP-запросов, однако получение низкоуровневых данных о TLS-сессиях лучше выполнять с помощью инструментов, таких как OpenSSL или сетевые анализаторы. Рекомендуем использовать современные инструменты для сетевого мониторинга и анализа, которые позволяют глубже погружаться в технические детали, сохраняя простоту в интерфейсе.

S (Success, Успех): Надеемся, что это объяснение поможет вам справиться с получением необходимой информации о сессиях и усилит ваши профессиональные навыки в области IT.

Оцените материал
Добавить комментарий

Капча загружается...