Термин глоссария

secret

Секрет (ключ) MTProto-прокси

Коротко

Ключ из ссылки на прокси: задаёт режим работы и, для FakeTLS, домен маскировки.

Из чего состоит

В основе секрета — 16 случайных байт, их записывают 32 шестнадцатеричными символами. К ним могут добавляться префикс режима и домен:

  • без префикса — обычный режим (obfuscated2);
  • dd + ключ — режим со случайным дополнением пакетов (padding);
  • ee + ключ + домен в hex — FakeTLS.
ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d

Где используется

Секрет — третий обязательный параметр ссылки на прокси рядом с сервером и портом: tg://proxy?server=…&port=…&secret=…. Клиент использует его при обфускации соединения, а сервер проверяет, что к нему подключается свой клиент.

Секрет в разных программах

Официальный MTProxy принимает несколько секретов — ключ -S можно указать повторно. В mtg секрет один, он записан в конфигурации в параметре secret. В telemt секреты привязаны к пользователям в разделе [access.users], поэтому каждому можно выдать свою ссылку и отозвать её отдельно.

Как проверить длину

Длина подсказывает режим: сверьте её со списком, чтобы заметить обрезанный секрет:

  • 32 символа — обычный режим;
  • 34 символа — режим dd;
  • 2 + 32 + удвоенное число символов домена — режим ee; для google.com это 54.

Как получить

Ключ из 16 байт создают командой openssl rand -hex 16 или head -c 16 /dev/urandom | xxd -ps. Для режима ee секрет вместе с доменом выдаёт mtg generate-secret --hex домен. Секрет не отправляется по сети: он участвует в выводе ключей шифрования, поэтому без него клиент не сможет подключиться к прокси.

Как обращаться

Секрет — это и пароль, и часть маскировки. Кто его знает, тот может подключаться к прокси и делиться ссылкой дальше; а опубликованный в открытом виде секрет может попасть и к тем, кто составляет списки для блокировки. Вводить его в клиент нужно целиком, вместе с префиксом: обрезанный секрет даёт другой режим или не подключается вовсе.

Источники

  1. Telegram: ссылки (proxy links)
  2. Telegram: MTProto transports
  3. mtg: README проекта

Связанные термины

Упоминается в статьях