Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

14-WAKU2-MESSAGE: Security issue related to unencrypted timestamp of WakuMessage #63

Open
jimstir opened this issue Jun 13, 2024 · 0 comments

Comments

@jimstir
Copy link
Collaborator

jimstir commented Jun 13, 2024

Reference issue: vacp2p/rfc#439
Author: staheri14

Problem

While currently, the timestamp is not part of the relay Message, it is always accessible in plaintext even when the WakuMessage is encrypted. This is because encryption only affects the payload of WakuMessage but not other fields like timestamp. As such, a relay node is able to extract the timestamp from a relayed WakuMessage. This timestamp visibility may cause security issues. For example, one can break message unlinkability by having access to the sender timestamp i.e., an attacker links messages published by the same author through the pattern of timestamps. A similar problem has been reported for Waku v1/ Whipser in this issue status-im/nim-eth#105.
@arnetheduck would be great if you could elaborate on the security issues you mentioned in https://github.com/status-im/nim-waku/pull/681/files#r677171720.

Context on the timestamp use case in Waku2

The timestamp is currently used in the store protocol to index waku messages and to enable paging for historical queries.

Acceptance Criteria

  • Investigate the use of timestamps and their visibility in other systems like the Status app, Waku v1, libp2p, etc.
  • Identifying security implications of exposing timestamp
  • Sketching out potential remedies

Potential solutions

  • Anonymizing timestamp by using a coarser resolution (use a representative value for each time interval): research directions are 1) generalization to achieve k-anonymity or 2) differential privacy to randomize timestamp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant