Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
git-remote-pqcrypt — Зашифрованный удалённый помощник Git, реализованный на Rust | Kitploit
Инструменты/GitHubGitHub/torm0r/git-remote-pqcrypt
Инструменты шифрования/дешифрованияКриптографияБезопасность облачных средУтилиты и фреймворки
GitHubtorm0r/git-remote-pqcrypt

git-remote-pqcrypt

Зашифрованный удалённый помощник Git, реализованный на Rust

Репозиторий
3172 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

git-remote-pqcrypt


ЭТО ЭКСПЕРИМЕНТАЛЬНЫЙ ПРОЕКТ, формального аудита безопасности не проводилось. НЕ ПОЛАГАЙТЕСЬ на него для критически важных репозиториев.

git-remote-pqcrypt — это зашифрованный удалённый помощник Git, аналогичный gcrypt. Он хранит Git-пакфайлы и метаданные репозитория в зашифрованном виде. Доступ осуществляется с помощью постквантовой обёртки XWing.

Текущая версия крейта: 0.2.0.

Как это работает

  1. git-remote-pqcrypt init создаёт главный ключ репозитория.
  2. Главный ключ обёртывается для каждого пользователя с помощью его открытого ключа.
  3. Git-пакфайлы и манифест шифруются с использованием главного ключа.
  4. Git использует pqcrypt через удалённый помощник git-remote-pqcrypt.
  5. Главный ключ расшифровывается локально помощником, а затем пакфайлы расшифровываются в локальный репозиторий.

Пример файлов удалённого хранилища:

keys.json
manifest.enc
objects/
    pack-.....pack.enc

keys.json содержит метаданные и зашифрованные обёртки главного ключа.

Установка

Быстрая установка с помощью Cargo

Установите стандартную сборку из Git:

cargo install --git https://github.com/Torm0r/git-remote-pqcrypt --locked

Это устанавливает git-remote-pqcrypt в бинарный каталог Cargo, обычно ~/.cargo/bin.

Убедитесь, что бинарный каталог Cargo находится в вашем PATH, затем проверьте, что всё работает:

git-remote-pqcrypt --help

Стандартная сборка включает поддержку локальной файловой системы и хранилища на основе Git.

Для установки с поддержкой SFTP в Unix-подобных системах:

cargo install --git https://github.com/Torm0r/git-remote-pqcrypt --locked --features sftp

Функция sftp в настоящее время не поддерживается в Windows.

Сборка из исходного кода

Сборка с поддержкой бэкендов по умолчанию:

cargo build --release

Это включает поддержку локальной файловой системы и хранилища на основе Git.

Для сборки с поддержкой SFTP в Unix-подобных системах:

cargo build --release --features sftp

Установите бинарный файл в ваш PATH:

sudo cp target/release/git-remote-pqcrypt /usr/local/bin/

Имя бинарного файла должно оставаться git-remote-pqcrypt, так как Git находит удалённые помощники по шаблону git-remote-[имя].

Проверьте, что всё работает:

git-remote-pqcrypt --help

Требования

  • Инструментарий Rust для сборки из исходного кода
  • Должен быть установлен git
  • Для хранилища на основе Git необходимы рабочие учётные данные Git и настроенная идентификация Git
  • Для доступа по SSH/SFTP должна быть настроена существующая SSH-аутентификация
  • Поддержка SFTP требует сборки с --features sftp и в настоящее время доступна только в Unix-подобных системах

Быстрый старт

  1. Перейдите в существующий Git-репозиторий или создайте новый.

  2. Инициализируйте хранилище pqcrypt.

Локальный путь:

git-remote-pqcrypt init pqcrypt:///path/to/encrypted-store

SFTP требует сборки с функцией sftp и в настоящее время поддерживается только в Unix-подобных системах:

git-remote-pqcrypt init pqcrypt::sftp://[email protected]/path/to/store

На основе Git:

git-remote-pqcrypt init pqcrypt::[email protected]:org/store.git

Если закрытый ключ отсутствует, он будет создан в ~/.config/pqcrypt/key, а открытый ключ будет выведен.

Вас попросят указать необязательный комментарий к ключу, например personal или work-laptop.

После инициализации будет добавлен удалённый Git-репозиторий с именем pqcrypt:

git remote -v

Пример:

