2.6 KiB
2.6 KiB
Checkpoint Signature Verification
Module
Attestor
Status
IMPLEMENTED
Description
Checkpoint divergence detection and alert publishing for Rekor transparency log verification.
Implementation Details
- Checkpoint Signature Verifier:
src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/CheckpointSignatureVerifier.cs-- verifies cryptographic signatures on Rekor checkpoints against known public keys. - Checkpoint Divergence Detector:
StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.cs-- implementsICheckpointDivergenceDetector. Detects split-world attacks by comparing checkpoints from multiple Rekor instances. - Alert Publisher:
Rekor/CheckpointDivergenceAlertPublisher.cs-- publishes alerts when checkpoint divergence is detected. - Rekor Checkpoint Store:
IRekorCheckpointStore.cs-- interface for storing and retrieving checkpoints.StellaOps.Attestor.Storage/Rekor/PostgresRekorCheckpointStore.cs-- PostgreSQL implementation. - Rekor Backend:
Rekor/RekorBackend.cs-- backend configuration.IRekorBackendResolver.cs-- resolves backend instances.Infrastructure/Rekor/RekorBackendResolver.cs,ServiceMapAwareRekorBackendResolver.cs-- implementations. - Rekor Sync:
Rekor/RekorSyncBackgroundService.cs-- background service for checkpoint synchronization. - Time Skew Validation:
Verification/TimeSkewValidator.cs,InstrumentedTimeSkewValidator.cs-- validates time consistency between checkpoints. - Tests:
StellaOps.Attestor.Core.Tests/Verification/CheckpointSignatureVerifierTests.cs,StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs,CheckpointDivergenceByzantineTests.cs,__Tests/StellaOps.Attestor.Conformance.Tests/CheckpointParityTests.cs
E2E Test Plan
- Verify a checkpoint signature against a known Rekor public key via
CheckpointSignatureVerifierand confirm success - Verify a checkpoint with an invalid signature and confirm the verifier rejects it
- Feed two consistent checkpoints (same tree) to
CheckpointDivergenceDetectorand verify no divergence is detected - Feed two divergent checkpoints (different roots for same tree size) and verify divergence is detected and alert is published via
CheckpointDivergenceAlertPublisher - Store checkpoints via
PostgresRekorCheckpointStoreand retrieve them, verifying data integrity - Verify
TimeSkewValidatordetects unacceptable time skew between checkpoint timestamps - Run
RekorSyncBackgroundServiceand verify it periodically fetches and stores new checkpoints