Intégrité des éléments de preuve
- Hash canonique déterministe
- Contrôles de la liaison requête/réponse enregistrée
- Vérification hors ligne du bundle en mode fail-closed
AELITIUM / version v0.3.0 / Apache-2.0
Une bibliothèque Python open source et une CLI qui produisent des bundles d’éléments de preuve et contrôlent leur cohérence interne selon un schéma gouverné et un contrat de canonicalisation.
Même hash de requête. Hash de réponse différent. Un cas d’usage concret au sein d’un modèle d’évaluation plus large.
Cohérence principale
Optionnel / selon la politique
Combinaison d’états fournie à titre d’exemple. Les dimensions optionnelles et dépendantes de la politique varient selon les éléments présents dans le bundle et les paramètres explicitement fournis au vérificateur.
Version actuelle
v0.3.0 ajoute des contrôles d’évaluation distincts au-delà du flux de hash principal.
Modèle d’évaluation
Chaque dimension est rapportée séparément. Selon la dimension, les éléments présents et les paramètres fournis au vérificateur, un état peut être VALID, INVALID, ABSENT, UNESTABLISHED ou NOT_EVALUATED.
Évalués indépendamment lorsque leurs prérequis sont présents.
payload_integrity
contrôle du bundle
Cohérence du payload, du schéma, des octets canoniques, du manifeste et du hash du payload.
binding_field_consistency
si présent
Cohérence entre les champs enregistrés de hash de requête, de réponse et de liaison v1.
invocation_identity_consistency
si présent
Cohérence de la structure et du hash de l’identité d’invocation versionnée enregistrée.
invocation_binding_consistency
si présent
Cohérence du lien enregistré entre le hash d’identité d’invocation et le hash de réponse.
Ces contrôles dépendent d’éléments explicites ou de paramètres fournis au vérificateur.
signature_validity
si présent
Contrôle la validité de la signature Ed25519 lorsque le matériel de signature est présent. La dimension peut être ABSENT sauf si une signature est exigée.
trusted_signer_identity
paramètre externe
Correspondance exacte de l’empreinte de clé avec un trust store externe explicitement fourni. Sinon, l’état est UNESTABLISHED.
freshness
politique explicite
La récence de l’horodatage déclaré utilise un âge maximal et une heure de référence UTC explicites. Aucune horloge implicite n’est utilisée.
authorization
non évalué
Aucune décision d’autorisation n’est implémentée. Cette dimension reste toujours NOT_EVALUATED dans v0.3.0.
Où l’utiliser
Quatre workflows concrets pour les développeurs, disponibles dans v0.3.0.
REQUEST_HASH
SAME
RESPONSE_HASH
DIFFERENT
Comparer les éléments de preuve de deux exécutions et détecter lorsqu’un même hash de requête enregistrée est associé à des hash de réponse enregistrée différents. AELITIUM signale la différence sans en attribuer la cause.
aelitium verify-bundle
états d’évaluation
Contrôler hors ligne la cohérence interne d’un bundle d’éléments de preuve régi par le contrat avant de l’utiliser dans une revue, une investigation ou un workflow en aval.
aelitium scan
sites d’appel potentiels
Analyser le code source Python à la recherche de sites d’appel LLM potentiels qui peuvent ne pas utiliser un parcours de capture AELITIUM pris en charge.
aelitium scan ./src --ci
résultat CI
Exécuter le scanner AELITIUM dans la CI pour signaler les sites d’appel LLM Python potentiels sans instrumentation de capture prise en charge.
Cas concret
Deux bundles peuvent avoir le même hash de requête enregistrée et des hash de réponse enregistrée différents. La comparaison n’attribue aucune cause.
« Résumez en une phrase les principaux risques liés au déploiement de LLM en production. »
Les principaux risques comprennent les sorties non déterministes, les vulnérabilités d’injection de prompt, les faits hallucinés et l’absence d’éléments de preuve inspectables.
response_hash: 2f1563cc8c0b7b71…
« Résumez en une phrase les principaux risques liés au déploiement de LLM en production. »
Les principaux risques sont les hallucinations, les fuites de données, les injections de prompt adverses et les changements de comportement imprévisibles après des mises à jour silencieuses du modèle.
response_hash: c41d8e3b5f9a2201…
Les champs sélectionnés de la requête enregistrée ont le même hash de requête v1. Les hash de réponse enregistrée diffèrent. AELITIUM rapporte les champs comparés sans attribuer de cause.
Démo interactive
Modifiez l’une des réponses enregistrées. Cette démo dans le navigateur compare les valeurs SHA-256 du texte de réponse. Elle n’effectue pas de vérification de bundle.
Mécanisme
AELITIUM crée des bundles d’éléments de preuve pour les interactions LLM enregistrées et contrôle hors ligne l’intégrité du payload ainsi que la cohérence des liaisons et des données d’invocation enregistrées. Les résultats restent séparés pour les signatures optionnelles, la correspondance avec un trust store externe explicite et la récence de l’horodatage déclaré.
Enregistre des champs sélectionnés de la requête et de la réponse sur les parcours d’adaptateur pris en charge.
from aelitium import capture_openai
Calcule des valeurs request_hash et response_hash déterministes.
request_hash
response_hash
Relie les hash de la requête enregistrée et de la réponse enregistrée avec binding_hash.
request_hash + response_hash
→ binding_hash
Contrôle hors ligne la cohérence d’un bundle régi par le contrat et échoue en mode fail-closed si les éléments de preuve sont invalides.
aelitium verify-bundle ./evidence
binding_hash = SHA256(canonical({request_hash, response_hash}))
Limite explicite
La cohérence interne est délibérément distincte des affirmations sur l’exécution par le fournisseur ou l’absence de modification historique.
Commencer
Installez le package Python, capturez un parcours d’appel pris en charge et contrôlez hors ligne le bundle obtenu.