Domanda:
Schemi / meccanismi che potrebbero fornire una decrittazione una tantum?
DaveIdito
2019-12-02 19:41:55 UTC
view on stackexchange narkive permalink

Conosco abbastanza bene la maggior parte dei comuni fondamenti di sicurezza undergrad / grad; ma non sono riuscito a trovare nulla relativo a questo scenario:

Uno schema / sistema in cui un pezzo di dati può essere "decrittografato" E letto solo una volta (potenzialmente in un programma per computer).

È anche possibile? Ho sentito che cose del genere esistono nel "mondo hardware" (?). Se la mia domanda è imprecisa / incompleta, sono disposto ad aggiornare. Ma allo stesso tempo sono interessato a un progetto / protocollo generico.

Metti l'utente su una scatola sigillata, schermata e chiusa, con sia il messaggio che la chiave.Non consentire mai all'utente di lasciare la scatola.Mai.Seppellisci la scatola nell'oceano.
@ThoriumBR Sicuramente, lanciare la scatola al sole sarebbe più sicuro?
Non hai mai visto Mission Impossible?* La tua missione, se scegli di accettarla ... *
Quale sistema di accesso prevedi per questo scenario?Più precisamente, si tratta di un'impostazione in cui l'utente ha accesso all'hardware o al sistema operativo su cui rimangono i dati crittografati?
@mars quel metodo ha fallito miseramente, qualcuno ha registrato la missione e milioni di persone in tutto il mondo sanno già qual era la missione.
Una volta I pad (cifratura) dovrebbero essere usati solo una volta, ma questo non è forzato
OTP è pensato per crittografare solo una volta.Se mantieni disponibili sia il pad che il testo cifrato, puoi decrittografarlo tutte le volte che vuoi.Oppure fai delle copie e chiunque abbia una copia può fare lo stesso.OP vuole decrittografare una sola volta.
Se l'utente * non se lo aspetta *, puoi semplicemente eliminare i dati dopo la decrittografia.Funzionerà una volta.La prossima volta lo copieranno prima.
La crittografia negabile può essere utilizzata per qualcosa di simile.Dopo la prima lettura, distribuire tutte le chiavi false con la chiave vera mescolata. Solo il lettore originale sa qual è il testo in chiaro corretto, ma non può provarlo a nessun altro nemmeno rivelando tutto ciò che sa.https://en.wikipedia.org/wiki/Deniable_encryption
Sulla falsariga di @usual, se dai a qualcuno una chiave simmetrica, possono decrittografare i tuoi dati, ma possono anche crittografare e decrittografare tutto ciò che vogliono, quindi non possono dimostrare a nessun altro che i dati provengono da * te * e non erano 't appena inventato da loro.
È possibile contrassegnare i dati (per ricevitore) in modo che chiunque li abbia persi possa essere rintracciato.Ovviamente questo non ha nulla a che fare con la crittografia.
Comunicazione quantistica ispirata https://qlink.it.Non è a livello di protocollo ma utilizzabile.Il server distrugge il messaggio dopo averlo letto.
Sei risposte:
Rory Alsop
2019-12-02 20:04:10 UTC
view on stackexchange narkive permalink

Non c'è modo di farlo: questo è un sottoinsieme di ciò che gli schemi DRM tentano di fare.

Se un utente finale può decifrare qualcosa una volta per vederlo, può vederlo di nuovo. Potrebbe essere possibile una qualsiasi delle seguenti azioni:

  • prima fai una copia e decifrala
  • copia lo schermo
  • modifica l'applicazione

L'unico modo in cui potresti avvicinarti sarebbe avere il controllo totale sull'hardware e il software, quindi potresti cancellarlo una volta mostrato, ma anche in questo caso qualcuno potrebbe usare una fotocamera per scattare foto dello schermo ecc.

Quindi, vorrei invece chiederti per cosa intendi utilizzare un tale schema, poiché ci sono modi per avere lo stesso effetto in molti scenari.

