transport

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package transport собирает параметры QUIC и TLS для обеих сторон туннеля.

TLS здесь выполняет роль транспортной обёртки, а не источника доверия: сервер поднимается на самоподписанном сертификате, а личность пира проверяется рукопожатием Noise по закреплённому статическому ключу. Так мы обходимся без PKI и не зависим от срока действия сертификата.

Index

Constants

View Source
const DefaultServerName = "localhost"

DefaultServerName подставляется в сертификат, если имя не задано. Нейтральное значение лучше говорящего: сертификат не виден пассивному DPI (в QUIC он едет под ключами TLS 1.3), но выдаст себя при активном пробинге, когда сервер опрашивают напрямую.

View Source
const KeepAlivePeriod = 10 * time.Second

KeepAlivePeriod - период PING-кадров QUIC, удерживающих NAT-биндинг.

View Source
const MaxIdleTimeout = 30 * time.Second

MaxIdleTimeout - через сколько тишины QUIC признаёт соединение мёртвым.

Variables

This section is empty.

Functions

func ClientTLS

func ClientTLS(serverName string) *tls.Config

ClientTLS отключает проверку сертификата осознанно: доверие строится не на цепочке X.509, а на статическом ключе сервера, закреплённом в конфиге клиента. Без верного ключа рукопожатие Noise не сойдётся, и подменивший TLS-сертификат посредник дальше не пройдёт.

serverName уезжает в ClientHello как SNI - открытым текстом, доступным любому DPI. Пустое значение означает ClientHello без SNI: в дикой природе такого почти не бывает, и само по себе это заметный признак.

func QUICConfig

func QUICConfig() *quic.Config

QUICConfig - общие параметры соединения для клиента и сервера.

func ServerTLS

func ServerTLS(serverName string) (*tls.Config, error)

ServerTLS выпускает эфемерный самоподписанный сертификат на время работы процесса. Клиент его не проверяет - доверие строится на ключе Noise, - поэтому имя влияет только на то, что увидит активный пробинг.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL