diff --git a/content/en/pages/book-toc.html b/content/en/pages/book-toc.html index f4b240931..72d31fa64 100644 --- a/content/en/pages/book-toc.html +++ b/content/en/pages/book-toc.html @@ -6,12 +6,11 @@ type: "pages" --- - - Katzenpost administrator's guide

Katzenpost administrator's guide


Table of Contents

Introduction
1. Components and configuration of the Katzenpost mixnet
Understanding the Katzenpost components
Directory authorities (dirauths)
Mix nodes
Gateway nodes
Service nodes
Clients
Configuring Katzenpost
Configuring directory authorities
Configuring mix nodes
Configuring gateway nodes
Configuring service nodes
2. Using the Katzenpost Docker test network
Requirements
Preparing to run the container image
Operating the test mixnet
Starting and monitoring the mixnet
Testing the mixnet
Shutting down the mixnet
Uninstalling and cleaning up
Network topology and components
The Docker file tree
3. Appendix: Configuration files from the Docker test mixnet
Directory authority
Mix node
Gateway node
Service node
4. Appendix: Using gensphinx

List of Figures

1.1. The pictured element types correspond to discrete client and server programs that - Katzenpost requires to function.
2.1. Test network topology

List of Tables

1.1. Katzenpost clients
1.2. Directory authority (dirauth) configuration - sections
1.3. Mix node configuration sections
1.4. Gateway node configuration sections
1.5. Mix node configuration sections
2.1. Table 1: Makefile targets
2.2. Table 2: Test mixnet hosts
+ Katzenpost administrator's guide

Katzenpost administrator's guide


Introduction

@@ -43,7 +42,7 @@

Figure 1.1. The pictured element types correspond to discrete client and server programs that Katzenpost requires to function.

-
The pictured element types correspond to discrete client and server programs that Katzenpost requires to function.
+
The pictured element types correspond to discrete client and server programs that Katzenpost requires to function.

