Cifrado de archivos Git para admitir permisos basados ​​en archivos/carpetas para proteger el código fuente contra robos

Estoy usando git y tengo el siguiente problema:
En la empresa donde trabajo queremos proteger el código fuente de robos.

Por ejemplo, cuando un desarrollador se va y se lleva el código fuente de un proyecto.

Para evitar esto, llegué a la conclusión de que encriptar el código fuente es la mejor opción, como lo hace git-crypt . Pero git-crypt no funciona:

  • Si agrego la clave GPG de un usuario, puede descifrar todos los archivos y la medida de protección no tendría ningún valor.

Los archivos del desarrollador deben descifrarse localmente y solo de forma remota. (De esta manera, el desarrollador no siempre tiene que cifrar, empujar, descifrar los archivos).

Traté de reprogramar git-crypt en Python (debido a la multiplataforma) pero fallé debido a los atributos de git/smudge, controladores de filtro limpios.

¿Conoces alguna posibilidad o alguna aplicación que solucione mi problema?


No considero Keybase de esta respuesta , porque encripta todo el repositorio. Y todas las personas que agregaré al repositorio tienen permiso completo para todos los archivos.

¿Puede explicar por qué la aplicación Keybase de la otra pregunta no funcionaría para usted?
Porque Keybase cifra el repositorio completo. ¡Y todas las personas que agregaré al repositorio han completado el permiso para todos los archivos!
Publicado de forma cruzada en Devops .
No entiendo su problema y creo que, en esencia, no es un problema técnico, por lo que no encontrará una solución técnica. Si algún desarrollador trabaja en el código, obviamente tiene la versión de texto claro para trabajar en él. Así que puede robarlo si quiere. El hecho de que pueda estar encriptado en el repositorio no vale nada. Si está hablando de otras partes del código fuente que este desarrollador no debería poder tocar, entonces el problema radica más en tener repositorios git separados correctos y filtrar el acceso a ellos de manera adecuada.
No entiendo "Los archivos del desarrollador deben descifrarse localmente y solo de forma remota".
@PatrickMevzek Si hubieras publicado eso como respuesta, lo habría votado

Respuestas (1)

El cifrado del repositorio de git está diseñado para proteger los archivos del robo de terceros (por ejemplo, cuando se alojan en servidores externos como GitHub o S3 Bucket, o mediante el uso de Keybase ), no de los desarrolladores que trabajan en el proyecto.

Puede usar Submódulos de Git , o simplemente diferentes repositorios, luego otorgar diferentes permisos para cada repositorio, de modo que los desarrolladores no tengan acceso a todo el proyecto.

De lo contrario, si no desea otorgar acceso a los archivos, cree un servicio SOAP/REST para la comunicación cliente-servidor para proporcionar solo la información necesaria según la demanda. La mayoría de las empresas implementan múltiples capas de servicios API para proteger sus datos confidenciales contra la piratería o el robo.