java - usados - ¿qué es un sistema control de versiones centralizado?
¿Hay alguna razón por la que no deba almacenar mi almacén de claves en el control de versiones? (2)
Cualquier persona con acceso de lectura a su repositorio Git obtendrá la clave privada. Esto se considera un problema de seguridad y por esa razón no se recomienda. Si su repositorio de GIT es completamente privado, no hay nadie, pero usted tiene acceso a él (NO un repositorio privado en GitHub, sino un repositorio de git en el disco local o en la infraestructura que controla en un 100%). Seguro como guardarlo en su disco local.
Supongamos que el propio almacén de claves y las claves privadas dentro de ambas tienen contraseñas seguras.
Tenga en cuenta que la contraseña es su última forma de defensa en caso de su clave privada ("pública"). Si se compromete de alguna manera (adivinado, robado, agrietado), entonces se termina.
Además, estoy más que seguro de que no todos (si los hay) de desarrolladores necesitan acceso para liberar claves . Si necesitas que lo tengan, entrégalo del repositorio. Pero primero repensaría la política de seguridad.
Estoy usando un almacén de claves (.jks) para almacenar el certificado que utilizo para firmar mis aplicaciones de Android. La documentación y la comunidad de Android me han impresionado la importancia de nunca perder este archivo, pero no he encontrado ninguna guía sobre dónde debería guardarlo.
¿Sería una idea terrible almacenarlo en Git (es decir, tendría consecuencias de seguridad)?
Supongamos que el propio almacén de claves y las claves privadas dentro de ambas tienen contraseñas seguras.
Para actualizar tu aplicación necesitas dos cosas:
- Accede a la consola de Google Play Developer que posee la aplicación.
- Un APK firmado con el keystore correcto.
Al colocar el certificado en su repositorio y compartirlo con sus desarrolladores, está entregando un token de seguridad.
Si su cuenta de consola de Google Play Dev es segura, entonces debería estar bien. Pero depende de tu szenario.
Ponerlo en el repositorio es mucho más fácil:
- Su repositorio se clona en muchos lugares y generalmente se realiza una copia de seguridad adecuada.
- Su equipo de desarrolladores puede usar gradle para firmar su lanzamiento de producción automáticamente.
Muchas personas prefieren colocarlo en una o varias tarjetas SD y colocarlo en algún lugar. Pero la mayoría de las personas no tienen un lugar llamado "en algún lugar" en su oficina. ¿Todavía se puede leer en unos años?
Dos consideraciones más:
Si el propietario del producto de la aplicación de Android cambia en su empresa, nunca se sabe si el antiguo propietario todavía tiene una copia y nadie sabe quién tiene acceso a ella. No puedes cambiar la llave. Entonces, si la clave se pasa una vez de una persona a otra, se debe asumir que es insegura.
Por supuesto, puedes mantenerlo completamente privado. Está protegido por su contraseña que nadie sabe. ¿Pero qué pasa si mueres? Alguien podría querer actualizar su aplicación. No es posible. Una clave privada que se mantiene privada se pierde cuando mueres.
Así que creo que ponerlo en tu repositorio está bien. Tenga cuidado de proteger su cuenta de Google. Para esta cuenta se puede cambiar la contraseña, se puede activar Two-faktor y así sucesivamente.