Skip to content

Issues in SecureDrop Protocol Specification #121

@felixlinker

Description

@felixlinker

The latest iteration of the SecureDrop protocol specification has some issues.

  • Signatures do not include message tags.
  • The results of signature verification are left implicit. It will be clear to most readers that one should abort if signature verification fails, but this should be made explicit.
  • In Section 2, FPF signs the newsroom's key, but that signature is nowhere verified or referenced.
  • In Section 6, the sender includes their $pk^{PKE}_S$ in the plaintext, but journalists have no such key.

Issues in Section 5:

  • Signature verification is inconsistent with signature generation. The client verifies a signature by the journalist on three items: APKE key, PKE key, fetching key, but journalists never generate such a signature. Suggested fix: Include fetching key in the signature in Section 3.2.
  • It is unclear which $pk^{APKE}_{R,i}$ is sent to the client. I know it's the ephemeral key, but this is not explicit. Suggested fix: Instead of saying "Store ... for $J$", store them in some variable or say "Store ... as key bundle for $J$" and then later say "for all key bundles" (instead of "for all i").
  • Removing journalist keys and adding source keys as the last step doesn't type-check. First (this is a nit), we remove three-tuples from $pks$, but $pks$ contains four-tuples. Second, journalists have sets of ephemeral key bundles - not a single one. One could have the journalist remove all key bundles which include their key as the verification key.
  • The inclusion of $pk^{sig}_{NR}$ in "reply case" seems redundant. I think it should be removed there? I also don't underestand the case between "all senders" and "anyone" as this section will only be "executed" by senders anyways.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Ready to go

Relationships

None yet

Development

No branches or pull requests

Issue actions