al lavoro ho implementato la crittografia di buste di base quando invio messaggi a un client. Sto usando AWS KMS e ho una chiave master lì. Ricevo una chiave dati, crittografare il messaggio con AES-GCM e inviare il messaggio con la chiave dati crittografata, IV, tag, ecc. Il client chiama quindi AWS KMS per decrittografare la chiave dati per decodificare il messaggio. L'ho implementato guardando i documenti di AWS. Sto memorizzando la chiave dati per un po 'di tempo prima di riutilizzarla prima di crearne una nuova.
Un collega, che è meglio della crittografia di me, pensa che questo non sia sicuro a causa dell'invio della chiave con il messaggio, che questo potrebbe portare a capire la chiave principale? Raccomanda ECDH che ha una migliore distribuzione delle chiavi, utilizzando un segreto condiviso con chiavi private / pubbliche per generare la chiave AES. Il problema con questo credo è che ho bisogno di memorizzare una coppia di chiavi pubblica / privata da qualche parte, ed entrambi questi metodi hanno bisogno di accedere ad un segreto (chiave KMS o chiave privata).
Sto cercando altre opinioni su quanto siano sicuri questi diversi metodi. Quali sono le differenze nella vulnerabilità?
Modifica: Chiarimento: la chiave master è una chiave specifica creata solo per crittografare le chiavi dati per questi messaggi su un client specifico, nient'altro. Documenti di AWS che ho utilizzato: link