Skip to content

Commit 5bc06d7

Browse files
infra: add policy covering mfa with hardware keys
1 parent 31e87a4 commit 5bc06d7

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Multi-factor authentication in the Rust Project
2+
3+
The Rust infrastructure team adopts multi-factor authentication to secure access to different
4+
systems, and in particular, it enforces stricter rules for services considered critical
5+
Rust infrastructure.
6+
7+
## Multi-factor authentication and assurance levels
8+
9+
The Rust infrastructure team uses NIST's [Authentication Assurance Levels] to
10+
score different MFA methods according to the security expectations they bring. Thus, we consider
11+
as secure and approved MFA methods (in this order of preference):
12+
13+
1. Hardware security keys compatible with FIDO2 / Webauthn (e.g. YubiKeys) as AAL-3
14+
2. Hardware enabled with Webauthn passkeys (e.g. Apple TouchId) as AAL-2
15+
3. TOTP apps (e.g. Google Authenticator) as AAL-2
16+
17+
## MFA and critical infrastructure access
18+
19+
As a rule of thumb, when different MFA methods are supported by a service considered critical
20+
infrastructure, Project members with *privileged* or *administrator* access **must** use the most
21+
secure MFA method that the service provider supports. That means using hardware security keys whenever
22+
possible, and if hardware keys are not an option, Passkeys or TOTP apps must be used otherwise.
23+
24+
Some of these services include:
25+
26+
- Google Workspace and GCP (`rust-lang.org`)
27+
- AWS (through AWS SSO sessions)
28+
- Azure
29+
- Github
30+
- Datadog
31+
- Fastly
32+
- Heroku
33+
- 1password
34+
35+
The Rust Infrastructure team officially supports [Yubico YubiKeys Series-5] as AAL-3 tested and
36+
approved devices. Project members may bring hardware keys from other vendors if they want, but
37+
the Rust infrastructure team won't be able to offer support regarding bugs or compatibility issues.
38+
39+
In addition to that, when multiple secure MFA methods and devices are supported by a service, Project
40+
members **should** configure at least one additional MFA method for redundancy purposes, as long as additional
41+
MFA devices or methods are in the same AAL. For example, when setting up MFA for a `heroku` account, one may
42+
configure additional YubiKey (AAL-3) for redundancy purposes, but **should not** configure `1password` as TOTP
43+
(AAL-2) with the same intent, since this _could_ potentially decrease security, especially if TOTP the
44+
backup is configured in a way that makes it reachable to attack vectors during admin operations
45+
46+
Project members holding several hardware security keys **must** uniquely identify the ones used to access
47+
Rust infrastructure, therefore guaranteeing non-ambiguity for the daily usage and revocation scenarios.
48+
49+
Finally, when a Project member with access to critical infrastructure loses access to a hardware device
50+
used for MFA (e.g. a laptop was stolen or a YubiKey was lost), this must be disclosed with the Rust
51+
Infrastructure team, and that device **must** be immediately revoked from all systems it was configured as
52+
an allowed MFA device/method.
53+
54+
## Yubico Hardware Key grants
55+
56+
As part of the [Yubico Secure it Forward Program], The Rust Foundation will provide YubiKeys to Rust
57+
Project members with critical infrastructure access. If you are eligible for such a grant and would
58+
like to get the recommended YubiKeys for free, get in touch with the [T-infra team in Zulip].
59+
60+
The members of the following teams are eligible for this grant:
61+
62+
- `infra`
63+
- `crates.io`
64+
- `docs.rs`
65+
- `release`
66+
- `triagebot`
67+
- `bors`
68+
69+
[Authentication Assurance Levels]: https://pages.nist.gov/800-63-3/sp800-63b.html#sec3
70+
[Yubico YubiKeys Series-5]: https://www.yubico.com/products/yubikey-5-overview
71+
[Yubico Secure it Forward Program]: https://www.yubico.com/why-yubico/secure-it-forward
72+
[T-infra team in Zulip]: https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra

0 commit comments

Comments
 (0)