echodrop.net

SERVER LOG ENABLED

Write once / Read once – secure one-time notes

About echodrop.net (WORO)

Write once / Read once: a one-time secure note service. The retrieval link contains a secret that is never stored on the server. Without that secret, ciphertext on disk cannot be decrypted—even if the long-term server key is obtained.

Zero knowledge (nonce never on disk)

  • Each message uses a random nonce that becomes part of the one-time URL only.
  • The nonce is never written to disk and cannot be derived from filenames or metadata.
  • Filenames are irreversible hashes of the nonce; listing files does not reveal links.
  • Metadata on disk holds only the expiration timestamp—not the message or notification details.

Message encryption

  • Content is sanitized, Base64-encoded, and padded with random dictionary words before encryption.
  • Authenticated encryption uses LibSodium XChaCha20-Poly1305 with the long-term key and the per-message nonce.
  • Plaintext is never written to disk; only ciphertext is stored under the messages directory.

Memory handling

  • After a message is encrypted and written, sensitive buffers are wiped with sodium_memzero where available.
  • Keys and plaintext are not retained longer than needed for the request.

Secure deletion

  • After a successful read, the message file is overwritten three times with random data longer than the original, then unlinked.
  • Expired messages are removed the same way by cleanup (per request and optional cron).
  • On solid-state storage, overwrites are best-effort; treat backups of the messages directory as sensitive.

What is logged (application)

  • usage.log — only lines of the form message created: <ISO8601> or message expired: <ISO8601>. No content, no URLs, no emails.
  • securityvalidation.log — path/permission checks (overwritten each run). No message data.
  • Notification emails (if you opt in) are sent only on successful retrieval, not on expiry.

Server (Apache) logging

  • HTTP access and error logs are controlled by the web server vhost, separate from application logs.
  • This project ships an Apache config with optional lines to send logs to /dev/null (fully disable server-side request logging).
  • If server logging is still enabled, a red SERVER LOG ENABLED indicator appears next to the site name so users can see it at a glance.

Back