RSA amb OpenSSL" />

Posts Tagged ‘ criptografia

Pràctiques RSA amb OpenSSL

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)

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

openssl rsautl -in doc.txt -out doc.rsa -inkey pub.pem -pubin -encrypt
openssl rsautl -in doc.txt -out doc.rsa -inkey cert.pem -certin -encrypt

Per des­xi­frar:

openssl rsautl -in doc.rsa -out doc.txt -inkey cert.pem

Per sig­nar:

openssl dgst -sign cert.pem -out doc.sign doc.txt

Per veri­fi­car la signatura:

openssl dgst -verify pub.pem -signature doc.sign doc.txt

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

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

openssl pkcs12 -in certificat.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 vulguem):

openssl crl2pkcs7 -certfile cpub.pem -nocrl -outform DER -out cpub.p7c
openssl crl2pkcs7 -certfile cpub.pem -nocrl -outform PEM -out cpub.p7b

Xifrat senzill RSA amb Excel 2007

Tot pre­pa­rant una ses­sió intro­duc­tò­ria sobre xifratge (crip­to­gra­fia) per a un curs de segu­re­tat infor­mà­tica se m’ha acu­dit que seria molt més pràc­tic, àgil i fàcil expli­car (i per tant enten­dre) la crip­to­gra­fia de clau pública amb un exem­ple sen­zill de gene­ra­ció de claus, xifratge i des­xi­fratge. De tot ple­gat me n’ha sor­tit un full de càl­cul que –tot i ésser molt millo­ra­ble– penso que com­pleix el seu pro­pò­sit, sense cap neces­si­tat d’entrar (ni conèi­xer) en arit­mè­tica modu­lar i mate­mà­tica dis­creta.

Permet que l’alumne escu­lli els nom­bres p i q d’entre una llista amb els 1.000 nom­bres pri­mers i triï quin serà l’exponent e que li farà de clau pública. El sis­tema cal­cula auto­mà­ti­ca­ment la clau pri­vada cor­res­po­nent i ofe­reix la pos­si­bi­li­tat de xifrar una paraula de 5 lle­tres i desxifrar-​​la poste­ri­or­ment. Com que la fina­li­tat és pura­ment docent i il·lustrativa (i tam­poc em volia com­pli­car la vida) no he imple­men­tat cap tèc­nica de pad­ding scheme per a paliar les vul­ne­ra­bi­li­tats inhe­rents al crip­to­sis­tema RSA cau­sa­des prin­ci­pal­ment per la falta de com­po­nents ale­a­to­ris en el pro­cés de xifratge. Es tracta que els alum­nes enten­guin la base, fer-​​los veure que la rea­li­tat és lleu­ge­ra­ment dife­rent i que el pro­cés pot aplicar-​​se de diver­ses formes…

El docu­ment inclou algu­nes fun­ci­ons que he hagut de crear per a tas­ques tan diver­ses com com­pro­var si dos enters són copri­mers o rea­lit­zar una potèn­cia modu­lar, entre d’altres.

Descarregar xifratRSA.xlsm, docu­ment Excel 2007 amb macros. 61KB
Llicència de Creative Commons

Per a qual­se­vol con­sulta, sug­ge­ri­ment o noti­fi­ca­ció d’errades uti­lit­zeu els comen­ta­ris, si us plau!

Certificats digitals dels nassos (I)

Ja fa uns deu anys que vaig estu­diar crip­to­gra­fia de clau pública a l’assignatura de segu­re­tat com­pu­ta­ci­o­nal amb el Sr. Rifà; però els con­cep­tes bàsics sobre l’ús de les claus públi­ques i pri­va­des i els pro­ces­sos de sig­nar i xifrar els recordo per­fec­ta­ment. La teo­ria la tinc clara, però la pràc­tica s’entesta a dur-​​li la contrària…

