Fight fake news with cryptography & human nature
I should probably start with
with why I started Aletheia in the first place.
Computers can now synthesize you
saying things you never said
They can also (almost) create video of you
saying and doing things you never did
This is the next generation of fake news
Leverage our natural method for fake detection: reputation
We may not know if we can trust an audio clip
...but we know how much we trust
the person/company providing it.
If the BBC broadcasts a video of Theresa May threatening war with the EU, you might believe it...
...but what if it was InfoWars?
Reputation Matters
(In two parts)
Now with diagrams!
Here's what a file typically looks like
Aletheia pulls the body of the file out and generates a signature of it with your private key
Tack the signature onto the header,
along with where to find the public key
The resulting file is a little bigger,
but now contains the origin
Extract the key URL and signature from the header
Fetch the key from that URL.
Use the key to verify the signature against the file body
Details are annoying. Let's see an example.
(don't use that)
$ pip install aletheia
Currently supports six file types:
jpeg
,
mp3
,
mkv
,
mp4
,
webm
,
and
html
...but it's properly extensible
class AwesomeFile(File):
SUPPORTED_TYPES = ("mime/type",)
def get_raw_data(self) -> bytes:
"""
Return the "meat" of the file (the blue part)
"""
def sign(self, private_key, public_key_url: str) -> None:
"""
Write to the header.
"""
def verify(self) -> str:
"""
Read from the header & call .verify_signature() to return
the origin domain name.
"""
$ aletheia generate
$ aletheia sign /path/to/image.jpg
$ aletheia verify /path/to/image.jpg
$ curl https://danielquinn.org/aletheia.pub
It should support other popular formats:
Not everyone uses Python
It'd be nice if people could install it as part of their OS