OneCRL support

Open
#229 1 comment 8 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
rust
Domain
security

Research direction

No files or tests are named. Start by reviewing the existing CRLite fetching, updating, and checking mechanisms, then consider the proposed API shape for OneCRL integration. Done means implementing fetching and updates, certificate checking, and an integration API.

Written by the indexing model from the issue text.

Description

OneCRL primarily covers a security critical revocation of intermediates certificates, especially the compromised ones. Mozilla uses Kinto for distribution.

The OneCRL bundle as of today

Size
Records 1,880
Uncompressed (JSON) 794.2 KiB
Compressed (Brotli) 107.7 KiB

* We can use the compression for transfer

Mozilla seems to be soft-deleting the revocation instead of deleting them using the Kinto mechanisms but if the size would become a concern we could always handle this on upki size by deleting the disabled records.

Analysis spanning the updates since 2024 (835 days)

Delta updates

Mozilla provides delta updates using Kinto.

# Date (UTC) Records Size (KiB)
1 2024-03-05 20:58 1 0.49
2 2024-03-11 20:06 5 1.90
3 2024-06-06 19:55 13 5.03
4 2024-09-25 16:01 21 8.12
5 2024-09-25 21:39 1 0.36
6 2024-09-26 20:09 7 2.81
7 2025-01-08 21:37 14 5.38
8 2025-05-21 00:15 15 5.76
9 2025-07-14 21:29 16 6.65
10 2025-08-11 20:06 1 0.40
11 2025-08-22 03:52 4 1.66
12 2025-08-25 21:14 11 4.34
13 2025-09-11 18:45 11 4.72
14 2025-09-26 22:15 10 3.76
15 2025-10-03 17:23 1 0.39
16 2025-12-10 17:13 16 6.93
17 2026-03-10 20:51 44 19.07
18 2026-03-26 19:45 6 2.32
19 2026-05-08 15:49 28 10.42
20 2026-06-11 22:15 37 15.01
21 2026-06-18 23:00 16 6.36
total 278 111.89

Statistics

Total of 21 delta updates

Metric Record count Size (KiB)
Mean 13.24 5.33
Median 11 4.72
Min 1 0.36
Max 44 19.07
Stdev 11.58 4.81

The estimate is 9 updates a year with the total size of 0.05 MB.

Final thoughts

I think this could be a great addition to upki, increasing security marginally, while the cost of initial download of the bundle is pretty small and the subsequent delta updates straight up negligible as they are really small and few(for now at least). Unless there are no objections for integrating this I will:

  • Implement the fetching/updating mechanism similar to CRLite.
  • Implement the checking mechanism.
  • Propose API for integrating this functionality(separate call/config option..?).
  • Implement the API
Dominant language
Rust
Stars
181
Forks
14
Avg merge
14h 16m
Merged PRs (30d)
21

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

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.

More from rustls/upki

All issues in rustls/upki

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.