6 votes

Installer CA sans avoir à activer le verrouillage de l'écran

J'ai une Nexus 7 (Android 4.1.1) et je veux ajouter une CA (autorité de certification) à mon appareil pour l'utiliser pour la connexion ssl à mon serveur de messagerie. L'AC est auto-signée. Le certificat ne contient que la clé publique de l'AC (bien sûr !).

Je veux aussi garder mon verrouillage d'écran désactivé car sur une tablette qui ne sort pas de chez moi, cela n'a pas de sens d'avoir un verrouillage d'écran.

Le problème se pose maintenant : Chaque fois que je veux importer l'AC, Android me demande de changer mon verrouillage d'écran en chiffres/mot de passe, ce que je veux éviter.

Ce comportement peut-il être évité d'une manière ou d'une autre ? Il n'y a rien de critique en matière de sécurité dans la clé publique d'une AC.

Je sais que lorsque le téléphone est enraciné, on peut ajouter une AC, mais je veux éviter d'enraciner mon téléphone.

2voto

pbean Points 302

J'ai écrit un article sur la création et l'installation de certificats CAcert comme certificats système Android (Android >=4.2), vous permettant ainsi d'utiliser votre appareil sans écran de verrouillage :

http://wiki.pcprobleemloos.nl/Android/cacert

Partie principale de mon article :

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

Copier les fichiers 5ed36f99.0 y e5662767.0 a /system/etc/security/cacerts/ (et chmod 644 les), reboot et cela devrait fonctionner. Vérifiez Paramètres -> Sécurité -> Certificats, il devrait y avoir la liste de "CAcert Inc." et "Root CA". Notez que certains navigateurs peuvent utiliser leur propre magasin de certificats au lieu de celui d'Android.

Le modèle de sécurité Android vous oblige explicitement à avoir un écran de verrouillage dès qu'un certificat non système (utilisateur) est installé. Il n'existe aucune option de configuration pour contourner cette obligation.

Vous pouvez soit remplacer votre version stock d'Android par une version qui a supprimé cette exigence (je ne pense pas qu'il en existe, mais vous pourriez théoriquement créer la vôtre).

L'autre option consiste à utiliser un accès racine (temporaire) pour installer ce certificat, puis à le "déraciner", bien que cela semble un peu stupide.

1voto

evanrmurphy Points 133

Désolé, l'accès à la racine est nécessaire AFAIK. Pour tous ceux qui ont un accès Root et Android 4+, voici une description détaillée de la façon d'ajouter le certificat au dossier des certificats du système Android :

En supposant que votre fichier de certificat - appelons-le root.cer - ressemble à ça :

-----BEGIN CERTIFICATE-----
MIIDgzCCAmugAw[...]
[...]
-----END CERTIFICATE-----

Obtenir le nom dont Android a besoin pour lui (".0" est ajouté) et le stocker dans la variable $name :

name=$(openssl x509 -inform PEM -subject_hash_old -in root.cer | head -1).0

Exemple de sortie pour : echo $name

00673baa.0

Créez le fichier de certificat pour Android :

cat root.cer > $name
openssl x509 -inform PEM -text -in root.cer -out /dev/null >> $name

Copiez le fichier du certificat sur la carte SD :

adb push $name /sdcard

Ouvrez le shell Android :

adb shell

Devenez Root et copiez le certificat dans le dossier des certificats système d'Android :

su
mount -o remount,rw /system
cp /sdcard/00673baa.0 /system/etc/security/cacerts/

Note : Pour la dernière commande, vous devez remplacer le nom du fichier du certificat !

Maintenant, redémarrez. Vérifiez que le certificat a été correctement installé : Allez à Settings -> Security -> Show trusted certificates . Dans la liste du système, vous devriez trouver le nom de l'émetteur de votre certificat auto-signé (qui est égal au sujet). Vous pouvez l'imprimer en utilisant :

openssl x509 -inform PEM -issuer -in root.cer -out /dev/null

Vous pouvez maintenant supprimer tous les certificats (les certificats système ne sont pas touchés) et supprimer l'écran de verrouillage.

0voto

martinatime Points 1863

À ma connaissance, il n'existe aucun moyen d'y parvenir. Cela fait un moment que je cherche un moyen de faire la même chose, car mon travail m'oblige à utiliser un CA, mais je n'ai rien trouvé après beaucoup de recherches. Si vous aviez une racine, cela pourrait être possible, mais sans racine, je crains que vous ne deviez faire avec.

Désolé.

0voto

Kaz Dragon Points 3460

Si vous décidez d'enraciner le téléphone (vous ne pouvez l'enraciner que temporairement pour installer les certificats, il ne doit pas rester enraciné), vous pouvez télécharger les certificats dans un répertoire et au prochain redémarrage, ils seront validés :

adb shell mount -o remount,rw /system
adb push 1dbdda5d.0 /system/etc/security/cacerts/

donde 1dbdda5d.0 est votre certificat de confiance.

-1voto

guttermonk Points 157

J'ai trouvé un moyen de résoudre le problème, mais il nécessite Root et ne peut fonctionner qu'avec des CA Root, auto-signées ou intermédiaires.

Si vous disposez d'un certificat qui n'est pas reconnu par Android, lorsque vous l'ajoutez, il est placé dans le magasin de certificats personnel. Lorsque vous ajoutez un certificat dans ce magasin de certificats personnels, le système exige un niveau de sécurité plus élevé pour déverrouiller l'appareil. Mais si vous parvenez à ajouter votre cert dans le magasin système, vous n'avez pas cette exigence. Il est évident qu'un Root est nécessaire pour ajouter un certificat au magasin système, mais c'est très facile.

Voici comment procéder :

1 - Ajoutez votre cert normalement. Par exemple, mon cert s'appelle some.crt . Il sera stocké dans votre magasin personnel et Android vous demandera un pin/mot de passe... Procédez.

2 - Avec un gestionnaire de fichiers ayant des capacités Root, parcourez les fichiers en /data/misc/keychain/cacerts-added o /data/misc/keystore . Vous devriez voir ici un fichier appelé 1000_USRCERT_some c'est le certificat que vous avez ajouté à l'étape 1.

3 - Déplacez ce fichier vers system/etc/security/cacerts (vous devrez monter la partition système r/w)

4 - Redémarrer le téléphone

5 - Vous êtes maintenant en mesure d'effacer le code d'accès/mot de passe que vous avez défini pour déverrouiller l'appareil. l'appareil.

Cela a fonctionné pour moi avec un certificat auto-signé sur Android 4.4.2. J'espère que cela vous aidera !

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X