Commit Graph
217447 Commits
Author SHA1 Message Date
Emily 62e34d1c87 nixos/acme: change default keyType to ec256
Previously, the NixOS ACME module defaulted to using P-384 for
TLS certificates. I believe that this is a mistake, and that we
should use P-256 instead, despite it being theoretically
cryptographically weaker.

The security margin of a 256-bit elliptic curve cipher is substantial;
beyond a certain level, more bits in the key serve more to slow things
down than add meaningful protection. It's much more likely that ECDSA
will be broken entirely, or some fatal flaw will be found in the NIST
curves that makes them all insecure, than that the security margin
will be reduced enough to put P-256 at risk but not P-384. It's also
inconsistent to target a curve with a 192-bit security margin when our
recommended nginx TLS configuration allows 128-bit AES. [This Stack
Exchange answer][pornin] by cryptographer Thomas Pornin conveys the
general attitude among experts:

> Use P-256 to minimize trouble. If you feel that your manhood is
> threatened by using a 256-bit curve where a 384-bit curve is
> available, then use P-384: it will increases your computational and
> network costs (a factor of about 3 for CPU, a few extra dozen bytes
> on the network) but this is likely to be negligible in practice (in a
> SSL-powered Web server, the heavy cost is in "Web", not "SSL").

[pornin]: https://security.stackexchange.com/a/78624

While the NIST curves have many flaws (see [SafeCurves][safecurves]),
P-256 and P-384 are no different in this respect; SafeCurves gives
them the same rating. The only NIST curve Bernstein [thinks better of,
P-521][bernstein] (see "Other standard primes"), isn't usable for Web
PKI (it's [not supported by BoringSSL by default][boringssl] and hence
[doesn't work in Chromium/Chrome][chromium], and Let's Encrypt [don't
support it either][letsencrypt]).

[safecurves]: https://safecurves.cr.yp.to/
[bernstein]: https://blog.cr.yp.to/20140323-ecdsa.html
[boringssl]: https://boringssl.googlesource.com/boringssl/+/e9fc3e547e557492316932b62881c3386973ceb2
[chromium]: https://bugs.chromium.org/p/chromium/issues/detail?id=478225
[letsencrypt]: https://letsencrypt.org/docs/integration-guide/#supported-key-algorithms

So there's no real benefit to using P-384; what's the cost? In the
Stack Exchange answer I linked, Pornin estimates a factor of 3×
CPU usage, which wouldn't be so bad; unfortunately, this is wildly
optimistic in practice, as P-256 is much more common and therefore
much better optimized. [This GitHub comment][openssl] measures the
performance differential for raw Diffie-Hellman operations with OpenSSL
1.1.1 at a whopping 14× (even P-521 fares better!); [Caddy disables
P-384 by default][caddy] due to Go's [lack of accelerated assembly
implementations][crypto/elliptic] for it, and the difference there seems
even more extreme: [this golang-nuts post][golang-nuts] measures the key
generation performance differential at 275×. It's unlikely to be the
bottleneck for anyone, but I still feel kind of bad for anyone having
lego generate hundreds of certificates and sign challenges with them
with performance like that...

[openssl]: https://github.com/mozilla/server-side-tls/issues/190#issuecomment-421831599
[caddy]: https://github.com/caddyserver/caddy/blob/2cab475ba516fa725d012f53ca417c3e039607de/modules/caddytls/values.go#L113-L124
[crypto/elliptic]: https://github.com/golang/go/tree/2910c5b4a01a573ebc97744890a07c1a3122c67a/src/crypto/elliptic
[golang-nuts]: https://groups.google.com/forum/#!topic/golang-nuts/nlnJkBMMyzk

In conclusion, there's no real reason to use P-384 in general: if you
don't care about Web PKI compatibility and want to use a nicer curve,
then Ed25519 or P-521 are better options; if you're a NIST-fearing
paranoiac, you should use good old RSA; but if you're a normal person
running a web server, then you're best served by just using P-256. Right
now, NixOS makes an arbitrary decision between two equally-mediocre
curves that just so happens to slow down ECDH key agreement for every
TLS connection by over an order of magnitude; this commit fixes that.

Unfortunately, it seems like existing P-384 certificates won't get
migrated automatically on renewal without manual intervention, but
that's a more general problem with the existing ACME module (see #81634;
I know @yegortimoshenko is working on this). To migrate your
certificates manually, run:

    $ sudo find /var/lib/acme/.lego/certificates -type f -delete
    $ sudo find /var/lib/acme -name '*.pem' -delete
    $ sudo systemctl restart 'acme-*.service' nginx.service

