16 points emurlin 11 hours ago 6 comments

Air-gapped file encryption packed into a single, self-decrypting HTML page. Repo: https://github.com/ApelegHQ/ts-cms-ep-sfx

I was inspired by self-extracting archives. I wanted to share files with basically no dependencies. The goal was:

  1. Something that didn't require any installation (assuming a web browser)
  2. Have a single file with no network that could self-decrypt
  3. Be fully auditable
The second point is done by having (sort of(*)) reproducible builds and embedded OpenPGP signatures.

The first point is made by cleverly manipulating the HTML structure so that it can decrypt without breaking the PGP signature. It can even decrypt using bare openssl (which was a design goal too, though getting the exact structure right took some work and bug reports).

The third point is accomplished by the first two, and by the source being freely available.

(*) Depends on the OS at the moment.

DylanMerigaud 11 hours ago | parent

Self-decrypting HTML? That's an innovative approach.

emurlin 11 hours ago | parent

Yeah, I was inspired by self-extracting archives. I wanted to share files with basically no dependencies.

The goal was:

1. Something that didn't require any installation (assuming a web browser)

2. Have a single file with no network that could self-decrypt

3. Be fully auditable

The second point is done by having (sort of(*)) reproducible builds and embedded OpenPGP signatures.

The first point is made by cleverly manipulating the HTML structure so that it can decrypt without breaking the PGP signature. It can even decrypt using bare openssl (which was a design goal too, though getting the exact structure right took some work and bug reports).

The third point is accomplished by the first two, and by the source being freely available.

(*) Depends on the OS at the moment.

dang 32 minutes ago | parent

I'm going to move this description to the top and re-up the post - I hope that's ok!

FatalLogic 11 hours ago | parent

emurlin 11 hours ago | parent

Correct

nikhilkxmar 4 hours ago | parent

Cool!