Instalar certificado sin bloqueo de PIN obligatorio

23

El soporte de Google dice :

El administrador de su sistema puede predeterminar el tipo de bloqueo que es aceptable.

¿Dónde puedo definir qué es aceptable? Puedo regenerar el certificado si es necesario.

Entonces puedo usar la pantalla de bloqueo de diapositivas nuevamente.

(Estoy usando CM9 RC1, Android 4.0.4)

rdlu
fuente
1
Aceptaré una solución que instale el certificado en el sistema directamente, evitando así el requisito de pin.
rdlu
1
Para proteger sus credenciales es un requisito que utilice uno de los tipos de pantalla de bloqueo que tiene algún tipo de código secreto (patrón, PIN o contraseña). Lo que le dice esa línea es que su administrador puede (normalmente a través de una política de Exchange ActiveSync) bloquear su teléfono para que solo se acepten algunos tipos de ellos, por ejemplo, pueden no confiar en bloqueos de patrones y pueden pensar que 4 dígitos Los PIN no tienen suficientes combinaciones. No significa que pueda desactivar este requisito de seguridad.
GAThrawn
2
@GAThrawn Me parece inaceptable si solo instalo una CA para autenticar mis servidores web a través de SSL (usando certificados autofirmados). Lo entendería si se tratara de firmar claves en el dispositivo o autenticar al usuario, pero ambas cosas son al revés. Afortunadamente, la solución sgiebels parece funcionar para mí, con algunos ajustes menores que describí en los comentarios allí. Solo inconveniente hasta ahora: requiere root.
Izzy

Respuestas:

2

El problema con la desactivación de la seguridad de la pantalla de bloqueo usando el interruptor / perfil es que los widgets de la pantalla de bloqueo tampoco aparecen, por lo que no puede deslizar para desbloquear. Además, cuando reinicia su teléfono, los botones no funcionan hasta que vuelva a reajustar la configuración.

Otra forma es instalar el certificado como de costumbre, luego hacer una copia de seguridad de los directorios / data / misc / keychain y del almacén de claves utilizando algo que conserve las ACL, como Root Explorer, en una ubicación que admita ACL. Sugiero copiarlos a / tmp. Luego borre las credenciales de Configuración y habilite Deslizar para desbloquear. Luego, vuelva a copiar las carpetas desde / tmp. La CA se instalará.

Monstieur
fuente
Esto ya no funciona. Tan pronto como intente usar el certificado en algún lugar (como al conectarse a una red wifi), el sistema operativo requiere que vuelva a establecer un bloqueo en la pantalla.
Cory Klein
@CoryKlein Si hace clic en cancelar, se le solicitará un PIN y podrá ingresar el último que configuró. Es necesario descifrar los datos.
Monstieur
@ Kurian - Entonces seguí las instrucciones anteriores, y cuando trato de conectarme a una red wifi dice "Necesitas establecer un PIN de bloqueo de pantalla", hago clic en "Cancelar", y no sucede nada. Si presiono "Ok" y luego cancelo desde allí, todavía no solicita el PIN.
Cory Klein
@CoryKlein Leí mal tu comentario anterior. Estaba hablando de VPN. Conectarse a una VPN le solicita el último PIN de la pantalla de bloqueo para descifrar sus credenciales. No sé si funciona para certificados personales con claves privadas. Sé que funciona para instalar certificados de CA de confianza. También podría ser la ROM específica que está utilizando. Las ROM AOSP anteriores a ICS nunca necesitaron un PIN de bloqueo de pantalla para guardar las credenciales de VPN.
Monstieur
7

Describí cómo hacer exactamente esto en mi página, "Instalación de certificados CAcert en Android como credenciales de 'sistema' sin pantalla de bloqueo - instrucciones" en http://wiki.pcprobleemloos.nl/android/cacert

También lo publiqué en el foro cyanogenmod: http://forum.cyanogenmod.com/topic/82875-installing-cacert-certificates-on-android-as-system-credentials-without-lockscreen/

Básicamente, los comandos son:

openssl x509 -inform PEM -subject_hash_old -in root.crt | head -1

Para obtener el nombre de archivo correcto, luego convierta el certificado:

cat root.crt > 5ed36f99.0
openssl x509 -inform PEM -text -in root.crt -out /dev/null >> 5ed36f99.0

