Existe-t-il un moyen de modifier les descriptions ACL des éléments de trousseau?

2

J'importe mon identité numérique (certificat X.509 et clé privée pour la signature, la vérification, le cryptage et le décryptage des messages) dans le trousseau. Dans l'interface graphique, je vois mon certificat et la clé correspondante, je peux modifier leurs descriptions et rédiger une note décrivant leur utilisation, etc.

Cependant, lorsque Mail.app essaie d'accéder à la clé privée, il affiche une boîte de dialogue indiquant que "Mail souhaite utiliser vos informations confidentielles stockées dans" privateKey "dans votre trousseau.".

Maintenant, j'ai plusieurs identifiants numériques pour différentes adresses, donc ce message ne me donne aucune idée de la clé à laquelle il tente d'accéder. J'ai examiné un peu et il s'est avéré que lorsque vous importez une clé, une liste d'ACL est également créée dans le trousseau. Chaque élément de cette liste d'ACL a une description facultative. Je crois que quand aucune description n'est définie, la boîte de dialogue mentionnée utilisera la description de la clé, mais s'il existe une description de liste de contrôle d'accès, elle sera utilisée à la place.

Lorsque je vide mon trousseau avec "security dump-keychain -a", le message suivant s'affiche:

keychain: "/Users/galaxy/Library/Keychains/login.keychain"
class: 0x00000010
attributes:
    0x00000000 <uint32>=0x00000010
    0x00000001 <blob>=0x646[...]00  "[email protected]\000"
    0x00000002 <blob>=<NULL>
[...]
    0x0000001A <uint32>=0x00000001
access: 3 entries
    entry 0:
        authorizations (1): encrypt
        don't-require-password
        description: privateKey
        applications: <null>
    entry 1:
        authorizations (6): decrypt derive export_clear export_wrapped mac sign
        don't-require-password
        description: privateKey
        applications (0):
    entry 2:
        authorizations (1): change_acl
        don't-require-password
        description: privateKey
        applications (0):

Tout d'abord, je souhaite modifier la description de "privateKey" en "[email protected] (chiffrement)" pour l'entrée 0 de la liste de contrôle d'accès. J'ai beaucoup cherché, mais je n'ai trouvé que des références à l'API OS X pour le faire. Y a-t-il un outil pour faire ça? S'il n'y a pas un tel outil, comment puis-je le configurer au moment de l'importation? Je demande depuis le moment où StartSSL oblige automatiquement Safari à importer l'ID numérique, la description de la liste de contrôle d'accès est définie sur 'www.startssl.com', je sais donc qu'il est possible de la configurer.

Enfin, une question de prime existe-t-il un outil ou un moyen de personnaliser les ACL? Par exemple, je souhaite supprimer export_ * de la liste de contrôle d'accès de l'entrée 1 (j'ai également constaté que cela était effectué par StartSSL avec leurs identificateurs numériques).

UPDATE: Depuis qu'Apple a publié son interface graphique d'accès au trousseau en tant que source ouverte, j'ai vérifié les sources pour l'importation PKCS # 12 et ils ont une option pour définir la description et les ACL au moment de l'importation. Cependant, je n'ai jamais rien codé pour OS X et il est difficile de déterminer la condition à remplir pour obtenir la description des ACL et des ACL elles-mêmes au moment de l'importation. La logique se trouve dans le package de sécurité dans pkcs12Crypto.cpp:

[galaxy@home:~/xcode/Security-55471.14.18/libsecurity_pkcs12/lib]$ grep -B5 -A5 '"privateKey"' pkcs12Crypto.cpp
        try {
            CssmClient::KeyAclBearer bearer(
                cspHand, *privKey, Allocator::standard());
            SecPointer<KeychainCore::Access> initialAccess(access ?
                KeychainCore::Access::required(access) :        /* caller-supplied */
                new KeychainCore::Access("privateKey"));        /* default */
            initialAccess->setAccess(bearer, maker);
        }
        catch (const CssmError &e) {
            /* not implemented means we're talking to the CSP which does
             * not implement ACLs */

Malheureusement, dans toutes mes tentatives d’importation, je rencontre toujours la description "privateKey" codée en dur et, quand j’ai, disons, 5 identifiants numériques différents, ils demandent tous l’accès avec "privateKey" dans la boîte de dialogue, ce qui prête à confusion.

galaxy
la source
1
Avez-vous regardé ici: apple.stackexchange.com/questions/111379/…
sdmeyers
Quel est le lien entre ce lien et mes questions?
galaxy
Non bien sûr que non. Toutes mes sessions de terminal font référence à mon compte non privilégié. Quoi qu’il en soit, cela n’a aucune incidence sur la question, car il s’agit de savoir comment éviter cette description "privateKey" codée en dur pour la clé privée importée et la définir sur autre chose - afin d’identifier deux clés privées importées différentes.
galaxy

Réponses:

2

Après des recherches fastidieuses, il semble qu’il n’existe aucun moyen simple d’éditer la description de la clé privée. Par conséquent, à moins que Apple n’améliore son application Keychain Access, il n’existe aucun moyen de distinguer plusieurs ID numériques importés dans la même chaîne de clés.

Il semble également que Google Chrome (et Chromium) aient mis en œuvre certaines routines de gestion des clés et gèrent les descriptions des clés privées importées. Cependant, je n'ai pas encore compris comment tirer pleinement parti de cette fonctionnalité.

Quoi qu'il en soit, la réponse courte à ma question est qu'il n'y a aucun moyen de modifier la liste de contrôle d'accès des éléments et / ou leurs descriptions dans le porte-clés OS X pour le moment et il semble que personne ne s'en soucie vraiment.

galaxy
la source
0

Par hasard, je suis tombé sur un correctif (de sorte) pour le problème de "privateKey" étant affiché dans les boîtes de dialogue de messagerie et confondant un ...

façon de faire la distinction entre plusieurs identifiants numériques importés dans la même chaîne de clés.

Ce n'est pas une solution élégante et je ne comprends pas Pourquoi cela fonctionne, mais après de nombreux tests, dans plusieurs clients de messagerie, sous OS X 10.10.3 et 10.10.4, j'ai constaté qu'il Est-ce que Travailler, c'est facile, et ça marche à chaque fois. En résumé, vous faites simplement glisser les identifiants numériques vers un nouveau trousseau, puis vous les retournez.

Les détails utiles et les leçons apprises sont les suivants:

  • Applicable aux identifiants numériques dans le trousseau de connexion. Autres porte-clés non testés.
  • L'utilisation d'un trousseau de système existant en tant qu'intermédiaire n'a pas fonctionné.
  • Les nouveaux trousseaux nécessitent un mot de passe d'au moins six caractères, mais de toute force.
  • Méfiez-vous des mots de passe pour les nouveaux porte-clés ne sont pas enregistré sur tout autre porte-clé!
  • Défaut Fermer à clé Réglages pour les nouveaux porte-clés sont un ennuyeux 5 minutes et Dormir .
  • Sur glisser (ou coller) de l'ID, Contrôle d'accès clé privée défauts à Autoriser toutes les applications à accéder à cet élément . Entrez manuellement et remettez-le à Confirmer avant d'autoriser l'accès .
  • Il suffit parfois de laisser les identifiants dans le nouveau trousseau et de les utiliser, car les nouveaux trousseaux ne se déverrouillent pas lors de la connexion.
  • Sur supprimer le nouveau trousseau préférable de sélectionner l'option non par défaut Supprimer les références & amp; Des dossiers .
  • Les modifications ultérieures du nom de la clé privée nécessitent un autre "correctif" pour appliquer les modifications.
Spook
la source
Merci pour votre contribution. Je vais vérifier votre solution de contournement et mettre à jour les commentaires. Quoi qu'il en soit, je considère toujours que ma réponse est la bonne car il n’existe aucun moyen approprié d’éditer la description des ACL et / ou des identifiants numériques.
galaxy