Видит ли LRO мой трафик?
Нет. Когда туннель несёт ваши данные, эти данные сквозно зашифрованы между двумя агентами. Ядро LRO в середине перекладывает байты, которые не может прочитать — у него никогда нет ключа, позволяющего расшифровать вашу SSH-сессию, подключение к БД или что угодно внутри туннеля.
Сквозное шифрование между агентами
Два агента на концах туннеля устанавливают собственное шифрование, независимо от сервера. Они обмениваются эфемерными публичными ключами X25519 и выводят ключ сессии на туннель через HKDF-SHA256. Затем каждый чанк вашего трафика запечатывается ChaCha20-Poly1305 — аутентифицирующим шифром: если в пути изменить хоть один байт, расшифровка провалится, а не отдаст подделанные данные.
Поскольку обмен ключами происходит между агентами, ретранслятор всегда видит только шифртекст. Он направляет зашифрованные записи нужному пиру и забывает их. В пути нет ни депонирования ключей, ни шага расшифровки на сервере.
Управляющий канал тоже зашифрован
Отдельно от вашего трафика, соединение, которое агент держит к ядру, само зашифровано рукопожатием Noise XK (Noise_XK_25519_ChaChaPoly_BLAKE2s). После трёхсообщенческого рукопожатия агент и ядро разделяют транспортный ключ, и каждый управляющий кадр после этого зашифрован и аутентифицирован. Так что оба слоя — команды управления туннелями и сам полезный трафик туннеля — защищены, разными ключами.
Что сервер знает, а что нет
Ядро знает факты маршрутизации, нужные для работы: какие агенты подключены, какой туннель открыт к какому эндпоинту и сколько байт ретранслировано (это и считает биллинг). Оно не знает содержимого этих байт. Считайте полезную нагрузку непрозрачным шифртекстом с момента, как она покинула один агент, и до прихода на другой.
Откройте сквозно-зашифрованный туннель к машине, которой вы управляете.
Создать аккаунт →