En fait, le message "Unidentified developer ..." est le résultat d'une combinaison des deux tâches : vérification de l'attribut com.apple.quarantine. et les ressources de signature du code (dans */Contents/_CodeSignature/CodeResources), tandis que le statut de signature réel est uniquement déterminé par les éléments suivants */CodeResources .
Vous pouvez obtenir l'attribut étendu en entrant :
$ xattr -p com.apple.quarantine /Applications/*.app
L'information sur la signature du code est accessible en entrant :
$ codesign -dvvv /Applications/*.app
Exemple :
$ codesign -dvvvv /Applications/Google\ Chrome.app/
Executable=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Identifier=com.google.Chrome
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=273 flags=0x800(restrict) hashes=3+3 location=embedded
OSPlatform=36
OSSDKVersion=658432
OSVersionMin=657664
Hash type=sha256 size=32
CandidateCDHash sha1=bc8e3dffe7d9d5242e09ea80a220ed365d46fdf2
CandidateCDHash sha256=d7ae6211906bb17d593ce9c215d190a81f37e658
Hash choices=sha1,sha256
Page size=4096
CDHash=d7ae6211906bb17d593ce9c215d190a81f37e658
Signature size=8949
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=20. Mar 2018 at 07:23:20
Info.plist entries=36
TeamIdentifier=EQHXZ8M8AV
Sealed Resources version=2 rules=7 files=203
Internal requirements count=1 size=240
La partie la plus importante est la chaîne de certificats (et la chaîne de confiance) :
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Ici, trois autorités différentes sont visibles :
- Certificat racine : Apple Root CA
- Certificat intermédiaire de développeur Apple : Autorité de certification de l'ID du développeur
- Certificat du développeur : Google, Inc. (EQHXZ8M8AV)
Cela signifie que l'application est signée avec un certificat de développeur, publié et signé par l'autorité intermédiaire de développement d'Apple, qui est elle-même publiée et signée par l'autorité de certification racine d'Apple.
Cette chaîne qualifie Google (ou plus exactement : l'équipe/unité Google, Inc. (EQHXZ8M8AV)) comme un développeur identifié par Apple.
Vous pouvez également coder des applications, soit vous-même, soit à l'aide d'un certificat de codage d'une autre autorité intermédiaire/de démarrage, mais cela ne permet pas de surmonter Gatekeeper.
Maintenant, quatre permutations sont possibles en supposant que Gatekeeper est activé (mais sans tenir compte de l'auto-signature/de l'aliénation de la signature) :
- Pas d'attribut com.apple.quarantine/pas de certificat Apple Developer (Exemple : brew cask a installé Apache CouchDB )
- Pas d'attribut com.apple.quarantine/un certificat Apple Developer (exemple : brew cask installé Google Chrome )
- Un certificat com.apple.quarantine attribut/no Apple Developer (exemple : Apache CouchDB est installé en téléchargeant le fichier zip depuis le site web et en copiant l'application décompressée dans /Applications/. )
- Un attribut com.apple.quarantine/un certificat Apple Developer (exemple : Google Chrome est installé en téléchargeant le dmg depuis le site web et en copiant l'application à l'intérieur dans /Applications/. )
Dans les deux premiers cas, l'application se lance tout simplement. Dans le troisième cas, vous obtiendrez le message Développeur non identifié message. Vous pouvez résoudre ce problème en supprimant l'attribut étendu xattr -d com.apple.quarantine *
(=cas 1). Dans le quatrième cas, vous obtiendrez le "* a été téléchargé sur Internet, êtes-vous sûr de vouloir l'ouvrir ?"
0 votes
Si je comprends bien votre question, vous recevez cette alerte car une application que vous avez téléchargée dans Safari n'a pas été signée par un développeur connu d'Apple. Vous demandez où se trouve le programme xyz sur votre ordinateur ?