(No warranty. If it breaks, you get to keep both pieces. But it worked
for me.)
2020-03-22 05:27:20 +00:00
Dmitry Kalinkin ddf87fb1ba Merge pull request #82736 from LeshaInc/master
blender: add OpenImageDenoise support
2020-03-18 07:31:22 -04:00
Jörg Thalheim 201ac90018 Merge pull request #66578 from AtkinsChang/minikube
minikube: 1.2.0 -> 1.6.2
2020-03-18 11:28:24 +00:00
LeshaInc 3c54b996ca blender: build with OpenImageDenoise support 2020-03-18 12:58:12 +02:00
Jörg Thalheim 52ee55fe0f Merge pull request #82816 from Mic92/kubeval
kubeval: don't include huge schema to save space in hydra
2020-03-18 10:52:03 +00:00
Jörg Thalheim 705000267d Merge pull request #82836 from Mic92/bsld
blsd: marked as broken
2020-03-18 10:30:30 +00:00
Jörg Thalheim 97ac11f6a3 blsd: marked as broken
no longer compatible without libgit version.
Also seems unmaintained since 3 years.
2020-03-18 09:21:08 +00:00
Jörg Thalheim 9d144b84a3 kubeval: don't build against schema by default
kubeval-schema is a huge 7GB repository that we do not want
to build on hydra. Therefore make it optional.
2020-03-18 09:09:25 +00:00
Robert Hensing 5f357b20b3 Merge pull request #82751 from Infinisil/minor-module-improvements
Minor module improvements
2020-03-18 10:06:06 +01:00
Lancelot SIX 071d0cc0cb Merge pull request #82832 from r-ryantm/auto-update/libite
libite: 2.1.2 -> 2.2.0
2020-03-18 09:53:23 +01:00
R. RyanTM 7f31ed028d libite: 2.1.2 -> 2.2.0 2020-03-18 08:00:57 +00:00
Ben Darwin 8e44423a96 ocamlPackages.lacaml: 11.0.3 -> 11.0.6 2020-03-18 08:32:39 +01:00
David Anderson 1e593070cd tailscale: 0.96-33 -> 0.97-0.
Fixes a severe bug with subnet routing.

Signed-off-by: David Anderson <dave@natulte.net>
2020-03-18 06:08:20 +00:00
Martin Baillie 6e055c9f4a tailscale: init at 0.96-33
Signed-off-by: Martin Baillie <martin@baillie.email>
2020-03-18 05:07:47 +00:00
Mario Rodas 8a1a6cf39c Merge pull request #82803 from Tomahna/mopidy-iris
mopidy-iris: 3.45.1 -> 3.46.0
2020-03-17 22:40:16 -05:00
Silvan MosbergerandRobert Hensing e931de58a2 lib/modules: Fix type checks not being done before merging
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
2020-03-18 04:38:53 +01:00
Silvan Mosberger 15c873b486 lib/modules: Throw better error when definitions assign to an option set 2020-03-18 04:38:50 +01:00
Mario Rodas 8d985cb9ba Merge pull request #82811 from zowoq/conmon
conmon: 2.0.12 -> 2.0.13
2020-03-17 22:37:37 -05:00
Mario Rodas 3c03f8d029 Merge pull request #82812 from zowoq/fuse-overlayfs
fuse-overlayfs: 0.7.7 -> 0.7.8
2020-03-17 22:36:41 -05:00
Niklas Hambüchen 9d45737ae7 Merge pull request #82767 from thefloweringash/rpfilter-assertion-types
nixos/firewall: fix types in reverse path assertion
2020-03-18 04:11:01 +01:00
Niklas Hambüchen 4366606c1e Merge pull request #79356 from bbigras/mtail
mtail: 3.0.0-rc4 -> 3.0.0-rc34
2020-03-18 03:57:31 +01:00
Niklas Hambüchen 6232fbdec7 Merge pull request #67608 from alexarice/variant-ant-themes
Variant Ant themes: init at 1.3.0
2020-03-18 03:54:14 +01:00
Niklas Hambüchen 2fb0068b50 Merge pull request #81994 from bhipple/u/librustzcash
zcash: 2.1.0-1 -> 2.1.1-1; libzrustzcash: 2018-10-27 -> 0.1.0
2020-03-18 03:15:16 +01:00
Silvan Mosberger 05cf8a7c07 Merge pull request #82802 from roberth/lib-modules-test-config-options-laziness
lib/modules: Test the ability for config to depend on options for compatibility
2020-03-18 02:57:08 +01:00
Andrew Childs e110f5ecc1 nixos/firewall: fix types in reverse path assertion
Broken by 0f973e273c284a97a8dffeab7d9c0b09a88b7139 in #73533

