Обновить
32K+
1
Безработный@Careviolan

Пользователь

12,9
Рейтинг
3
Подписчики
Отправить сообщение

Как я перестал бояться опенсорсить свои поделки

для тех, кто пишет код в VS Code, не помнит наизусть флаги git filter-repo и считает, что IDE — нормально. Если ты из лагеря «настоящие программисты сидят в vim и пишут всё в Makefile» — просто пролистай

git-private2public как .gitignore, но чтобы сделать зеркало приватного репо одной git push.

Что это

CLI-тулза. Держит два репо в синхроне: приватный (ваш рабочий бардак) и публичный (чистая версия). При пуше автоматически вычищает секреты и обновляет публичный mirror.

Конфиг — папка .gitpublic/, как .gitignore. По одной маске на строку, без YAML.

.gitpublic/
  config      — source / target / push
  ignore      — что НЕ публиковать
  replace     — что заменить (==> без кавычек)
  scan        — что не должно попасть, иначе падаем
  allow       — но конкретно эти можно пропускать в пуш,  

Файла нет → настройки нет. Просто.

Автопуш через git hook

pip install git-private2public
cd ~/my-private-repo
git-private2public init

init создаёт пять пустых файлов с закомментированными примерами. Дальше правите то, что нужно:

Easy — только ignore:

.env
secrets/
*.key
credentials.json

Medium — добавляете replace:

10.0.0.5          ==> 203.0.113.5
real-token-here   ==> ***

Hard — добавляете scan (защита от факапов):

# scan
regex:github_pat_[A-Za-z0-9_]{30,}
regex:192\.168\.

Если в коде найдётся паттерн из scanpublish падает, ничего не пушится.

git-private2public scan      # dry-run
git-private2public publish   # реальный пуш

Автопуш через git hook

Это та фича, ради которой я и начал. Никакого CI, никаких GitHub Actions.

git-private2public hook enable

Ставит pre-push хук. Теперь обычный git push — отправляет в приватный репо и автоматически чистит-пушит в публичный mirror.

git-private2public hook status    # проверить
git-private2public hook disable   # выключить

Работает офлайн, на любом хостинге.

Почему не git filter-repo или BFG

Я ими пользовался. Они мощнее, но мне нужны были четыре вещи в одной тулзе:

Не нашёл — написал.

Установка (ещё раз, коротко)

pip install git-private2public

Если pip не вариант — single-file: скачал git_private2public.py, chmod +x, готово (нужны git-filter-repo и pyyaml).

Ссылки

TL;DR

pip install git-private2publicinit → редактируешь .gitpublic/ignorepublish. Если хочешь автопуш — hook enable.git push. Всё.

Теги:
+8
Комментарии0

VKCipher: сквозное шифрование для переписки ВКонтакте

Это браузерное расширение, которое добавляет end-to-end шифрование в веб-версию ВКонтакте(и в pwa мессенджер). Работает везде: iPhone /Windows / Mac / Linux / Android

Что умеет:шифрует сообщения, картинки и видео.В планах еще голосовухи.

Репозиторий: VKCipher

Работает через Tampermonkey / Userscripts: Chrome на пк, Safari на iPhone, Firefox на Android. Открываете vk.com, vk.ru или web.vk.me, заходите в чат — в поле ввода появляются кнопки шифрования и управления ключами.

Зачем

У ВК есть огромный плюс: он уже установлен у миллионов людей. У него же есть очевидный минус: обычная переписка не является end-to-end encrypted

VKCipher закрывает именно этот слой. Не пытается заменить мессенджер, не делает VPN, не обещает анонимность. Он делает одну вещь: содержимое сообщения уходит в ВК уже зашифрованным.

ВК, браузерный интерфейс, логи, бэкапы, случайный доступ к аккаунту или серверной стороне видят не текст, а строку вида:

ENC[key<id>:base64(iv ciphertext tag)]

Без ключа это не сообщение, а мусор.

Как устроено?

Криптография не самописная. Используется AES-256-GCM через нативный Web Crypto API браузера. Для каждого сообщения генерируется новый 12-байтный IV/nonce. GCM-tag проверяет целостность: если шифротекст повредили или подменили, расшифровка падает.

Ключи можно получить двумя способами:

  1. Seed-фраза Пользователь вводит фразу, из неё через PBKDF2-SHA256 генерируются k1…k4.

  2. 64-hex ключ Можно добавить свой ключ вручную или сгенерировать временный [РЕКОМЕНДУЮ ВРЕМЕННЫЙ НА КАЖДЫЙ ЧАТ И РОТИРОВАТЬ ЕГО РЕГУЛЯРНО].

Seed-фраза не сохраняется.

Сейчас VKCipher умеет:

  • шифровать исходящие сообщения кнопкой;

  • автоматически шифровать сообщение при Enter;

  • расшифровывать входящие(текст/картинки/видео) прямо в чате;

  • переключать [шифр] / [текст];

  • работать в личках, беседах и групповых чатах;

  • использовать несколько слотов ключей;

  • генерировать временный ключ;

  • кодировать шифротекст не только Base64, но и emoji-алфавитом.

Последнее не про криптографию, а про UX. Иногда приятнее видеть стену из эмодзи, чем технический Base64. А вероятность такого текста в обычной переписке выше, чем обычного Base64.

Почему не Telegram / Мой_Любимый_Мессенджер?

Потому что это другой сценарий. В Telegram сквозное шифрование есть только в секретных чатах, а обычные чаты — не зашифрованы(Многие этого не знают).VKCipher нужен не для того, чтобы спорить, какой мессенджер «правильный». Он нужен для ситуации, где люди уже сидят во ВК и не хотят/не могут переезжать.

Приватность должна быть не религиозным выбором мессенджера, а функцией, которую можно включить там, где уже идёт общение.

Threat model

VKCipher защищает содержимое сообщений.Он не скрывает:

  • факт переписки;

  • участников переписки;

  • время отправки;

  • размер сообщения;

  • IP-адрес;

  • сам факт использования ВК;

  • текст, если устройство уже скомпрометировано;

  • ключ, если пользователь сам отправил его в тот же чат.

То есть это не Tor, не VPN и не «режим невидимости». Это именно E2EE-слой поверх существующего транспорта.

Почему открытый код важен

Криптографический инструмент без открытого кода — это «поверьте нам». Мне такой подход не нравится. Поэтому код открыт. Можно проверить реализацию. Плюс можно добавить Макс/Телеграм/Мой_Любимый_Мессенджер

Если найдёте проблему — issue/PR приветствуются.

Итог

VKCipher — это маленький слой приватности поверх ВК. Не новый мессенджер, не новый клиент. Не самодельный шифр. Не магия. Не анонимность.

Просто нормальный AES-256-GCM в привычном чате, с открытым кодом и установкой за несколько секунд.

Репозиторий: VKCipher
Расширение не является продуктом ВКонтакте.

UPD: Все спрашивают банят ли аккаунты? Уже 2 месяца 50к сообщений с друзьями написали, банов нет. Но используйте доп аккаунт (ВК FAQ:Как добавить несколько профилей)
UPD 2: VKEncrypt было занято другим (закрытым) расширением, переименовал в VKCipher

Теги:
+13
Комментарии28

Информация

В рейтинге
743-й
Зарегистрирован
Активность

Специализация

Генеральный директор, Создатель контента
Ведущий
От 505 000 ₽
Git
PostgreSQL
Linux
Nginx
Английский язык
Python
CI/CD