I processi di crittografia e firma che si verificano sul server A e sul server B proteggono i dati del modulo da intercettazioni indesiderate e alterazioni malevoli (o accidentali) dal momento in cui sono stati crittografati / firmati sul server A, al momento della loro decodifica / verificato sul server B. Questo include qualsiasi tipo di archiviazione su A o B e qualsiasi supporto di trasporto viene utilizzato tra A e B. Ma tenere presente quanto segue:
-
La crittografia e la firma non dicono nulla sui dati inviati dal cliente; come suggerisce @mikeazo in un commento, anche il processo di invio sarebbe stato meglio protetto.
-
Grazie alla firma, B può essere certo che qualsiasi messaggio ricevuto sia "genuino" (è davvero come quando è stato firmato da A). Tuttavia, B non può sapere se ha ricevuto tutti i messaggi; le firme non dicono nulla sul messaggio che B non ha mai visto perché l'attaccante le ha intercettate prima della consegna a B.
-
La firma copre solo ciò che è firmato, non tutti i metadati che possono essere associati ad esso. Ad esempio, i dati del modulo possono essere verificati in relazione a un determinato utente solo se il nome di tale utente fa parte dei dati del modulo. In caso contrario, un utente malintenzionato sarebbe libero di scambiare moduli crittografati nel database di A. Allo stesso modo, l'hacking di un hacker è il modo in cui A e B potrebbero riprodurre il vecchio messaggio crittografato, quindi B non può essere sicuro di avere i "ultimi" dati del modulo per un determinato utente a meno che i dati del modulo includano una sorta di data / ora o numero di sequenza. / p>
-
La sicurezza riguarda solo la segretezza delle chiavi private coinvolte. Ci vuole un po 'di fiducia nel credere che un utente malintenzionato che ha accesso al database di A non abbia accesso alla chiave privata di A.
Quindi, mentre il sistema di crittografia + firma offre alcune utili garanzie, potrebbe non riuscire a coprire tutto che potrebbero essere tentati dagli attaccanti. Ti invito a scrivere formalmente, da qualche parte, la portata dei poteri che concedi ai presunti aggressori (questo è il "modello di attacco").
A parte questo, usare GnuPG è un'ottima idea, dal momento che usare un'implementazione fatta in casa o, peggio, un protocollo fatto in casa, sarebbe una pessima idea.