Проксі та обхід цензури
Кожен акаунт Signal, яким керує signal2sip, можна спрямувати через проксі - той самий механізм, що використовує функція “Set Proxy” в офіційних застосунках Signal, і з тієї самої причини: доступ до серверів Signal з мережі, де вони заблоковані, без VPN.
Як це працює
- Підтримка проксі в signal2sip використовує той самий протокол, що й
реальні клієнти Signal для вручну налаштованого проксі (схема
org.signal.tls, яку несуть посиланняsignal.tube): прозорий TCP/TLS-ретранслятор доchat.signal.org. - Ретранслятор ніколи не термінує і не інспектує TLS-сесію, яку несе -
справжнє наскрізне TLS-рукостискання вашого клієнта з
chat.signal.org(власний закріплений сертифікат Signal, справжній SNI) відбувається точно так само, як без проксі; ретранслятор лише пересилає байти шифротексту, які сам прочитати не може. Проксі приховує від спостерігача мережі сам факт з’єднання з Signal - він не додає точки розшифрування і не послаблює жодних наскрізних гарантій самого Signal. - Це окремо від власного механізму автоматичного domain fronting у Signal (маскування з’єднань під загальні, важкі для блокування CDN-адреси), яким поле проксі в signal2sip напряму не керує - див. незалежний прапорець нижче.
Налаштування для кожного акаунта
Два незалежні параметри, обидва редагуються наживо - без перезапуску
демона, див. Керування наживо - через
signal2sip-gendb або екран налаштувань Signal у TUI:
signal2sip-gendb <ім'я-акаунта> config set signal_proxy proxy.example.com
signal2sip-gendb <ім'я-акаунта> config set signal_proxy proxy.example.com:8443
signal2sip-gendb <ім'я-акаунта> config set signal_proxy ""signal_proxy- хост, опційноhost:port(за замовчуванням443), прозорого TLS-ретранслятора; порожнє значення (типово) означає пряме з’єднання. Той самий ретранслятор, на який вказував би екран “Set Proxy” реального клієнта Signal.signal_censorship_circumvention-yes/no, незалежний перемикач власної автоматичної поведінки domain fronting у Signal.
Запуск власного ретранслятора
На стороні сервера не потрібен жодний власний протокол - достатньо
прозорого TCP/TLS-проходу до chat.signal.org:443 (підійде блок
nginx stream {}, socat або TCP-режим HAProxy). Як готовий до
розгортання варіант, signal2sip також публікує
signal-proxy-caddy
(Apache-2.0, окремий репозиторій) - ретранслятор на базі Caddy з одним
реальним покращенням порівняно з офіційним
signalapp/Signal-TLS-Proxy:
трафік не-Signal-проб перенаправляється на фейкову відповідь замість
скидання, що закриває прогалину у fingerprint активного зондування
(net4people/bbs#60),
яка досі є в офіційному проксі. Він також підтримує опційний allowlist
за IP, якщо ви хочете тримати ретранслятор приватним лише для власних
акаунтів, а не відкритим для всіх.