Детальный разбор частей рукопожатия в HTTPS запросе

Гобелен - кликните для возврата на главную

Не прошло и месяца а Фурмановская ЦРБ в очередной раз попала в историю. На этот раз сотрудница клеветала на пациентов, а именно огласку получил случай когда сотрудница назвала пациента алкашём.

Так почему бы не начать использовать обход блокировки YouTube при том что техническая возможность используя расширение nikolaevevge для браузера Mozilla Firefox уже появилась, а объем полезной(и не очень) информации на видеохостинге YouTube, по мнению некоторых диванных экспертов, меньше не стал.

Ровно 3 года назад произошло событие, которое подарило жителям планеты Змеля новый чистый праздник 6 апреля - в этот замечательный день земля забрала гнить негодяя и СПАМера Владимира Вольфовича Жириновского.

Как бы не обстояли дела в области культуры и IT-технологий, Самосвал писал статьи на связанные темы и планирует ещё написать.

На очередном конкурсе танцев, школьница отлично выступила.

Что использовать вместо Юбуст

Вот та самая информация: программа для продвижения канала YouTube, эта информация выложена уже несколько лет, при этом просмотров не много, а метод который описан в данном видео действительно помогает продвигать видео в YouTube.

Начал разбираться с информацией которая находится в HTTPS клиентском запросе рукопожатия.

Обратите внимание! Объект изображённый на гобилене может отличаться от общепринятого вида описанного объекта. Тут дело в том что художник видит именно так!

104 549 руб.

Описание товара

Рукопожатие представленное ниже получено путём сканирования трафика от реального запроса браузера Firefox Nightly 137.0a1.

