Utilisation des mécanismes de jetons cryptographiques PKCS # 11 sur la plate-forme Android

Le moment est venu d'utiliser les mécanismes cryptographiques PKCS # 1 1 sur la plateforme Android. Quelqu'un pourrait dire qu'il n'y a pas de jetons matériels pour Android. Mais s'il en est ainsi, ce n'est qu'un phénomène temporaire. Mais aujourd'hui, vous pouvez mettre un jeton logiciel ou utiliser un jeton cloud . Étant donné que l'utilitaire cryptoarmpkcs-A est développé pour la plate-forme Android à l'aide d'Androwish dans le langage de script Tcl / Tk, le package TclPKCS11 version 1.0.1 est utilisé pour connecter les jetons .

Dans le même temps, aucun traitement du colis n'était nécessaire. Tout ce qui a été fait a été un script a été ajouté au projet pour construire une bibliothèque de packages écrite en C, pour Android et la distribution de la bibliothèque elle-même. Il a été décidé d'ajouter les bibliothèques de logiciels ls11sw2016 et les jetons cloud ls11cloud pour différentes plates-formes au même projet.

Le reste est simple. Ajoutez les boutons pour sélectionner le jeton de travail dans la deuxième fenêtre et obtenez:

  • jeton logiciel ls11sw2016;
  • jeton cloud ls11cloud;
  • un autre jeton PKCS11 # 11.



Par défaut, un jeton logiciel est connecté. S'il n'a pas été créé précédemment, il sera proposé de l'initialiser. Rappelons que l' initialisation du token consiste à attribuer une étiquette et à définir un code PIN personnalisé:



Notez que le token logiciel est conçu conformément aux recommandations de PKCS # 11 v.2.40 et TK-26. Pour obtenir des informations complètes sur le jeton, y compris les mécanismes cryptographiques pris en charge, cliquez simplement sur le bouton «À propos du jeton et de sa cryptographie» dans le menu principal («Fonctionnel»). Aujourd'hui, pas un seul jeton matériel prenant en charge la cryptographie russe ne possède cette fonctionnalité:



La question se pose: - comment installer un certificat personnel pour un token. Il y a deux options. La première option consiste à importer le certificat lui-même et sa paire de clés via le conteneur PKCS # 12 (le bouton «Travailler avec PKCS12 / PFX»): La



deuxième option consiste à créer une demande (PKCS # 10) pour le certificat. Cette option (la fonction «Demande de certificat» ) fournit génération de paires de clés directement sur le token:



vous pouvez maintenant enregistrer la demande de lecteurs flash et vous rendre au centre de certification avec les documents du certificat. Si vous utilisez le certificat à des fins de test ou intracorporatif, l'utilitaire CAFL63 peut également être utilisé pour émettre le certificat . Le certificat reçu est importé dans le jeton dans l'onglet «Afficher la demande / le certificat»:



Vous pouvez maintenant signer des documents avec des certificats stockés sur le jeton à l'aide de l'onglet "Signer un document" .

Dans le prochain article, nous vous expliquerons comment vous connecter à un jeton cloud. Et la question reste pour l'instant avec le transfert des fonctions de génération de certificats vers la plateforme mobile. Y a-t-il un besoin pour cela?

La version mise à jour de l'utilitaire cryptoarmpkcs-A pour la plate-forme Android peut être téléchargée ici:


Journal de sauvegarde PS


Pour construire le package, l'utilitaire bones du SDK AndroWish est utilisé . Après avoir correctement assemblé le package, le bouton Installer et exécuter apparaît, après avoir cliqué sur une fenêtre de journal qui s'ouvre, qui affiche la sortie de adb logcat (fonction de journalisation Android Debug Bridge). L'inconvénient de cet écran est qu'il est difficile d'y trouver un message d'erreur, en particulier lorsque le drapeau «V» (verbeux) est activé. Par conséquent, le bouton "Enregistrer" a été ajouté, ce qui enregistre le journal dans le fichier /tmp/logBone.txt (nous parlons de Linux):



Avec l'avènement de ce bouton, le processus de débogage de l'application a été grandement simplifié.

Pour ajouter un bouton, ajoutez simplement le code suivant au fichier Bones après la ligne 2591:

	    ttk::button $l.frame.clear -text "Clear" -width 6 \
		-command [list adb_logcat_clear $l.text]
# 
	    ttk::button $l.frame.save -text "Save" -width 6 \
		-command [list adb_logcat_save $l.text]

	    ttk::button $l.frame.run -text "Run" -width 6 \
		-command [list adb_logcat_run $l]

La commande save adb_logcat_save a la forme:

proc adb_logcat_save {text} {
    set tt [$text get 1.0 end]
    set file "/tmp/logBone.txt"
    file delete -force $file
  #   
    set fd [open $file w]
    chan configure $fd -translation binary
    puts -nonewline $fd $tt
    close $fd
}

All Articles