X-Git-Url: http://git.meshlink.io/?p=meshlink;a=blobdiff_plain;f=README;h=390468b0e09eea4d10769f0feebd6712e3d30d4e;hp=65b6be331d214579495e4ed0b19703ff6984f45c;hb=963c5055505f2fc117cd5efa06eaa02c9b2bf85d;hpb=af565d00220b7536b9987c48e2a71459b45027b4 diff --git a/README b/README index 65b6be33..390468b0 100644 --- a/README +++ b/README @@ -1,60 +1,45 @@ -This is the README file for tinc version 1.0pre3. Installation instructions may +This is the README file for the MeshLink library. Installation instructions may be found in the INSTALL file. -tinc is Copyright (C) 1998,1999,2000 Ivo Timmermans , -Guus Sliepen and others. For a complete list of -authors see the AUTHORS file. +MeshLink is Copyright (C) 2014-2018 Guus Sliepen -This program is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free Software -Foundation; either version 2 of the License, or (at your option) any later -version. See the file COPYING for more details. +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. See the file COPYING for more details. +To obtain a license to use this library in commercial software, please contact +sales@meshlink.io. -Security statement ------------------- -In august 2000, we discovered the existence of a security hole in all versions -of tinc up to and including 1.0pre2. This had to do with the way we exchanged -keys. Since then, we have been working on a new authentication scheme to make -tinc as secure as possible. The current version uses the OpenSSL library and -does authentication in much the same way as the SSH protocol does. +This is not a finished version +------------------------------ + +Please do not use this library yet. -Cryptography is a hard thing to get right. We cannot make any guarantees. Time, -review and feedback are the only things that can prove the security of any -cryptographic product. If you wish to review tinc or give us feedback, you are -stronly encouraged to do so. Requirements ------------ -Since 1.0pre3, we use OpenSSL for all cryptographic functions. So you need to -install this library first; grab it from http://www.openssl.org/. We recommend -version 0.9.5 or better. If this library is not installed on you system, -configure will fail. The manual in doc/tinc.texi contains more detailed -information on how to install this library. +In order to compile MeshLink, you will need a GNU C compiler environment. + +The following libraries are used by default, but can be disabled if necessary: +- Catta (https://github.com/meshlink/catta) Features -------- -This version of tinc supports multiple virtual networks at once. To use this -feature, you may supply a netname via the -n or --net options. The standard -locations for the config files will then be /etc/tinc//. Because of this -feature, tinc will send packets directly to their destinations, instead of to -the uplink. If this behaviour is undesirable (for instance because of firewalls -or other restrictions), please use an older version of tinc (I would recommend -tinc-0.2.19). - -In order to force the kernel to accept received packets, the destination MAC -address will be set to FE:FD:00:00:00:00 upon reception. The MAC address of the -ethertap or tun/tap interface must also be set to this address. See the manual -for more detailed information. - -tincd regenerates its encryption key pairs. It does this on the first activity -after the keys have expired. This period is adjustable in the configuration -file, and the default time is 3600 seconds (one hour). - -This version supports multiple subnets at once. They are also sorted on subnet -mask size. This means that it is possible to have overlapping subnets on the -VPN, as long as their subnet mask sizes differ. +MeshLink is a library that allows applications to connect to other instances of +itself, and exchange messages in a secure way. MeshLink provides end-to-end +encryption and authentication of messages with perfect forward secrecy. The +MeshLink library starts its own thread which handles all network +communications. The application only needs to register callbacks to get +notified of incoming messages and other important events. + +Other noteworthy features are: + +- IPv6 support +- NAT traversal (requires at least one node that is not behind a NAT) +- Ed25519 keys (TBD) +- ChaCha-Poly1305 encryption and message authentication