1 votes

Comment le Trousseau identifie-t-il les exécutables ?

Je me demande comment le Trousseau identifie les applications. Je soupçonne que cela repose sur la signature du code, mais les expériences ne sont pas vraiment cohérentes avec cela :

Il fonctionne pour les exécutables qui ne sont pas du tout signés :

codesign -dv  /Library/Frameworks/R.framework/Resources/bin/exec/R
# /Library/Frameworks/R.framework/Resources/bin/exec/R: code object is not signed at all

Mais le processus R est ajouté à l'ACL de ce secret, et il peut l'interroger avec bonheur...

Il n'y a rien non plus dans les attributs étendus de l'exécutable :

xattr -l  /usr/bin/security
# 

Si je modifie le fichier lui-même, cela fonctionne toujours :

cp /usr/bin/security foobar
echo "\nharmless" >> foobar
./foobar find-generic-password -a 'gaborcsardi' -s foobar -g
# keychain: "/Users/gaborcsardi/Library/Keychains/login.keychain"
# class: "genp"
# attributes:
#     0x00000007 <blob>="foobar"
#     0x00000008 <blob>=<NULL>
#     "acct"<blob>="gaborcsardi"
# ...
# password: "secret"

Mais alors comment cela fonctionne-t-il ? Plus précisément, comment le trousseau sait-il que la demande de mot de passe provient de l'adresse de l'utilisateur ? security que j'ai spécifiquement autorisé l'accès à cette entrée ?

1voto

Douglas Points 10417

Le Trousseau n'identifie pas les applications, ce sont les applications qui appellent le API de trousseau de clés

L'API Keychain Services apporte une solution à ce problème. En un appel unique à cette API, une application peut stocker de petites informations secrètes sur un trousseau de clés, à partir duquel l'application peut ensuite récupérer l'information, également par un appel unique. Le trousseau de clés sécurise données en les chiffrant avant de les stocker dans le système de fichiers, ce qui vous dispense système de fichiers, ce qui vous évite d'avoir à mettre en œuvre des algorithmes de cryptage compliqués. Le système système contrôle aussi soigneusement l'accès aux éléments stockés. L'ensemble du Le trousseau entier peut être verrouillé, ce qui signifie que personne ne peut décrypter son contenu protégé jusqu'à ce qu'il soit déverrouillé par un maître. protégé jusqu'à ce qu'il soit déverrouillé par un mot de passe principal. Même avec un trousseau déverrouillé, la politique d'accès au trousseau du système garantit que seules les applications autorisées ont accès à un élément donné du trousseau. Dans Dans le cas le plus simple, l'application qui a créé un élément est la seule qui peut y accéder ultérieurement. Cependant, Keychain Services fournit également des moyens de partager des secrets entre les applications.

enter image description here

0 votes

OK, alors comment le trousseau sait qu'il n'a pas à demander de confirmation si /usr/bin/security demande un mot de passe ?

0 votes

Une ou deux choses parce que cela va maintenant hors sujet : 1) C'est une autre question et 2) avez-vous lu la documentation de l'API ? Je vous suggère de jeter un coup d'œil à la Visite

0 votes

OK, voir les petites modifications, peut-être que cela clarifie la question. Oui, j'ai lu la documentation de l'API, mais je n'ai pas trouvé cette description nulle part. Mais la référence de l'API Keychain est immergée, donc peut-être que je l'ai juste manqué.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X