Sashkin - stock.adobe.com
Oracle 21c : la fonctionnalité Blockchain Table en détail
Au début du mois de décembre 2020, Oracle a annoncé la disponibilité de la version 2021 de sa « base de données convergée », Oracle 21c. Pensée comme un produit tout-terrain, l’éditeur veut l’agrémenter de fonctionnalités dites « innovantes », notamment Blockchain Table.
Durant une conférence de presse, les responsables d'Oracle ont fortement mis en avant les tables « blockchain » issues de l’ajout Blockchain Table. Cette fonctionnalité se faisait attendre depuis l’OpenWorld 2019. Selon l'éditeur, elles reposent sur les mêmes bases que des tables normales, à ceci près qu’il n’est pas possible de les modifier ou de les effacer.
En clair, les tables blockchain n’autorisent que les opérations C et R (Create et Read) de l’acronyme CRUD (Create, Read, Update, Delete). Oracle affirme que ces tables émanent d’opérations INSERT Only (on peut aussi signer, vérifier et sélectionner les données) et qu'elles sont « immuables ». Il n’est pas possible de modifier et d’effacer les données ou d’appliquer des restrictions temporaires.
Oracle assure que cette fonctionnalité dépend d’une autorité centralisée (ici la base de données Oracle).
Un mécanisme d’immutabilité des données pour les autorités financières
« Le contenu de la chaîne de blocs est défini et géré par l’application. Par rapport aux blockchains décentralisées, le modèle centralisé est utile dans les scénarios où un débit plus élevé et une latence plus faible des transactions sont préférés aux blockchains distribuées basées sur un consensus », peut-on lire dans la documentation du fournisseur.
Selon Mark Rakhmilevich, Senior Director, Blockchain Product Management chez Oracle, cela correspond parfaitement aux cas d’usage des banques, des assurances, des opérateurs financiers ou encore des gouvernements qui souhaitent empêcher la fraude. Ces autorités, elles aussi centralisées, auraient ainsi plus de facilité à sécuriser les logs de transactions financières, les pistes d’audit, les données relatives au respect de la réglementation, les registres financiers.
« Concernant le RGPD, certaines personnes pourraient vouloir être en mesure de réclamer l’effacement de leurs données de façon permanente. C’est quelque chose que vous pouvez faire avec les tables blockchain », ajoute Jenny Tsai-Smith, Vice-Présidente, Oracle Database Product Management chez Oracle. « Vous pouvez mettre en place une politique d’expiration des tables après un certain temps pour supprimer effectivement un enregistrement, ou même laisser tomber les tables, si aucune activité n’a eu lieu pendant une certaine période ».
Mais peut-on véritablement considérer cette fonctionnalité comme une blockchain à proprement parler ? Si l’on en croit les propos dans un article Medium publié en 2017 de Vitalik Buterin, cofondateur d’Ethereum, « les blockchains sont politiquement décentralisées (personne ne les contrôle) et architecturalement décentralisées (pas de point central de défaillance de l’infrastructure), mais elles sont logiquement centralisées (il y a un état communément admis et le système se comporte comme un ordinateur unique) ».
Une blockchain au sein d’une base de données ? Pas encore
Mark Rakhmilevitch reconnaît qu’Oracle Blockchain Table ne répond pas à ces critères. Le responsable détaille le mécanisme de chaînage. Il évoque un « processus spécial » au sein de colonnes cachées gérées par Oracle, un système similaire à un ledger. La méthode pour lutter contre l’altération ou la falsification des données est « dérivée d’une blockchain ».
Plus spécifiquement, « les lignes sont chaînées en stockant le hachage de la ligne précédente dans la ligne actuelle », décrit-il. La documentation fournisseur précise que seule la première ligne de la table ne fait pas partie de cette chaîne.
« Pour le parallélisme et une meilleure performance de l’insertion des lignes pour chaque table, nous maintenons 32 chaînes par instance RAC », écrit le responsable. Le hachage est réalisé à l’aide de l’algorithme SHA2-512 bits. « Le processus de hachage SHA2-512 s’effectue sur un array concaténé qui contient pour chaque position de colonne un en-tête de métadonnées et une valeur de colonne par octet et ajoute comme dernière entrée de l’array les métadonnées et la valeur de colonne par octet de la colonne de hachage cachée de la ligne précédente ». Une fonction PL/SQL permet de vérifier l’intégrité des données.
Oracle Blockchain Table, apparaît davantage comme un mécanisme supplémentaire afin de protéger des données opérationnelles ou transactionnelles sensibles. Le dispositif peut d’ailleurs être renforcé par le protocole de certificats X.509 pour signer le contenu des lignes après leur insertion et leur hachage. Ces certificats doivent être enregistrés au sein de la base de données.
« Cela permet une propriété de non-répudiation, qui protège contre les utilisateurs ou les administrateurs qui se font passer pour d’autres ou prétendent que quelqu’un d’autre s’est fait passer pour eux. Bien entendu, il est essentiel de maintenir la sécurité des clés privées utilisées avec la commande openssl pour que cela fonctionne, tout comme la capacité de révoquer et de réémettre des certificats si la clé privée de quelqu’un a été compromise », ajoute Mark Rakhmilevitch.
Afin d’éviter les manipulations au niveau de l’administrateur, il est possible de combiner le mécanisme des tables avec le chiffrement fourni par Database Vault. Une autre bonne pratique consiste à copier périodiquement les haschs dans « un dépôt en dehors de la base de données ».
La fonctionnalité Table Blockchain n’en reste pas moins un ajout potentiellement intéressant pour les clients d’Oracle. Il suffit de prendre l’ampleur des fuites de SGBD MySQL et MongoDB pour se rendre compte qu’une forme de protection supplémentaire n’est pas de inutile, surtout quand celle-ci est native à la base de données. En outre, Oracle 21c introduit plusieurs mises à jour et fonctionnalités de sécurité (gestion de mots de passe, du protocole Kerberos, des algorithmes de chiffrement de Database Vault, etc.).
Par ailleurs, Oracle « envisage de supporter des ledgers distribués pour étendre les capacités de Blockchain Table », indique Jenny Tsai-Smith.
Pour le moment, Oracle propose sa Blockchain Platform, une distribution PaaS du projet open source Hyperledger Fabric. Celle-ci supporte les capacités d’une blockchain décrites par Vitalik Buterin : transparence, immutabilité... et décentralisation.