pqcrypt  pqcrypt::/path/to/encrypted-store (fetch)
pqcrypt  pqcrypt::/path/to/encrypted-store (push)
  1. Отправка:
git push pqcrypt main
  1. Клонирование или получение:
git clone pqcrypt::[email protected]:Torm0r/pqcrypt-test.git my-clone
  1. Добавьте другого пользователя.

Они должны сгенерировать пару ключей с помощью:

git-remote-pqcrypt keygen

Они могут получить свой открытый ключ с помощью:

git-remote-pqcrypt pubgen ~/.config/pqcrypt/key

Или они могут скопировать открытый ключ, выведенный keygen.

Затем существующий авторизованный пользователь добавляет их в репозиторий:

git-remote-pqcrypt add-user <base64-public-key>

Выполните это для дополнительных параметров:

git-remote-pqcrypt add-user -h

По умолчанию add-user ищет локальный удалённый Git-репозиторий, URL которого начинается с pqcrypt, и добавляет туда открытый ключ.

Поведение при отправке

pqcrypt различает обычные отправки и принудительные отправки по Git refspec.

Обычные отправки проверяются на fast-forward и отклоняются, если они перезаписывают удалённую историю.

Поведение удалённого помощника

Git вызывает pqcrypt как удалённого помощника через бинарный файл git-remote-pqcrypt.

При вызове Git помощник ожидает форму аргументов удалённого помощника, используемую Git, например:

git-remote-pqcrypt origin pqcrypt::/path/to/store

Прямые подкоманды CLI, такие как init, add-user, keygen, pubgen и help, обрабатываются как обычные пользовательские команды, а не как вызовы удалённого помощника.

Точка входа бинарного файла делегирует выполнение библиотеке времени выполнения, поэтому логика приложения тестируема как через библиотеку крейта, так и через установленный бинарный файл.

Кэш хранилища на основе Git

Для URL-адресов хранилища на основе Git pqcrypt поддерживает локальный кэш в системном каталоге кэша, например:

~/.cache/pqcrypt/

pqcrypt получает зашифрованное состояние из резервного Git-репозитория перед операциями и отправляет зашифрованное состояние после обновлений.

Если обнаружено повреждение или потеря кэша, pqcrypt пытается автоматически воссоздать кэш, повторно загружая данные из резервного Git-репозитория.

Форматы URL

pqcrypt::, pqcrypt:// и pqcrypt: — все принимаются и внутренне нормализуются до pqcrypt::.

Эти эквивалентны:

git-remote-pqcrypt init pqcrypt:///path/to/store
git-remote-pqcrypt init pqcrypt::/path/to/store
git-remote-pqcrypt init pqcrypt:/path/to/store

Бэкенд определяется путём хранилища:

PatternBackendNotes
/local/pathЛокальная файловая системаПо умолчанию
git@host:, *.git, https://git*На основе GitПо умолчанию
sftp:// или ssh://SFTPТребует --features sftp; только Unix-подобные системы

Примеры:

pqcrypt::/tmp/store
pqcrypt:///tmp/store
pqcrypt:/tmp/store
pqcrypt::[email protected]:org/store.git
pqcrypt::https://github.com/org/store.git
pqcrypt::sftp://[email protected]/path/to/store

Логика поиска закрытого ключа

Во время расшифровки pqcrypt ищет закрытый ключ в следующем порядке:

  1. переменная окружения PQCRYPT_KEY_PATH
  2. git config pqcrypt.keypath
  3. .pqcrypt/key в текущем каталоге
  4. Любой подходящий файл ключа в ~/.config/pqcrypt, где все проверяются

Для многоключевых конфигураций, например рабочих и личных ключей:

git config pqcrypt.keypath ~/.config/pqcrypt/work-key

Ключ должен быть тем, который использовался во время init или был добавлен через add-user.

Разработка

Запустите полный набор тестов:

cargo test

Запуск с включённым SFTP в Unix-подобных системах:

cargo test --features sftp

Некоторые сквозные тесты, зависящие от поведения локального пути в Unix-подобных системах, игнорируются в Windows.

Сборки CI

GitHub Actions собирает проект на Linux, macOS и Windows. Артефакты рабочего процесса могут содержать бинарные файлы из запусков CI, но они не являются официальными релизами.

Информация о безопасности

Скачать инструмент