Nënshkrimi i kodeve

## Nënshkrimi i kodeve - Praktikat më të mira 
Çelësat kriptografik të cilët janë të rëndësishëm për nënshkrimin e kodeve duhet të jenë të ruajtur mirë. Nëse çelësi gjendet nga një sulmues ai mund të përdorë për dërgimin e aplikacioneve që pëmbjanë Trojan ose virus i cili paraqitet sikurse të ishte nga një organizatë legjitime.

## Mundësimi i sigurisë 
Ka mënyra të ndryshme për të mundësuar nënshkrimin e kodeve duke përdorur sistemin e çelësit privat dhe atë publik, njëjtë me procesin e SSL ose SSH. P.sh. në rastin e .NET, zhviluesit shfrytëzojnë çelësin e tyre për të nënshkurar librarit e tyre ose për ta shfrytëzuar sa herë që dëshirojnë ta ndërtojnë. Ky çelës duhet të jetë unik për zhvilluesin ose një grup për aplikacionin. Zhvilluesi mundet ta gjenerojë çelësin vet ose ta kërkojë atë nga një palë e besueshme autoritet certifikues (CA).

### Mbrojta e çelësave kriptografik 
Është e rëndësishme që kur krijohet çelësat për përdorim elektronik të kenë një mbrojtje nga sulmet e ndryshme. Microsoft rekomandon që ruajtja e çelësave të bëhet në pajisje hardware-ike.  Çelësat të cilët janë të ruajtur ne software janë më të rrezikuar për tu zbuluar nga sulmuesit se sa çelësat të cilët janë ruajtur në hardware.

Tri tipet e pajisjeve hardware-ike të cilat shfrytëzohen për të mbrojtur çelësat për nënshkrim:

 
thumb|Hardware Security Modules

## Disa sqarime për termat nga Tabela 
:	- Certifikimi : standardet për procesimin e informatave federale (FIPS) 140 – 2 është një standard I cili mundëson kriteret për  vlerësimin e moduleve kriptografike.  HSM zakonisht posedojnë këtë certifikatë, por smart kartelat zakonisht jo.
:	- Gjenerimi I çelësave : kur çelësat gjenerohen, ata asnjëherë nuk duhet të ekspozohen si plaintekst jashtë pajisjes hardware-ike.
:	- Çelësat rezervë : çelësat duhet të kenë një kopje rezervë në rast të defekteve hardware-ike. Është e rëndësishme që gjatë procesit të krijimitë të çelësi mos të ekspozohet si plaintekst jashtë HSM. HSM mundëson krijimin e një kopje rezervë në mënyrë të sigurtë.
:	- Autenifikimi i dyfishtë : organizatat duhet të kërkojnë më shumë se një operatorë për nënshkrimin e kodit. Disa HSM mundësojnë autentifikimin e avancuar (dy faktorë autentifikues).  Kjo mundë të bëhet  edhe me smart kartela por mënyra e procesit është më e ndryshme p.sh. nëri dinë kombinimin e sigurt kurse tjetri e ka të njohurë PIN-in (numrin personal identifikues).
:	- Shpejtësia : përgjithësisht smart kartelat kryejnë operacione kriptografike më ngadalë se HSM.  Çdo organizatë e cila kërkon më shumë se 100 nënshkrime për javë duhet të konsiderojë shfrytëzimin e HSM-së.
:	- Ndarja e detyrave roli operacionalë dhe administrativë duhet të jetë I ndarë për të shamngurë mbështetjen e një individi apo grupi.
:	- Shkatërrimi :  HSM mundëson gjithë ciklin e çelësit.  Nëse një çelës privatë bëhet i paligjshëm për çfarëdo arsyje, është e rëndësishme që ajë çelës të shkatërrohet. Kjo mundësohet mbishkruar çelësin ne HSM apo smart kartel ose fizikisht duek shkatërruar pajisjen.

:
:
:

## Mjedisi për nënshkrim 
Mjedisi për nënshkrim duhet të jetë fizikisht i sigurt.  Përndryshe nuk ka mënyrë për të pamundësuar humbjen e smart kartelave apo HSM dhe pastaj mund të bëhet nënshkrimi i përmbajtjeve të papërshtatshme.  Varësisht se cilat janë kërkesat e infrastrukturës për nënshkrimin e kodeve janë ato kërkesa të cilat diktojnë se cilat janë ato barriera logjike dhe fizike të cilat duhet të implementohen.

## Referimet 
* msdn.microsoft.com
* http://www.sans.org.(http://www.sans.org/reading_room/whitepapers/vpns/overview-hardware-security-modules_757)
* Apple Code Signing Guide 
* Microsoft Introduction to Code Signing
* Comodo Code Signing Process 
* Mozilla's SignTool (formerly NetScape/Sun)