kms: record OS image version and dev flag on-chain in the next-gen contract
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- rust, solidity
- Domaine
- blockchain, security
Piste de recherche
Start with the next-generation KMS contract around DstackKms, addOsImageHash, allowedOsImages, and isAppAllowed, then trace the verifier's attestation paths that consume os_image_hash. Resolve the compatibility and dev-image policy questions before implementing storage and events; done means on-chain metadata can be retrieved for each hash and unavailable platform fields can be filled from it.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
The verifier only reports os_image_is_dev / os_image_version on the TDX legacy path, the one path that downloads the image and reads metadata.json. TDX lite, SEV-SNP, GCP TDX, AWS NitroTPM and Nitro Enclave carry only the manifest digest, so both fields are null there (#1266). Right now relying parties can't tell a dev image from a prod image on those paths, and can't enforce a minimum version. The only thing they can do is keep their own os_image_hash allowlist.
DstackKms already whitelists OS images on-chain, but it stores just a bool for each hash (allowedOsImages), so the chain doesn't know what the hash is.
Proposal
In the next-generation KMS contract, store metadata for each OS image hash, for example:
struct OsImageInfo {
bool allowed;
bool isDev;
string version; // e.g. "0.5.10"
}
mapping(bytes32 => OsImageInfo) public osImages;
addOsImageHashtakesisDevandversion, and emits them in the event.- Every attestation path can look up version and dev status by
os_image_hashfrom the same source. This doesn't need image downloads ormetadata.json. - KMS / relying-party policy can reject dev images or enforce a minimum version from on-chain data.
- The verifier can fill in
os_image_is_dev/os_image_versionfrom the contract when the platform doesn't expose them.
The owner who allowlists a hash vouches for its metadata. This is the same trust we already give to the allowlist.
Open questions
- Keep
allowedOsImages(bytes32) -> boolas a view for compatibility with existing consumers? - Should dev images be allowed at all on production KMS instances, or should the contract reject
isDevimages directly inisAppAllowed?
- Langage dominant
- Rust
- Étoiles
- 551
- Forks
- 97
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 182
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Dstack-TEE/dstack
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
Dstack-TEE/dstack#1301 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
Dstack-TEE/dstack#1300 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
Dstack-TEE/dstack#1299 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
Dstack-TEE/dstack#1298 ·
-
P0
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Dstack-TEE/dstack#1297 ·
Toutes les issues de Dstack-TEE/dstack
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
nautechsystems/nautilus_trader#5095 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
stellar/rs-soroban-env#1739 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
bug good first issue package: quic
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100