summaryrefslogtreecommitdiff
path: root/usr.sbin/rpki-client/TODO.md
blob: f70857a3ee20b689ca71f7377833a1b639f8c839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

The following are unclear to me.

- Following up on validating AS numbers for certificates.  The
  specification is not clear on what happens with empty AS extensions in
  a chain of certificates.  Do we consider that inheritence?  If so,
  what's the point of having an inheritence clause?

- I get that ASid 0 has special meaning for ROAs (see RFC 6483 sec 4),
  but it doesn't make sense that some top-level certificates (e.g.,
  Afrinic) have a range inclusive of zero, since it's reserved.  In this
  system, I let the range through but don't let a specific ASid of 0 in
  certificates---only ROAs.

- VRP duplication.  When run as-is, there are duplicate VRPs and
  that doesn't seem right.  It happens when two ROAs have their validity
  period overlap.  I need to see if there's a more programmatic way to
  check before commiting the routes to output.

- (Not a particular helpful security measure, but...)  The validators
  should all be run in their own process: the syntax parser should not
  be performing the route validation.  This is a mechanical step, as all
  the logic to do so is in place.

- (**Important**.) Using `X509_STORE` and validating using
  `X509_verify_cert` is overkill and costs us the most in performance
  because it effectively re-validates the entire chain.  Instead, apply
  the immediate parent as the "trusted" certificate once it has been
  validated.

- (**Important**.) Stipulating `X509_V_FLAG_IGNORE_CRITICAL` might be
  dangerous.  Which extensions are being ignored should be
  double-checked.