diff options
Diffstat (limited to 'doc/handbook/chapters/user.texi')
-rw-r--r-- | doc/handbook/chapters/user.texi | 161 |
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 | |||
257 | Before we can really use GNS, you should create a business card. | 257 | Before we can really use GNS, you should create a business card. |
258 | Note that this requires having @command{LaTeX} installed on your system. | 258 | Note that this requires having @command{LaTeX} installed on your system. |
259 | If you are using a Debian GNU/Linux based operating system, the | 259 | If you are using a Debian GNU/Linux based operating system, the |
@@ -261,6 +261,19 @@ following command should install the required components. | |||
261 | Keep in mind that this @b{requires 3GB} of downloaded data and possibly | 261 | Keep 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 |
263 | returns a DAG size of 5032.4 MiB. | 263 | returns a DAG size of 5032.4 MiB. |
264 | The 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 |
265 | TexLive Distribution. This way we could just state the required components | 278 | TexLive Distribution. This way we could just state the required components |
266 | without pulling in the full distribution of TexLive.} | 279 | without pulling in the full distribution of TexLive.} |
@@ -2323,3 +2336,149 @@ service offered by that peer, you can create an IP tunnel to | |||
2323 | that peer by specifying the peer's identity, service name and | 2336 | that peer by specifying the peer's identity, service name and |
2324 | protocol (--tcp or --udp) and you will again receive an IP address | 2337 | protocol (--tcp or --udp) and you will again receive an IP address |
2325 | that will terminate at the respective peer's service. | 2338 | that will terminate at the respective peer's service. |
2339 | |||
2340 | @node Using the GNUnet Messenger | ||
2341 | @section Using the GNUnet Messenger | ||
2342 | |||
2343 | The GNUnet Messenger subsystem allows decentralized message-based | ||
2344 | communication inside of so called rooms. Each room can be hosted by | ||
2345 | a variable amount of peers. Every member of a room has the possibility | ||
2346 | to host the room on its own peer. A peer allows any amount of members | ||
2347 | to join a room. The amount of members in a room is not restricted. | ||
2348 | |||
2349 | Messages in a room will be distributed between all peers hosting the | ||
2350 | room or being internally (in context of the messenger service) connected | ||
2351 | to a hosting peer. All received or sent messages will be stored on any | ||
2352 | peer locally which is hosting the respective room or is internally | ||
2353 | connected to such a hosting peer. | ||
2354 | |||
2355 | The Messenger service is built on the CADET subsystem to make internal | ||
2356 | connections between peers using a reliable and encrypted transmission. | ||
2357 | Additionally the service uses a discrete padding to few different sizes. | ||
2358 | So kinds of messages and potential content can't be identified by the | ||
2359 | size of traffic from any attacker being unable to break the encryption | ||
2360 | of the transmission layer. | ||
2361 | |||
2362 | Another feature is additional end-to-end encryption for selected messages | ||
2363 | which uses the public key of another member (the receiver) to encrypt | ||
2364 | the message. Therefore it is ensured that only the selected member can | ||
2365 | read 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 | |||
2378 | Currently there is only a simplistic CLI application available to use the | ||
2379 | messenger service. You can use this application with the | ||
2380 | @command{gnunet-messenger} command. | ||
2381 | |||
2382 | This application was designed for testing purposes and it does not provide | ||
2383 | full functionality in the current state. It is planned to replace this CLI | ||
2384 | application in later stages with a fully featured one using a client-side | ||
2385 | library designed for messenger applications. | ||
2386 | |||
2387 | @node Entering a room | ||
2388 | @subsection Entering a room | ||
2389 | |||
2390 | You can enter any room by its ROOMKEY and any PEERIDENTITY of a hosting peer. | ||
2391 | Optionally you can provide any IDENTITY which can represent a local ego by | ||
2392 | its name. | ||
2393 | |||
2394 | @example | ||
2395 | $ gnunet-messenger [-e IDENTITY] -d PEERIDENTITY -r ROOMKEY | ||
2396 | @end example | ||
2397 | |||
2398 | A PEERIDENTITY gets entered in encoded form. You can get your own peer ID by | ||
2399 | using the @command{gnunet-peerinfo} command: | ||
2400 | |||
2401 | @example | ||
2402 | $ gnunet-peerinfo -s | ||
2403 | @end example | ||
2404 | |||
2405 | A ROOMKEY gets entered in readable text form. The service will then hash the | ||
2406 | entered ROOMKEY and use the result as shared secret for transmission through | ||
2407 | the CADET submodule. You can also optionally leave out the '-r' paramter and | ||
2408 | the ROOMKEY to use the zeroed hash instead. | ||
2409 | |||
2410 | If no IDENTITY is provided you will not send any name to others, you will be | ||
2411 | referred as "anonymous" instead and use the anonymous ego. If you provide any | ||
2412 | IDENTITY a matching ego will be used to sign your messages. If there is no | ||
2413 | matching ego you will use the anonymous ego instead. The provided IDENTITY will | ||
2414 | be distributed as your name for the service in any case. | ||
2415 | |||
2416 | @node Opening a room | ||
2417 | @subsection Opening a room | ||
2418 | |||
2419 | You can open any room in a similar way to entering it. You just have to leave | ||
2420 | out the '-d' parameter and the PEERIDENTITY of the hosting peer. | ||
2421 | |||
2422 | @example | ||
2423 | $ gnunet-messenger [-e IDENTITY] -r ROOMKEY | ||
2424 | @end example | ||
2425 | |||
2426 | Providing ROOMKEY and IDENTITY is identical to entering a room. Opening a room | ||
2427 | will also make your peer to a host of this room. So others can enter the room | ||
2428 | through your peer if they have the required ROOMKEY and your peer ID. | ||
2429 | |||
2430 | If you want to use the zeroed hash as shared secret key for the room you can | ||
2431 | also 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 | |||
2440 | Once joined a room by entering it or opening it you can write text-based | ||
2441 | messages which will be distributed between all internally conntected peers. All | ||
2442 | sent messages will be displayed in the same way as received messages. | ||
2443 | |||
2444 | This relates to the internal handling of sent and received messages being mostly | ||
2445 | identical on application layer. Every handled message will be represented | ||
2446 | visually depending on its kind, content and sender. A sender can usually be | ||
2447 | identified 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 | |||
2456 | As referred in the introduction the service allows sending private messages with | ||
2457 | additional end-to-end encryption. These messages will be visually represented | ||
2458 | by messages of the kind 'PRIVATE' in case they can't be decrypted with your used | ||
2459 | ego. Members who can't decrypt the message can potentially only identify its | ||
2460 | sender but they can't identify its receiver. | ||
2461 | |||
2462 | @example | ||
2463 | [17X37K] ~ message: PRIVATE | ||
2464 | @end example | ||
2465 | |||
2466 | If they can be decrypted they will appear as their secret message instead | ||
2467 | but marked visually. | ||
2468 | |||
2469 | @example | ||
2470 | [17X37K] ** 'anonymous' says: "hey" | ||
2471 | @end example | ||
2472 | |||
2473 | Currently you can only activate sending such encrypted text messages instead of | ||
2474 | usual text messages by adding the '-p' parameter: | ||
2475 | |||
2476 | @example | ||
2477 | $ gnunet-messenger [-e IDENTITY] -d PEERIDENTITY -r ROOMKEY -p | ||
2478 | @end example | ||
2479 | |||
2480 | Notice that you can only send such encrypted messages to members who use an ego | ||
2481 | which is not publically known as the anonymous ego to ensure transparency. If | ||
2482 | any user could decrypt these messages they would not be private. So as receiver | ||
2483 | of such messages the IDENTITY is required and it has to match a local ego. | ||
2484 | |||