Come dimostrare che un utente è in realtà l'autore di determinate azioni?

3

TL; DR: Qual è il modo migliore e più "dal libro" per ottenere la non ripudio dell'origine.

Ho un sistema in cui gli utenti possono eseguire azioni (registra / cancella /...)

Tali azioni sono firmate dai miei utenti con chiavi private di loro proprietà. Salvano anche le loro chiavi pubbliche nel loro profilo.

Che cosa impedisce a un utente di dirmi che ho fatto delle azioni in h {is, er} nome, facendo finta di non sapere che "cosa pubblica pubblica / privata" (nel caso siano dannosi).

Il fatto è che non potrò mai dimostrare di possedere la chiave privata. Potrebbero buttarlo via (o semplicemente non rivelarlo mai).

Pensavo di poter fare loro una domanda

  • solo loro lo sanno
  • è difficile da indovinare
  • facile da verificare

Ma non riesco a scoprire quale domanda potrebbe essere.

Ho pensato che avrei potuto chiedere una foto della loro Id / Patente di guida presa di fronte a un'immagine generata da un'applicazione sul loro schermo. Ma è "prova sufficiente"?

    
posta Guillaume Lhermitte 30.05.2017 - 12:45
fonte

3 risposte

2

Non sono sicuro di vedere completamente il problema. Sei preoccupato che un utente possa richiedere che tu abbia usato la loro chiave privata perché hai accesso a tutte le chiavi degli utenti?

Le chiavi private dovrebbero idealmente essere archiviate una per ogni utente e non nel sistema stesso. Non conosco i dettagli del tuo sistema, ma potresti non ottenere che ogni operazione richieda all'utente di allegare la propria chiave privata per completare l'operazione (questo potrebbe anche essere gestito dal lato client in alcune sessioni in modo da poter mantenere una vera "Fidati di nessuno" approccio

Se sei preoccupato, gli utenti dichiareranno di non aver mai posseduto la chiave privata, non puoi fare un passo nelle operazioni per richiedere la prova della chiave privata. Come richiedere agli utenti di decifrare qualcosa che il tuo sistema crittografa usando le chiavi pubbliche?

    
risposta data 30.05.2017 - 12:56
fonte
2

Questa è una domanda interessante, ma può essere letta in 2 diversi livelli.

  1. Come posso dimostrare che il proprietario di quella chiave / certificato X509 è M. X?

    Beh, non puoi ... a meno che tu non abbia procedure che lo provino. Ad esempio per i certificati utente x509, vi è spesso un'operazione faccia a faccia in cui il firmatario controlla l'identità del destinatario e gli fa firmare manualmente un documento sostenendo di aver ricevuto un certificato per una chiave che lui (e solo lui) possiede da Y il giorno del mese, l'anno. Ora puoi provare (anche a un tribunale) che il proprietario della chiave del certificato è M. X. Ma questo presuppone che tu non possa conoscere la chiave.

  2. Cosa può fare l'amministratore. di un sistema su un file chiave?

    Purtroppo un sacco di cose! Un amministratore può riscrivere il file, inserirvi una nuova chiave, modificare le date (accesso, modifica e creazione) del file. L'unica cosa che un amministratore non può fare è leggere il contenuto di un file crittografato se il segreto non è nel sistema.

Ciò significa che se vuoi essere in grado di dimostrare che un utente è l'autore di un'azione, devi impostare una procedura che garantisca che non puoi conoscere la chiave privata, ma conosci la chiave pubblica (i certificati x509 possono sii una buona soluzione). Ma la chiave non dovrebbe mai esistere in forma decrittografata sulla tua macchina, perché tu come amministratore potresti ottenerla anche da una memoria di processo o tramite hook di chiamata di sistema.

Questo è il motivo per cui si dice spesso che un utente non dovrebbe usare una macchina di cui non si fida, e non può fidarsi di una macchina se non può fidarsi dell'amministratore. Detto diversamente, non troverai mai un modo puramente tecnico per dimostrare che un utente ha commesso un'azione se la chiave si trova in un disco su cui hai privilegi di amministratore. La soluzione qui è legale e non tecnica. L'unico modo tecnico richiede che la chiave sia installata solo sulla macchina dell'utente e non sulla tua.

A proposito, la via segreta è anche un vicolo cieco. L'utente potrebbe dire: sì, ho risposto a questa domanda, ma riguardava quell'altra azione ... Una volta che ti ha dato la risposta segreta, il segreto non è più suo ma è condiviso tra lui e te.

    
risposta data 30.05.2017 - 15:00
fonte
0

Non c'è una soluzione puramente tecnica a questo. Il non ripudio è una questione legale, quindi è necessaria una combinazione di misure tecniche e non tecniche per far rispettare il non ripudio.

La misura tecnica principale è usare la crittografia asimmetrica, come hai detto. Ma le misure tecniche non sono sufficienti per il non ripudio.

La misura non tecnica necessaria è la formazione degli utenti su come funziona la crittografia asimmetrica e come viene utilizzata nel sistema per ottenere il non ripudio e un contratto firmato dall'utente che hanno capito i materiali di formazione e qualsiasi uso improprio della loro chiave privata sarebbe loro la responsabilità Ciò che ti permette di fare è bloccare l'utente dall'ignoranza delle misure tecniche. Il contratto dovrebbe consentire all'utente di addebitare almeno l'utente per negligenza grave se ha usato la chiave in maniere che sarebbero state ovviamente vietate dal materiale di formazione o se hanno fatto trapelare la sua chiave privata, deliberatamente o meno, e avrebbero anche dovuto rendi più semplice la prova della tua malizia, dato che hai un record delle conoscenze dell'utente e puoi dimostrare più facilmente che molte azioni non potrebbero essere state eseguite senza intenzioni intenzionali.

    
risposta data 02.06.2017 - 07:45
fonte

Leggi altre domande sui tag