Носењето јавна вредност за размена на клучеви во ракување не е истиот настан како најавување на клиент. Едното воспоставува криптографска состојба за врската; другото кажува кој е клиентот, и тоа се случува само кога серверот го бара тоа и размената го поддржува. Третирањето на првото како второ води до погрешни заклучоци за тоа што VPN го крие, а што не. Прочитајте ги пораките, потоа одлучете кое од четирите својства навистина сте го набљудувале.

Два објекти што изгледаат исто во снимка

Клиент на TLS 1.3 може да придонесе материјал за размена на клучеви во својот прв лет без да приложи каков било сертификат. Тој придонес е јавен по дизајн, бидејќи на серверот му е потребен за да ја изведе заедничката тајна. Клиентскиот сертификат е друга порака и се праќа само откако серверот ќе побара еден. Тој носи идентитет што серверот потоа го проверува, а взаемната автентикација е одлука на серверот, а не својство што го наметнува множеството шифри. Идентитетот на апликацијата е сосема трета работа: формулар за најава, носечки токен, колаче. Ништо од тоа не се појавува во ракувањето, и сето тоа го преживува менувањето на мрежната патека.

Object in playWhat it establishes
Key-exchange shareCryptographic state for this connection
Server certificateWhich server the client reached
Client certificateClient authentication, when requested
Application sessionAccount identity inside the application

Четирите реда се независни. Врската може да ги има првиот и вториот ред, да го прескокне третиот и сепак да го носи четвртиот во заглавие на колаче.

Одлучете што може да докаже снимено ракување

Само од ракувањето, набљудувачот ја учи договорената верзија, множеството шифри, сертификатот на серверот и јавните вредности за размена на клучеви. Тоа е доволно за да се земе отпечаток од клиентска имплементација и да се види со кој сервер е контактирано. Она што не го дава е приватната состојба потребна за дешифрирање на врската; нејзината тајност почива на ефемерната размена, а не на јавниот дел. Исто така не дава идентитет на сметка, кој од почетокот не бил во ракувањето.

Затоа чесниот заклучок е тесен: во оваа размена не е приложен никаков клиентски сертификат. Не се работи за тоа дека клиентот не пратил ништо поврзливо, и сигурно не за тоа дека сесијата не носела никаков идентификатор.

Читајте ги пораките, а не името на шифрата

Прашајте го серверот што бара, наместо да заклучувате од множеството шифри. Ракување на TLS 1.3 што содржи барање за сертификат е видливо во транскриптот, а неговото отсуство е исто толку видливо.

openssl s_client -connect app.example.net:443 -tls1_3 -msg < /dev/null 2>&1 | grep -i -E 'key_share|CertificateRequest'

Потоа повторете со конфигуриран клиентски сертификат и споредете. Второто извршување треба да покаже дека сертификатот се праќа и прифаќа; првото не треба да покаже ниту еден, и тоа е конкретната разлика за која станува збор.

openssl s_client -connect app.example.net:443 -tls1_3 -cert client.pem -key client.key -quiet

Ако ви треба само вообичаениот случај на прегледување, деталниот излез на клиентот е доволен за да се види верзијата на протоколот, резултатот од проверката и дали бил понуден клиентски сертификат. Сервер што никогаш не праќа барање за сертификат не можел да прими еден.

Каде продолжувањето го менува одговорот

Продолжувањето во TLS 1.3 користи билети поврзани со тајна состојба, така што подоцнежната врска може да заврши без целосна размена на сертификати. Тоа го намалува она што го гледа набљудувачот и го менува она што го докажува транскриптот. Тоа не создава идентитет таму каде што го немало. Продолжената сесија сѐ уште припаѓа на истата сесија на апликацијата, и секое колаче или токен во таа сесија останува идентификаторот што е важен.

Затоа прегледот на приватноста што запира на "нема клиентски сертификат" го пропушта интересниот дел. Прашањето е која страна држи стабилен идентификатор, а не која порака недостасувала од едно ракување.

Запишете четири својства, а не една пресуда

Запишете го договорот за клуч, проверката на серверот, автентикацијата на клиентот и идентитетот на апликацијата како четири одделни реда, со доказот за секој. Овој список го преживува менувањето на верзијата на протоколот и го прави аргументот за приватноста проверлив од некој друг. Потоа додајте што придонесува мрежната патека. VPN ја менува изворната адреса што ја гледа услугата; тој не отстранува најава, колаче или отпечаток од уред што апликацијата веќе го има.

Запишете ги заедно договорената верзија на врската и исходот од барањето за сертификат, бидејќи токму тој пар рецензентот го бара за да го репродуцира вашиот заклучок без своја снимка.

Поврзани статии