From 43fbddf016f94f4ba006d82c9a67dca61b5852a1 Mon Sep 17 00:00:00 2001 From: Gab <24553253+gabrix73@users.noreply.github.com> Date: Fri, 14 Aug 2026 20:39:22 +0200 Subject: Complete Nym and YAMN transport integration --- about.html | 299 +++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 230 insertions(+), 69 deletions(-) (limited to 'about.html') diff --git a/about.html b/about.html index fd7e52e..766e12e 100644 --- a/about.html +++ b/about.html @@ -3,91 +3,252 @@ - - YAMN Web architecture and operation + + YAMN Web 2 | Nym before YAMN
-

← Back to the interface

-

YAMN Web architecture and operation

-

YAMN Web is a send-only interface for preparing messages for delivery through the YAMN remailer network. The same composer handles email delivery and Usenet publication. The application is available through HTTPS and the existing Onion service.

+ -
-

Complete route

-
Browser
-  ↓ HTTPS or Onion
-PHP YAMN Web
-  ↓ local request, without a temporary message file
-YAMN encoder
-  ↓ encrypted YAMN envelope
-Rust Nym sender
-  ↓ Nym mixnet
-Nym ingress on kvara
-  ↓ Tor, forwards only the envelope to the selected Entry
-Selected YAMN Entry
-  ↓ YAMN packet layers
-Selected YAMN Middle
-  ↓ YAMN packet layers
-Selected YAMN Exit
-  ↓ SMTP delivery
-mail2news@mail2news.tcpreset.net
-  ↓ Mail2News conversion
-news.tcpreset.net → misc.test
-

The Nym sender does not receive the body, subject, or final recipient as separate parameters. It receives only the encrypted envelope produced by the YAMN encoder.

+
+
Architecture note / send-only gateway
+

Nym before YAMN.

+

The browser sends the form to this host over HTTPS or the Onion service. PHP then runs the local yamn-encode program, which creates the encrypted YAMN v2 packet in server memory before Nym transport starts.

+
+ Nym-first transport + YAMN v2 envelope + Email + Usenet + Send-only +
+
+ +
+

Where YAMN encryption happens

+

It happens locally on the YAMNWeb host, before the message enters Nym. It does not happen in the browser, in JavaScript, in Apache, or in Nym.

+
+
+

1. Browser

+

The browser sends the form fields, including the message body, to YAMNWeb through HTTPS or the Onion service. The page contains no JavaScript cryptography and does not hold YAMN remailer keys.

+
+
+

2. Local encoder

+

Apache serves PHP. PHP validates the request and starts the local Go binary yamn-encode. That binary reads the selected remailers' public keys and creates the encrypted YAMN envelope in RAM on this host.

+
+
+

3. Nym transport

+

Only after encoding, PHP starts the local Rust Nym sender. It receives the finished armored YAMN envelope and the selected Entry address needed by the Nym relay service, not separate form fields.

+
+
+
+

This is server-side encryption, not browser-side end-to-end encryption. The plaintext exists in the PHP process and in yamn-encode memory while the packet is being built. The message becomes opaque to Nym only after the local YAMN encoder has finished.

+
-

HTTPS and Onion service

-

The public HTTPS address remains https://yamnweb.virebent.art. The existing Onion address remains http://ai63yqfo2wu2j3ey7nmatyel52jjvcmfg4e4kkxp2y7x3bc6nue6czyd.onion:4343/, including its configured port. This interface neither generates nor changes the Onion address. Both access points serve the same application directory.

-

The HTTPS virtual host does not retain access logs. The application may emit technical PHP or service errors, but it does not intentionally log message contents.

+
+

The active path

+

This diagram names the actual components. Apache is the web server, PHP is the application runtime, and yamn-encode is the local program that performs YAMN encryption.

+
+
+
01 / BROWSER

Compose

No YAMN encryption or crypto JS

+
02 / APACHE + PHP

Receive

Plaintext reaches PHP on this host

+
03 / GO ENCODER

Encrypt

Builds YAMN v2 envelope in RAM

+
04 / NYM

Mix

Carries envelope to the relay service

+
05 / RELAY SERVICE

Forward

Reads Entry address, not message contents

+
06 / YAMN

Open layers

Entry, Middle, Exit

+
+
Browser -- HTTPS or Onion --> Apache + PHP -- plaintext in RAM --> local Go yamn-encode
+        -- encrypted YAMN envelope --> Rust Nym sender --> Nym mixnet
+        --> Nym relay service --> YAMN Entry --> Middle --> Exit --> SMTP or Mail-to-News
+
+
-

The YAMN chain

-

The chain selected in the form has three roles:

- -

The * option randomly selects an available remailer from the local list. This is intentional because remailer availability and reliability change over time.

+
+

Where Tor fits

+
+
+

Onion interface

+

The existing Onion address provides an alternate way to reach the same web interface. It does not change the message format or create a second delivery protocol. The public HTTPS and Onion interfaces serve the same application.

+
+
+

Remailer data

+

Tor is used for remailer statistics and public-key material downloads, with Victor's Echolot pinger as the primary configured source and fallback pingers when needed.

+
+
+
+

The message submission path is Nym-first after local YAMN encoding. On this host, PHP calls yamn-encode; that local program encrypts the message. PHP then gives Nym the opaque envelope and its selected Entry address. The Nym relay service receives the envelope and forwards it to that Entry.

+

The relay service can read the Entry address because it must choose the SMTP destination, but it cannot open the YAMN message or its next-hop headers. In the current deployment, it uses a Tor SOCKS connection for this SMTP leg to the YAMN Entry. This is separate from the browser-to-service transport.

