gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

commit 37d9532586e39687e7aad011b79f27a3a015db94
parent 64d1ba7a89b479f77ac83073e0f3f834a6fec63c
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Mon,  8 Jun 2026 12:18:44 +0200

add threatmodel and goals

Diffstat:
Mabout.rst | 76+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Musers/subsystems.rst | 2++
2 files changed, 71 insertions(+), 7 deletions(-)

diff --git a/about.rst b/about.rst @@ -160,18 +160,58 @@ compromise the anonymity of any other user. Key Concepts ============ -In this section, the fundamental concepts of GNUnet are explained. Most -of them are also described in our research papers. First, some of the -concepts used in the GNUnet framework are detailed. The second part -describes concepts specific to anonymous file-sharing. +GNUnet is an alternative network stack for building secure, decentralized and privacy-preserving distributed applications. Our goal is to replace the old insecure Internet protocol stack. Starting from an application for secure publication of files, it has grown to include all kinds of basic protocol components and applications towards the creation of a GNU internet. -Cryptography +Today, the actual use and thus the social requirements for a global network differs widely from those goals of 1970. While the Internet remains suitable for military use, where the network equipment is operated by a command hierarchy and when necessary isolated from the rest of the world, the situation is less tenable for civil society. + +Due to fundamental Internet design choices, Internet traffic can be misdirected, intercepted, censored and manipulated by hostile routers on the network. And indeed, the modern Internet has evolved exactly to the point where, as Matthew Green put it, "the network is hostile". + +We believe liberal societies need a network architecture that uses the anti-authoritarian decentralized peer-to-peer paradigm and privacy-preserving cryptographic protocols. The goal of the GNUnet project is to provide a Free Software realization of this ideal. + +Specifically, GNUnet tries to follow the following design principles, in order of importance: + + 1. GNUnet must be implemented as Free Software. + 2. GNUnet must minimize the amount of personally identifiable information exposed. + 3. GNUnet must be fully distributed and resilient to external attacks and rogue participants. + 4. GNUnet must be self-organizing and not depend on administrators or centralized infrastructure. + 5. GNUnet must inform the user which other participants have to be trusted when establishing private communications. + 6. GNUnet must be open and permit new peers to join. + 7. GNUnet must support a diverse range of applications and devices. + 8. GNUnet must use compartmentalization to protect sensitive information. + 9. The GNUnet architecture must be resource efficient. + 10. GNUnet must provide incentives for peers to contribute more resources than they consume. + +Architecture ------------ -Adversaries (malicious, bad actors) outside of GNUnet are not supposed +GNUnet consists of a set of services. +In order to realize a peer-to-peer network stack, a subset of GNUnet subsystems +emulate what can be found in the ISO/OSI layer of the Internet. +(TODO insert image here) + +Security goals and threat model +------------------------- + +GNUnet is designed as to subsist in the face of a strong adversaries (malicous, bad actors). +This includes, in decending strength, malicous + + 1. nation states, + 2. network operators, + 3. peer operators, + 4. and GNUnet users. + +External, network-level adversaries may attempt to identify GNUnet traffic +and throttle or otherwise impair its use. +To prevent easy identification, GNUnet communication is cryptographically and +steganographically obfuscated. +For example, GNUnet traffic can be made to look like QUIC or HTTP/3 traffic or +even look like random noise on the network. +Further, through the use of multiple communication protocols at the same time +(e.g. QUIC and Ad-hoc WiFi), loss of a single communication method does not cause complete communication breakdown. +Adversaries outside of GNUnet are not supposed to know what kind of actions a peer is involved in. Only the specific neighbor of a peer that is the corresponding sender or recipient of a -message may know its contents, and even then application protocols may +message may know its contents, and then application protocols may place further restrictions on that knowledge. In order to ensure confidentiality, GNUnet uses link encryption, that is each message exchanged between two peers is encrypted using a pair of keys only known @@ -184,6 +224,28 @@ sections: `Anonymity <about.md#anonymity>`__, see `How file-sharing achieves Anonymity <about.md#how-file-sharing-achieves-anonymity>`__, and see `Deniability <about.md#deniability>`__. +GNUnet attemtps to satisfy the following security goals in the face of those adversaries: + + 1. Censorship resistance + 2. Confidential communication + 3. Anonymity (where possible) + +Each :ref:`subsystem <subsystems>` of GNUnet incorporates its own security mechanism taking the existing baseline of the GNUnet network as well as the adversary model into account. + +Cryptography +------------ + +Cryptographic Inventory +~~~~~~~~~~~~~~~~~~~~~~~ + +GNUnet makes heavy use of standard, well-tested cryptographic primitives to +implement its protocols. +The primary symmetric encryption primitive in use is ChaCha20-Poly1305. +The primary asymmetric primitives in use are EdDSA and X25519. + +Currently, no clear path to post-quantum primitives has been laid out. +This is mostly due to open research questions in the areas of key blinding and blind signatures. + Peer Identities ~~~~~~~~~~~~~~~ diff --git a/users/subsystems.rst b/users/subsystems.rst @@ -1,3 +1,5 @@ +.. _subsystems: + Subsystems **********