Skip to content

Latest commit

 

History

History
171 lines (113 loc) · 5.59 KB

File metadata and controls

171 lines (113 loc) · 5.59 KB

Timelock Video Encryptie

Dit project laat je één videobestand versleutelen en pas na een zelfgekozen tijd weer openen.
Alles zit in één bestand met extensie .tlv.
De unlock-tijd staat in het bestand zelf, achter de encrypted data.

Ontworpen voor eigen gebruik.
Je vertrouwt op discipline, niet op absolute technische afdwinging.


Wat dit doet

  • Versleutelt één video per keer.
  • Je kiest per encryptie een duur, zoals 30d, 5d, 2h.
  • Het resultaat is één .tlv bestand.
  • Voor de unlock-datum kan je het bestand niet openen via het script.
  • Na de unlock-datum klik je één keer en hij decrypt.

Geschikt voor grote bestanden, getest tot 1 GB.


Vereisten

  • Python 3.9 of nieuwer.
  • Internetverbinding bij lock en unlock, voor tijdcontrole.
  • Besturingssysteem maakt niet uit.

Python packages:

  • cryptography
  • requests

Installatie:

pip install cryptography requests


Bestandsformaat .tlv

Opbouw van het bestand:

  1. Encrypted video data, in chunks.
  2. Footer in plaintext, helemaal aan het einde:
    • Magic bytes om het bestand te herkennen.
      • Lengte van de footer.
        • JSON met metadata:
          • unlock_at_utc
            • created_utc
              • encryptie-instellingen

                • AES sleutel en nonce info

                De footer is leesbaar zonder decryptie.
                De video zelf niet.


                Encryptie details

                • Algoritme: AES-256-GCM.
                • Werkt per chunk, standaard 4 MB.
                • Elke chunk krijgt een unieke nonce.
                • Authenticatie zit ingebouwd via GCM.
                • Streaming, dus laag geheugenverbruik.

                Tijdcontrole

                • Lokale systeemtijd wordt niet gebruikt.
                • Tijd wordt opgehaald via HTTPS Date headers.
                • Meerdere providers worden geprobeerd.
                • De eerste geldige UTC-tijd wordt gebruikt.

                Voor eigen gebruik is dit stabiel genoeg.


                Gebruik

                Video versleutelen

                python timelock_onefile_stream.py lock video.mp4 --outdir locked

                Daarna vraagt het script:

                Hoe lang wil je dit locken, bv 30d, 5d, 2h, 90m, 1d12h30m:

                Voorbeelden:

                • 30d
                • 5d
                • 2h
                • 1d12h
                • 1d12h30m

                Resultaat:

                locked/video.mp4.tlv


                Status bekijken zonder decrypten

                python timelock_onefile_stream.py info locked/video.mp4.tlv

                Output:

                • LOCKED of OPEN
                • unlock_at_utc
                • created_utc
                • bestandsgrootte
                • aantal chunks

                Video ontgrendelen

                python timelock_onefile_stream.py unlock locked/video.mp4.tlv --outdir unlocked

                Voor de unlock-datum:

                • Script stopt met foutmelding.

                Na de unlock-datum:

                • Video wordt gedecrypt.
                • Originele bestandsnaam wordt hersteld.

                Typische workflow

                1. Lock video 1 voor 30 dagen.
                2. Een week later lock video 2 voor 5 dagen.
                3. Check af en toe status met info.
                4. Unlock wanneer toegestaan.

                Elke video staat volledig los van de andere.


                Belangrijke opmerkingen

                • Dit is geen DRM en geen onbreekbare tijdkluis.
                • Wie het script of bestand aanpast, kan eerder unlocken.
                • Dit is bewust zo ontworpen.
                • Voor persoonlijk gebruik werkt dit goed en voorspelbaar.

                Veiligheidsadvies

                • Test eerst met een klein bestand.
                • Bewaar het .tlv bestand veilig.
                • Verwijder de originele video pas als je zeker weet dat decrypt werkt.
                • Maak backups als de video belangrijk is.

                Mogelijke uitbreidingen

                • Dubbelklik unlocker per OS.
                • Automatisch openen van de video na decrypt.
                • GUI wrapper.
                • Extra checksums of signatures.

                Licentie

                Gebruik vrij voor eigen projecten.
                Geen garanties.
                Gebruik op eigen verantwoordelijkheid.