2014-10-09 13 views
9

Quindi abbiamo un certificato che ci consente di firmare kexts, ma quando eseguiamo> sudo kextload friendly.kext, fallisce e firmiamo il kext vogliamo, e per dimostrarlo è firmato, ecco qualche uscita di diagnosi:Il codesigning di Kext con certificato abilitato kext fallisce durante kextload, "firma codice non valida"

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk 
friendly.kext: satisfies its Designated Requirement 

spctl -a -vvvv friendly.kext

friendly.kext: accepted 
source=Developer ID 
origin=Developer ID Application: Friendly Corporation 
/Library/Extensions 

codesign -dvvv friendly.kext

Executable=/Library/Extensions/friendly.kext/Contents/MacOS/friendly 
Identifier=com.friendly.friendly 
Format=bundle with Mach-O thin (x86_64) 
CodeDirectory v=20200 size=502 flags=0x0(none) hashes=18+3 location=embedded 
Hash type=sha1 size=20 
CDHash=a1e2bf8d53ea67c6cfe9fc3d6d2001fe56c838a7 
Signature size=8528 
Authority=Developer ID Application: Friendly Corporation 
Authority=Developer ID Certification Authority 
Authority=Apple Root CA 
Timestamp=Oct 9, 2014, 11:49:02 AM 
Info.plist entries=21 
TeamIdentifier=1234567890 
Sealed Resources version=2 rules=12 files=1 
Internal requirements count=1 size=180 

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk 
friendly.kext: satisfies its Designated Requirement 

Sembra che è firmato correttamente; Tuttavia, quando corro> sudo kextutil -v friendly.kext:

Defaulting to kernel file '/System/Library/Kernels/kernel' 
Diagnostics for /Library/Extensions/friendly.kext: 
Code Signing Failure: code signature is invalid 
/Library/Extensions/friendly.kext appears to be loadable (not including linkage for on-disk libraries). 
ERROR: invalid signature for com.techsmith.friendly, will not load 

sto pensando né ho scaricato il certificato sbagliato (abbiamo sicuramente ottenuto approvato per kext firma), anche se ho provato redownloading il certificato una volta prima quindi questo potrebbe non essere il problema. Altrimenti, è il modo in cui sto firmando. Sto pensando che forse ha qualcosa a che fare con i permessi che ho impostato su kext prima di firmarli?

Qualcuno ha già visto questo problema?

Grazie in anticipo!

risposta

12

Il certificato di firma kext deve avere l'estensione "(1.2.840.113635.100.6.1.18)" elencata - questo lo indica come certificato abilitato a kext. Puoi facilmente verificarlo visualizzandolo in Keychain Access.app. (è elencato nella parte inferiore, sotto l'estensione "(1.2.840.113635.100.6.1.13)" che penso sia utilizzato per le app e quindi presente in tutti i certificati ID dello sviluppatore)

+0

Sì, così avevo uno script di shell che veniva eseguito che ho dimenticato di aggiornare, ma in pratica ho firmato la mia firma corretta. Quindi stavo firmando correttamente, ma poi lo script della shell avrebbe appena firmato con il cert non valido proprio sopra haha. Giusto non era sulla palla ieri –

+0

A quanto pare la firma kext non è più disponibile per i nuovi certificati ... quelli che già li hanno, divertiti! http://stackoverflow.com/questions/26671885/codesigned-kext-but-why-not-load-in-yosemite10-10 – gimix

+0

@gimix per quanto ne so, la firma kext non è mai stata abilitata sui certificati ID sviluppatore per impostazione predefinita. Il controllo della firma di Kext è stato introdotto con OS X 10.9 e i miei clienti hanno richiesto l'ID dello sviluppatore abilitato a kext quando 10.9 era ancora in versione beta. – pmdj

Problemi correlati