Newsgroup: it.comp.lang.delphi
Titolo: Indy SSL e Verisign

Qualcuno ha qualche info al riguardo?
Io ho sviluppato un server HTTP utilizzando le Indy; funziona correttamente
ma da una settimana il cliente in america che colloquia usando BizTalk con
il mio programmino si è messo in testa di usare SSL e di utilizzare un
certifcato.
Si può dire che però io non ne so niente sull'argomento.
Ho scaricato le DLL per l'uso dell'SSL dal sito delle Indy.
Ma.....
- Cercando di compilare l'ordering form sul sito Verisign mi chiedono un CSR
(Certificate Signing Request) e una Key PAIR ... cito :
"Follow the instructions that came with your server software to generate a
key pair and a Certificate Signing Request (CSR)."
Ma io non uso un server Web, ma semplicemente la mia applicazione :/
-Dopo questo ... che ci devo fare con il certificato che mi spediranno?
Ogni suggerimento sarà apprezzato moltisssssssimo :))
Ciao e Grazie

allora....
Un certificato digitale serve a stabilire l'identità di una persona via web.
Quando tu ti registri a cose tipo verySign, loro creano una specie di record
anagrafico con i tui dati e si assumono la responsabilità di certificare che
6 proprio tu e non uno qualsiasi che sta facendo o tentando di fare un
qualcosa.
Coloro che si assumono questa responsabilità vengono definiti CA
(Certification Authority).
Il qualcosa può essere o l'autenticazione per eseguire operazione con un
server web via browser oppure la firma di un messaggio di posta elettronica
o la firma di un file che potrebbe essere inviato in allegato ad un msg
email.
Per gestire questa roba esistono vari standard.
Per avere idea dei dettagli, vai su 
www.rsa.com
, ma prima siediti e prenditi
una camomilla...
Ti spiego cio che faccio io con le masrtcard che hanno al loro interno il
certificato:
1) in primis, devo autenticarmi per accedere alle funzioni offerte dalla
smartcard
2) dopo posso dire alla mia applicazione di applicare la firma digitale ad
un file
Tale operazione consiste nel calcolare un hash usando in genere SHA1,
applicare la firma al tale hash e a creare poi un "pacchetto" detto
envelopedi tipo pkcs#7.
Tale file ha una doppia estensione. Ad esempio, se firmi pippo.txt, il nuovo
nome sarà pippo.txt.P7M.
La stessa cosa può essere fatta con i msg di posta.
se guardi nelle opz degli account di outlook express hai la possibilità di
indicare un certificato da usare per firmare le email.
Tali mail, quando le ricevi da outlooo (ma presumo che eudora etc facciano
lo stesso) portano una medaglina, che sta a indicare che il msg è firmato.
Se ci clicchi sopra puoi vedere se la firma è attendibile.
Il principio della firma si basa sulle chiavi asimmetriche.
In pratica il certificato può gestire 2 chiavi, una pubblica che viene
mandata insieme alla email ed una privata che resta a te.
La chiave pubblica è calcolata in funzione di cio che stai firmando e della
chiave privata che resta a te.
Quindi, le possibilità di clonarla sono non zero, ma molto basse.
Chi riceve ha solo la chiave pubblica e non può ricostruire quella privata,
ma quella pubblica basta per garantire che tu 6 veramente tu.
Il passaggio di applicazione della firma può essere fatto in base a 2
standard, alias driver che ti danno un livello di astrazione dal "cosa"
contiene il certificato
UL primo è il PKCS#11 che è usato da netscape, mozilla etc.
Il secondo, specifico per Winsozz, è il CSP
Di fatto queste 2 cose non fanno altro che offrirti un core di funzioni che
aprire il "contenitore" del certificato, autenticarti per usarlo, calcolare
la chiave per firma, estrarre il certificato che può essere incluso nel
pacchetto etc etc etc.
La roba sul CSP la trovi su msdn.
Il pkcs#11 sempre su 
www.rsa.com
Se poi vuoi vedere qualcosa di + pratico vai su  
www.nsoftware.com
: smime,
mime ssmpt etc etc etc
Adesso tu diari: che ka??o c'entra 'sta roba con indy? Non so.
Presumo che abbiano uno strato che si appoggia ad un csp o a un provider
pkcs#11 per i casini di firma & certificato.
Bye
A