+
+
-

Destinations

-

The composer uses the sender, optional Reply-To address, subject, and body for every message. Enter an email recipient for email delivery. To publish on Usenet, leave the email recipient empty and enter a Newsgroup; the application then adds the configured Mail-to-News recipient that converts the message leaving the remailer chain into an NNTP article.

-

Acceptance by the Nym transport confirms only that the route has started. Each remailer holds the packet in a queue for a variable delay, so delivery or Usenet publication may take several hours. This send-only interface does not read the final destination and cannot confirm publication itself.

-

References is optional and contains one or more Message-IDs used to link a new article to an existing thread. It does not enable reply retrieval or message fetching.

+
+

Cryptographic layers

+

YAMN uses hybrid cryptography: asymmetric encryption protects the instruction header for each remailer, while fresh symmetric keys encrypt the bulk packet layers. The Nym SDK is a separate transport layer with its own network cryptography.

+
+
    +
  • NaCl boxOne header is encrypted to the public key of every selected remailer, Entry, Middle, and Exit. Only the holder of that remailer's private key can open its header. It uses Curve25519 authenticated public-key encryption with XSalsa20-Poly1305.
  • +
  • AES-256-CTRFresh, random symmetric keys encrypt the packet payload and intermediate header slots in nested layers. This is efficient for the fixed-size packet; the corresponding AES key is placed inside the header that only the relevant remailer can open.
  • +
  • BLAKE2s-256Anti-tags and packet digests detect altered or incorrectly layered packet data.
  • +
  • Random per messageKeys, IVs, packet identifiers, nonces, padding bytes, and header values are generated for each envelope.
  • +
  • Transport boundaryThe Nym sender accepts the armored YAMN envelope and the selected Entry address needed by the Nym relay service. It does not receive the message fields separately.
  • +
+
+
-

What is stored

- +
+

How a message is layered and opened

+

Yes: the completed packet is addressed first to the selected YAMN Entry. However, it already contains encrypted instructions for the Middle and Exit. Nym and the relay service do not decrypt YAMN; each remailer opens only the part intended for its role.

+
+
+

1. Building the packet

+

The encoder reads the selected Entry, Middle, and Exit public keys from the local keyring. It places the SMTP message in a fixed-size packet, encrypts it for the Exit with a fresh AES key, then wraps it in additional AES layers for the Middle and Entry.

+

It adds one public-key-encrypted header per remailer. The Entry header says how to reach the Middle and contains the key for the Entry layer; the Middle header similarly leads to the Exit; the Exit header contains the final AES key needed to recover the SMTP message.

+
+
+

2. Opening one step at a time

+

The relay service submits the finished packet to the selected Entry over SMTP. The Entry uses its private key to open only its header, learns the Middle address and the AES key for its outer layer, removes that layer, and forwards the packet.

+

The Middle repeats the operation for the Exit. Neither Entry nor Middle has the private key needed to open another remailer's header, and neither receives the final plaintext message.

+
+
+

3. Final delivery

+

The Exit opens the last header, verifies the packet integrity data, and uses the final AES key and initialization vector to recover the original SMTP message.

+

The Exit then delivers that ordinary message to the email recipient or to the configured Mail-to-News service. The final recipient does not need a YAMN key or special software.

+
+
+
+

Nym does not decrypt the message. Nym carries the already layered YAMN packet to the server-side relay service. The YAMN remailers perform the sequential opening, and the Exit is the component that turns the packet back into an SMTP message.

+
+
+ +
+

YAMN chain and destinations

+
+
+

Three YAMN roles

+
    +
  • Entry receives the packet and removes the first layer.
  • +
  • Middle forwards the still-layered packet.
  • +
  • Exit removes the final layer and delivers through SMTP.
  • +
+

The * option selects an available remailer from the local statistics list.

+
+
+

Email or Usenet

+

For email, the selected recipient is placed inside the encrypted message. For Usenet, the selected newsgroup is preserved and the server-configured Mail-to-News recipient performs SMTP-to-NNTP conversion.

+

References can link an article to an existing thread. It does not enable fetching or replies.

+
+
+
-
-

Important limitations

-

YAMN Web provides no inbox, fetch, message viewing, AEC, or reply retrieval. A message is accepted when the Nym sender accepts its transmission, but this is not a final delivery receipt.

-

During maintenance, the Nym ingress may operate in dry-run mode. In that mode it validates received packets without forwarding them to the SMTP remailer.

+
+

Data handling and limits

+
+
+

Kept minimal

+
    +
  • The message and encrypted envelope are held in memory by the submission route.
  • +
  • The Nym client keeps only technical transport state.
  • +
  • The public keyring and remailer statistics are service data.
  • +
  • The web session stores CSRF and minimum request state.
  • +
+
+
+

Send-only by design

+

There is no inbox, message fetching, message viewing, or reply retrieval. Acceptance by the Nym sender confirms that transport started, not that a remailer delivered the message.

+

YAMN remailer queues may introduce delays of several hours, especially for Usenet publication.

+
+
+
+

Privacy still depends on use. Message wording, timing, recipient choice, browser state, and operational mistakes can reveal information outside the cryptographic packet. Do not submit passwords, private keys, or data that must not leave your device.

+
-

Responsible use

-

Check the recipient or newsgroup, chain, and References before submission. Do not include passwords, private keys, or information you do not want to transmit through the remailer network. Anonymity also depends on message content, timing, and sender behavior.

-

Back to message composition

+
-- cgit v1.2.3