Spørgsmål:
Uddrag ikke-udpakkelig privat nøgle fra OS X nøglering
cnst
2014-08-09 03:30:22 UTC
view on stackexchange narkive permalink

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 .

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):


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?

To svar:
cnst
2014-08-09 10:01:20 UTC
view on stackexchange narkive permalink

Jeg er kommet til en løsning ved at undersøge et svar på en af ​​mine nøgleringsspørgsmål.

Ifølge SecItem.h er denne kSecAttrIsExtractable er blevet introduceret med OS X 10.6.

Som sådan har jeg prøvet og lykkedes med følgende:

  • scp ~ / Library / Keychains / login. nøglering fra OS X 10.9 til OS X 10.5

  • På OS X 10.5, som i eksemplet fra den manuelle side:

    sikkerhedsexport -k /tmp/login.keychain -t identiteter -f pkcs12 -o /tmp/mycerts.p12

    Appen sikkerhed beder dig om flere adgangskoder:

    1. den nye adgangskode fra den første dialog er for at beskytte den p12, der eksporteres;
    2. den anden er login.keychain c ode> adgangskode, som normalt ville være den samme som brugerens loginadgangskode på det originale OS X 10.9, hvorfra nøgleringens fil kom fra.
  • scp /tmp/mycerts.p12 tilbage til OS X 10.9 fra 10.5

standy
2018-12-27 05:48:11 UTC
view on stackexchange narkive permalink

Jeg fandt en nemmere måde med chainbreaker fork. Det fungerer med MacOS 10.14 Mojave. Se de fulde instruktioner her.

I mit tilfælde gjorde jeg følgende:

  $ pip2 installer hexdump pycrypto pyopenssl $ git klon https: / /github.com/gremwell/chainbreaker.git && cd chainbreaker $ python2 chainbreaker.py -f ~ / Library / Keychains / login.keychain-db -p <PASS> $ openssl x509 -inform DER -in / eksporteret / tilknyttet. crt -out hemmelig.crt $ openssl rsa -inform DER -in eksporteret / tilknyttet / 1 / *. nøgle -out hemmelig.key $ openssl pkcs12 -eksport -out hemmelig.p12 -nøgle hemmelig.nøgle -in hemmelig.crt  kode> 

Så er secret.p12 klar til at blive importeret på en anden maskine.



Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...