The mix network contains an n-layer topology of mix-nodes, with three nodes per layer in this example. Sphinx packets traverse the network in one @@ -422,7 +421,7 @@ Level = "INFO"

  • Disable

    -

    If true>, logging is disabled.

    +

    If true, logging is disabled.

    Type: bool

    Required: No

  • @@ -570,7 +569,7 @@

    Required: Yes

  • GenerateOnly

    -

    If true>, the server halts and cleans +

    If true, the server halts and cleans up the data directory immediately after long-term key generation.

    Type: bool

    Required: No

    @@ -939,10 +938,8 @@ similarly sign PKI documents using the same scheme.

    The following signature schemes are supported:

    • -

      Classical: "ed25519", - "ed448"

      -
    -
    • +

      Classical: "ed25519", "ed448"

      +
    • Hybrid post-quantum: "Ed25519 Sphincs+", "Ed448-Sphincs+", "Ed25519-Dilithium2", "Ed448-Dilithium3"

      @@ -981,13 +978,13 @@

      Required: Yes

    • IsGatewayNode

      -

      If true>, the server is a gateway +

      If true, the server is a gateway node.

      Type: bool

      Required: No

    • IsServiceNode

      -

      If true>, the server is a service +

      If true, the server is a service node.

      Type: bool

      Required: No

      @@ -1000,7 +997,7 @@ -
      +

      The Logging configuration section controls logging behavior across Katzenpost.

      @@ -1010,7 +1007,7 @@ Level = "INFO"
      • Disable

        -

        If true>, logging is disabled.

        +

        If true, logging is disabled.

        Type: bool

        Required: No

      • @@ -1038,7 +1035,7 @@ -
        +

        The PKI section contains the directory authority configuration for a mix, gateway, or service node.

        @@ -1156,7 +1153,7 @@ -
        +

        The Management section specifies @@ -1167,7 +1164,7 @@ Path = "/dirauth_mixnet/mix1/management_sock"

        • Enable

          -

          If true>, the management interface is +

          If true, the management interface is enabled.

          Type: bool

          Required: No

          @@ -1185,7 +1182,7 @@ -
          +

          The SphinxGeometry section defines parameters for the Sphinx @@ -1312,7 +1309,7 @@ -

          +

          The Debug section is the Katzenpost server debug configuration @@ -1358,7 +1355,7 @@

          Required: No

        • SchedulerExternalMemoryQueue

          -

          If true>, the experimental disk-backed external memory +

          If true, the experimental disk-backed external memory queue is enabled.

          Type: bool

          Required: No

          @@ -1437,7 +1434,7 @@

          Required: No

        • SendDecoyTraffic

          -

          If true>, decoy traffic is enabled. +

          If true, decoy traffic is enabled. This parameter is experimental and untuned, and is disabled by default.

          [Note]Note
          @@ -1447,7 +1444,7 @@

          Required: No

        • DisableRateLimit

          -

          If true>, the per-client rate limiter is disabled.

          +

          If true, the per-client rate limiter is disabled.

          [Note]Note

          This option should only be used for testing.

          @@ -1470,7 +1467,7 @@ katzenpost/docker/dirauth_mixnet/gateway1/katzenpost.toml. In a real-world mixnet, the component hosts would not be sharing a single IP address. For more information about the test mixnet, see Using the Katzenpost Docker test network.

          -

          Table 1.4. Gateway node configuration sections

          +

          Table 1.4. Gateway node configuration sections

          Gateway node: Server section

          @@ -1507,7 +1504,7 @@ TCP = ["localhost:30004"] -
          +
          @@ -1557,10 +1554,8 @@ similarly sign PKI documents using the same scheme.

          The following signature schemes are supported:

          • -

            Classical: "ed25519", - "ed448"

            -
          -
          • +

            Classical: "ed25519", "ed448"

            +
          • Hybrid post-quantum: "Ed25519 Sphincs+", "Ed448-Sphincs+", "Ed25519-Dilithium2", "Ed448-Dilithium3"

            @@ -1599,13 +1594,13 @@

            Required: Yes

          • IsGatewayNode

            -

            If true>, the server is a gateway +

            If true, the server is a gateway node.

            Type: bool

            Required: No

          • IsServiceNode

            -

            If true>, the server is a service +

            If true, the server is a service node.

            Type: bool

            Required: No

            @@ -1618,7 +1613,7 @@ -
            +

            The Logging configuration section controls logging behavior across Katzenpost.

            @@ -1628,7 +1623,7 @@ Level = "INFO"
            • Disable

              -

              If true>, logging is disabled.

              +

              If true, logging is disabled.

              Type: bool

              Required: No

            • @@ -1679,7 +1674,7 @@ -
              +

              The PKI section contains the directory authority configuration for a mix, gateway, or service node.

              @@ -1797,7 +1792,7 @@ -
              +

              The Management section specifies @@ -1808,7 +1803,7 @@ Path = "/dirauth_mixnet/mix1/management_sock"

              • Enable

                -

                If true>, the management interface is +

                If true, the management interface is enabled.

                Type: bool

                Required: No

                @@ -1826,7 +1821,7 @@ -
                +

                The SphinxGeometry section defines parameters for the Sphinx @@ -1953,7 +1948,7 @@ -

                +

                The Debug section is the Katzenpost server debug configuration @@ -1999,7 +1994,7 @@

                Required: No

              • SchedulerExternalMemoryQueue

                -

                If true>, the experimental disk-backed external memory +

                If true, the experimental disk-backed external memory queue is enabled.

                Type: bool

                Required: No

                @@ -2078,7 +2073,7 @@

                Required: No

              • SendDecoyTraffic

                -

                If true>, decoy traffic is enabled. +

                If true, decoy traffic is enabled. This parameter is experimental and untuned, and is disabled by default.

                [Note]Note
                @@ -2088,7 +2083,7 @@

                Required: No

              • DisableRateLimit

                -

                If true>, the per-client rate limiter is disabled.

                +

                If true, the per-client rate limiter is disabled.

                [Note]Note

                This option should only be used for testing.

                @@ -2111,7 +2106,7 @@ katzenpost/docker/dirauth_mixnet/servicenode1/authority.toml. In a real-world mixnet, the component hosts would not be sharing a single IP address. For more information about the test mixnet, see Using the Katzenpost Docker test network.

                -

                Table 1.5. Mix node configuration sections

                +

                Table 1.5. Mix node configuration sections

                Service node: Server section

                @@ -2147,7 +2142,7 @@ [Server.AltAddresses] -
                +
                @@ -2197,10 +2192,8 @@ similarly sign PKI documents using the same scheme.

                The following signature schemes are supported:

                • -

                  Classical: "ed25519", - "ed448"

                  -
                -
                • +

                  Classical: "ed25519", "ed448"

                  +
                • Hybrid post-quantum: "Ed25519 Sphincs+", "Ed448-Sphincs+", "Ed25519-Dilithium2", "Ed448-Dilithium3"

                  @@ -2239,13 +2232,13 @@

                  Required: Yes

                • IsGatewayNode

                  -

                  If true>, the server is a gateway +

                  If true, the server is a gateway node.

                  Type: bool

                  Required: No

                • IsServiceNode

                  -

                  If true>, the server is a service +

                  If true, the server is a service node.

                  Type: bool

                  Required: No

                  @@ -2258,7 +2251,7 @@ -
                  +

                  The Logging configuration section controls logging behavior across Katzenpost.

                  @@ -2268,7 +2261,7 @@ Level = "INFO"
                  • Disable

                    -

                    If true>, logging is disabled.

                    +

                    If true, logging is disabled.

                    Type: bool

                    Required: No

                  • @@ -2502,7 +2495,7 @@ -
                    +

                    The PKI section contains the directory authority configuration for a mix, gateway, or service node.

                    @@ -2620,7 +2613,7 @@ -
                    +

                    The Management section specifies @@ -2631,7 +2624,7 @@ Path = "/dirauth_mixnet/mix1/management_sock"

                    • Enable

                      -

                      If true>, the management interface is +

                      If true, the management interface is enabled.

                      Type: bool

                      Required: No

                      @@ -2649,7 +2642,7 @@ -
                      +

                      The SphinxGeometry section defines parameters for the Sphinx @@ -2776,7 +2769,7 @@ -

                      +

                      The Debug section is the Katzenpost server debug configuration @@ -2822,7 +2815,7 @@

                      Required: No

                    • SchedulerExternalMemoryQueue

                      -

                      If true>, the experimental disk-backed external memory +

                      If true, the experimental disk-backed external memory queue is enabled.

                      Type: bool

                      Required: No

                      @@ -2901,7 +2894,7 @@

                      Required: No

                    • SendDecoyTraffic

                      -

                      If true>, decoy traffic is enabled. +

                      If true, decoy traffic is enabled. This parameter is experimental and untuned, and is disabled by default.

                      [Note]Note
                      @@ -2911,7 +2904,7 @@

                      Required: No

                    • DisableRateLimit

                      -

                      If true>, the per-client rate limiter is disabled.

                      +

                      If true, the per-client rate limiter is disabled.

                      [Note]Note

                      This option should only be used for testing.

                      @@ -2933,7 +2926,7 @@ -

                      Chapter 2. Using the Katzenpost Docker test network

                      +

                      Chapter 2. Using the Katzenpost Docker test network

                      Katzenpost provides a ready-to-deploy Docker @@ -3022,7 +3015,7 @@

                       ~/katzenpost/docker$ make target

                      Running make with no target specified returns a list of available targets.

                      -

                      Table 2.1. Table 1: Makefile targets

                      +

                      Table 2.1. Table 1: Makefile targets

                      [none]

                      @@ -3272,9 +3265,9 @@

                      The following diagram illustrates the components and their network interactions. The gray blocks represent nodes, and the arrows represent information transfer.

                      -

                      Figure 2.1. Test network topology

                      +

                      Figure 2.1. Test network topology

                      -
                      Test network topology
                      +
                      Test network topology

                      On the left, the Client transmits a message (shown by purple arrows) through the Gateway node, across three @@ -3291,7 +3284,7 @@ the following table. Note that all nodes share the same IP address (127.0.0.1, i.e., localhost), but are accessed through different ports. Each node type links to additional information in Components and configuration of the Katzenpost mixnet.

                      -

                      Table 2.2. Table 2: Test mixnet hosts

                      +

                      Table 2.2. Table 2: Test mixnet hosts

                      Node typeDocker IDDiagram labelIP addressTCP port

                      Directory authority

                      @@ -3329,7 +3322,7 @@

                      30012


                      -

                      The Docker file tree

                      +

                      The Docker file tree

                      The following tree output shows the location, relative to the katzenpost diff --git a/content/en/pages/team.html b/content/en/pages/team.html index f080a5508..ba06a8757 100644 --- a/content/en/pages/team.html +++ b/content/en/pages/team.html @@ -13,7 +13,7 @@

                      Current Team

                      {{< teammate name="David Stainton" - role="Researcher & Developer" + role="Researcher & developer" img="/images/team/david.jpg" github="david415" >}} @@ -22,7 +22,7 @@

                      Current Team

                      {{< teammate name="masala" - role="Developer & Protocol Design" + role="Developer & protocol design" img="/images/team/masala.jpg" github="mixmasala" >}} @@ -31,7 +31,7 @@

                      Current Team

                      {{< teammate name="Leif Ryge" - role="Developer & Protocol Design" + role="Developer & protocol design" img="/images/team/leif.png" github="leif" >}} @@ -40,7 +40,7 @@

                      Current Team

                      {{< teammate name="Dr. Eva Infeld" - role="Research and Evaluation" + role="Research and evaluation" img="/images/team/eva.jpeg" github="evainfeld" >}} @@ -58,7 +58,7 @@

                      Current Team

                      {{< teammate name="David Robinson, Ph.D." - role="Technical writer and project coordinator" + role="Technical writer" img="/images/team/jdormansteele.png" github="jdormansteele" >}} @@ -67,7 +67,7 @@

                      Current Team

                      {{< teammate name="John Brown" - role="Advisory & Fundraising" + role="Advisory & fundraising" img="/images/team/anoncat.png" github="" >}} diff --git a/source/docs/Admin_guide/source/en/components.xml b/source/docs/Admin_guide/source/en/components.xml index 3137d15b6..4693b35df 100644 --- a/source/docs/Admin_guide/source/en/components.xml +++ b/source/docs/Admin_guide/source/en/components.xml @@ -606,7 +606,7 @@ ldMtDsvvc9KUfE4I0+c+XQ== GenerateOnly - If true>, the server halts and cleans + If true, the server halts and cleans up the data directory immediately after long-term key generation. Type: bool Required: No diff --git a/source/docs/Admin_guide/source/en/docker.xml b/source/docs/Admin_guide/source/en/docker.xml index 47309fa14..0f314f3c3 100644 --- a/source/docs/Admin_guide/source/en/docker.xml +++ b/source/docs/Admin_guide/source/en/docker.xml @@ -449,7 +449,7 @@ interfacing with external clients - + While suited for client development and testing, the test mixnet omits performance and security redundancies. Do not use it in production. diff --git a/source/docs/Admin_guide/source/en/includes/xincludes.xml b/source/docs/Admin_guide/source/en/includes/xincludes.xml index fbb3d466c..728937ef3 100644 --- a/source/docs/Admin_guide/source/en/includes/xincludes.xml +++ b/source/docs/Admin_guide/source/en/includes/xincludes.xml @@ -138,14 +138,14 @@ serverdebug (/1/7)--> IsGatewayNode - If true>, the server is a gateway + If true, the server is a gateway node. Type: bool Required: No IsServiceNode - If true>, the server is a service + If true, the server is a service node. Type: bool Required: No @@ -168,7 +168,7 @@ serverdebug (/1/7)--> Disable - If true>, logging is disabled. + If true, logging is disabled. Type: bool Required: No @@ -353,7 +353,7 @@ serverdebug (/1/7)--> Enable - If true>, the management interface is + If true, the management interface is enabled. Type: bool Required: No @@ -544,7 +544,7 @@ FZWJFK0R8iU52CEUxVpXTA== SchedulerExternalMemoryQueue - If true>, the experimental disk-backed external memory + If true, the experimental disk-backed external memory queue is enabled. Type: bool Required: No @@ -636,7 +636,7 @@ FZWJFK0R8iU52CEUxVpXTA== SendDecoyTraffic - If true>, decoy traffic is enabled. + If true, decoy traffic is enabled. This parameter is experimental and untuned, and is disabled by default. @@ -647,7 +647,7 @@ FZWJFK0R8iU52CEUxVpXTA== DisableRateLimit - If true>, the per-client rate limiter is disabled. + If true, the per-client rate limiter is disabled. This option should only be used for testing. diff --git a/source/docs/Admin_guide/source/en/pix/components-production.png b/source/docs/Admin_guide/source/en/pix/components-production.png new file mode 100644 index 000000000..d477b8efe Binary files /dev/null and b/source/docs/Admin_guide/source/en/pix/components-production.png differ diff --git a/source/docs/Admin_guide/source/en/pix/katzenpost-docker.png b/source/docs/Admin_guide/source/en/pix/katzenpost-docker.png new file mode 100644 index 000000000..836e4fbcf Binary files /dev/null and b/source/docs/Admin_guide/source/en/pix/katzenpost-docker.png differ diff --git a/source/docs/Admin_guide/source/en/pix/mixnet-traversal.png b/source/docs/Admin_guide/source/en/pix/mixnet-traversal.png new file mode 100644 index 000000000..718a4d847 Binary files /dev/null and b/source/docs/Admin_guide/source/en/pix/mixnet-traversal.png differ