ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/NEWS
(Generate patch)

Comparing gvpe/NEWS (file contents):
Revision 1.118 by root, Fri Jul 19 21:01:16 2013 UTC vs.
Revision 1.140 by root, Mon Jan 13 11:30:35 2020 UTC

1GVPE NEWS 1GVPE NEWS
2 2
3TODO: bridge mode, finally? 3TODO: updqate donna?
4TODO: gcm mode? 4TODO: clear one-time key/auth material from memory?
5TODO: replace ripemd160 as the only authentication hash. 5 - update embedded liblzf.
6TODO: increase rsa size. 6 - use liblzf with static hash table: lowers stack usage.
7TODO: replace transport bits by transport endpoint structs? 7 - do not initialise liblzf hash table for faster operation.
8TODO: ecdh to avoid session replay attacks 8 - use C++ variadic templates for callback.h, get rid of callback.pl.
9TODO: http://incog-izick.blogspot.de/2011/08/using-openssl-aes-gcm.html
10TODO: http://stackoverflow.com/questions/12153009/openssl-c-example-of-aes-gcm-using-evp-interfaces
11 9
12proposed: 3 types, req, resreq, res 103.1 Sat Oct 27 07:50:43 CEST 2018
11 - port to openssl 1.1 BUT SEE WARNING IN configure.ac. Do not use!
12 - tinc cruft removal: remove getopt.[ch], it's less portable to
13 have it then to not have it.
14 - tinc cruft removal: use pkg-config to detect libressl/openssl.
15 - minor cleanups.
13 16
14req (hmac1) rsa(seqno1 hmac1 aes1 seqno2 hmac2 aes2 auth) ecdh1 173.0 Thu Nov 10 15:39:58 CET 2016
15res (hmac1) hash(rsa-contents) ecdh2
16
17req hmac0(*) rsa(seqno hmac0 hmac aes auth) hkdf-salt ecdh1
18res hmac0(rsa-contents ecdh2)
19 hmac_key = hkdf(hkdf-salt, hmac | ecdh)
20 aes_key = hkdf(hkdf-salt, aes | ecdh)
21
22TODO: protocol magic fixen(!!!)
23TODO: "global"
24TODO: verify
25TODO: make sense of overhead calculation
26TODO: if-up &c should not be scripts?
27 - INCOMPATIBLE CHANGE: core protocol version 1.0. 18 - INCOMPATIBLE CHANGE: core protocol version 1.0.
28 - INCOMPATIBLE CHANGE: node sextions are now introduced 19 - INCOMPATIBLE CHANGE: node sections are now introduced
29 with "node nodename", not "node = nodename". 20 with "node nodename", not "node = nodename".
21 - INCOMPATIBLE CHANGE: gvpectrl -g will now generate a single
22 keypair, while -G will try to generate all keypairs as before.
23 - openssl 1.0.2 is the latest supported openssl release,
24 openssl 1.1.0 is not supported at the moment as the work to
25 make it compatible to both versions is just too much. a switch
26 to openssl 1.1 or another library will be done in a future release.
27 - update examples to not generate keys centrally, but locally on each
28 node.
29 - add workaround for temporary/rare ENOBUFS condition.
30 - while individual packets couldn't be replayed, a whole session 30 - while individual packets couldn't be replayed, a whole session
31 could be replayed - this has been fixed by an extra key exchange. 31 could be replayed - this has been fixed by an extra key exchange.
32 - fix a delete vs. delete [] mismatch in the central logging function.
32 - in addition to rsa key exchange and authentication, the handshake now 33 - in addition to rsa key exchange and authentication, the handshake now
33 adds a diffie-hellman key exchange (using curve25119) for perfect 34 adds a diffie-hellman key exchange (using curve25119) for perfect
34 forward secrecy. mac and cipher keys are derived using HKDF. 35 forward secrecy. mac and cipher keys are derived using HKDF.
35 - rsa key sizes are now configurable and larger (default is 3072). 36 - rsa key sizes are now configurable and larger (default is 3072).
36 correspondingly, the minimum mtu is no longer 296 but 576. 37 correspondingly, the minimum mtu is no longer 296 but 576.
37 - fixed a potential (unverified) buffer overrun on rsa decryption. 38 - fixed a potential (unverified) buffer overrun on rsa decryption.
39 - new per-node low-power setting that tries to reduce cpu/network usage.
40 - router reconnects could cause excessive rekeying on other connections.
38 - gvpectrl no longer generates all missing public keys, but 41 - gvpectrl no longer generates all missing public keys, but
39 only missing private keys. private keys are also put 42 only missing private keys. private keys are also put
40 into the configured location. 43 into the configured location.
41 - the pid-file now accepts %s as nodename as elsewhere. 44 - the pid-file now accepts %s as nodename as elsewhere.
45 - switch to counter mode (only aes supported at the moment in
46 openssl). this gets rid of the need to generate a random iv,
47 is likely more secure (and, as a side effect, gets rid of
48 slow randomness generation. counter mode is often faster
49 then cbc mode as well, and packets are smaller).
42 - no longer use RAND_bytes to generate session keys - you NEED 50 - no longer use RAND_bytes to generate session keys - you NEED
43 a real source of entropy now (e.g. egd or /dev/random - see the 51 a real source of entropy now (e.g. egd or /dev/random - see the
44 openssl documentation). 52 openssl documentation).
45 - multiple node statements for the same node are now supported 53 - multiple node statements for the same node are now supported
46 and will be merged. 54 and will be merged.
47 - a new directive "global" switches back to the global section 55 - a new directive "global" switches back to the global section
48 of the config file. 56 of the config file.
49 - 12 random prefix bytes are now properly supported, leading to
50 a fully random IV.
51 - use aes with a random key in counter-mode to generate IVs,
52 for speed reasons (generating 12 random bytes with openssl can
53 take longer than encrypting and mac'ing a 1.5kb packet, and IVs
54 do not need to be cryptographically strong random numbers
55 (and in fact, shouldn't be)).
56 - if-up scripts can now be specified with absolute paths. 57 - if-up scripts can now be specified with absolute paths.
57 - new global option: serial, to detect configuration mismatches. 58 - new global option: serial, to detect configuration mismatches.
58 - use HKDF as authentication proof, not HMAC or a plain hash 59 - use HKDF as authentication proof, not HMAC or a plain hash
59 (hint by Ilmari Karonen). 60 (hint by Ilmari Karonen).
61 - during rekeying or connection establishments, hmac authentication
62 errors could occur and reset the connection. Transient hmac
63 authentication errors are now being ignored for 3 seconds.
64 - log the reason for a conneciton loss.
65 - use a (hopefully) constant time memcmp to compare internal secrets.
66 - fix a (harmless) errornous out of bounds stack read that would trigger
67 gcc's -fsanitize=address.
68 - bump old packet window size from 512 to 65536.
69 - update for big changes in openssl 1.1 API, wrap primitives
70 to make further changes easier.
71 - correctly check return values for openssl 1.0.0 and later.
72 - check for both public and private key file when deciding whether
73 to skip generating a key to avoid accidental overwrites.
60 74
612.25 Sat Jul 13 06:42:33 CEST 2013 752.25 Sat Jul 13 06:42:33 CEST 2013
62 - INCOMPATIBLE CHANGE: no longer enable udp protocol if no other 76 - INCOMPATIBLE CHANGE: no longer enable udp protocol if no other
63 protocols are enabled - this is necessary when you have nodes with 77 protocols are enabled - this is necessary when you have nodes with
64 completely unknown protocols, to force mediated connection requests. 78 completely unknown protocols, to force mediated connection requests.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines