kms: record OS image version and dev flag on-chain in the next-gen contract
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- rust, solidity
- Bereich
- blockchain, security
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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?
- Vorherrschende Sprache
- Rust
- Sterne
- 551
- Forks
- 97
- Ø Merge
- 1 T. 8 Std.
- Gemergte PRs (30 T.)
- 182
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Dstack-TEE/dstack
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
Dstack-TEE/dstack#1301 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
Dstack-TEE/dstack#1300 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
Dstack-TEE/dstack#1299 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
Dstack-TEE/dstack#1298 ·
-
P0
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
Dstack-TEE/dstack#1297 ·
Alle Issues in Dstack-TEE/dstack
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
TheLarkInn/aipm#2413 ·
-
documentation
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
todo:ticket
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
taikoxyz/taiko-mono#22168 · 1 Kommentar ·