Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Require 2FA for all committers #42761

Closed
38 of 49 tasks
grahamc opened this issue Jun 29, 2018 · 45 comments
Closed
38 of 49 tasks

Require 2FA for all committers #42761

grahamc opened this issue Jun 29, 2018 · 45 comments
Labels
1.severity: security Issues which raise a security issue, or PRs that fix one 2.status: work-in-progress This PR isn't done

Comments

@grahamc
Copy link
Member

grahamc commented Jun 29, 2018

The Gentoo GitHub organization was hacked due to a password being leaked. We will be requiring 2FA on July 6. If your account does not have 2FA configured by that time, you will no longer have the ability to merge pull requests or push to the NixOS organization.

Once you have enabled 2FA please check the box next to your account.

If you miss the July 6 deadline, we can reinstate your access after you enable 2FA -- contact us.

Reference documentation:

Applications:

  • Google Authenticator
  • Authy
  • Duo Security
  • FreeOTP+ on F-Droid
  • pass-otp
  • gopass
Hardware

If you have a FIDO / U2F token, you can use it with GitHub:

  hardware.u2f.enable = true;

and either use Google Chrome, or firefox-devedition-bin (firefox stable doesn't yet support u2f totally.) If you use firefox, visit about:config, search for security.webauth.u2f, and toggle it to true for it to work.

Accounts to go

Completed

Accounts to remove

@grahamc
Copy link
Member Author

grahamc commented Jun 29, 2018

(Ping @vbgl @viric @vrthra who I couldn't ping in the issue description due to a 50 ping limit)

@grahamc grahamc added 2.status: work-in-progress This PR isn't done 1.severity: security Issues which raise a security issue, or PRs that fix one labels Jun 29, 2018
@viric
Copy link
Member

viric commented Jun 29, 2018

I'm using FreeOTP+ in F-Droid. Fine.

@7c6f434c
Copy link
Member

I chose One-TimePass from F-Droid. Also installed command-line oathToolkit.

Observation. Recovery codes that are recommended to save in password manager mean that the recommended setup is almost equivalent to random passwords in password manager, but probably also breaks phishing. So keeping it on the same device but not giving the browser UID access to the secret doesn't lose any security in realistic scenatios.

@armijnhemel
Copy link
Contributor

I am trying to check the box next to my name as requested, but I can't. Anyway, I set up 2FA for my account.

@7c6f434c
Copy link
Member

Well, it's not like GitHub has access to any technology that handles any merges, I guess it lost the lock race to my edit. I was indeed able to check your box.

@7c6f434c
Copy link
Member

Hm. And the commit tokens are better than passwords (also random data stored in password manager and allowing commit access to all repos) because git doesn't literally send password to server as plaintext, and that's all?

@7c6f434c
Copy link
Member

(speaking of new-user checklist and «contact us») and this use of first-person plural in «contact us» means that you are also now a person who can manage the member list?

@grahamc
Copy link
Member Author

grahamc commented Jun 29, 2018

I can't manage the member list, but I know a guy :)

re commit tokens, I recommend using (encrypted) SSH keys of course.

All new users will be required to have 2FA enabled and after July 6 GitHub won't let us add new users who don't have 2FA enabled.

@7c6f434c
Copy link
Member

SSH keys are not that different from tokens unless you consider algorithm attacks…

@AndersonTorres
Copy link
Member

2FA updated here, ok!

@oxij

This comment has been minimized.

@andrew-d
Copy link
Contributor

andrew-d commented Jul 3, 2018

How do I get commit access without having a smartphone now?

If you weren't aware, GitHub supports U2F - you can buy a fairly cheap one for about $9 on Amazon and use it without a smartphone. Firefox also supports U2F now, so you're not required to use Chrome.

Additionally, while I agree that requiring two-person sign-off is by far the better solution, using 2FA provides a non-negligible security benefit for the vast majority of committers who may reuse passwords, or that have malware that's not sophisticated enough to also exfiltrate 2FA seeds. It raises the bar to attack NixOS committers, so I personally am 👍 to the proposal.

@oxij

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@andrew-d

This comment has been minimized.

@samueldr
Copy link
Member

samueldr commented Jul 3, 2018

You might need a QR-code reader

It isn't necessary, as github can also provide the alternate text-based methods to seed the TOTP.

@7c6f434c

This comment has been minimized.

@oxij

This comment has been minimized.

@vcunat
Copy link
Member

vcunat commented Jul 3, 2018

The point is to have at least some second factor. Most phones surely aren't terribly hard to compromise as well, but two different factors are just harder than one. If you want even better security cheaply, I suppose you'd go for a U2F token. AFAIK the second factor is only used once a very long time on each device, so it should normally be not much extra hassle. It has worked well for me for a long time and on multiple providers (not just GitHub).

@7c6f434c

This comment has been minimized.

@orivej

This comment has been minimized.

@oxij

This comment has been minimized.

@aszlig

This comment has been minimized.

@orivej

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@aszlig

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@aszlig

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@oxij
Copy link
Member

oxij commented Jul 3, 2018 via email

@aszlig

This comment has been minimized.

@7c6f434c

This comment has been minimized.

@aszlig
Copy link
Member

aszlig commented Jul 4, 2018

@7c6f434c: Okay, then let me rephrase: You can disable HTTPS push access for your account by not generating a personal access token and enabling 2FA.

@grahamc
Copy link
Member Author

grahamc commented Jul 4, 2018

I've marked most of the previous conversation as "Off Topic" due to some FUD around requirements, and to reduce confusion on this important and high-traffic issue.

@oxij
Copy link
Member

oxij commented Jul 4, 2018 via email

@aszlig
Copy link
Member

aszlig commented Jul 4, 2018

I'm adding this for reference for others: Another alternative to pass-otp would be gopass, which can use the existing pass store tree format and has TOTP/HOTP-support.

@grahamc
Copy link
Member Author

grahamc commented Jul 4, 2018

@orivej I believe your alter-ego @orivej-nixos has been added now.

Reminder to the following accounts about the July 6 deadline:

@amiddelk, @antono, @aristidb, @astsmtl, @bjornfor, @bluescreen303, @c0bw3b, @civodul, @cstrahan, @edwtjo, @errge, @gridaphobe, @lethalman, @maggesi, @mornfall, @MP2E, @obadz, @Phreedom, @pikajude, @qknight, @roconnor, @rushmorem, @ttuegel, @vbgl

@grahamc
Copy link
Member Author

grahamc commented Jul 4, 2018

Note: I've added documentation on how to use a U2F hardware token for 2FA on NixOS: #42761

@7c6f434c
Copy link
Member

7c6f434c commented Jul 4, 2018

Maybe also add pass-otp to the list?

@grahamc
Copy link
Member Author

grahamc commented Jul 5, 2018

We're getting close to the cut-off, and we remain with the following people:

@amiddelk, @antono, @astsmtl, @bluescreen303, @c0bw3b, @civodul, @cstrahan, @edwtjo, @errge, @gridaphobe, @lethalman, @maggesi, @mornfall, @MP2E, @obadz, @Phreedom, @qknight

I've emailed everybody but @c0bw3b and @mornfall since I couldn't find email addresses for them.

Update: @edwtjo's email bounced.

Update: I've just now emailed @c0bw3b, after @Profpatsch pointed out I can find their email in the maintainers file.

@tadfisher
Copy link
Contributor

tadfisher commented Jul 6, 2018

U2F works in Firefox since commit 9595dc5, actually, thanks to @tadfisher.

That pass-otp tool by @tadfisher works pretty well too. I should buy him a beer.

@c0bw3b
Copy link
Contributor

c0bw3b commented Jul 6, 2018

@grahamc 2FA now enabled on my account.
I checked my nickname on your list above.

@grahamc
Copy link
Member Author

grahamc commented Jul 6, 2018

✔️ done! thank you, everyone!

@grahamc grahamc closed this as completed Jul 6, 2018
@cstrahan
Copy link
Contributor

cstrahan commented Jul 6, 2018

@grahamc I've enabled 2FA -- could I be re-added to the org, please?

@edolstra
Copy link
Member

edolstra commented Jul 6, 2018

@cstrahan Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.severity: security Issues which raise a security issue, or PRs that fix one 2.status: work-in-progress This PR isn't done
Projects
None yet
Development

No branches or pull requests