Installation de certificat sans écran de verrouillage PIN obligatoire

23

L'assistance Google indique :

Le type de verrou acceptable peut être prédéterminé par votre administrateur système.

Où puis-je définir ce qui est acceptable? Je peux régénérer le certificat si nécessaire.

Je peux donc utiliser à nouveau le verrouillage de l'écran.

(J'utilise CM9 RC1, Android 4.0.4)

rdlu
la source
1
J'accepterai une solution qui installe le certificat directement sur le système, contournant ainsi l'exigence de broche.
rdlu
1
Pour sécuriser vos informations d'identification, vous devez utiliser l'un des types d'écran de verrouillage qui contient une sorte de code secret (modèle, code PIN ou mot de passe). Ce que cette ligne vous dit, c'est que votre administrateur peut (normalement via une stratégie Exchange ActiveSync) verrouiller votre téléphone afin que seuls certains types de ceux-ci soient acceptés, par exemple, ils ne peuvent pas faire confiance aux verrous de modèle et peuvent penser que 4 chiffres Les codes PIN n'ont pas suffisamment de combinaisons. Cela ne veut pas dire que vous pouvez désactiver cette exigence de sécurité.
GAThrawn
2
@GAThrawn Je trouve cela inacceptable si je viens d'installer une autorité de certification pour authentifier mes serveurs Web via SSL (à l'aide de certificats auto-signés). Je le comprendrais s'il s'agissait de signer des clés sur l'appareil ou d'authentifier l'utilisateur - mais les deux sont dans l'autre sens. Heureusement, la solution sgiebels semble fonctionner pour moi, avec quelques ajustements mineurs que j'ai décrits dans les commentaires. Seul inconvénient jusqu'à présent: il nécessite un root.
Izzy

Réponses:

2

Le problème avec la désactivation de la sécurité de l'écran de verrouillage à l'aide de la bascule / du profil est que les widgets de l'écran de verrouillage n'apparaissent pas non plus, vous ne pouvez donc pas glisser pour déverrouiller. De plus, lorsque vous redémarrez votre téléphone, les boutons ne fonctionnent pas tant que vous n'avez pas modifié à nouveau le paramètre.

Une autre façon consiste à installer le certificat comme d'habitude, puis à sauvegarder les répertoires / data / misc / keychain et keystore en utilisant quelque chose qui préserve les ACL tels que Root Explorer vers un emplacement qui prend en charge les ACL. Je suggère de les copier dans / tmp. Ensuite, effacez les informations d'identification dans Paramètres et activez Slide To Unlock. Copiez ensuite les dossiers depuis / tmp. L'autorité de certification sera installée.

Monstieur
la source
Cela ne marche plus. Dès que vous essayez d'utiliser le certificat quelque part (par exemple pour vous connecter à un réseau wifi), le système d'exploitation vous demande de verrouiller à nouveau l'écran.
Cory Klein
@CoryKlein Si vous cliquez sur Annuler, vous serez invité à saisir un code PIN et vous pourrez saisir le dernier que vous avez défini. Il est nécessaire de déchiffrer les données.
Monstieur
@Kurian - J'ai donc suivi les instructions ci-dessus, et lorsque j'essaie de me connecter à un réseau wifi, il est dit "Vous devez définir un code PIN d'écran de verrouillage", je clique sur "Annuler" et rien ne se passe. Si je clique sur "Ok" puis annule à partir de là, il ne demande toujours pas le code PIN.
Cory Klein
@CoryKlein J'ai mal lu votre commentaire précédent. Je parlais de VPN. La connexion à un VPN vous invite à saisir le dernier code PIN de verrouillage pour décrypter vos informations d'identification. Je ne sais pas si cela fonctionne pour les certificats personnels avec des clés privées. Je sais que cela fonctionne pour l'installation de certificats de CA de confiance. Il peut également s'agir de la ROM spécifique que vous utilisez. Les ROM AOSP pré-ICS n'ont jamais eu besoin d'un code PIN de verrouillage pour enregistrer les informations d'identification VPN.
Monstieur
7

J'ai décrit comment faire exactement cela sur ma page, "Installation des certificats CAcert sur Android en tant qu'identifiants 'système' sans écran de verrouillage - instructions" sur http://wiki.pcprobleemloos.nl/android/cacert

Je l'ai également posté sur le forum cyanogenmod: http://forum.cyanogenmod.com/topic/82875-installing-cacert-certificates-on-android-as-system-credentials-without-lockscreen/

Fondamentalement, les commandes sont les suivantes:

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

Pour obtenir le nom de fichier correct, puis convertissez le certificat:

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