Ben risposto da Rory, come al solito.Le scappatoie a cui si fa riferimento in questa risposta sono spesso indicate come "buco analogico" (vedere https://en.wikipedia.org/wiki/Analog_hole), che è inevitabile nella maggior parte degli schemi DRM e di protezione dalla copia.
@mti2935 Il buco analogico è affrontato solo dal secondo degli scenari di esempio di Rory.Lo scenario "crea una copia in anticipo" è il più difficile da controllare perché generalmente è completamente al di fuori dell'influenza di qualsiasi tipo di schema di crittografia.
Anche se riesci in qualche modo a impedire tutte le forme di copia software / hardware (comprese le telecamere, ecc.), I dati continueranno a essere inseriti nel cervello dell'utente.Possono copiarlo da lì.
La solita procedura per i dati segreti per evitare che "qualcuno possa usare una fotocamera per scattare foto dello schermo ecc."è che l'hardware si trovi in una struttura sicura in cui chiunque entri viene cercato sia in entrata che in uscita per qualsiasi cosa che possa essere utilizzata per registrare o trasmettere dati, e il processo effettivo di accesso ai dati sensibili può essere supervisionato da guardie armate che proverannoe impedire la maggior parte dei metodi di manomissione dell'hardware.Inoltre non è sicuro al 100%, niente lo è, ma è abbastanza efficace e ci sono strutture del genere.
@Peteris e anche allora qualcuno con una buona memoria potrebbe semplicemente memorizzare tutto e scriverlo una volta fuori dalla struttura.
`ma anche in questo caso, qualcuno potrebbe usare una fotocamera per scattare foto dello schermo ecc` ==> [DIVERTIMENTO OBBLIGATORIO CON LE MAIUSCOLE ON] (https://thedailywtf.com/articles/copy-protected)
@usr-local-ΕΨΗΕΛΩΝ Sembra che avrebbero potuto evitare tutto ciò rendendo impossibile catturare tutto in una singola immagine.I CRT applicano questa tecnica da oltre due decenni.
@Peteris Poiché possono immagazzinarlo nel cervello, anche quelli devono essere rimossi all'uscita dalla struttura (-:
Tom
2019-12-03 06:01:36 UTC
view on stackexchange narkive permalink

Come hai già accennato, una cosa del genere è possibile solo nell'hardware. Un software o una soluzione di dati crittografati soffrirebbero sempre dell'opzione di fare una copia prima della decrittografia.

Nell'hardware, lo schema sarebbe quello di distruggere le informazioni sulla decrittografia. Un approccio ingenuo sarebbe semplicemente leggere un blocco in memoria, distruggerlo in memoria e quindi decrittografarlo.

Questo approccio, ovviamente, può cadere vittima di manomissioni: un utente malintenzionato potrebbe manipolare il sistema in modo che il la cancellazione fallisce, ma qualunque cosa stia facendo la decrittazione crede che sia riuscita e quindi procede con la decrittazione.

Un approccio più sofisticato sarebbe quello di sfruttare alcune proprietà fisiche in modo tale che anche la lettura delle informazioni le distrugga. Questo è, infatti, ciò che rende sicura la crittografia quantistica in gran parte teorica: non puoi origliare (ascoltare) senza distruggere le informazioni, rivelando così il fatto che qualcuno sta intercettando il messaggio.

Al di fuori del regno quantistico, potrebbero esserci soluzioni che utilizzano processi chimici o altri processi fisici, ma saranno anche soggette a manomissioni.

+1 per l'unica risposta che menziona il quantum.
+1 per prodotti chimici.Stavo pensando allo stript chimico che ossiderà e mostrerà il testo normale per un periodo di tempo limitato
@usr-local-ΕΨΗΕΛΩΝ C'era un programma di noleggio di DVD che faceva esattamente questo.I dischi diventerebbero scuri (resi illeggibili) dopo l'esposizione all'ossigeno.Hai avuto circa 48 ore per guardare il film
@slebetman Tuttavia, non è la stessa cosa della decrittografia una tantum.Potrei, in quelle 48 ore, scaricare il DVD su un file e guardarlo quanto voglio.Non che l'avessi mai fatto con i DVD a noleggio, anche se quando Redbox era una cosa e si poteva ottenere un DVD per pochi dollari.Ad ogni modo, il punto è che ho solo un tempo limitato con il supporto, senza alcuna protezione contro la copia.
Anche l'archiviazione quantistica potrebbe non essere sicura, in quanto è possibile sbirciare lo stato senza disturbarlo: https://www.livescience.com/schrodingers-cat-can-be-peeked-at.html
@DanielFrużyński che sta vendendo troppo la ricerca, credo.La frase chiave è * "e se quel cambiamento è reversibile" * - che nel gatto non lo è.Per l'archiviazione quantistica può essere o meno, a seconda della tecnologia utilizzata.
John Wu
2019-12-03 06:30:28 UTC
view on stackexchange narkive permalink

Se è disponibile una rete, è possibile scaricare la procedura di decrittografia (e la chiave privata) su un servizio in esecuzione su un server protetto. Potresti quindi applicare le regole che desideri sul server.

Il client invierà il testo opaco al servizio e gli chiederà di decrittografarlo e restituire il contenuto di testo normale, e il server potrebbe decidere se il client deve essere consentito in base alla cronologia della decrittografia, bloccando potenzialmente più di un'operazione di decrittografia.

Tuttavia non ci sarebbe nulla che impedisca al chiamante di utilizzare il risultato della decrittografia più e più volte, il che è più o meno lo stesso che decifrarlo più e più volte. Ci sono stati tentativi in ​​tal senso per musica e film (vedi percorso multimediale protetto), ma è una battaglia persa. Se non altro, un hacker potrebbe falsificare l'hardware del monitor e registrare il segnale in ingresso, o anche semplicemente puntare una videocamera HD verso il monitor e registrare il contenuto durante la riproduzione. Una tecnica di intercettazione simile potrebbe essere utilizzata per qualsiasi tipo di contenuto digitale. Quindi la linea di fondo è ... no, non è realmente possibile.

Un approccio più fattibile sarebbe inserire un numero di serie nel contenuto stesso e rintracciarlo in un server di autorizzazione, o in un data e ora di scadenza. Dovresti quindi applicarlo all'estremità ricevente, che dovrebbe essere un'applicazione sicura. Ecco come funziona una password monouso, ad esempio. Ma ciò richiede di possedere entrambe le estremità del percorso dati e che i dati stessi siano inutili al di fuori di esso.

Nota che durante la registrazione dello schermo è sempre possibile, ti lascerebbe una ** copia decrittografata **.Ciò soddisferà comunque la richiesta OP di una decrittografia una tantum poiché non si dispone di una copia crittografata.Ci sono alcuni casi d'uso in cui ciò è importante, ad es.quando si presenta la copia crittografata è un metodo di autenticazione.
@Tom Il requisito indica anche "AND leggere solo una volta".
Damon
2019-12-03 21:30:16 UTC
view on stackexchange narkive permalink

Non è in alcun modo pratico e fondamentalmente impossibile (in modo affidabile), ma può essere possibile in una certa misura.

L'ovvio ostacolo che rende Lo sforzo fondamentalmente impossibile è che qualunque cosa sia la decifri, una volta che l'hai letta, è dentro la tua testa. Quindi, per essere sicuri che il segreto rimanga segreto, dovrebbe esserci una sorta di meccanismo della pillola velenosa. Forse una capsula che contiene un motore di sintesi vocale e ti trasmette il messaggio attraverso la conduzione ossea, e poi esplode, soffiando via dalla tua testa.
Perché, sai, finché respiri, puoi semplicemente dirlo a qualcuno. Tuttavia, speriamo che non ripeta ad alta voce ciò che il TTS sussurra nella tua testa.

A parte questo, esistono sistemi di archiviazione dati che possono essere letti una sola volta. DRAM e RAM ferroelettrica come alternativa non volatile sono due esempi di ciò. Questi richiedono un built-in esplicito di scrittura dopo lettura o qualcosa di diverso (ad esempio il circuito del condensatore). Altrimenti, leggere le informazioni distrugge le informazioni. Lascia perdere e hai fatto un grande passo avanti.
Ora, almeno, si dovrebbero fare due copie (una su un archivio di lettura non distruttivo, e poi un altro per averne effettivamente una copia). Tuttavia, è abbastanza all'interno del regno del "fattibile", ma a seconda della compatibilità hardware potrebbe essere comunque un peso (non sono sicuro che puoi semplicemente collegare due tipi di archiviazione completamente diversi e incompatibili e copiare dati come in Star Trek, potrebbe beh, si rivela un po 'più difficile di così!). Ma non siamo alla fine.

La chiave di decrittazione, e anche parte di, o il completo eseguibile di decrittografia (supponendo che i cicli siano srotolati) potrebbero anche essere archiviati in un archivio di lettura distruttivo all'interno della decrittografia hardware. La chiave di decrittazione non deve mai lasciare il chip, quindi a parte i "dati", non devono esserci corsie per la trasmissione. Viene letto durante la decrittazione, dopodiché non c'è più. Quindi ... ecco fatto.

A meno che non si presuma che qualcuno possa praticare fori delle dimensioni di poche dozzine di nanometri nel chip e utilizzare nanofili per intercettare in qualche modo la memoria, non c'è modo di accedere ai dati. Non sto dicendo che sia impossibile, solo ... che è un po 'folle. Nessuna informazione è abbastanza preziosa per garantirlo. Inoltre, immagino che potrebbe essere una procedura piuttosto rischiosa poiché la fuoriuscita accidentale di una piccola carica o il passaggio di alcuni nanometri troppo a sinistra oa destra inevitabilmente distruggerà anche la chiave.

Poiché la chiave di decrittazione è di solito molto piccolo (32 byte o meno), potrebbe infatti essere memorizzato all'interno di un processore enclave sicuro o simile, come avviene abitualmente in molti dispositivi mobili oggigiorno. Quella memoria potrebbe anche avere letture distruttive (e nessun accesso esterno ai dati codificati, proprio come su ogni telefono moderno). Ma non è nemmeno necessario.
Potresti avere fusibili come in Knox di Samsung o SEP di Apple, che in linea di principio ti consentono di decrittografare i dati N volte (non solo esattamente una volta, ma esattamente N volte, fino a ti piace). Dopodiché, il processore semplicemente non aggiorna (o sovrascrive esplicitamente) la chiave. Oppure, molto meno sicuro (ma probabilmente ancora abbastanza buono), rifiuta di decrittografare.
Pertanto, fare una copia dei dati crittografati non servirà a molto perché non puoi decrittografare il copia.

Ovviamente, qualcuno può ancora copiare banalmente i dati decriptati , se ci sono mezzi per farlo. Di solito ci sono, sia digitali che analogici. Se non altro, puoi fare in modo che due o tre persone guardino lo schermo contemporaneamente o che scattino una foto.

Questo, tuttavia, è un problema che fondamentalmente non puoi risolvere (tranne che da un dispositivo che esplode o da un dispositivo che rilascia gas nervino).

mtraceur
2019-12-04 00:09:17 UTC
view on stackexchange narkive permalink

Da un punto di vista puramente teorico, è possibile solo se puoi assicurarti che dopo la prima decrittografia non ci siano copie esistenti di entrambi”

  1. il decrittografato dati e
  2. o i dati crittografati o le chiavi necessarie per decrittografarli.

In linea di principio , puoi farlo solo con la collaborazione (volontaria o coatta) delle parti che gestiscono queste informazioni che devono essere eliminate.

In pratica , questo può essere sufficiente a seconda di ciò che desideri ottenere e di quali componenti del sistema sei disposto a fidarti.

Ad esempio, se ti fidi di un tipico iPhone (non dovresti , in senso assoluto, ma come tutte le cose in materia di sicurezza, ci sono pochi assoluti, di solito c'è solo probabilità e quanto rischio sei disposto ad accettare), potresti scegliere di presumere che un'app per iPhone che hai scritto ei suoi dati non possano essere manomesso dal malware o dall'utente umano, perché questo è il genere di cose che Apple sembra cercare di garantire, quindi puoi eseguire la decrittazione e assicurarti di eliminare i dati nel codice dopo.

(Puoi sempre immaginare un dispositivo meticolosamente protetto e controllato che ti sei fatto se l'iPhone si sente troppo insicuro o inaffidabile per te.)

Questo non rimuove il "buco analogico" se mostri quei dati all'utente o altrimenti li diffondi in modo osservabile, ma ciò potrebbe essere accettabile per alcuni casi d'uso, ad esempio forse non lo stai mostrando all'utente, ma solo usando i dati decrittografati come parte di uno schema di sicurezza nei dettagli di implementazione che l'utente non ha bisogno di vedere direttamente.

Possiamo estendere questo esempio alla trasmissione dei dati: potresti inviare i dati crittografati attraverso un canale di dati, la chiave attraverso un altro e fintanto che ritieni che almeno uno di quei canali sia sicuro e per non conservare i dati passati attraverso di esso, o puoi fidarti che qualsiasi intermediario che può origliare su un canale non sarà mai in grado di passare informazioni a nessuno che può origliare sull'altro, quindi hai una buona garanzia che l'unico cosa che decifra mai è il codice del tuo client che collabora.

TL; DR : Se capisci perché in linea di principio non esiste una soluzione perfetta a questo problema, puoi identificare alcune situazioni dove puoi ottenerlo con probabilità abbastanza alte da essere a tuo agio nella pratica. Ma queste situazioni potrebbero non coincidere con ciò che speravi di fare.

Filips Jelisejevs
2019-12-11 14:35:36 UTC
view on stackexchange narkive permalink

Questa è una delle promesse della comunicazione quantistica: in teoria, poiché l'osservazione altera fondamentalmente gli stati quantistici, sarebbe possibile creare un protocollo di comunicazione "read once".

Ovviamente, rimangono ancora problemi pratici come "l'utente può ancora scattare una foto del proprio schermo con il telefono".



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...