Verifica dei comandi a una via con 2 chiavi private

1

Sto cercando di capire se è teoricamente possibile inviare comandi one way verificabili al 100% con chiavi private.

L'idea è semplice: Master wraps verifica segreto - > all'interno di una crittografia a chiave pubblica / privata (solo chiave privata principale), prende quindi questa chiave pubblica e la crittografa di nuovo ma con un comando E utilizzando una chiave privata condivisa. soo ..

Master - > SECRET > Crittografato (mantieni privato, invia pubblico) > Aggiungi msg in alto > Cifra con una chiave pub / priv diversa, ma questa volta la chiave privata è condivisa da master e slave.

Sono sicuro di aver mescolato alcuni dettagli. Ma l'idea è semplice, utilizzando 2 chiavi pub / priv un msg può essere crittografato usando una chiave e verificato dalla seconda chiave che si trova nella versione non crittografata del msg originale.

Ciò che non riesco a capire è se la crittografia si indebolisce in questo modo, includendo una forma di sale non mutevole. E questo DEVE proteggere contro la falsificazione dell'identità, assumendo che le chiavi private rimangano al sicuro.

Questo può essere fatto? È questo Crazy Talk?

    
posta Absolute Truth 20.02.2017 - 22:51
fonte

1 risposta

1

Se posso riformulare la tua idea

Il mittente avrebbe:

  1. Crea un messaggio
  2. Crea un payload che include il messaggio, oltre a una firma digitale creata crittografando il messaggio (o un hash del messaggio, se è grande) con la chiave privata del mittente.
  3. Includi il carico utile più la chiave pubblica del mittente in una busta
  4. Cripta la busta con la chiave pubblica del destinatario

Per leggere il messaggio, il ricevitore deve:

  1. Decifra la busta usando la chiave privata del ricevitore
  2. Decifra la firma digitale utilizzando la chiave pubblica fornita
  3. Conferma il messaggio (o il suo hash) e la corrispondenza della firma

L'idea è che ottieni sia la privacy (perché il mittente ha crittografato il messaggio con la chiave pubblica del destinatario) sia l'integrità (perché il mittente ha firmato il messaggio con una firma che può essere creata solo utilizzando la chiave privata del mittente).

Penso che questo funzioni principalmente, con un piccolo problema. Il tuo sistema non ha alcuna nozione di fiducia . Come fa il ricevitore a sapere che la chiave pubblica appartiene al mittente? Un attore malintenzionato potrebbe creare un messaggio completamente diverso con una chiave asimmetrica diversa, giusto? Se non sai da dove viene il messaggio, tutte le nozioni di privacy o integrità sono completamente discutibili.

Normalmente, il modo in cui si verifica che una chiave pubblica appartiene a un'entità è di sfruttare l'infrastruttura PKI e controllare la catena di autorità. Ciò richiede la CA e tutto ciò che viene fornito con esso.

Un altro modo di affrontare questo problema (se non vuoi trattare con PKI) è con segreti condivisi . Dovresti generare una chiave segreta e fornirla al ricevitore fuori banda (ad esempio, spedire loro una chiavetta USB). In questo modo non devi giocare a tutti questi giochi, devi solo cifrare la cosa e assumere che nessun altro possa decrittografarla. Questo tipo di approccio è molto comune.

    
risposta data 21.02.2017 - 04:24
fonte

Leggi altre domande sui tag