06 set 2010

Pràctiques RSA amb OpenSSL

No Comments Informàtica

Aquest post és un breu resum esque­mà­tic de les coman­des bàsi­ques d’OpenSSL per a tre­ba­llar amb crip­to­gra­fia de clau pública RSA.

Generar un parell de claus RSA de 1024 bits (pri­vada xifrada amb DES3 + pública)

1
2
openssl genrsa -des3 -out cert.pem 1024
openssl rsa -in cert.pem -pubout -out pub.pem

El docu­ment cert.pem és un cer­ti­fi­cat que conté el parell de claus, men­tre que pub.pem conté només la clau pública (per a passar-​​la a altres usuaris).

Per xifrar tenim dues opci­ons (la pri­mera és la més lògica, con­si­de­rant que nor­mal­ment xifra­rem per a un altre usu­ari usant la seva clau pública):

1
2
openssl rsautl -in doc.txt -out doc.rsa -inkey pub.pem -pubin -encrypt
openssl rsautl -in doc.txt -out doc.rsa -inkey cert.pem -cer­tin -encrypt

Per des­xi­frar:
1
openssl rsautl -in doc.rsa -out doc.txt -inkey cert.pem -decrypt

Per sig­nar:
1
openssl dgst -sign cert.pem -out doc.sign doc.txt

Per veri­fi­car la sig­na­tura:
1
openssl dgst -verify pub.pem -sig­na­ture doc.sign doc.txt

{lang: «ca»}

06 set 2010

Extracció de la clau pública d'un certificat idCAT

No Comments Informàtica

En un post ante­rior vaig expli­car com instal·lar el cer­ti­fi­cat digi­tal d’idCAT al Firefox. Ja he comen­çat a fer pro­ves sobre xifratge i sig­na­tura digi­tal amb aquest cer­ti­fi­cat i diver­sos cli­ents de correu/​plataformes per inten­tar escriure un petit tuto­rial sobre la qües­tió que m’ajudi a acla­rir el fun­ci­o­na­ment pràc­tic de tot plegat.

D’entrada, i a falta de rea­lit­zar més pro­ves per a l’elaboració del tuto­rial, per fi he tro­bat la forma d’extreure només la clau pública del cer­ti­fi­cat idCAT; acció que m’ha donat prou maldecaps.

El pri­mer pas és expor­tar el cer­ti­fi­cat des de Firefox en for­mat P12 (PKCS#12), cosa que pot fer-​​se des de Preferències > Avançat > Xifratge > Visualitza els cer­ti­fi­cats > Els vos­tres cer­ti­fi­cats esco­llint l’opció Fes-​​ne còpia de segu­re­tat.

Posteriorment, en un ter­mi­nal (Linux o Mac OS X) on tin­guem OpenSSL instal·lat exe­cu­ta­rem:

1
openssl pkcs12 -in cer­ti­fi­cat.p12 -out cpub.pem -nokeys

L’opció –nokeys és pre­ci­sa­ment la que indica que no volem expor­tar la clau pri­vada. Si poste­ri­or­ment volem con­ver­tir (PEM to P7B /​ P7C) la clau pública a una estruc­tura PKCS#7, per exem­ple per a assignar-​​la a un con­tacte d’Outlook, hau­rem de fer (una de les dues, segons el for­mat que vul­guem):
1
2
openssl crl2pkcs7 -cert­file cpub.pem -nocrl -out­form DER -out cpub.p7c
openssl crl2pkcs7 -cert­file cpub.pem -nocrl -out­form PEM -out cpub.p7b

{lang: «ca»}