Citește cheie privată CryptoPro container OpenSSL

container Citirea cheii private CryptoPro înseamnă OpenSSL +54

  • 15.01.16 06:41 •
  • shukan •
  • • # 275039
  • • Habrahabr
  • 29 •
  • 13300

- cum ar fi Forbes, doar mai bine.

Este demn de menționat existența de utilitate P12FromGostCSP care vă permite să convertiți formatul cheii în P12, disponibile pentru utilizare cu OpenSSL, dar utilitatea are următoarele dezavantaje semnificative:
  • Citește containerul nu este în mod direct, ci printr-un cripto, astfel încât în ​​cazul în care altele decât OpenSSL nimic, nu funcționează.
  • Dacă nu se specifică în proprietățile cheie ale cheii „exportate“, care nu se poate converti.
  • Versiunea demo nu generează un fișier cheie, această caracteristică este disponibilă numai în versiunea plătită.


Acesta conține o cheie de 32 octeți în format ASN1. Aceasta este doar jumătate din cheia, cheia completă se obține prin împărțirea acestui număr de Q modulo o mască. Câmp Unitatea de stocare Q în biblioteca OpenSSL este numele ordinului. Masca este în fișierul masks.key:




Acesta conține o mască cheie de 32 byte în format ASN1, criptat pe pwd_key cheie de stocare. În continuare, 12 bytes de „goale“ generație informații pwd_key cheie de stocare, în cazul în care kriptokonteynera protejat de o parolă, parola este, de asemenea, implicată în generarea cheii de stocare.

checksum suplimentară (protecție simulare) de 4 octeți. Controlați informațiile de dragul de simplitate vom folosi nu va, controlul general se realizează prin generarea unei chei publice și comparând primele 8 octeți ai cheii primit cu un câmp corespunzător de fișier header.key:

Citește cheie privată CryptoPro container OpenSSL

Activitatea principală se realizează prin următoarele 3 funcții:

1. Crearea unei chei de stocare bazat pe 12-byte „sare“ și o parolă.

2. decriptează cheia principală pentru stocarea cheie.

3. Se împarte cheia cu o mască pe o mască.

Dar, din moment ce biblioteca OpenSLL Modulo în mod tradițional absentă, vom folosi operația de a lua numere inverse și multiplicare.


Sursa de asamblare descrisă în continuare pentru versiunea Linux.

Versiunea Windows poate fi descărcat de aici există, de asemenea, un certificat și o cheie privată pentru testare, au nevoie pentru a construi un compilator gratuit Borland C ++ 5.5

Compilarea biblioteca OpenSSL


După descărcarea și despachetarea comanda sursă OpenSSL este executată în directorul țintă:


Noi ne pregătim libcrypto.a bibliotecă în directorul curent.
De asemenea, au nevoie de fișierele header ale motoarelor / ccgost și includ directoare.

compilarea privkey.c

Formarea private.key privat fișier cheie

Testați cheia privată în kriptokonteynera lp-9a0fe.000, publice signer.cer certificat cheie și alte fișiere pentru testare pot fi luate de aici

Obținem rezultatul:

Nu uitați să private.key

Într-o cheie private.key închisă pentru a semna file.txt fișier

verifica semnătura

Totul funcționează doar o mare!

Există unele probleme cu aceste token-uri. aceasta constă în faptul că sprijinul acestor token-uri trebuie să fie făcut on-line cu ajutorul plug, din care acum mică grădină zoologică. Asigurați-vă un EPO funcțional pentru oaspeții cu mecanisme de browser standard în astfel de token-uri nu pot din păcate. Cu plugin-uri au o altă problemă: cele mai multe dintre plugin-urile utilizate NP API, care a băut din Chrome și despre băut din Firefox.

Sub Windows pentru a lucra cu aceste token-uri, de asemenea, nu este opțiunea cea mai convenabilă, ca atunci când se lucrează cu ei prin Crypto Pro sau un alt CIPF popular in acest simbol se transformă într-un flash dovleac. Microsoft Crypto API-ul de lucru a fost sustinuta de doar o parte a token-ul RSA. Dar Gostovskaya caracteristicile funcționale ale semnăturii hardware-ul este necesar pentru a trage prin PKSC # 11, dar programele care susțin acest lucru sub Windows, în plus față de MS Crypto API după-amiază cu foc.

Ca de obicei fleshka fleshka montat la container într-un dosar separat. În general, acesta este cel mai popular și tipul cel mai accesibil jetonului în cazul Crypto-Pro. Și cu ea, cheile obține cele mai dificile, deoarece -proprietarny format de stocare.

acolo pcsk11-instrument, este, în cele din urmă, utilitatea producătorilor de jetoane - Cu aceste token-uri este mult mai ușor. În cazul în care cheia este generată pe token ca non-exportabile, atunci, desigur, nu trage, ci ca o regulă, cheia este nu descărcate, astfel încât să puteți face o copie, deoarece probabilitatea de cheie de exploatare este mult mai mică decât probabilitatea de ea, de exemplu, pierderea sau ruperea .

