- Expédié
- 19 août 2026 à 18:38 UTC
- Auteur
- Kamo
- Commite
- e64cc8b
Tous les éléments de la marque en production étaient illisibles. NOTES - MATÉRITER-ENCRYPTION-KEY était ne pas fixer nulle part - pas dans le déploiement, et la ConfigMap déployée n'a pas été transporté notes: bloc du tout - donc note.master-cryption-key résolu à vider et getUserEncryptionKey a généré une clé AES aléatoire dans le tas lors de la première utilisation. Que key a vécu exactement aussi longtemps que la gousse. Chaque déploiement, OOM ou noeud déménagent orphelins chaque note écrite avant elle: décryptage a été lancé, le contenu a été activé, et depuis un contenu NULLs content Pllain il n'y avait plus rien de lisible. Le note a conservé son titre et sa couleur et a perdu son corps. Une clé absente arrête maintenant le service en construction. L'invention est l'échec mode, pas une solution de secours: un service de billets qui ne sait pas lire les notes d'hier est pire que celui qui ne se produit pas, parce que le premier détruit les données discrètement. La clé elle-même vient du nouveau secret clé de chiffrement des notes, câblé à travers les deux la ConfigMap et le déploiement, et ne doivent pas être tournés sans re-chiffrement. Les clés par membre proviennent maintenant de HKDF-SHA256 plutôt que de XOR contre une répétition Caille "utilisateur-zid", qui était réversible - une clé de membre fuit plus une id connue ont récupéré la clé maîtresse et avec elle les notes de tous les autres membres. Les clés sont également à l'heure actuelle, en fonction de la manière dont les notes elles-mêmes sont étendues. Ni l'un ni l'autre le changement coûte une migration: aucun texte chiffré existant n'a été lisible au départ. decryptDTO cesse de signaler un échec en tant que note vide et définit déchiffrerFailed, Ainsi, un client peut refuser d'écrire sur ce qu'il ne pouvait pas lire.