La dimostrazione di un'azione è stata eseguita in un momento esatto - a posteriori

2

Stavo pensando al modo in cui git consente di modificare il timestamp sui commit e come puoi riscrivere la cronologia (pubblica) in questo modo.

Poi mi sono spostato da quello a "possiamo dimostrare che qualcuno ha fatto un'azione a tempo X a posteriori?" per impedire queste riscritture.

E sorprendentemente, il mio cervello ha trovato poco o nessun modo per dimostrare che un'azione è stata intrapresa in tempo, senza alcun modo di procedere successivamente.

Suppongo che non possiamo solo chiedere la data / ora di accesso di un server fidato per la connessione come prova, e dobbiamo fare affidamento su una cripto-cosa per dimostrare "eravamo lì",

Ho pensato a un server fidato che inviava un hash / chiave in funzione del momento in cui è stato contattato, in modo da dover interrogare il server e "essere lì in tempo" per ottenere il codice. Ma questo è sciocco, dato che chiunque potrebbe registrare questi hash colpendo il server abbastanza spesso.

Ovviamente anche un calcolo basato sull'ora esatta verrà interrotto, il che mi lascia in perdita.

Le mie domande attuali ora:

  • Questo problema è davvero importante per alcuni? È abbastanza importante che qualcun altro lo risolva / prenda una coltellata?
  • Cosa mi sono perso? Qualche idea?
posta Jiby 28.09.2015 - 00:18
fonte

5 risposte

6

Timestamp attendibili

Puoi utilizzare un servizio timestamp attendibile . Ci sono aziende (come GlobalSign ) che forniranno quel servizio a pagamento.

But this is silly, as anyone could record these hashes by hitting the server often enough.

Sì. Ma solo se hai un piccolo spazio di ricerca. Ma nel caso di SHA256, dovresti dedicare 10 ^ 77 righe nel tuo database per memorizzare risultati. E questo è SENZA dati in quelle file. Tale numero è vicino al conteggio degli atomi stimati nell'universo di 10 ^ 80 . E questo è troppo alto.

E questo ti rende sicuro: l'enorme quantità schiacciante.

Nessuno avrà abbastanza tempo per presentare tutti gli hash. (E inoltre: nessuno avrà così tanti soldi per pagare le spese di elaborazione.) Nessuno avrà abbastanza hard disk per archiviare tutti i risultati.

Ulteriori letture

Wiki ha una buona spiegazione dell'idea generale.

  • Wikipedia: Timestamping attendibile, Sezione Creazione di un timestamp : (la linea rompe la mia )

    The technique is based on digital signatures and hash functions.

    First a hash is calculated from the data. A hash is a sort of digital fingerprint of the original data: a string of bits that is practically impossible to duplicate with any other set of data. If the original data is changed then this will result in a completely different hash.

    This hash is sent to the TSA.

    The TSA concatenates a timestamp to the hash and calculates the hash of this concatenation.

    This hash is in turn digitally signed with the private key of the TSA.

    This signed hash + the timestamp is sent back to the requester of the timestamp who stores these with the original data (see diagram).

risposta data 28.09.2015 - 08:44
fonte
4

Puoi inserire l'hash del tuo commit in blockcoin di Bitcoin, e dopo aver aggiunto alcuni blocchi sul blocco con il tuo hash, sarai in grado di convincere le persone che hai avuto quel commit prima che il blocco sia stato aggiunto al blocco blockchain.

    
risposta data 17.01.2016 - 14:25
fonte
1

Anche se non specificamente correlati al tuo caso d'uso, ma ci sono alcuni database distribuiti che usano il tempo per risolvere i conflitti (cerca su google per database spanner). Queste soluzioni utilizzano più timesource fisico collegato alla rete per garantire che il tempo esatto sia disponibile per ciascun server.

Un'altra opzione potrebbe essere l'uso di blockchain per garantire che la transazione che stai tentando di eseguire sia associata a un orario specifico e firmata per una successiva verifica.

    
risposta data 28.09.2015 - 08:23
fonte
1

Un altro modo per documentare qualcosa con un timestamp è tramite una firma DKIM su un'email. Al giorno d'oggi molti provider di posta elettronica (ad es. Gmail, Yahoo Mail, ecc.) DKIM firmano ogni messaggio inviato tramite il loro servizio. Sebbene lo scopo principale di una firma DKIM sia di garantire che un messaggio sia legittimo e non spam, una firma DKIM rende anche il firmatario come un notaio di ordinamento. Per documentare qualcosa con un timestamp, puoi inviare un messaggio a qualcun altro - o anche a te stesso - tramite un servizio di posta elettronica che DKIM firmerà il messaggio. Quindi, verificando la firma DKIM (che appare nelle intestazioni del messaggio sul lato ricevente) il destinatario (o te stesso o qualcun altro) può provare che hai inviato il contenuto di quel messaggio alla data e all'ora che appare nel messaggio intestazioni.

    
risposta data 28.09.2015 - 18:49
fonte
0

Sì, ha un sacco di applicabilità alle prove digitali (in particolare i file di registro).

Per provare un fatto dopo un momento specifico, allora è sufficiente combinare il fatto con alcune informazioni che sono emerse in quel momento - considera l'immagine di una vittima rapita che tiene in mano un giornale. In un senso digitale, è possibile farlo firmando i dati con una chiave appena rilasciata o, più in generale, eseguendo l'hashing con un feed di dati noto, modificabile e ricercabile.

Ma questo metodo non funziona per dimostrare che i dati esistevano prima di un momento specifico. L'unica soluzione che ho pensato in questo scenario è quella di registrare (almeno un riassunto dei) dati con una parte fidata. E se questa entità può affondare i dati, dovrebbe anche essere in grado di produrre un flusso di dati verificabile con timestamp che consenta di stabilire che le finestre ben definite siano collegate stabilmente ai dati.

Penso che ci sia una potenziale opportunità commerciale lì, ma un sacco di pensiero e organizzazione devono essere posti per stabilire la fiducia.

    
risposta data 28.09.2015 - 01:45
fonte

Leggi altre domande sui tag