шифрование ссылок
Deep-link’и, которыене палят домен подписки.
Небольшая npm-библиотека для провайдеров. Превращает URL подписки в incy://crypt1/<payload> — INCY открывается у пользователя и добавляет подписку без копи-пасты. Ничего не уходит на сервер: AES-256-GCM прямо в браузере или в node-процессе.
Живой энкодер— попробуйте без npm install
encoder.js · AES-256-GCM · in-browser
npm-пакет для провайдеров
Встройте шифрование в telegram-бот, сайт или CLI. Без зависимостей помимо node.js stdlib — один импорт, один вызов.
install.sh
# Install
$ npm install @incy/link-encoder
import { encryptLink } from '@incy/link-encoder'
const link = encryptLink(
'https://incsub.example.org/vTyt0xVE-aAjHv8T',
{ name: 'MyProvider VPN' }
)
// → incy://crypt1/AAECAwQFBgcICQoL…
console.log(link)Threat model
Что защищает — а что нет. Честно.
Закрывает
- модерацию telegram-каналов и автоматические сканеры РКН
- паттерн-матч регулярками по дампам чатов
- скриншоты с case-sensitive URL подписок
- supply-chain сканеры, выискивающие VPN-паттерны
Не закрывает
- целеустремлённого reverse engineer’а с Frida
- ключ AES материализуется в памяти в момент encrypt/decrypt
- это обфускация для UX, не криптография для секретности
- тот же ключ уже лежит внутри каждого установленного клиента INCY
Если ключ когда-нибудь публично сольют — выйдет релиз с crypt2/. Существующие crypt1/-ссылки в чатах продолжат работать вечно: клиенты никогда не удаляют старые схемы из decode-таблицы.