Security
Security and roadmap
How the Emona MFT transfer engine protects your files today, what is not there yet, and what we are still building.
Where we are: Emona MFT is in development. The current development build is version 1.3.0. Its transfer engine is the source-available jFiltra core, currently version 1.0.3. This page lists what the core does today, what it does not do yet, and what Emona MFT adds and what is still planned. We would rather be precise than impressive.
Built in today (jFiltra core)
- Self-hosted. Files go from your clients to your own server. Nothing is sent to BLUEGEM or any cloud service.
- Integrity check. Every file gets a SHA-256 hash; the server verifies it after decryption, and the client deletes the original only after a confirmed, verified delivery.
- Compression and content encryption. File content is GZIP-compressed and AES-encrypted with a key that is unique to each client.
- Separation per client. The server stores each client's files in that client's own directory. It rejects unknown client labels and any file name containing a path (such as
../), so a client cannot write outside its directory. - Connection limits. Header and transfer timeouts, a per-IP connection limit and a maximum file size stop a single connection from holding the server.
- Runs almost anywhere. Java 8 or newer (any OpenJDK build, tested on 8, 11, 17, 21 and 25) on Linux, macOS or Windows, with Apache Log4j 2 as the only dependency.
- Source code you can review. The core is source-available on GitHub under PolyForm Noncommercial 1.0.0, so you can inspect exactly what it does.
Not in the jFiltra core
- The connection is not encrypted with TLS, so client labels, file names, sizes and hashes travel in plain text. jFiltra keeps this out by design to stay simple.
- File content uses AES in ECB mode, not authenticated encryption, and keys are derived from a passphrase without a slow, salted key-derivation function.
- Clients are not authenticated with certificates, and there is no protection against replayed transfers.
Recommendation: run the jFiltra core only inside a trusted network, a VPN or an SSH tunnel (the jFiltra README shows how), and do not expose its port to the internet.
Added in Emona MFT today (protocol 2)
- Mutual authentication. Client and server prove they know the client's key before any file data is sent; the client deletes a file only after a reply only the real server can produce.
- Authenticated encryption. File names and content are encrypted with AES-256-GCM in numbered 64 KB records, so changes, reordering and truncation are detected.
- Replay protection. Fresh session keys for every connection (HKDF-SHA256 over random nonces), so a recorded transfer cannot be sent again.
- Protocol 2 by default. New installations use protocol 2; protocol 1 can still be selected for older jFiltra clients. A mismatch is refused, reported to the client and logged. Only the client label is visible on the network.
Emona MFT does not use TLS. With protocol 2, an observer still sees client labels, approximate file sizes and timing; a VPN or SSH tunnel hides those too. Symbolic links are never sent and file size limits are configurable in both jFiltra and Emona MFT.
Since version 1.2.0 the server also keeps a configurable amount of free space on each storage disk (min.free.space.mb) and refuses files that would fill it with Insufficient storage, so a full disk cannot stop other clients or corrupt stored files.
Still planned
- TLS 1.3 for every connection, with mutual TLS (client certificates).
- Random per-client keys managed from the dashboard, or a slow, salted key-derivation function (Argon2id or PBKDF2), plus key rotation.
- An audit log of every transfer, exportable for GDPR and ISO 27001 evidence.
- An independent security review before general availability.
The roadmap describes our current plan and may change. Waitlist members will hear about each milestone first.
Reporting a security issue
If you find a security problem in jFiltra or on this website, please contact BLUEGEM privately through bluegem.sk rather than opening a public issue. We will acknowledge your report and keep you informed while we fix it.
This website
emonamft.com is a static site with a strict Content Security Policy and no third-party fonts. Google Analytics is the only third-party script, and it loads only after you accept analytics cookies. Waitlist sign-ups are written to a file on our own server; see the privacy notice.