Учёные разработали сквозное шифрование для Git-сервисов
Почему шифрование Git-репозиториев тормозит разработку — и как это исправили
Представьте, что каждый раз, когда вы меняете одну строку в коде, вам приходится шифровать весь проект заново. Примерно так работают обычные системы сквозного шифрования в Git. Результат — дикая нагрузка на сервер, огромные объёмы передаваемых данных и вечное ожидание синхронизации. Многие команды из-за этого вообще отказываются от шифрования репозиториев. Но есть решение.
Исследователи из Университета Сиднея совместно с коллегами разработали новую систему шифрования, которая шифрует только изменённые фрагменты — на уровне отдельных символов или строк. Это меняет правила игры. Больше не нужно перешифровывать весь репозиторий при каждом коммите. Давайте разберёмся, как это работает и почему это важно именно для вас.
Проблема: Git не создан для шифрования
Git хранит код в виде слепков (blob'ов) и инкрементальных изменений. Стандартное end-to-end шифрование, как в мессенджерах, здесь неэффективно. При каждом коммите даже одной строки приходится шифровать весь blob целиком. Это создаёт избыточную нагрузку на процессор и память, а главное — многократно увеличивает объём передаваемых данных. Недавно я заметил, что многие команды стартапов просто игнорируют шифрование Git из-за замедления CI/CD на 30–40%. Они предпочитают риск утечки ради скорости. И это логично — никто не хочет ждать пять минут вместо пяти секунд.
«Это баланс: защитить код, не превратив работу с ним в пытку», — пояснил доцент Цянь Тан из Школы компьютерных наук Университета Сиднея.
Как работает новое инкрементальное шифрование
Суть проста: вместо того чтобы шифровать весь репозиторий, система отслеживает, какие именно строки или символы изменились со времени предыдущего коммита. Шифруется только этот дифф. За счёт этого требования к пропускной способности снижаются в десятки раз, а скорость синхронизации приближается к обычной работе без шифрования. Технология совместима с существующей инфраструктурой Git — не нужно менять Git-клиент или удалённые репозитории. Тесты на публичных проектах показали, что overhead (дополнительная нагрузка) составляет менее 5%.
Для тех, кто хочет разобраться детальнее, вот как это устроено:
- При коммите система вычисляет diff между новой и старой версией файла.
- Только изменённые участки (с точностью до символа) шифруются симметричным алгоритмом.
- Неизменённые части сохраняются в уже зашифрованном виде без повторных операций.
- Перед отправкой на сервер создаётся цифровая подпись, верифицирующая автора изменений.
Это не просто техническая оптимизация. Такой подход решает ещё одну проблему — проверку подлинности авторов. В традиционном Git подпись коммита (GPG) никак не влияет на шифрование содержимого. Новая система связывает ключ автора с каждым зашифрованным блоком, что снижает риск внедрения вредоносного кода, даже если злоумышленник получил доступ к репозиторию.
Сравнение: старый подход против нового
| Параметр | Традиционное шифрование (blob-level) | Инкрементальное шифрование (diff-level) |
|---|---|---|
| Нагрузка на CPU на один коммит | Высокая — перешифровка всех blob'ов | Низкая — только изменённые строки |
| Объём передаваемых данных | Равен размеру репозитория | Равен размеру диффа (обычно <1%) |
| Скорость синхронизации | Замедление в 3–10 раз | Замедление менее 5% |
| Защита от вредоносных коммитов | Только через GPG-подписи вне шифрования | Встроенная верификация авторства |
Важно: технология не требует изменения протокола Git. Она реализована как middleware между клиентом и сервером. Это значит, что вы сможете использовать её с GitHub, Bitbucket или любыми другими Git-хостингами, если разработчики интегрируют адаптер.
Что дальше: открытый код и реальные перспективы
Исследователи планируют опубликовать исходный код под свободной лицензией. Это позволит любому разработчику установить защиту на свой сервер Git. По словам доктора Я-Нань Ли, соавтора проекта, система также учитывает тонкие аспекты безопасности — например, проверку целостности данных на стороне сервера без расшифровки. Результаты работы будут представлены в октябре 2025 года на конференции ACM CCS.
Лично я жду этот релиз с нетерпением. В работе с закрытым кодом часто приходится выбирать между безопасностью и удобством. Здесь этого выбора не будет. Если технологию внедрят на GitHub — миллионы разработчиков получат защиту репозиториев без замедления работы. Это тот случай, когда инженеры наконец решили практическую проблему, а не просто опубликовали «очередную научную работу».
Резюме от автора. Забудьте про миф, что шифрование кода обязательно тормозит разработку. Новый подход доказывает обратное: можно защитить код и не жертвовать скоростью. Единственный минус — пока нет готового плагина или патча. Но, зная, как быстро Open Source сообщество подхватывает такие решения, — к концу 2025 года у нас будет работающий инструмент. Сохраните эту новость, чтобы не пропустить релиз.