Copiez-les dans / system / etc / security / cacerts / et modifiez les nouveaux fichiers .0 en '644'. Redémarrez et vérifiez. Sur votre appareil Android, sélectionnez «Effacer les certificats» et vous pouvez supprimer la broche (en entrant la broche et en changeant votre écran de verrouillage sur «aucun» ou «essuyer»

Ici, j'ai utilisé le certificat racine CAcert, mais vous voulez probablement aussi le certificat class3.crt, ou utilisez vos propres certificats.

sgiebels
la source
Vous parlez de «propres certificats». Je viens d' essayer avec mon « CA » (créé à l' aide tinyca), et dans la dernière étape ( « Renseigner ») obtenir seulement une erreur: 140342119224992:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE. En vérifiant avec Impossible de charger le certificat dans openssl , le .pemfichier doit correspondre. Mais alors, votre dernière commande ne change rien. Quelque chose ne va pas, ou est-ce prévu pour une autorité de certification auto-signée / créée? Et avant de commencer le piratage: cela devrait-il quand même fonctionner?
Izzy
OK, a fonctionné et a été accepté avec mon CA TinyCA auto-créée:, openssl x509 -inform PEM -text -fingerprint -in cacert.pem > d6a2705a.0puis en déplaçant le bloc base64 vers le haut à l'aide d'un éditeur de texte, en plaçant le fichier dans /system/etc/security/cacerts/, en cours d'exécution chown root:root d6a2705a.0et à chmod 0644 d6a2705a.0partir du répertoire - et voilà, il apparaît comme un certificat système de confiance . Yeehaa!
Izzy
@sgiebels Avez-vous également par hasard une solution sur la façon d'utiliser les informations d'identification (à partir des informations d'identification du système ou autres) dans la connexion WLAN 802.1X? Il semble que le magasin de clés / trousseau sur l'appareil (/ data / misc / key ...) utilise le mot de passe pour le cryptage, donc: chaque fois que les informations d'identification sont nécessaires (connexion au WLAN), le PIN / mot de passe est à nouveau demandé et ( dans mon système), le verrou est de nouveau activé.
Ivin
Cela a bien fonctionné, sauf que j'ai également rencontré un problème avec le formatage du certificat en raison des fins de ligne DOS. dos2unix les convertira, puis vérifiez que vous avez la bonne fin sur la ligne de certificat (la mienne ressemblait à ceci: ce -----END CERTIFICATE-----Certificate:qui a également causé une erreur d'analyse.
deed02392
4

J'ai découvert une solution qui fonctionne sans logiciel supplémentaire ni copie manuelle de fichiers:

  1. Réglez votre écran de verrouillage sur "motif". Saisissez un modèle et un code PIN de déverrouillage. N'oubliez pas le code PIN de déverrouillage.
  2. Installez votre certificat d'utilisateur.
  3. Éteignez et rallumez l'écran.
  4. Entrez le motif à tort plusieurs fois, jusqu'à ce que le "Motif oublié?" apparaît.
  5. Cliquez sur "Motif oublié?", Faites défiler vers le bas, entrez le code PIN de déverrouillage et confirmez avec "OK".
  6. Fermez la fenêtre "Paramètres de déverrouillage de l'écran" avec le bouton de retour sans sélectionner d'option .

Le système est désormais défini sur "Déverrouillage par balayage", mais le certificat utilisateur est toujours utilisable (testé avec le navigateur Web et une application personnalisée utilisant DefaultHttpClient).

Testé sur Android 4.1.2 sur une Galaxy Tab 2 10.1.

Heinzi
la source
ne fonctionne pas avec wpa-enterprise / TLS sur LG G2, les certificats ont disparu après cela
Eugene Petrov
C'est un super bug! Merci! (fonctionnait parfaitement avec Galaxy S5, android 6)
Adiel
0
  • Vous pouvez utiliser les profils de CyanogenMod .
    (Pour les autres lecteurs: cela nécessite la version 9+ de CyanogenMod Rom personnalisée)

    Créez ou modifiez simplement un profil existant et désactivez le "verrouillage d'écran".

    C'est: Paramètres système-> Profils-> Par défaut-> Mode écran de verrouillage-> Désactivé

  • Intégrez votre certificat dans le fichier de clés Android standard

    Voir l'excellent guide de CAcert ici

    Je ne sais pas cependant si vous pouvez le faire avec un certificat auto-signé (vous devrez peut-être passer à une autorité de certification auto-créée (utilisez tinyca pour un bel outil graphique sur * nix)).

ce4
la source
Cela ne fonctionne plus (plus). Dès que vous avez installé des certificats (par exemple ceux de cacert.org), cette option / élément dans le profil est grisé.
blueyed le
-1

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

Si vous avez un certificat qui n'est pas approuvé par Android, lorsque vous l'ajoutez, il va dans le magasin de certificats personnels. Lorsque vous ajoutez un certificat dans ce magasin de certificats personnel, le système nécessite un niveau de sécurité plus élevé pour déverrouiller l'appareil. Mais si vous parvenez à ajouter votre certificat au magasin système, vous n'avez pas cette exigence. Évidemment, root est nécessaire pour ajouter un certificat au magasin système, mais c'est facile et silencieux.

Voici comment faire :

1 - Ajoutez votre certificat normalement. Par exemple, mon cert a été appelésome.crt . Il sera stocké dans votre boutique personnelle et Android vous demandera un code PIN / mot de passe ... Continuez.

2 - Avec un gestionnaire de fichiers avec des capacités root, parcourez les fichiers dans /data/misc/keychain/cacerts-addedou /data/misc/keystore. Vous devriez voir ici un fichier appelé 1000_USRCERT_somec'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émarrez le téléphone

5 - Vous pouvez maintenant effacer le code PIN / mot de passe que vous avez défini pour déverrouiller l'appareil.

A travaillé pour moi avec un certificat auto-signé sur Android 4.4.2. J'espère que ça aide!

gouttière
la source
Intéressant, que vous n'ayez pas mentionné la source d'origine , ni crédité correctement l'auteur. Suivez Comment faire référence à des documents écrits par d'autres .
Firelord