A seriously secure and private way to send files over the internet.
Transfer Me It moves files from one Mac to another. They are encrypted before they leave your machine, and only the Mac you sent them to can open them.
otter-quartz-lantern
Open source, client and server. Read the code on GitHub.
-
01
Ask for words
Your Mac gives you three words. Give them to whoever is sending. Ask for new ones and the old ones stop working immediately.
-
02
They send
They type your three words and pick what to send; a folder is zipped first. Their Mac encrypts it with your public key before anything is uploaded.
-
03
It arrives
Your Mac checks the bytes against their digest, unseals the key with your private key, decrypts the file and saves it. Then it tells the server to delete the copy, which happens immediately.
The copy is deleted immediately partly for your privacy, and partly because we would rather not pay to store encrypted holiday photos we cannot even look at.
There is a terminal command as well. Install it from Settings, then tmi send /path/to/file.pdf remix-pony-case sends a file from the shell, and the transfer shows up in the panel like any other.
The server holds ciphertext it cannot read.
There is a terminal command as well. Install it from Settings, then tmi send /path/to/file.pdf remix-pony-case sends a file from the shell, and the transfer shows up in the panel like any other.
Every file gets a fresh random 256-bit key, generated on the sender's Mac. The body is encrypted there with that key, before it leaves the machine. That part is symmetric encryption, which is fast enough for a file of any size.
That key is then encrypted to the recipient's public key, so only the recipient's Mac can open it. That part is public key encryption, which is slow but needs no shared secret, and a key is small enough for it to carry.
What the server keeps is a public key, an opaque sealed header, the encrypted bytes and a digest of them. It cannot decrypt anything it stores.
Here is the code. Host it yourself.
Each Mac works out four safety words on its own, by hashing both public keys and the transfer id. Read them to the other person: if anything swapped a key on the way, the two sets differ. Transfers are deleted after 24 hours.
The client and the server are both open source. Read them, then run the server on your own machine and point the app at it.
It is one field in Settings. The encryption does not change either way: your file is sealed before it reaches any server and no server ever holds a key that opens it. What a dishonest server could still attack is the safety-word check, and the security page explains how.
SHA-256 of the disk image
Not available: this deployment has no published release.
The same digest is served as a file: TransferMeIt.dmg.sha256
shasum -a 256 -c TransferMeIt.dmg.sha256