Видит ли LRO мой трафик?

Нет. Когда туннель несёт ваши данные, эти данные сквозно зашифрованы между двумя агентами. Ядро LRO в середине перекладывает байты, которые не может прочитать — у него никогда нет ключа, позволяющего расшифровать вашу SSH-сессию, подключение к БД или что угодно внутри туннеля.

Сквозное шифрование между агентами

Два агента на концах туннеля устанавливают собственное шифрование, независимо от сервера. Они обмениваются эфемерными публичными ключами X25519 и выводят ключ сессии на туннель через HKDF-SHA256. Затем каждый чанк вашего трафика запечатывается ChaCha20-Poly1305 — аутентифицирующим шифром: если в пути изменить хоть один байт, расшифровка провалится, а не отдаст подделанные данные.

Поскольку обмен ключами происходит между агентами, ретранслятор всегда видит только шифртекст. Он направляет зашифрованные записи нужному пиру и забывает их. В пути нет ни депонирования ключей, ни шага расшифровки на сервере.

У каждого туннеля свой ключ сессии, отдельный от ключей аутентификации агента на сервере. При закрытии туннеля ключи сессии затираются (zeroize) из памяти, а не остаются лежать.

Управляющий канал тоже зашифрован

Отдельно от вашего трафика, соединение, которое агент держит к ядру, само зашифровано рукопожатием Noise XK (Noise_XK_25519_ChaChaPoly_BLAKE2s). После трёхсообщенческого рукопожатия агент и ядро разделяют транспортный ключ, и каждый управляющий кадр после этого зашифрован и аутентифицирован. Так что оба слоя — команды управления туннелями и сам полезный трафик туннеля — защищены, разными ключами.

Что сервер знает, а что нет

Ядро знает факты маршрутизации, нужные для работы: какие агенты подключены, какой туннель открыт к какому эндпоинту и сколько байт ретранслировано (это и считает биллинг). Оно не знает содержимого этих байт. Считайте полезную нагрузку непрозрачным шифртекстом с момента, как она покинула один агент, и до прихода на другой.

Откройте сквозно-зашифрованный туннель к машине, которой вы управляете.

Создать аккаунт →