The type of the checkReversePath option allows "strict" and "loose" as
well as boolean values.
2020-03-18 10:54:55 +09:00
Niklas Hambüchen 0908ec4952 Merge pull request #82665 from bhipple/doc/upower
doc: update 20.03 release notes regarding upower
2020-03-18 02:44:18 +01:00
Niklas Hambüchen dd4da93298 Merge pull request #82740 from piotr-szegda/keybase-5-3-0-update
keybase,kbfs,keybase-gui: 5.2.1 -> 5.3.0
2020-03-18 02:42:53 +01:00
Dennis Gosnell ac0da76a7c Merge pull request #82774 from B4dM4n/virtualbox-extpack-update
virtualboxExtpack: synchronize version with virtualbox
2020-03-18 09:15:45 +09:00
Vladislav Zavialov bfcb19197b toggldesktop: use mkDerivation from Qt (#81720) 2020-03-17 19:36:22 -04:00
Symphorien Gibol 4a672de9e6 python3Packages.matrix-nio: 0.8.0 -> 0.9.0 2020-03-17 15:54:33 -07:00
Maximilian Bosch e808d11c43 peep: init at 0.1.4 2020-03-17 23:25:51 +01:00
Timo Kaufmann c8a67fd37b Merge pull request #82810 from timokau/vim-pandoc-fix
vimPlugins.vim-pandoc: fix startup
2020-03-17 22:24:38 +00:00
Austin Seipp 2ef42e07fd mcy: 2020.02.05 -> 2020.03.16
Now with working web UI dashboard -- but no working GUI (yet!)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-03-17 17:19:40 -05:00
Austin Seipp 5cd4fd5bc5 symbiyosys: 2020.02.08 -> 2020.02.11
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-03-17 17:19:40 -05:00
Austin Seipp 9b43cf3a00 yosys: 2020.02.25 -> 2020.03.16
- Bump `abc-verifier` (2020.03.05)
  - Install `yosys-abc` symlink for tool compatbility
  - Various `yosys` expression cleanups

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2020-03-17 17:19:37 -05:00
zowoq 12bcd78652 fuse-overlayfs: 0.7.7 -> 0.7.8
https://github.com/containers/fuse-overlayfs/releases/tag/v0.7.8
2020-03-18 08:18:26 +10:00
zowoq cb099ca0d8 conmon: 2.0.12 -> 2.0.13
https://github.com/containers/conmon/releases/tag/v2.0.13
2020-03-18 08:15:24 +10:00
Maximilian Bosch e86ec10426 Merge pull request #80243 from bhipple/u/rust-cargo-rust-cbindgen
rust-cbindgen: upgrade cargo fetcher and cargoSha256
2020-03-17 23:08:28 +01:00
Timo Kaufmann 880f5a6125 vimPlugins.vim-pandoc: fix startup 2020-03-17 23:04:10 +01:00
Dmitry Kalinkin 0bd52ef94d Merge pull request #82712 from veprbl/pr/nuweb_fix
nuweb: 1.58 -> 1.60, fix build
2020-03-17 17:10:34 -04:00
Kevin Rauscher b779f1b55c mopidy-iris: 3.45.1 -> 3.46.0 2020-03-17 21:02:17 +01:00
Robert Hensing 31206e44e1 lib/modules: Test the ability for config to depend on options for compatibility 2020-03-17 20:21:10 +01:00
goibhniu 5241e5a193 Merge pull request #79851 from mmilata/supybot-enhancements
nixos/supybot: switch to python3, enable systemd sandboxing, add option for installing plugins
2020-03-17 19:07:41 +00:00
Michael Weiss b6a5079800 inxi: 3.0.37-1 -> 3.0.38-1 2020-03-17 19:45:19 +01:00
Alma Cemerlic 34fd0c0968 pythonPackages.IMAPClient: 0.13 -> 2.1.0 2020-03-17 11:44:34 -07:00
Christian Lütke-Stetzkamp 403a4b1ced http2tcp: init at 0.5 2020-03-17 11:44:17 -07:00
Christian Lütke-Stetzkamp 93919c66a8 pythonPackages.wsgitools: init at 0.3.1 2020-03-17 11:44:17 -07:00
Robert Helgesson 0bce142b1e jwt-cli: 2.5.2 -> 3.0.1 2020-03-17 19:43:53 +01:00
Silvan Mosberger dcdd232939 lib/modules: Remove internal _module attribute from config
The _module option is added as an internal option set, and it messes up
the results of module evaluations, requiring people to manually filter
_modules out.

If people depend on this, they can still use config._module from inside
the modules, exposing _module as an explicitly declared user option. Or
alternatively with the _module attribute now returned by evalModules.
2020-03-17 19:19:39 +01:00
Jonathan Ringer ee9362f880 pythonPackages.z3c-checkversions: disable python2 tests
the zope namespace will cause collisions for python2
2020-03-17 11:11:30 -07:00