2016-05-16 1 views
0

J'ai une base de données dans laquelle j'ai l'intention de stocker des blobs chiffrés par KMS. Certains champs ne sont pas chiffrés (et doivent être chiffrés) et certains champs ont déjà été chiffrés par KMS. Si l'on regarde les données brutes, toutes les données cryptées par KMS semblent similaires. Idéalement, le AWS KMS API ou AWS SDK devrait avoir quelque chose comme une «méthode isEncrypted(), mais il ne semble pas.Détecte si Blob est chiffré AWS KMS

est-il un bon moyen de détecter localement si mon champ est crypté ou non, à court d'attraper le InvalidCiphertextException de le decrypt API?

Répondre

2

Je pense que votre observation que le genre crypté de la même apparence est valide est valide parce que dans le corps, la première partie est en fait le nom de clé qui a été utilisé pour crypter.C'est ainsi que KMS sait comment décrypter sans que vous ne spécifiez la clé (donc quand vous cryptez, vous obtenez quelque chose qui est: description de la clé + trucs réellement cryptés)

Maintenant, les questions sont: voulez-vous vraiment compter sur cette observation pour vous assurer que quelque chose est crypté? Voulez-vous faire cela à l'exécution?

En ce qui concerne la méthode isEncrypted: en quoi cela diffère-t-il de l'appel décrypté? C'est toujours un appel de méthode.

La vraie réponse est: Vous ne devriez pas compter sur KMS pour crypter/décrypter des choses que vous stockez. Vous devriez compter sur KMS pour crypter/décrypter les clés que vous utilisez pour crypter/décrypter vos affaires (c'est-à-dire ce qu'on appelle le cryptage d'enveloppe). Si vous décryptez/cryptez directement via KMS, vous serez limité par le nombre d'appels que vous pouvez effectuer contre KMS et la taille maximale de ce que vous voulez crypter.

Si vous passez au cryptage d'enveloppe, il devrait être trivial d'essayer simplement de déchiffrer et de déterminer si le contenu est crypté ou non. Cela étant dit, je recommanderais d'être très strict sur ce qui est chiffré et de l'appliquer (c'est-à-dire ne pas deviner).

Depuis que nous sommes ici: regardez aussi le contexte de cryptage pour KMS

+0

Re: « Vous ne devez pas compter sur KMS pour crypter/décrypter des choses que vous stockez. » Pouvez-vous me dire (lien) plus? –

+0

sûr: http://docs.aws.amazon.com/kms/latest/developerguide/workflow.html – Mircea