Ca o regulă, cheia este nu descărcate, astfel încât să puteți face o copie a unei groază. Cine și unde se descarcă cheia? În mod normal, companiile cu „pierderea sau ruperea“ luptă este simplu: simplifica înregistrarea noii chei. În mod ideal - acesta trebuie să fie capabil să facă clientul însuși, fără implicarea de sprijin - ceva de genul asta.

Cel mai retardat - asta pentru ca cineva ceva acolo, după toate verificările, certifică, parses. O mulțime de bani de filare. Dar, în același timp, cel mai de bază - se pare ca nici unul controale. De ce atunci toate astea? Adică, am înțeles că pentru majoritatea oamenilor, „Siguranța - este o astfel de bifă, fără de care clienții nu vor veni / nu semna contractul“, dar așa cum este acolo de fapt, protejează datele - nu contează, dar, iad, întreg există o limită!

Detectarea cheii exportate în prodakshene - este o urgență. Cineva ceva atât nu înțelege că „cu lemn de stejar prăbușit“ și a decis să discrediteze întreaga idee de token-uri hardware ... Și apoi okazyvatsya că „de regulă fac cheie neîncărcat“ ... este trist ...

este pur si simplu nu vin peste activitatea SMEV ...

Eu nu vin peste. Și instalația electrică din casa mea, nu am instalat. Chiar și hydrostrengthening sistem de direcție nu am reparat. Dar ce înseamnă de fapt se schimbă.

Partea opusă a „spirit“ română: Dacă cineva a dezvoltat un sistem în care să facă ceva incomod, operațiune de înregistrare elementară este o cheie suplimentară (care ar trebui să fie o bază și gratuit) necesită mult timp și efort și / sau bani, am Kak o distribuire. „Bug“ pentru a pune dopul nu a ars, baros senzor zabem, în cazul în care acesta este în locul ei nu urca, lăsați cheile exportate. Totul - de la cele mai bune intenții.

Și apoi - la goryad acasă, rachete care se încadrează, banii dispar.

Raison d'etre kriptotokena - în anti-manipulare dispozitiv plasat în cheile. Este, de fapt, singura justificare a suschesvovaniya sale. Utilizați tastele exportate este în curs de dezvoltare - trebuie să fie de cel puțin un motiv de concediere pentru neglijență, și în cel mai bun - și pentru aducerea la răspundere (în funcție de cine și cât de multe chei au fost emise).

Și peste parole înregistrate pe bumazhechke și lipite la monitor - toata lumea a ras. Și când cheile sunt emise cu PINom 12345678 și cheile exportate - e ca, „așa să fie“ ...

Voi spune chiar mai mult. Până în prezent, cele mai multe CA utilizează software-ul Crypto, care vă permite să creați o pereche de chei numai jetoane sărace. În plus, marea majoritate a CA nu da (regulile sale) clienților pentru a obține un certificat pentru solicitarea certificatului.

Astfel, totul este mult mai rău, pentru că cheia privată generează UC. Mai mult decât atât, se poate copia tine în acest moment.

Dacă într-adevăr știi ce este siguranța, desigur, să ia timp și pentru a găsi CA care funcționează cu interogări. Dar cea mai mare parte a CA, și, prin urmare, clienții lor locuiesc aici și așa.

De ce trebuie să plătească bani pentru o astfel de cheie? Cumpărați mai ieftin stick-ul și toate. În Kazahstan, de exemplu, este cazul. Veți obține un certificat de la stat pentru serviciile publice. La primire, vă poate aduce o unitate flash, sau pentru a oferi un certificat, care este construit kriptotoken (dar au nevoie de un cititor special), sau să plătească banii și a obține un USB token. Cumpara la prețuri exorbitante unitate flash USB - suficient de fapt. Sau este din cauza acestui software, care citește cheile doar pentru acest brand memorii flash?

Acest lucru se datorează cerințelor de securitate. Cheia privată nu poate fi îndepărtat cu cheia cripto (în teorie - chiar și cu microscopul electronic nu poate, practic, - cel puțin nu poți face asta cu „improvizate“ înseamnă).

Eu spun, o astfel de cheie este introdusă o dată pentru totdeauna într-un laptop, în cazul în care ambele unități. În timp ce el este la dispoziția mea - tot ceea ce cu ea se face - este responsabilitatea mea și problema mea (dacă am pierdut sau, de exemplu, ofițerii vamali ia un nou laptop și a trimis „pentru a verifica“ - trebuie să-l raporteze imediat cheia anulate ).

Important: deoarece cheia nu poate fi copiat, nici un „scuze“ și „mașinațiunile rivali“ nu au fost luate în considerare: cheia era în mâna mea - atunci eu sunt pentru ceea ce sa întâmplat cu ea și să răspundă.

Care este punctul de a pune pe un astfel de certificat de cheie pentru export - știință, desigur, necunoscute. În acest sens, ea funcționează ca o unitate flash USB normal și nici un avantaj asupra acestuia nu contează.

Eu spun, o astfel de cheie este introdusă o dată pentru totdeauna într-un laptop, în cazul în care ambele unități. Am evita acest lucru, am insera doar atunci când trebuie să semneze nimic. Nu a fost bug-ul de securitate YubiKey în OpenPGP-applet, care permite operarea fără un cod PIN.

articole similare