Implement key retention for signing keys #22

Closed
opened 2020-10-28 17:07:11 +00:00 by timokoesters · 1 comment
timokoesters commented 2020-10-28 17:07:11 +00:00 (Migrated from gitlab.com)

Currently the server signing key is stored in sled.
As we now federated we need to make sure to keep this keys during database resets.
When a HS joins a federated room old events that were signed with a deleted keys fail validation.
Old keys need to be presented in old_verify_keys during key lookup.

This can be done multiple ways:

  • Write db reset cli tool that will extract the public key prior to deleting the db and insert it into an oldkey tree in a new empty database. Is this possible?
  • Add another datastore for the signing key to avoid resetting it (e.g. load the key from disk during server start, similar to dendrite and synapse)
  • more ideas?
Currently the server signing key is stored in sled. As we now federated we need to make sure to keep this keys during database resets. When a HS joins a federated room old events that were signed with a deleted keys fail validation. Old keys need to be presented in old_verify_keys during key lookup. This can be done multiple ways: * Write db reset cli tool that will extract the public key prior to deleting the db and insert it into an oldkey tree in a new empty database. Is this possible? * Add another datastore for the signing key to avoid resetting it (e.g. load the key from disk during server start, similar to dendrite and synapse) * more ideas?
timokoesters commented 2020-10-28 17:07:16 +00:00 (Migrated from gitlab.com)

Do we really need to remember the key? We recently switched to giving a different key ID after each reset, so new events validate correctly. For old events, servers can also query keys from other servers: https://matrix.org/docs/spec/server_server/r0.1.4#querying-keys-through-another-server

Do we really need to remember the key? We recently switched to giving a different key ID after each reset, so new events validate correctly. For old events, servers can also query keys from other servers: https://matrix.org/docs/spec/server_server/r0.1.4#querying-keys-through-another-server
Sign in to join this conversation.
No labels
Android
CS::needs customer feedback
CS::needs follow up
CS::needs on prem installation
CS::waiting
Chrome
Design:: Ready
Design:: in progress
Design::UX
E2EE
Edge
Firefox
GDPR
Iteration 13 IM
Linux
MacOS
Need::Discussion
Need::Steps to reproduce
Need::Upstream fix
Needs:: Planning
Needs::Dev-Team
Needs::More information
Needs::Priority
Needs::Product
Needs::Refinement
Needs::Severity
Priority::1-Critical
Priority::2-Max
Priority::3-Impending
Priority::4-High
Priority::5-Medium
Priority::6-Low
Priority::7-None
Progress::Backlog
Progress::Review
Progress::Started
Progress::Testing
Progress::Triage
Progress::Waiting
Reporter::Sentry
Safari
Target::Community
Target::Customer
Target::Internal
Target::PoC
Target::Security
Team:Customer-Success
Team:Design
Team:Infrastructure
Team:Instant-Messaging
Team:Product
Team:Workflows
Type::Bug
Type::Design
Type::Documentation
Type::Feature
Type::Improvement
Type::Support
Type::Tests
Windows
blocked
blocked-by-spec
cla-signed
conduit
contribution::advanced
contribution::easy
contribution::help needed
from::review
iOS
p::ti-tenant
performance
product::triage
proposal
refactor
release-blocker
s: dart_openapi_codegen
s::Famedly-Patient
s::Org-Directory
s::Passport-Generator
s::Requeuest
s:CRM
s:Famedly-App
s:Famedly-Web
s:Fhiroxide
s:Fhiroxide-cli
s:Fhiroxide-client
s:Fhirs
s:Hedwig
s:LISA
s:Matrix-Dart-SDK
s:Role-Manager
s:Synapse
s:User-Directory
s:WFS-Matrix
s:Workflow Engine
s:dtls
s:famedly-error
s:fcm-shared-isolate
s:matrix-api-lite
s:multiple-tab-detector
s:native-imaging
severity::1
severity::2
severity::3
severity::4
technical-debt
voip
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Matthias/conduit#22
No description provided.