Dies enrere en JM –arran d’un curs de pre­pa­ra­ció per l’ACTIC, pre­ci­sa­ment– va revo­car el seu cer­ti­fi­cat digi­tal idCAT en for­mat cla­uer per tenir-​​ne un dels nous en for­mat –en diuen– “pro­gra­mari” (ara es dema­nen pre­sen­ci­al­ment i es des­car­re­guen via web). Per sor­presa seva, un cop instal·lat en un ordi­na­dor, no podia exportar-​​lo de cap de les mane­res per utilitzar-​​lo en un altre màquina.

En una tru­cada al ser­vei d’atenció de l’idCAT (902901080) li diuen que, efec­ti­va­ment, el cer­ti­fi­cat no és expor­ta­ble (!?). Confós, repe­teix la tru­cada i una altra per­sona li con­firma que sí, que el cer­ti­fi­cat és expor­ta­ble però que en el pro­cés d’instal·lació (men­tre el des­car­re­gava del web) hau­ria d’haver mar­cat l’opció de fer-​​lo expor­ta­ble i que si se n’havia des­cui­dat no li que­dava més remei que revocar-​​lo i demanar-​​ne un altre.

Segon intent: en JM revoca el cer­ti­fi­cat, en demana un altre i es dis­posa a instal·lar-lo, aquesta vegada amb l’ajuda d’una ope­ra­dora del 902901080 a l’altra banda del telè­fon. Clic per clic, segueix les ins­truc­ci­ons i ¡oh, sor­presa! l’opció de Marcar el cer­ti­fi­cat com expor­ta­ble no apa­reix per enlloc… Però, ¡més sor­pre­ses! ara sí que pot expor­tar el cer­ti­fi­cat! L’operadora li diu que, en rea­li­tat, l’opció de fer un cer­ti­fi­cat expor­ta­ble l’ha de triar el fun­ci­o­nari de l’ajuntament durant el pro­cés de sol·licitud del cer­ti­fi­cat. Tercera ver­sió dels ope­ra­dors del telè­fon de con­sul­tes de l’idCAT. Recordem:

  1. El cer­ti­fi­cat NO és exportable.
  2. El cer­ti­fi­cat que és expor­ta­ble, sem­pre i quan així ho indi­qui l’usuari durant la instal·lació.
  3. El cer­ti­fi­cat que és expor­ta­ble, sem­pre i quan així ho indi­qui el fun­ci­o­nari durant la sol·licitud del certificat.

No està mala­ment… Doncs bé, avui m’ha tocat a mi. El meu cer­ti­fi­cat en for­mat cla­uer que, no sense barallar-m’hi, vaig acon­se­guir fer fun­ci­o­nar no només amb Windows sinó també amb Ubuntu i Snow Leopard; ja feia dies que havia dit prou. Suposo que és per les dar­re­res actu­a­lit­za­ci­ons del Firefox, però per una cosa o altra ja no em fun­ci­o­nava ni inten­tant car­re­gar manu­al­ment el mòdul que indi­cava l’script d’instal·lació (script que, efec­ti­va­ment, no fun­ci­o­nava amb les dar­re­res ver­si­ons de Firefox).

He anat a l’ajuntament de Manresa a revo­car el meu cla­uer i dema­nar un altre cer­ti­fi­cat, però pre­vin­gut per en JM els he expli­cat el seu cas i he dema­nat que em mar­ques­sin, si us plau, l’opció de fer-​​lo expor­ta­ble tal com ens havia indi­cat la dar­rera ope­ra­dora del telè­fon de con­sul­tes. La fun­ci­o­na­ria, sor­presa, ha dit que aquesta opció l’havia de mar­car jo durant la instal·lació (!?) i molt ama­ble­ment ha tru­cat a idCAT per confirmar-​​ho. I, per des­es­pe­ra­ció meva, li han confirmat!

Un cop a casa he instal·lat el cer­ti­fi­cat, la re-​​maleïda opció no ha apa­re­gut per enlloc durant la instal·lació i, mal­grat tot, he pogut expor­tar el cer­ti­fi­cat com­plet (clau pública + clau pri­vada) en for­mat .P12 i usar-​​lo per identificar-​​me a un parell de llocs web tant amb el Lucid Lynx com amb el MAC.

< Continuarà… >