kms: record OS image version and dev flag on-chain in the next-gen contract
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- rust, solidity
- Área
- blockchain, security
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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?
- Lenguaje dominante
- Rust
- Estrellas
- 551
- Forks
- 97
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 182
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Dstack-TEE/dstack
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
Dstack-TEE/dstack#1301 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
Dstack-TEE/dstack#1300 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Dstack-TEE/dstack#1299 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Dstack-TEE/dstack#1298 ·
-
P0
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Dstack-TEE/dstack#1297 ·
Todos los issues de Dstack-TEE/dstack
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
bug core
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
JIT-compiled number -> Decimal conversion silently overflows instead of raising DECIMAL_OVERFLOW Abiertofuzz
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
ClickHouse/ClickHouse#122114 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
linebender/vello_svg#90 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100