Исходное рукопожатие имеет вид(информация представлена в HEX): 1603[1]0107[2]5d010007[3]5903038e14f9a1948f79fc5979a8936[4]9a1e43eb203d83a173b3de8176e6e308f[5]65c33c 20e8fcf5962ab9322e8700a83ba4452967191cf42e4580bda5bc2a98c857bc7fbb001e130113031302c02bc02fcca9cca8c02cc030c013c014009c009d002f0035
010006f200000012001000000d626c6f672e697672752e6e657400170000ff01000100000a0010000e11ec001d00170018001901000101000b00020100002300000010000e000c02683208687474702f312e31000500050100000000002200080006040305030603001200000033052f052d11ec04c051f686451c7768f6c6479b96cd58842fc87cf439ade7da42049b908062be3706c0a227a47f1179f217aa7eb8ccbc5c8bca5b3afebc3982106c865413c1b008eff5bc6d61c83c28600d9b686e1260abe990f536a4e0ca3c9be62382b5c39b7a615f2ac5c2ccca4a79c9a9943b00d03a82c3aa6c6263b89b03797c0cc4a0103c754370acb9ea2725f6d215f4cc019efb4a3845780d1bbb95289df3c2042733cc6cc87c108c4a0941bd0fc99c62054d033b4b5c3a83f743a49b1ac737138bb6ca857fb74372870dbdd4ca90b365e4e1b220907077ba4d84436d6d953f1ca17cb918c3a3b95d12668638a886bf914ce596098fc11c6547c2bd80520692778d60adb9bc27257076811890f788bdfca9bbea45c38175a0e4cccc06a0883c5c193ed9187cc2b282acb243719126b967d7334117010d448a7babcc4842db00f17c641e445b0871a9d6b2217b326d65a70e3b5039b942b674200083a439d9ac1431d821aee23375e74a75ccc384a0a7c919c0ec487c923438461423cd7b084b4592e5451640339c0d1700f855a4c2f1cfa95889fb69c7d1c8408d592c4fc49144502bd7766d2c856e5b1b345a4a47c5716a52b686662211512b3b10199d7c09bbe4dc6acc779005b2421992769da21e9b1a21b65971b8a034f611546f9a55eedaa37e4972021654b2d3b6214c899dac92c8f6c7d287b8526baba6f28e75a9b8b143862e06848ac58d2a13a9c2f9b3c4b255efaa4874e6974b22098550723e6a0e89e623f7acbc3d759a0b0610199462525c8df0847e1961a8109b7187fc0242b0afe47b54a703631bdb2d06a5177aa7b46b6a2556788484075a74d55d20ca7057a6ccaf93140a8a80b27086619b8132f30af0c57d0e0849ae66078b1040f97b33273baf69d68897787f76973c8481a381d586c3072d3bfbbe482647feb0699593a2a843b17eb6249eb627b721bea0a2061655b7dd45b7c3423881b945d5f01fdf657dc93a6e5c21bd8f58c7a0993db1387b5d78a2989688d98ba761557181354139586e7ecc8b1475ac7a63c075291325bbaf99c7afb284901e438b0ff562e6956470dabd3b64544a7b7190a87cb637b3554376e9e6659520c359e4a8855bcf1d46882f68a4c939b7b5c37ef7e37ff7f9310fca9211904433656628d5369c3374b77b38ca951569cba1b1745ecbe3399b8c762d4a9666d817fda8a9a2d7b590514342c41dd8c21bb472322e48adaab9a37d9168c233550af7a1f28b3d699802ce018ac9f6c7ae57ba444b84f627a7f30595c656c6799304b8bcbda5569b06b7985a50456fa995ac55469c026b660335c6b304f99c1f0e025edca6b5c6353988672c4dec429e170335051a5d755d259909040a865e010abfd55ce4a87f02f0663a4c847c92959ba4033b9096d261c8fad06c58a3278e5b067527479c4b2db0234485e0675a9442ee41bffe9879955983f47937995c8d32a8b2f7d59129cb93b59ab074e01ae355171f7746d3aa7ca7ec3d99d623c6c361e4185c0749cf70a12b58689e81303265f0240845c7c062b554bac1959c95f6a01d451cb76a935c79b37d8907343237439b3172073a55b35358000c4d1999020725ccf5393893728153f784b7b744c8d6fa138664f0f67e35a49eb3b04e379df62b11f81307ec2ae618ad54204b723011cd7e7c72dffd4d06a419062deab3f9c8e740eb93c259cf6716119e320067001d00203011cd7e7c72dffd4d06a419062deab3f9c8e740eb93c259cf6716119e320067001700410492fa80be54c1a7ed1b0784ae3eb73b1261a6d790912eebdfd5635e9cd0ea498b08befa4bba07098dc0793d700e7762d2ff27e5a7da2524e737ab1f36c661021d002b00050403040303000d001600140403050306030804080508060401050106010201002d00020101001c00024001001b000706000100020003fe0d01190000010001c20020fa5f215a7308344ded80c1d3353fea2c10fd43441f7a05f10a8df672d0f312e400ef5802aa794845576027624bd1dfde2829ee04e571769c658133379bfa936a7ec2c9bfee7d4d071666dc88586d38cc2bcaec95d9af9e72d0116d29c73feb2c6c97e228090f1c35d10334678ee8408833d8a1a19f69d09d4d7e202b1ab1325ec97e9a0f2767230d2bc9ead99e172e67839985a454e556524ef59964a88b03e2c992f6b5322f5262653fefc069466150b2e2a9fdc820e681c85ecbd4cd05523ff694a1632ce31260db382dcfe1beb276cf0e1a2839426b955bc6481bc442df5313969e860ed93a00aba7b6123d6b41a1d31aa0c08ce7bb40f96f9e4785af645f33a1de15ef1b7d7c7a8f173f1ab5fefea5

  • 16 означает что запрос является рукопожатием Handshake
  • 0301 минимально поддерживаемая версия протокола TLS 1.0
  • 075d Длина полезной нагрузки, в рассматриваемом случаи соответствует 1885 байт
  • 1. 1603 Тип рукопожатия (Handshake), версия протокола TLS (Transport Layer Security).
  • 2. 0107 Размер сообщения рукопожатия (поля длины).
  • 01 Handshake Type. В рассматриваемом случаи означает ClientHello — то-есть тип сообщения, в котором клиент инициализирует рукопожатие, отправляя информацию о возможных криптографических параметрах.
  • 000759 Длина Handshake(всего рукопожатия), в рассматриваемом случаи соответствует 1897 байтам.
  • 0303 Желаемая версия протокола(не минимальная) в рассматриваемом случаи соответствует TLS 1.2
  • 8e14f9a1948f79fc5979a8936[4]9a1e43eb203d83a173b3de8176e6e308f65c33c - Client Random всегда имеет фиксированную длину 32 символа и следует сразу после версии протокола в ClientHello. Считается что Client Random состоит из временной метки 8e14f9a1 и оставшихся 28 случайных символов, при этом часть временной метки может быть так же случайной, как это видимо случайная указанная последовательность в рассматриваемом случаи, поскольку 8e14f9a1 соответствует 15 июля 2045 года, 13:48:17 (UTC)(по крайней мере искусственный интеллект сообщил что значение соответствует такой временной метке, а сам я не проверял).
  • 20e8fcf5962ab9322e8700a83ba4452967191cf42e4580bda5bc2a98c857bc7fbb - в начале 20 - это длина ClientId(то есть 32 символа), начиная с e8 и до конца приведённой строки это сам ClientId
  • 57bc7fbb001e130113031302c02bc02fcca9cca8c02cc030c013c014009c009d002f0035 Согласование шифров Эти байты указывают на шифры и алгоритмы, которые могут быть использованы в сессии, например, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256. В приведённой последовательности 001e означает длину данных отведённую для набора шифров, а данном случаи значение равно 30, что соответствует 15 наборам(ВРОДЕ БЫ именно наборов) шифров, поскольку на каждый шифр отведено 2 байта
    1301TLS_AES_128_GCM_SHA256 (TLS 1.3)
    1303TLS_CHACHA20_POLY1305_SHA256 (TLS 1.3)
    1302TLS_AES_256_GCM_SHA384 (TLS 1.3)
    c02bTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (TLS 1.2)
    c02fTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (TLS 1.2)
    cca9TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (TLS 1.2)
    cca8TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (TLS 1.2)
    c02cTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)
    c030TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)
    c013TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (TLS 1.2, но устаревший)
    c014TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (TLS 1.2, но устаревший)
    009cTLS_RSA_WITH_AES_128_GCM_SHA256 (TLS 1.2, но без PFS)
    009dTLS_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2, но без PFS)
    002fTLS_RSA_WITH_AES_128_CBC_SHA (TLS 1.0/1.1, небезопасный)
    0035TLS_RSA_WITH_AES_256_CBC_SHA (TLS 1.0/1.1, небезопасный)
  • 01 Тип расширения. В данном случае 01 обозначает расширение Server Name Indication (SNI), которое используется для указания имени хоста, к которому клиент хочет подключиться. Это расширение позволяет серверу поддерживать несколько виртуальных хостов (например(ВОЗМОЖНО в данном случаи слово например не требуется), на одном IP-адресе).
  • 0006 Длина расширения в байтах(исключая тип расширения). В данном случае длина равна 6-ти байтам.
  • f2 Тип расширения ALPN(позже искусственный интеллект сообщил что f2 как раз указывает что имеется ввиду домен а не что то другое, ссылаясь на RFC 6066 для SNI)
  • 0000(возможно последовательность всё же 000000 а не 0000) Длина расширения равна 0. Таким образом в данном расширении не передаются дополнительные данные(то есть длина списка протоколов равна нулю) То-есть предпочтения по протоколам не указаны. Расширение ALPN используется в протоколах как HTTP/2, HTTP/3 и других, чтобы клиент и сервер могли договориться о наиболее подходящем приложении для дальнейшего общения.
  • 12 — Тип расширения. В рассматриваемом случаи 12 - расширение SNI(Server Name Indication).(ВОЗМОЖНО 12 это всё же не конкретный тип расширения а длина расширения, то-есть получается - 18 и кстати далее действительно следуют 18 байт связанные с этим расширением)
  • 0010 Длина расширения. В рассматриваемом случаи 16 байт
  • 0000 Дополнительные байты, которые могут использоваться для флага или других данных(вот тут вопрос они прямо тут передаются или тут указывается их длина - искусственный интеллект пишет что тут именно длина, хотя вопрос доверять ли этой информации остаётся).
  • 0d - Длина строки домена. В рассматриваемом случаи 13 байт.
  • 626c6f672e697672752e6e6574 Указан домен blog.ivru.net
  • 0017 - это тип расширения ALPN(Application-Layer Protocol Negotiation). При описании этого расширения ИИ2 сообщил что тип любого расширения(видимо для HTTPS, не уточнено только ли для запроса рукопожатия или ещё для чего то) занимает 2 байта. Само же расширение ALPN используется для согласования протокола прикладного уровня между клиентом и сервером. Например клиент может предложить протоколы: h2 (HTTP/2), http/1.1, сервер выбирает один из предложенных протоколов и сообщает о своем выборе.
  • 0000 - это длина для описания рассмотренного выше расширения, то-есть поскольку длина нулевая далее должно начинаться следующее расширение(так же ИИ сообщил что длина так же записывается двумя байтами для расширений).
  • ff01 - расширение Renegotiation Info (для защиты от атак, связанных с повторным согласованием параметров).
  • 0001 - длина расширения 1 байт.
  • 00 — данные расширения. В данном случае это пустое значение, указывающее на то, что клиент не поддерживает повторное согласование.
  • 000a - расширение типа Supported Groups (группы для обмена ключами).
  • 0010 - длина расширения 16 байт.
  • 000e - длина списка групп 14 байт.
  • 11ec - нестандартная группа.
  • 001d — x25519.
  • 0017 — secp256r1.
  • 0018 — secp384r1.
  • 0019 — x448.
  • Тут видимо идут ещё 2 группы, хотя ИИ думает что это уже начинается расширение, при этом тогда у текущего расширения неверная длина, с другой стороны если ещё 4 байта идёт это же расширение, то следующее вроде бы корректное. То-есть пока предполагаю что следующее расширение начинается 000b
  • 000b — тип расширения (EC Point Formats).
  • 0002 — длина расширения (2 байта).
  • 01 — длина списка форматов (1 байт).
  • 00 — список форматов (несжатый формат)
  • 0023 — расширение тип Session Ticket.
  • 0000 — длина расширения (0 байт)

Другие товары

Вы так же можете прочитать следующие статьи: