aboutsummaryrefslogtreecommitdiff
path: root/doc/handbook/chapters/user.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/handbook/chapters/user.texi')
-rw-r--r--doc/handbook/chapters/user.texi161
1 files changed, 160 insertions, 1 deletions
diff --git a/doc/handbook/chapters/user.texi b/doc/handbook/chapters/user.texi
index 5d5d2fe14..b5889891b 100644
--- a/doc/handbook/chapters/user.texi
+++ b/doc/handbook/chapters/user.texi
@@ -28,6 +28,7 @@ always welcome.
28* The GNU Name System:: 28* The GNU Name System::
29* reclaimID Identity Provider:: 29* reclaimID Identity Provider::
30* Using the Virtual Public Network:: 30* Using the Virtual Public Network::
31* Using the GNUnet Messenger::
31@end menu 32@end menu
32 33
33@node Start and stop GNUnet 34@node Start and stop GNUnet
@@ -253,7 +254,6 @@ and development.
253@subsection Creating a Business Card 254@subsection Creating a Business Card
254@c FIXME: Which parts of texlive are needed? Some systems offer a modular 255@c FIXME: Which parts of texlive are needed? Some systems offer a modular
255@c texlive (smaller size). 256@c texlive (smaller size).
256
257Before we can really use GNS, you should create a business card. 257Before we can really use GNS, you should create a business card.
258Note that this requires having @command{LaTeX} installed on your system. 258Note that this requires having @command{LaTeX} installed on your system.
259If you are using a Debian GNU/Linux based operating system, the 259If you are using a Debian GNU/Linux based operating system, the
@@ -261,6 +261,19 @@ following command should install the required components.
261Keep in mind that this @b{requires 3GB} of downloaded data and possibly 261Keep in mind that this @b{requires 3GB} of downloaded data and possibly
262@b{even more} when unpacked. On a GNU Guix based system texlive 2017 has 262@b{even more} when unpacked. On a GNU Guix based system texlive 2017 has
263returns a DAG size of 5032.4 MiB. 263returns a DAG size of 5032.4 MiB.
264The packages which are confirmed to be required are:
265
266@itemize @bullet
267@item texlive-units
268@item texlive-labels
269@item texlive-pst-barcode
270@item texlive-luatex85
271@item texlive-preview
272@item texlive-pdfcrop
273@item texlive-koma-script
274@end itemize
275
276
264@b{We welcome any help in identifying the required components of the 277@b{We welcome any help in identifying the required components of the
265TexLive Distribution. This way we could just state the required components 278TexLive Distribution. This way we could just state the required components
266without pulling in the full distribution of TexLive.} 279without pulling in the full distribution of TexLive.}
@@ -2323,3 +2336,149 @@ service offered by that peer, you can create an IP tunnel to
2323that peer by specifying the peer's identity, service name and 2336that peer by specifying the peer's identity, service name and
2324protocol (--tcp or --udp) and you will again receive an IP address 2337protocol (--tcp or --udp) and you will again receive an IP address
2325that will terminate at the respective peer's service. 2338that will terminate at the respective peer's service.
2339
2340@node Using the GNUnet Messenger
2341@section Using the GNUnet Messenger
2342
2343The GNUnet Messenger subsystem allows decentralized message-based
2344communication inside of so called rooms. Each room can be hosted by
2345a variable amount of peers. Every member of a room has the possibility
2346to host the room on its own peer. A peer allows any amount of members
2347to join a room. The amount of members in a room is not restricted.
2348
2349Messages in a room will be distributed between all peers hosting the
2350room or being internally (in context of the messenger service) connected
2351to a hosting peer. All received or sent messages will be stored on any
2352peer locally which is hosting the respective room or is internally
2353connected to such a hosting peer.
2354
2355The Messenger service is built on the CADET subsystem to make internal
2356connections between peers using a reliable and encrypted transmission.
2357Additionally the service uses a discrete padding to few different sizes.
2358So kinds of messages and potential content can't be identified by the
2359size of traffic from any attacker being unable to break the encryption
2360of the transmission layer.
2361
2362Another feature is additional end-to-end encryption for selected messages
2363which uses the public key of another member (the receiver) to encrypt
2364the message. Therefore it is ensured that only the selected member can
2365read its content. This will also use additional padding.
2366
2367@menu
2368* Current state::
2369* Entering a room::
2370* Opening a room::
2371* Messaging in a room::
2372* Private messaging::
2373@end menu
2374
2375@node Current state
2376@subsection Current state
2377
2378Currently there is only a simplistic CLI application available to use the
2379messenger service. You can use this application with the
2380@command{gnunet-messenger} command.
2381
2382This application was designed for testing purposes and it does not provide
2383full functionality in the current state. It is planned to replace this CLI
2384application in later stages with a fully featured one using a client-side
2385library designed for messenger applications.
2386
2387@node Entering a room
2388@subsection Entering a room
2389
2390You can enter any room by its ROOMKEY and any PEERIDENTITY of a hosting peer.
2391Optionally you can provide any IDENTITY which can represent a local ego by
2392its name.
2393
2394@example
2395$ gnunet-messenger [-e IDENTITY] -d PEERIDENTITY -r ROOMKEY
2396@end example
2397
2398A PEERIDENTITY gets entered in encoded form. You can get your own peer ID by
2399using the @command{gnunet-peerinfo} command:
2400
2401@example
2402$ gnunet-peerinfo -s
2403@end example
2404
2405A ROOMKEY gets entered in readable text form. The service will then hash the
2406entered ROOMKEY and use the result as shared secret for transmission through
2407the CADET submodule. You can also optionally leave out the '-r' paramter and
2408the ROOMKEY to use the zeroed hash instead.
2409
2410If no IDENTITY is provided you will not send any name to others, you will be
2411referred as "anonymous" instead and use the anonymous ego. If you provide any
2412IDENTITY a matching ego will be used to sign your messages. If there is no
2413matching ego you will use the anonymous ego instead. The provided IDENTITY will
2414be distributed as your name for the service in any case.
2415
2416@node Opening a room
2417@subsection Opening a room
2418
2419You can open any room in a similar way to entering it. You just have to leave
2420out the '-d' parameter and the PEERIDENTITY of the hosting peer.
2421
2422@example
2423$ gnunet-messenger [-e IDENTITY] -r ROOMKEY
2424@end example
2425
2426Providing ROOMKEY and IDENTITY is identical to entering a room. Opening a room
2427will also make your peer to a host of this room. So others can enter the room
2428through your peer if they have the required ROOMKEY and your peer ID.
2429
2430If you want to use the zeroed hash as shared secret key for the room you can
2431also leave it out as well:
2432
2433@example
2434$ gnunet-messenger
2435@end example
2436
2437@node Messaging in a room
2438@subsection Messaging in a room
2439
2440Once joined a room by entering it or opening it you can write text-based
2441messages which will be distributed between all internally conntected peers. All
2442sent messages will be displayed in the same way as received messages.
2443
2444This relates to the internal handling of sent and received messages being mostly
2445identical on application layer. Every handled message will be represented
2446visually depending on its kind, content and sender. A sender can usually be
2447identified by the encoded member ID or their name.
2448
2449@example
2450[17X37K] * 'anonymous' says: "hey"
2451@end example
2452
2453@node Private messaging
2454@subsection Private messaging
2455
2456As referred in the introduction the service allows sending private messages with
2457additional end-to-end encryption. These messages will be visually represented
2458by messages of the kind 'PRIVATE' in case they can't be decrypted with your used
2459ego. Members who can't decrypt the message can potentially only identify its
2460sender but they can't identify its receiver.
2461
2462@example
2463[17X37K] ~ message: PRIVATE
2464@end example
2465
2466If they can be decrypted they will appear as their secret message instead
2467but marked visually.
2468
2469@example
2470[17X37K] ** 'anonymous' says: "hey"
2471@end example
2472
2473Currently you can only activate sending such encrypted text messages instead of
2474usual text messages by adding the '-p' parameter:
2475
2476@example
2477$ gnunet-messenger [-e IDENTITY] -d PEERIDENTITY -r ROOMKEY -p
2478@end example
2479
2480Notice that you can only send such encrypted messages to members who use an ego
2481which is not publically known as the anonymous ego to ensure transparency. If
2482any user could decrypt these messages they would not be private. So as receiver
2483of such messages the IDENTITY is required and it has to match a local ego.
2484