Ciao,
ho scritto un activeX che applica la firma digitale a documenti con .net framework 3.5 utilizzando le funzionalità offerte dal namespace cryptografy.
Siccome l'activeX dovrà essere fruito attraverso una pagina html e per motivi di sicurezza, ho pensato di creare un CAB che ho inglobato nella pagina con il tag object sotto riportato:
**************************************************
<OBJECT id="FirmaDigitale1" name="FirmaDigitale2" width="648"
height="650" classid="CLSID:a0cabb57-e01e-4f0d-acf6-9063da5e6d4e"
codebase="digitSignCAB.CAB#version=1,0,0,0">
</OBJECT>
**************************************************
Ho aggiunto quindi alla soluzione il progetto CAB, referenziando il file DigitSign.dll che trovo nella cartella release del progetto class library prodotto della compilazione dello stesso.
I problemi che sto riscontrando sono:
1) SICUREZZA: pur avendo inserito (nel mio caso) il sito http://localhost tra i siti affidabili, quando vado sulla pagina con internet explorer mi viene richiesta l'installazione del componente, che effettuo premendo il tasto installa. Dopo l'installazione però, al posto dell'activeX mi compare lo spazio a lui riservato una X ROSSA indice del fatto che IE7 non riesce a visualizzarla. Tengo a precisare che, referenziando direttamente la dll con il tag:
**************************************************
<OBJECT id="FirmaDigitale1" name="FirmaDigitale1" width="648" height="650"
classid="DigitSign.dll#DigitSign.FirmaDigitale">
</OBJECT>
**************************************************
il tutto viene visualizzato correttamente su IE7, quindi l'activeX è funzionante.
Domanda: Qualcuno mi sa dare qualche dritta per la creazione del CAB e/o della sua integrazione per evitare la X ROSSA?
2) SICUREZZA: Supponendo di voler referenziare direttamente la DLL, i problemi che ho riscontrato sono di violazione della sicurezza della macchina client ogni qualvolta tento di aprire un file (system.security.permissions.fileIOPermission) o ogni volta che tento di aprire lo store dei certificati di windows (System.Security.Permissions.StorePermission).
Domande:
a)Come faccio ad impostare le autorizzazioni per, diciamo, avere possesso della macchina per le operazioni suddette?
b)Posso firmare la dll con un certificato attendibile rilasciato da una delle autorità di certificazione installate sulla macchina? Come?
3) WEBSERVER: se invece di pubblicare sotto iis volessi farlo sotto tomcat inglobando la dll in una jsp con uno dei tag object di sopra, potrebbero esserci problemi? Tomcat e le dll vanno "d'accordo"?
Se sei arrivato a leggere fino a questo punto e non sei scappato prima, sei sicuramente uno tosto...aiutami per favore
.
Grazie,
Ciao
Claudio
Modificato da claudiog il 29 gennaio 2009 11.54 -
Modificato da claudiog il 29 gennaio 2009 11.57 -