Jeg prøver at udtrække en ikke-udpakkelig privat nøgle som en .p12
-fil fra Keychain Access.app
eller / usr / bin / sikkerhed
på Mac OS X 10.9.4.
Grundlæggende ser det ud til, at sikkerhedsimport
har en -x
mulighed for at angive, at private nøgler ikke kan ekstraheres, efter at de er importeret
.
- http: // opensource. apple.com/source/SecurityTool/SecurityTool-55115/keychain_import.c
- http://opensource.apple.com/source/Security/Security-55471.14/libsecurity_keychain/lib /SecImportExport.h
Som ovenfor beskrevet implementeres dette ved eksplicit at udelade CSSM_KEYATTR_EXTRACTABLE
under importen. Efterfølgende, når jeg prøver at eksportere, kan nøglen uden en sådan attribut ikke eksporteres.
Jeg kunne finde mindst to relevante omtaler, der ser ud til at forhindre sådanne nøgler i at blive eksporteret (tip: brug fgrep - ELLER
for at undgå at følge de symbolske links, når du søger gennem Apple-kildekoden):
- http://opensource.apple.com/source/Security/Security-55471.14/ libsecurity_keychain / lib / SecImportExportCrypto.cpp
- http://opensource.apple.com/source/Security/Security-55471.14/libsecurity_pkcs12/lib/pkcs12Crypto.cpp
Jeg har prøvet nøglering_adgang fra github.com/torsten, men det fungerede ikke.
Jeg har prøvet at bruge lldb, lldb - sikkerhedseksport -t identiteter -f pkcs12 -o /tmp/mycerts.p12
, for at bryde på SecWrappedKeys.cpp :: impExpWrappedKeyOpenSslExport (), men det ser heller ikke ud til at fungere med break impExpWrappedKeyOpenSslExport
der giver en fejl ugyldig kommando 'breakpoint impExpWrap pedKeyOpenSslExport '
.
Jeg har prøvet DTrace for at spore Cisco AnyConnect, men jeg kender ikke DTrace nok til, at den afslører datastrukturer.
Jeg har forsøgt at kompilere igen sikkerheds- og SecurityTool-pakkerne, men de ser alle ud til at kræve bootstrapping, der ikke ser ud til at være på plads.
Hvordan får jeg den private nøgle?