freedomofpress / freedomofpress/securedrop-https-everywhere-ruleset

Implement transparency

Open
#269 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
11
Forks
4
Avg merge
8m
Merged PRs (30d)
7

Description

As we know, the use of the rulesets currently requires blind trust on our signing key. It also requires trust from the users that the same ruleset is being shipped to everybody at the same time. Even with our best intentions, if the key was compromised, properly scoped and targeted attacks would remain undetectable.

This ruleset is a natural target for transparency properties: we already archive all the past lists, and we already sign them when we ship them. The Sigsum's developers have suggested that for a long time, as Sigsum is currently the lightest transparency log that's available. It only required an ed2559 private key, and it does support pretty much all the security features we could need. Incidentally, we've also already written a Sigsum verifier (sigsum-ts) for WEBCAT anyway, and it has no runtime dependencies, it pretty minimal and uses the web crypto API as TBB also currently does.

The implementation is here: https://gitlab.torproject.org/tpo/applications/tor-browser/-/blob/tor-browser-152.0a1-16.0-2/browser/components/onionservices/OnionAliasStore.sys.mjs?ref_type=heads

Since we are schedule to rotate the key anyway, and this has been on the table for discussion for a while, it could be a good moment to see if TBB would be interested. We can probably provide the TBB implementation part as well pretty easily.

As a result, I believe we could also simplify our signing procedures quite a bit.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the referenced OnionAliasStore.sys.mjs implementation and the sigsum-ts verifier to understand the proposed transparency approach. Then determine how it would fit the archived and signed rulesets in this repository. Done means the ruleset distribution can provide transparency against targeted changes and the signing procedure is simplified.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.