Over dit artikel
Ik gebruik Tijdsleutel dagelijks vanuit de menubalk. De screenshots tonen mijn eigen gebruik met een voorbeeldaccount.
Versie 1.3.3, build 8, is beschikbaar als testrelease voor Apple Silicon vanaf macOS 13.
Codex is in mijn eigen werkomgeving gekoppeld via de CLI. Ik kan sleutels voor agents activeren en deactiveren en werk tijdens ontwikkeling met een tijdvenster.
Ik heb een eigen PostgreSQL-database gekoppeld voor back-ups. De gebruiksstatus is bevestigd op 18 oktober 2026.
Ik wilde niet steeds mijn telefoon pakken als ik tijdens het werk een verificatiecode nodig had. Daarom bouwde ik Tijdsleutel, een afzonderlijke TOTP-app voor mijn Mac. Inmiddels gebruik ik de app dagelijks, vooral vanuit de menubalk.6
Mijn dagelijkse versie is 1.3.3, build 8. Die staat ook als testrelease voor Apple Silicon en macOS 13 of nieuwer bij dit artikel. De screenshots hieronder zijn uit mijn eigen gebruik, met een voorbeeldaccount.6
De koppeling met Codex is niet meer alleen een ontwerp. Ik heb die via de CLI opgenomen in mijn Second Brain-werkwijze en gebruik haar van begin tot eind. De code en het beheer houd ik zelf in handen.6
Waarom ik een eigen app wilde
Apple Wachtwoorden kan al verificatiecodes tonen en in ondersteunde situaties invullen. Ik gebruik Tijdsleutel vanuit mijn voorkeur voor een afzonderlijk venster voor deze handeling.2
Ik wil het account snel herkennen en zien hoeveel tijd er in het huidige codevenster over is. Zoeken en duidelijke labels zijn daarvoor belangrijker dan extra informatie op het scherm.
Dat eigen beheer is voor mij een belangrijk deel van het project. Als ik een functie wil toevoegen of de app in een andere werkwijze wil opnemen, heb ik de code beschikbaar. Ik hoef daarvoor niet te wachten op de plannen van een andere ontwikkelaar.6
Verificatiecodes vanuit de menubalk
Meestal open ik het compacte menubalkvenster. Ik zoek op de accountnaam, zie de bijbehorende code met afteller en ga verder met waar ik mee bezig was. Het volledige appvenster gebruik ik voor overzicht en beheer. Voor mij werkt dit sneller dan steeds mijn telefoon erbij pakken.6
Een account vinden en zijn code gebruiken
De gebruikersroute begint bij het juiste account en het bijbehorende tijdvak.
Alle nodes en verbindingen
De afteller toont het lokale codevenster. De ontvangende dienst bepaalt welke code zij accepteert.3
Hoe een tijdcode wordt berekend
TOTP betekent Time-Based One-Time Password. De code volgt uit een gedeeld geheim en een tijdteller. Met hetzelfde geheim en hetzelfde tijdvak krijg je dezelfde uitkomst. RFC 6238 gebruikt dertig seconden als standaard tijdstap; de dienst en authenticator moeten dezelfde parameters hanteren.3
TOTP met openbare testwaarden
Kies een testtijdstip en bekijk de referentiecode uit RFC 6238. Dit voorbeeld gebruikt geen accountgegevens.
RFC 6238 · Appendix B
HMAC-SHA-1 · 8 digits · X = 30 · T0 = 0
Geen secret invoeren. Dit component toont vaste referentiewaarden, geen actuele code van een account.
Protocolvoorbeeld met openbare testvectoren. Geen live inlogcode of toegang tot je accounts.
Het voorbeeld gebruikt drie openbare SHA-1-testvectoren uit de RFC, met acht cijfers. Kies een tijdstip om de referentie-uitkomst te bekijken. Dit demonstreert het protocol en is geen testresultaat van Tijdsleutel.3
Het geheim geeft toegang tot latere codes. Daarom wil ik het buiten de notities en zoekindex van mijn Second Brain houden. De tijdelijke code en de sleutel waaruit zij volgt zijn verschillende gegevens.
Codex gebruiken binnen een tijdvenster
Tijdens ontwikkeling wil ik soms dat Codex door kan werken in een headless browser. Bijvoorbeeld wanneer een dienst geen bruikbare API heeft. In Tijdsleutel activeer ik daarvoor de benodigde sleutels voor de agent, binnen een tijdvenster. Ik kan die rechten vanuit de app ook weer intrekken.6
De koppeling met Codex is in mijn eigen omgeving van begin tot eind in gebruik. Mijn uitgangspunt blijft dat ik bepaal welke toegang ik geef. Dat is iets anders dan een agent onbeperkt toegang geven omdat hij een taak moet afmaken.6
Uitgangspunten voor afgebakende agenttoegang
De beoogde afbakening van aanvrager, account en toestemming rond mijn bestaande agentkoppeling.
Alle nodes en verbindingen
Het schema laat mijn uitgangspunten voor die afbakening zien. De dagelijkse koppeling staat daar niet los van: ik wil zelf kunnen bepalen wat ik toesta, voor wie en voor hoe lang.
Eigen back-ups en de grenzen van TOTP
Een eigen database voor back-ups
Ik heb Tijdsleutel verbonden met mijn eigen database. Voor back-ups kan een gebruiker een eigen PostgreSQL-instantie kiezen, bijvoorbeeld bij Supabase. Ik wilde die keuze bij de gebruiker houden, zodat een eigen database bij de eigen werkomgeving kan aansluiten.6
De sleutelbeheerder en de verbinding met Codex gebruik ik dagelijks. Ik kan sleutels activeren en deactiveren voor een agent en de rechten weer intrekken. Daardoor kan ik de koppeling onderdeel maken van mijn ontwikkelwerk zonder haar steeds opnieuw op te bouwen.6
Tijdteller en afteller
T = floor((Unix time - T0) / X)
TOTP = HOTP(K, T)
RFC test example: T0 = 0, X = 30
Unix time = 59 -> T = 1
HMAC-SHA-1, 8 digits -> 94287082De berekening gebruikt Unix-tijd. Een afteller op het scherm moet na sluimeren of een klokwijziging weer op de actuele tijd aansluiten. De ontvangende dienst beslist over acceptatie en eenmalig gebruik.3
Toestemming voor een concrete handeling
Bij agenttoegang wil ik aanvrager, account, handeling en geldigheidsduur bij elkaar houden. Een ander account is geen automatisch vervolg op een eerdere toestemming. Ik wil bovendien de toegangsbeslissing kunnen teruglezen zonder sleutels of codes in het log.
Daarvoor zijn aparte tests nodig met testaccounts of openbare referentiewaarden. De RFC-berekening controleert geen opslag, apprechten of agenttoegang.
Wat TOTP niet voorkomt
Een tijdelijke code kan worden onderschept en doorgestuurd. NIST beschrijft OTP daarom als niet phishingbestendig. Lokale uitvoering verandert die eigenschap van het protocol niet.4
Download Tijdsleutel voor de Mac
Hier staat versie 1.3.3, build 8, voor Apple Silicon vanaf macOS 13. Het is een testrelease. Installatie-instructies, ondertekening en notarisatiestatus staan bij de knop.
Tijdsleutel voor macOS
Versie 1.3.3 voor Apple Silicon, vanaf macOS 13. Download Tijdsleutel en sleep de app naar Programma’s.
Nieuw in deze versie
- Feedback sturen vanuit Instellingen, met app- en macOS-versie vooraf ingevuld.
- Ook zonder contactgegevens een probleem, idee of vraag doorgeven.
Eerste keer openen
macOS kan bij de eerste keer openen om toestemming vragen. Volg dan de onderstaande stappen voor het hier gedownloade pakket.
- Download het DMG-bestand en probeer het te openen. Verschijnt de melding “niet geopend”? Klik op Gereed.
- Open Systeeminstellingen → Privacy en beveiliging. Scrol naar Beveiliging en kies Open toch bij Tijdsleutel.
- Bevestig met je Mac-wachtwoord of Touch ID en open het DMG-bestand opnieuw.
- Sleep Tijdsleutel naar Programma’s, werp de schijfkopie uit en start de app. Verschijnt voor de app opnieuw een melding, herhaal dan de toestemmingsstap.
Meld een probleem of deel een idee ↗
SHA-256 · Bestand controleren
8c5b3fe57e5c3120058ad9083616e9aaf65be794e81cb3933c479afa642379a8Bereken lokaal de SHA-256 van het gedownloade bestand en vergelijk de volledige waarde. Een match bevestigt de overeenkomst met deze opgave, niet de veiligheid van de software.
De SHA-256 helpt controleren of het gedownloade bestand overeenkomt met het aangeboden pakket. Een overeenkomst zegt niets over ondertekening, notarisatie of een onafhankelijke beveiligingsaudit.
De beschreven updater staat onder Instellingen → Updates. Daar kun je een update laten ophalen via Bijwerken en herstarten.
Een probleem of idee kun je doorgeven via het feedbackformulier of Instellingen → Feedback. De app vult versiegegevens in. Voeg zelf geen codes of geheime sleutels toe.
Een kleine handeling die ik nu dagelijks anders doe
Wat begon als een manier om mijn telefoon op tafel te laten liggen, is nu een app die ik iedere dag gebruik. De koppeling met Codex kwam erbij omdat ik haar zelf nodig had. Dat is precies wat ik prettig vind aan eigen software: ik kan verder bouwen wanneer mijn werk daarom vraagt.6
Bronnen en toelichting
Bronnen bij TOTP, release 1.3.3 en mijn dagelijks gebruik met Codex. De gebruiksstatus en screenshots zijn van 18 oktober 2026. De openbare RFC-testvectoren demonstreren het protocol.
De oorspronkelijke projectbasis. De actuele gebruiksstatus staat bij bron 6.
Verificatiecodes tonen en gebruiken met Apple Wachtwoorden.
De TOTP-berekening en de openbare testvectoren in Appendix B. Dit zijn protocolvoorbeelden.
De eigenschappen en beperkingen van OTP-authenticatie, waaronder phishinggevoeligheid.
De websitebestanden voor de downloadroute. Dit document beschrijft de website, niet de beveiliging van de Mac-app.
Mijn bevestiging van dagelijks gebruik van versie 1.3.3, build 8, de menubalk, PostgreSQL-back-ups en de koppeling met Codex. Geen onafhankelijke beveiligingsaudit.
