mirror of
https://github.com/by-sonic/tglock.git
synced 2026-08-02 16:45:50 +03:00
docs(readme): объяснить срабатывания антивируса и зафиксировать отказ от подписи (#30)
Претензия про VirusTotal всплывала в обсуждениях и не была нигде объяснена. Отмахнуться «это ложное срабатывание» нельзя: движок реагирует на реальное поведение программы. Поэтому в README добавлен раздел, который объясняет механизм и даёт способы проверить, не доверяя автору на слово. Что написано: - что увидит пользователь: SmartScreen на Windows, детекты у части движков на VirusTotal; - почему: неподписанный файл проверяется эвристиками строже, а поведение — открыть локальный порт, объявить себя прокси и прописаться в настройки Telegram — совпадает с профилем прокси-троянов. Программа делает именно это, только по просьбе пользователя, и автоматически отличить одно от другого движок не может; - что подписи не будет: сертификат это ежегодный платёж, проект бесплатный. Формулировка прямая, без «скоро подпишем»; - три проверяемых пути: сверка sha256 с digest, который GitHub публикует на странице релиза (с командами под три ОС), открытый лог сборки в Actions с указанием конкретного run и коммита, сборка из исходников одной командой; - если этого недостаточно — не запускать, и это названо нормальным решением, а не паранойей, со ссылкой на альтернативу. Конкретные числа детектов не приводятся: они меняются от сборки к сборке и со временем, обещать «4 из 59» значит закладывать в документацию то, что устареет. Соответствующие пункты обновлены в ARCHITECTURE_V2.md (Current limitations) и в статусе ISSUE_AUDIT.md — там это было записано как открытый вопрос, требующий покупки сертификата, теперь как принятое решение. Co-authored-by: by-sonic <171230345+by-sonic@users.noreply.github.com>
This commit is contained in:
@@ -92,6 +92,43 @@ TGLock — это **локальный прокси** на твоём компь
|
||||
|
||||
> **🖥 `tglock-cli`** — тот же туннель без графического интерфейса, одним бинарём. Нужен там, где окно не создаётся: сервер, контейнер, виртуалка, машина без монитора. Доступен начиная с `v2.0.0-beta.2`. Подробности — [ниже](#-без-графического-интерфейса-tglock-cli).
|
||||
|
||||
### 🛡 Антивирус ругается, SmartScreen предупреждает, VirusTotal показывает детекты
|
||||
|
||||
Так и будет. Объясню механизм и дам способы проверить, не доверяя мне на слово.
|
||||
|
||||
**Что ты увидишь.** На Windows — «Система Windows защитила ваш компьютер» от SmartScreen. На VirusTotal — детекты у части движков, обычно единицы из примерно шестидесяти.
|
||||
|
||||
**Почему.** Складываются две вещи. Установщик не подписан сертификатом, а неподписанные файлы проверяются эвристиками гораздо строже, чем подписанные. И само поведение программы — открыть локальный порт, объявить себя прокси-сервером, прописаться в настройки соединения Telegram — это ровно тот профиль, по которому эвристики ищут прокси-трояны. Программа делает именно это, только по твоей просьбе. Отличить одно от другого автоматически движок не может, поэтому и реагирует.
|
||||
|
||||
**Подписи не будет.** Сертификат — это ежегодный платёж, а проект бесплатный и ничего не зарабатывает. Значит предупреждение останется, и делать вид, что «скоро подпишем», я не буду.
|
||||
|
||||
**Как проверить вместо доверия.** Три способа, все не требуют верить мне:
|
||||
|
||||
1. **Сверить контрольную сумму.** GitHub публикует `sha256` каждого файла прямо на [странице релиза](https://github.com/by-sonic/tglock/releases/latest) — разверни `Assets` и увидишь digest рядом с именем. Сравни с тем, что скачалось:
|
||||
|
||||
```powershell
|
||||
Get-FileHash .\TGLock_2.0.0-beta.2_x64-setup.exe -Algorithm SHA256
|
||||
```
|
||||
|
||||
```bash
|
||||
sha256sum tglock-cli-x86_64-unknown-linux-gnu # Linux
|
||||
shasum -a 256 tglock-cli-universal-apple-darwin # macOS
|
||||
```
|
||||
|
||||
Это доказывает, что файл не подменили по пути к тебе.
|
||||
|
||||
2. **Посмотреть, как файл собирался.** Бинарники собирает GitHub Actions из публичного коммита, лог открыт и его никто не может отредактировать задним числом. Сборка релиза `v2.0.0-beta.2` — [run 30535555083](https://github.com/by-sonic/tglock/actions/runs/30535555083), коммит `b062724`. Видно, какой исходник взят и какими командами собран.
|
||||
|
||||
3. **Собрать самому.** Для CLI это одна команда и никаких зависимостей кроме Rust:
|
||||
|
||||
```bash
|
||||
cargo build --release --locked --no-default-features --bin tglock-cli
|
||||
```
|
||||
|
||||
Полная сборка с интерфейсом — [ниже](#-сборка-из-исходников).
|
||||
|
||||
**Если этого недостаточно — не запускай.** Это нормальное решение, а не паранойя: исполняемый файл из интернета без подписи заслуживает недоверия по умолчанию. Собери из исходников или возьми [tg-ws-proxy](https://github.com/Flowseal/tg-ws-proxy) — он решает ту же задачу и тоже открыт.
|
||||
|
||||
> **🍎 macOS:** пока сборка не нотарифицирована Apple, при первом запуске может понадобиться:
|
||||
> ```bash
|
||||
> xattr -cr /Applications/TGLock.app
|
||||
|
||||
Reference in New Issue
Block a user