Devo fornire un servizio che funzioni come un blackbox di crittografia / decrittografia simmetrico:
- la casella ottiene una chiave segreta
k - utenti inviano dati
de ottengono testo cifratoc = Encrypt(d,k) - utenti inviano testo cifrato
ce ottieni datid = Decrypt(c,k) - la casella deve crittografare / decodificare solo da / a un gruppo autorizzato di utenti
- gli utenti non dovrebbero mai ottenere la chiave
k
Sto avendo un piccolo problema nell'individuare quali potrebbero essere buchi nel mio servizio. Per quanto ho capito, ho bisogno di crittografia che resista ai seguenti attacchi:
- Scelto l'attacco al testo cifrato
- Scelto attacco in chiaro
- Conoscenza dell'attacco del testo normale
Da un punto di vista tecnico, la crittografia / decrittografia viene eseguita usando AES, che si ritiene resista al suddetto attacco. Con un HMAC, dovrei poter rifiutare richieste provenienti da utenti non autorizzati.
È vero che;
- un utente non sarà in grado di trovare la chiave per il fatto che è in grado di crittografare / decodificare qualsiasi quantità di dati (poiché AES è strong)
-
user1può crittografare i dati,user2può ottenerli (rubare), e orauser2può decifrare i dati diuser1usando l'oracolo - dato che fornisco un oracolo, ho poche preoccupazioni sugli attacchi di sincronizzazione e sugli attacchi di riempimento
Quali sono i rischi, gli attacchi e le lacune che mi mancano in questo schema?