Пабачыць слова TLS у апісанні VPN і зрабіць выснову, што вэб-проксі зразумее гэты трафік, — звычайнае скарачэнне. Унутры гэтага пратакола вузы абменьваюцца ўласнымі пакетамі, і TLS працуе як частка аднаго канала ў межах гэтага абмену. Карысная нагрузка, якая цікавіць карыстальніка, ідзе ў іншым фармаце паведамленняў, таму яны ніколі не супадаюць са звычайным сеансам HTTPS.

Канверт ідзе першым

Кожны пакет тунеля пачынаецца з уласнага загалоўка пратакола: тып паведамлення, ідэнтыфікатар ключа і, пры транспарце байтавага патоку, прэфікс даўжыні, які пазначае, дзе пакет сканчаецца. Чытач, які не разбірае гэты канверт, не можа ведаць, дзе пачынаецца наступнае поле.

outer transport (UDP datagram or TCP stream)
  -> OpenVPN header (opcode, key id, length where needed)
    -> control message (reliability wrapper, TLS exchange)
    -> data message (protected inner packet)

Гэтая схема — карта, а не байтавая табліца, бо дакладныя палі залежаць ад тыпу паведамлення, хаця першы актэт заўсёды спалучае код аперацыі і ідэнтыфікатар ключа. Здагадка пра тып паведамлення па нумары порта — гэта тое, праз што дэкодэры памылкова называюць убачанае. Для дыягностыкі важны парадак: транспарт, затым канверт пратакола, затым адзін з двух відаў працы. Прачытайце канверт, перш чым складаць меркаванне пра тое, што ідзе далей. Дэкодэр, які пачынае не з таго месца, выдае ўпэўненыя глупствы.

Слой надзейнасці належыць пратаколу

Паведамленні кіравання патрабуюць упарадкаванай дастаўкі з пацверджаннем, і пратакол забяспечвае гэта сам праз пацверджанні і паўторныя перадачы. Пацверджанне можа прыйсці як асобнае паведамленне або падарожнічаць з іншым паведамленнем кіравання, што робіць трасы няроўнымі для ўсіх, хто чакае аднаго чыстага абмену.

Перавага ў тым, што рукапоціск TLS атрымлівае надзейны носьбіт, нават калі знешні транспарт — UDP. Кошт у тым, што адзін датаграма можа змяшчаць толькі частку гэтай размовы, таму стаўленне да яго як да самастойнага запісу TLS дае глупства. Перазборка павінна адбывацца на ўзроўні пратакола. Таму захоплены пакет рэдка выглядае як поўны крок рукапоціску.

Пераключэнне знешняга транспарту на TCP не прыбірае гэты слой. Надзейны транспарт азначае менш паўторных перадач на ўзроўні пратакола, а не тое, што фрэймінг знікае ці трафік становіцца HTTP.

Пакеты даных маюць іншы фармат

Калі сеанс існуе, карысная нагрузка прыходзіць як паведамленні даных, якія нясуць унутраныя пакеты IP або кадры Ethernet. Яны абаронены ўласнымі ключамі і ўласнай апрацоўкай, і яны не з'яўляюцца запісамі прыкладанняў TLS у любым сэнсе, які прыняла б бібліятэка TLS.

Гэты падзел бачны ў канфігурацыі: канал кіравання і канал даных маюць асобныя налады шыфравання, таму радок журнала, які называе адзін, нічога не кажа пра другі. Чытанне моцнага шыфра кіравання як доказу моцнага шыфра даных — звычайная памылка справаздачнасці.

Трымайце звязанае памылковае ўяўленне па-за тлумачэннем. TLS — гэта не канал з публічным ключом побач з сіметрычным каналам даных, бо TLS сам абараняе свае запісы сіметрычна пасля ўсталявання ключоў. Сапраўднае адрозненне — роля і фармат пакетаў, а не тое, якую крыптаграфію выкарыстоўвае кожны бок.

Чаму проксі HTTPS не дапаможа

Проксі, які завяршае TLS, чакае паток запісаў TLS, а затым пратакол прыкладання ўнутры яго. Канал кіравання гэтага пратакола пераносіцца ўнутры ўласнага фрэймінгу з слоем надзейнасці вакол яго, таму проксі, які завяршае, чытае гэты фрэймінг як пашкоджаныя ўваходныя даныя.

Празрысты перадавальнік, які перадае байты або датаграмы без іх інтэрпрэтацыі, можа працаваць, пры ўмове, што ён не перапісвае і не перазбірае паток. Пытанне, якое трэба задаць пра любога пасрэдніка, — ці перадае ён фактычны транспарт і фрэймінг, а не ці падтрымлівае ён TLS недзе. Спытайцеся пра гэта, перш чым праводзіць вечар над правіламі проксі. Большасць правалаў тут архітэктурныя, а не адсутная налада.

Як правільна чытаць трасу

Чакайце спачатку абмен кіравання, затым значна большую колькасць паведамленняў даных, прычым абодва падзяляюць адзін транспарт. Калі фаза кіравання завяршаецца, а фаза даных спыняецца, няспраўнасць датычыцца ключоў, маршрутызацыі або фільтрацыі шляху даных, а не рукапоціску. Захапіце некалькі паведамленняў даных і праверце, ці пакідаюць яны кліент наогул. Гэтае адно назіранне дзеліць пошук напалову.

Гістарычныя апісанні метадаў ключоў у дакументацыі пратакола не азначаюць, што пэўны выпуск усё яшчэ падтрымлівае кожны стары фармат. Праверце версію, якую выконваеце, перш чым будаваць чаканне на абзацы, які апісвае, як рэчы працавалі раней.

Падобныя артыкулы