Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android Le moment est venu d'utiliser la cryptographie Mécanismes PKCS#11 et sur la plateforme Android. Certains diront peut-être qu’il n’existe pas de jetons matériels pour Android. Mais si tel est le cas, ce n’est qu’un phénomène temporaire. Mais aujourd'hui, vous pouvez mettre un jeton logiciel ou utiliser jeton de nuage. Depuis l'utilitaire cryptoarmpkcs-A est développé pour la plateforme Android en utilisant Androwish dans le langage de script Tcl/Tk, le package est ensuite utilisé pour connecter les jetons TclPKCS11 version 1.0.1.

Dans ce cas, aucun traitement du colis n’a été requis. Tout ce qui a été fait a été d'ajouter un script au projet pour construire la bibliothèque de packages écrite dans le langage eux-mêmes, pour Android et la distribution de la bibliothèque elle-même. Il a été décidé d'ajouter au même projet des bibliothèques de logiciels ls11sw2016 et de jetons cloud ls11cloud pour diverses plates-formes.

Tout le reste est simple. Nous ajoutons des boutons pour sélectionner un jeton fonctionnel à la deuxième fenêtre et obtenons :

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

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

Par défaut, un jeton logiciel est connecté. S'il n'a pas été créé précédemment, vous serez invité à l'initialiser. Rappelons que initialisation du jeton consiste à attribuer un tag et à définir un code PIN utilisateur :

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

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

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

La question se pose : - comment installer un certificat personnel sur un token. Il existe 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 ») :

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

La deuxième option consiste à créer une requête (PKCS#10) de certificat. Cette option (fonction "Demande de certificat") prévoit la génération d'une bi-clé directement sur le token :

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

Vous pouvez maintenant enregistrer la demande sur des lecteurs flash et accéder à centre de certification pour un certificat. Si vous comptez utiliser le certificat à des fins de test ou en interne, vous pouvez également utiliser l'utilitaire pour émettre un certificat. CAFL63. Le certificat obtenu est importé sur le token dans l'onglet « Afficher la demande/le certificat » :

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

Vous pouvez désormais signer des documents avec des certificats stockés sur le token en utilisant l'onglet "Signer un document".

Dans le prochain article, nous vous expliquerons comment vous connecter à un token cloud. Et la question du transfert des fonctions de génération de certificats vers la plateforme mobile reste ouverte. Est-ce nécessaire ?

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

PS Sauvegarde du journal

Pour créer le package, utilisez l'utilitaire bones de SDK AndroWish. Une fois le package construit avec succès, un bouton « Installer et exécuter » apparaît et lorsque vous cliquez dessus, une fenêtre de journal s'ouvre montrant la sortie d'adb logcat (enregistreur Android Debug Bridge). L'inconvénient de cet écran est qu'il est difficile de trouver le message d'erreur, surtout avec l'indicateur "V" (verbeux) activé. Par conséquent, un bouton « Enregistrer » a été ajouté, qui enregistre le journal dans le fichier /tmp/logBone.txt (nous parlons de Linux) :

Utilisation des mécanismes de jetons cryptographiques PKCS#11 sur la plateforme Android

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 adb_logcat_save save ressemble à ceci :

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
}

Source: habr.com

Ajouter un commentaire