Cópielos en / system / etc / security / cacerts / y modifique los nuevos archivos .0 a '644'. Reiniciar y verificar. En su dispositivo Android, seleccione 'Borrar certificados' y podrá eliminar el pin (ingresando el pin y cambiando la pantalla de bloqueo a 'none' o 'wipe'

Aquí utilicé el certificado raíz CAcert, pero probablemente también desee el certificado class3.crt, o use sus propios certificados.

sgiebels
fuente
Usted menciona "certificados propios". Sólo traté con mi "CA" (creada usando TinyCA), y en el último paso ( "informar" a) sólo se obtendrá un error: 140342119224992:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE. Verificando con No se puede cargar el certificado en openssl , el .pemarchivo debe coincidir. Pero entonces, su último comando no cambia nada. ¿Algo mal, o se espera eso para una CA autofirmada / creada? Y antes de comenzar a hackear: ¿debería funcionar de todos modos?
Izzy
OK, funcionó y fue aceptado con mi TinyCA CA creado por mí mismo openssl x509 -inform PEM -text -fingerprint -in cacert.pem > d6a2705a.0, luego moví el bloque base64 a la parte superior usando un editor de texto, colocando el archivo /system/etc/security/cacerts/, ejecutándolo chown root:root d6a2705a.0y chmod 0644 d6a2705a.0desde dentro del directorio, y listo, aparece como un certificado de sistema confiable . Yeehaa!
Izzy
@sgiebels ¿Por casualidad también tiene una solución para usar las credenciales (de las credenciales del sistema u otras) en la conexión WLAN 802.1X? Parece que el almacén de claves / llavero en el dispositivo (/ data / misc / key ...) usa la contraseña para el cifrado, por lo tanto: cada vez que se necesitan las credenciales (conexión a WLAN), se solicita nuevamente el PIN / contraseña y ( en mi sistema) el bloqueo está activado nuevamente.
Ivin
Esto funcionó bien, excepto que también tuve un problema con el formato del certificado debido a las terminaciones de línea de dos. dos2unix los convertirá, luego verificará que tenga el final correcto en la línea del certificado (el mío se veía así: lo -----END CERTIFICATE-----Certificate:que también causó un error de análisis.
deed02392
4

He descubierto una solución que funciona sin software adicional o copia manual de archivos:

  1. Establezca su pantalla de bloqueo en "patrón". Ingrese un patrón y un PIN de desbloqueo. Recuerda el PIN de desbloqueo.
  2. Instale su certificado de usuario.
  3. Apaga y enciende la pantalla.
  4. Ingrese el patrón incorrectamente varias veces, hasta que aparezca "¿Olvidó el patrón?" aparece la opción
  5. Haga clic en "¿Olvidó el patrón?", Desplácese hacia abajo, ingrese el PIN de desbloqueo y confirme con "Aceptar".
  6. Cierre la ventana "Configuración de desbloqueo de pantalla" con el botón Atrás sin seleccionar una opción .

El sistema ahora está configurado para "Deslizar por deslizamiento", pero el certificado de usuario todavía se puede usar (probado con el navegador web y una aplicación personalizada usando DefaultHttpClient).

Probado en un Android 4.1.2 en un Galaxy Tab 2 10.1.

Heinzi
fuente
no funciona con wpa-enterprise / TLS en LG G2, los certificados desaparecieron después de esto
Eugene Petrov
Este es un gran error! ¡Gracias! (funcionó perfectamente con Galaxy S5, Android 6)
Adiel
0
  • Puede hacer uso de los perfiles de CyanogenMod .
    (Para otros lectores: esto necesita la versión personalizada de CyanogenMod Rom 9+)

    Simplemente cree o modifique un perfil existente y desactive el "bloqueo de pantalla" allí.

    Es: Configuración del sistema-> Perfiles-> Predeterminado-> Modo de pantalla de bloqueo-> Deshabilitado

  • Integre su certificado en el archivo estándar del almacén de claves de Android

    Vea el excelente tutorial de CAcert aquí

    Sin embargo, no estoy seguro de si puede hacer esto con un certificado autofirmado (tal vez tenga que cambiar a una CA hecha a sí misma (use tinyca para una buena herramienta gui en * nix)).

ce4
fuente
Esto no funciona (más). Tan pronto como haya instalado los certificados (por ejemplo, los de cacert.org), esta opción / elemento en el perfil aparece en gris.
azulado
-1

Encontré una forma de resolver el problema, pero requiere root y solo puede funcionar con CA raíz, autofirmadas o intermedias.

Si tiene un certificado en el que Android no confía, cuando lo agrega, se encuentra en la tienda de certificados personales. Cuando agrega un certificado en esta tienda personal de certificados, el sistema requiere un nivel de seguridad más alto para desbloquear el dispositivo. Pero si logra agregar su certificado a la tienda del sistema, entonces no tiene este requisito. Obviamente, se requiere root para agregar un certificado a la tienda del sistema, pero es bastante fácil.

Aquí está cómo hacerlo:

1 - Agregue su certificado normalmente. Por ejemplo, mi certificado fue llamado some.crt. Se almacenará en su tienda personal y Android le pedirá un PIN / contraseña ... Continúe.

2 - Con un administrador de archivos con capacidades de root, busque archivos en /data/misc/keychain/cacerts-addedo /data/misc/keystore. Debería ver un archivo aquí llamado 1000_USRCERT_someel certificado que ha agregado en el paso 1.

3 - Mueva este archivo a system/etc/security/cacerts (necesitará montar la partición del sistema r / w)

4 - Reinicia el teléfono

5 - Ahora puede borrar el pin / contraseña que configuró para desbloquear el dispositivo.

Me funcionó con un certificado autofirmado en Android 4.4.2. ¡Espero eso ayude!

Guttermonk
fuente
Interesante, que no mencionaste la fuente original , ni acreditaste apropiadamente al autor. Siga Cómo hacer referencia al material escrito por otros .
Señor del Fuego