klml / msgsplit

message split allowes you to send messages (passwords etc.) to another person without having the message decrypted on the server or in the email.
MIT License
3 stars 1 forks source link

message split

This is experimental.

message split allows you to send messages (passwords etc.) to another person without having the message decrypted on the server or in the email.

Workflow

security

There are several security concerns:

persistent storage

Too be sure all ciphertexts stay out of every backup, log or any other datatrace, msgsplit needs the weakest persistent storage. There should be no external dependency filesystemmounts, database or object store.

So msgsplit uses environment variables to "store" ciphertexts. This is at the expense of usability: msgsplits data does not survive a reboot.

disclaimer

Only transmit messages that can get disclosed (inital passwords, etc). Do not use msgsplit for current used passwords. If the hyperlink gets stolen, this message is disclosed.

Build

golang>1.20 is required

CGO_ENABLED=0 go build ./msgsplit.go

Run

./msgsplit.go

Alternative: Use plain image ghcr.io/klml/msgsplit:main or with msgsplit-kubernetes.

demo

Working demo, you can use it, but there is no safety guarantee!

msgsplit.klml.de

Hostet on uberspace.de with supervisord as web backend, static files (index.html, css, js) as default apache and access log is disabled.


[msgsplit@erinome ~]$ cat ~/etc/services.d/msgsplit.ini 
[program:msgsplit]
command=/home/msgsplit/msgsplit/msgsplit
autostart=yes
autorestart=yes
# `startsecs` is set by Uberspace monitoring team, to prevent a broken service from looping
startsecs=30
[msgsplit@erinome ~]$ supervisorctl status
msgsplit                         RUNNING   pid 7138, uptime 0:09:34
[msgsplit@erinome ~]$ uberspace web backend list
/writeread http:8080 => OK, listening: PID 7138, /home/msgsplit/msgsplit/msgsplit
/ apache (default)

[msgsplit@erinome ~]$ uberspace web log access status
access log is disabled

better

There are better ways:

Similar