Question

I want to create an anonymous tip system that verifies a user's email address without saving it.

The point would be to verify that someone is affiliated with a certain organization through their email address (whether it be a .gov or a .edu or a particular website's address).

Ideally, however, the email address would not be saved anywhere so that the individual could still comfortably submit their tip/complaint in a totally anonymous and secure way. I suppose we could also be open to encryption, but ideally somehow we would be blind to the user's email address.

What would be the best way to implement this if you have no constraints (it could be an email system, PHP, whatever)?

Was it helpful?

Solution

I'll change the scenario a little then. If we want to simply avoid anyone with access to our system alone from directly knowing the email of anyone who registers or submits a story what would be a possible way we could approach this?

The best way is to never store any part of the email.

Assuming you do need to be able to tell, given the email/hostname again, whether it was associated with a tip, then just treat the email/hostname as you would any sensitive secret like a password. Salt and hash it.

That an email address has lower-entropy than a password shouldn't matter as long as you generate good salts.

OTHER TIPS

If I was a whistleblower who wanted to submit information about my employer to anyone, I would make absolutely sure that no part of the transaction involved any facility under my employer's control -- equipment, communications, or people. That's the only way I could be reasonably convinced that my anonymity could not be trivially subverted.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top