Sto sviluppando un'applicazione e parte della registrazione richiede che un utente firmi un contratto di utilizzo del servizio.
Ho letto l'argomento per alcuni giorni e sono abbastanza soddisfatto di tutte le tecniche relative alla firma digitale di un documento. Alcuni riferimenti di seguito
Digitally Sign DATA, Not Documents [chiuso]
Qual è la differenza tra una firma elettronica e una firma digitale
L'unica domanda aperta che ho è come possiamo veramente convalidare che il dato / contratto che presento all'utente per la revisione è lo stesso dei dati / contratto che è stato firmato?
Ad esempio, potrei implementare nella mia applicazione tutto l'hashing e PKI richiesto per firmare in modo sicuro il documento / i dati, ma cosa succede se ho deciso che volevo diventare corrotto e modificare il testo che è stato visualizzato sulla pagina web (potrebbe fare questo attraverso javascript, o fornendo un pdf diverso da quello che deve essere firmato).
Potrei mostrare all'utente un dato / contratto completamente diverso da quello che è richiesto, quindi nel back-end della mia applicazione, firmare i dati corretti. Posso quindi rimuovere il codice dannoso. Se qualcuno verificasse il mio software come un contratto era in discussione, vedrebbe che visualizzo il dato / contratto corretto e quindi il contratto discutibile è vincolante.
Alla fine ho il controllo su tutti gli aspetti della firma, quindi mi sto davvero sforzando di capire come tutto può essere più sicuro che prendere la parola come fornitore che non modificherò i dati / contratto mostrati all'utente.
Quindi, con tutta la sicurezza intorno alla firma del documento, alla fine mi viene in mente la fiducia in me come sviluppatore per non alterare malignamente l'accordo contrattuale mostrato all'utente.
Ho perso qualcosa nella mia ricerca? O si tratta davvero di fidarsi? In tal caso, perché preoccuparsi di firmare digitalmente?
AGGIORNAMENTO Basato sulla risposta di seguito:
Controllo il processo di firma e cosa ho scelto di visualizzare sulla pagina. Potrei mostrare un documento A dell'utente sulla pagina web. Fanno clic sul pulsante "firma ora". Il documento B è utilizzato nel back-end e firmato. Invio il documento utente B via email. Lo contestano. Non hanno modo di dimostrare di aver visto il documento A come è stato visualizzato su una pagina web che ora ho rimosso e sostituito con il documento B. A meno che un utente non sia veramente esperto e si blocca la pagina Web o catturi una schermata (la maggior parte degli utenti non vorrebbe ). Come possono dimostrare di aver accettato di documentare A?
AGGIORNAMENTO In base alla risposta accettata:
Per chiunque stia leggendo questo e anche lottando, l'unica cosa che ho davvero trascurato qui è che ho pensato che potevo essere il custode della mia chiave privata e della chiave privata dei miei clienti. Con il senno di poi, ovviamente, è solo sbagliato. L'unico modo per applicare veramente una firma digitale è consentire a entrambe le parti di firmare con la propria chiave privata e quindi fornire la propria chiave pubblica per consentire la convalida della firma. Il problema con questo è ovviamente che molti utenti non esperti di tecnologia non conoscono molto delle firme digitali e di come applicarle, quindi ho dovuto ammettere di sconfiggere e retrocedere alla semplice vecchia firma elettronica con un hashing SHA256 ' sigillo 'dopo la firma.