Quale metodo di crittografia dovrei usare?

3

Sto cercando alcune informazioni sulla crittografia. Ecco cosa sto cercando di fare:

  • Ottieni informazioni esclusive dal nostro cliente (un ID o qualcosa di simile)
  • Genera e crittografa alcuni dati dalla nostra parte (utilizzando l'ID client)
  • Invia questi dati al cliente e consenti a un'applicazione di decodificare (e decrittografare solo) questi dati utilizzando l'ID inviato prima

Quali metodi dovrei guardare?

Cordiali saluti

Per chiarire:

  • Cifriamo alcuni dati utilizzando la nostra chiave privata e la chiave pubblica dei nostri clienti
  • Il client decodifica questi dati utilizzando la loro chiave pubblica
  • Il client non deve essere in grado di crittografare i dati validi utilizzando la loro chiave pubblica
posta SaphuA 13.04.2011 - 10:03
fonte

2 risposte

8

Vuoi un'infrastruttura di chiave pubblica-privata

Dalla tua domanda sembra che tu stia guardando un'infrastruttura a chiave pubblica-privata (PKI). L'ID che il tuo cliente invia è la sua chiave pubblica ed è completamente gratuito per la visualizzazione da parte di chiunque. I tuoi server crittografano i dati utilizzando una combinazione della tua chiave privata e della loro chiave pubblica. Questo carico utile crittografato viene quindi inviato al client. Quindi usano la loro combinazione di chiave pubblica e chiave privata per aprirla. Sanno che può venire solo da te perché la tua chiave privata l'ha firmato per dirlo e si fidano che solo tu abbia quella chiave privata.

Vuoi assicurarti che i tuoi clienti si occupino della loro chiave privata, ma questo è un problema per loro e per il loro sistema operativo.

Per una panoramica generale di come funziona PKI, Wikipedia ha un bell'articolo a riguardo . Per i dettagli esatti di un'implementazione, vedi OpenPGP in RFC 4880 .

Google Keyczar offre un approccio API semplice e intuitivo a PKI. È possibile generare facilmente chiavi pubbliche e private sicure sul lato server e aggiornarle se una persona anziana viene compromessa. Non gestiscono la distribuzione delle chiavi, ma ti danno un punto di partenza.

Aggiornato alla luce della domanda rivista

Se il client tenta di inviare i propri dati crittografati, può essere stato generato solo dalla propria chiave privata. Ciò fallirà il test della firma sui tuoi server poiché accetti solo dati crittografati creati dalla tua chiave privata.

    
risposta data 13.04.2011 - 10:09
fonte
2

To clarify:

  • We encrypt some data using our private key and our clients public key
  • The client decrypts this data using their public key
  • The client must not be able to encrypt valid data using their public key

È più simile a:

  • crittografate i dati utilizzando la chiave privata e la chiave pubblica del cliente
  • Il client decripta usando la tua chiave pubblica e la sua chiave privata
  • Il client non ha accesso alla tua chiave privata, quindi non può creare dati che potrebbero essere decrittografati con la tua chiave pubblica.
risposta data 13.04.2011 - 11:54
fonte

Leggi altre domande sui tag