Firme digitali personali nelle applicazioni Web [chiuso]

0

Per firmare i dati con la firma digitale personale in un'applicazione web, i linguaggi lato server come PHP possono fare l'intero lavoro, ma ciò richiederebbe che l'utente carichi la sua chiave privata, diciamo memorizzata nel file PFX, che sarebbe anche richiede che invii la password (personale) per sbloccare il PFX. Un'altra alternativa è caricare le informazioni già sbloccate in formato PEM, che non richiede la password, ma la chiave privata è molto o più esposta come nel caso precedente.

Ciò che rimane è firmare i dati nel computer client e inviare i dati firmati insieme alla chiave pubblica al server.

Poiché si tratta di un'applicazione web, suppongo che sarebbe stata eseguita con JavaScript.

Quale sarebbe la soluzione JavaScript più globale (crossbrowser / "ufficiale")?

Se ritieni che ciò sia fuorviante, apprezzo la correzione e la guida.

Grazie

    
posta mikl 17.03.2015 - 22:00
fonte

1 risposta

0

Sì, sei corretto, puoi considerare il server affidabile e mettere una chiave privata non crittografata (o crittografata con essa accanto) nel server per consentire al server di effettuare la firma stessa o trattare il server come supporto non attendibile e fare la firma sulla macchina locale. Quest'ultimo non può essere fatto con la soluzione JavaScript, dato che lo stesso JavaScript deve essere fornito dal server e un malintenzionato può sostituire quel JavaScript con qualcosa di proprio. L'applicazione che firma dovrebbe essere disconnessa dal server per la massima sicurezza.

Questi sono davvero i due principali compromessi. Non esiste un'unica soluzione "corretta", ciò che è necessario scegliere dipende dai requisiti di sicurezza e disponibilità.

Se hai davvero bisogno di alta sicurezza, elevata capacità di controllo e alta disponibilità, allora un'opzione è di utilizzare un token hardware sul server. Il token hardware è un hardware per scopi speciali dedicato esclusivamente alla firma ed è progettato in modo che la chiave privata non possa essere estratta dal token; almeno non tramite una connessione remota. Un aggressore deve essere presente alla macchina per avere la possibilità di estrarre la chiave. Un token hardware non impedirà al malintenzionato che è riuscito a ottenere l'accesso remoto al server dall'ingannare il token per firmare il contenuto, ma fornirà auditabilità, in quanto il token può conservare i record delle cose che firma, che vengono archiviate in tale modo che non può essere manomesso facilmente dall'attaccante.

    
risposta data 18.03.2015 - 01:14
fonte

Leggi altre domande sui tag