ID.nl logo
Programmeren in Python met ChatGPT - Deel 1
© Generative ART - stock.adobe.com
Huis

Programmeren in Python met ChatGPT - Deel 1

ChatGPT is een handige tool van OpenAI waaraan je allerlei vragen kunt stellen. Maar het is ook mogelijk om de slimme chatbot in je eigen programma’s in te zetten. In deze nieuwe reeks leren we je hoe je ChatGPT in Python gebruikt en zo teksten samenvat, informatie uit teksten haalt, teksten vertaalt of een eigen chatbot creëert.

In dit eerste deel zetten we alles op om ChatGPT in Python te kunnen gebruiken en zetten we de eerste stappen:

  • Eerst installeren we Python en Visual Studio Code
  • Dan regelen we de API-toegang
  • En dan gaan we aan de slag met onze eerste prompts

Lees ook: Haal betere resultaten uit ChatGPT met slimme prompts

ChatGPT is een chatbot met uitgebreide mogelijkheden. Je geeft instructies in een tekstvenster en krijgt een antwoord terug. Je kunt zelfs een hele conversatie voeren en extra vragen stellen. De tool is ontwikkeld door OpenAI en getraind op een grote dataset van teksten.

De dienst is gratis uit te proberen, maar je moet er wel voor aanmelden. Bezoek hiervoor de OpenAI-website en klik op Sign up. Voer een e-mailadres en een wachtwoord in, of meld je aan met een bestaand account bij Google, Microsoft of Apple. OpenAI stuurt een e-mail naar je opgegeven adres; klik op de link om je e-mailadres te bevestigen. Daarna vul je je naam en een mobiel telefoonnummer in. OpenAI stuurt een zescijferige code via sms naar je telefoon, die je op de website invoert om je account aan te maken.

Je bent nu aangemeld op de website, die vanaf nu ook te openen is via de pagina https://chat.openai.com. Je krijgt enkele voorbeelden te zien van vragen die je kunt stellen en een overzicht van de mogelijkheden en beperkingen. In het tekstveld onderaan begin je een conversatie met ChatGPT. Maar daarover gaat deze workshop niet, want we gaan die conversaties in onze eigen software integreren. Dat kan met hetzelfde account die je voor de website hebt aangemaakt.

Op de website van ChatGPT voer je eenvoudig conversaties met de chatbot.

Python installeren

In deze reeks van vijf workshops gaan we de mogelijkheden van ChatGPT gebruiken in onze eigen programma’s, die we schrijven in de programmeertaal Python. In macOS en Linux is Python al standaard geïnstalleerd. In Windows ga je naar de downloadpagina van Python en installeer je de nieuwste Python-versie.

Start het gedownloade installatieprogramma. In het installatievenster vink je Add python.exe to PATH aan. De optie Use admin privileges when installing py.exe staat standaard ook aangevinkt. Als dat niet hoeft, omdat je alleen met je huidige gebruikersaccount Python wilt gebruiken, zet dit dan gerust uit. Klik daarna bovenaan op Install Now. Klik in de laatste stap op Close. Na de installatie open je de Opdrachtprompt en typ je het volgende in om te testen of Windows de Python-opdracht herkent:

python --version

Je zou nu het versienummer van de geïnstalleerde Python te zien moeten krijgen.

Installeer Python en voeg python.exe aan je pad toe.

Visual Studio Code

Om je programma’s te schrijven heb je een code-editor nodig. In deze workshop gebruiken we Visual Studio Code, een gratis en uitbreidbare code-editor van Microsoft die zowel op Windows, macOS als Linux draait. Klik links op de website op de blauwe knop Download for Windows - Stable Build. Wanneer de download is voltooid, voer je het installatieprogramma uit. Je kunt in de eerste stap een taal kiezen, maar helaas geen Nederlands. Accepteer de licentieovereenkomst en vink eventueel optionele acties aan.

Nadat je Visual Studio Code geopend hebt, klik je in de linkerzijbalk op het icoontje met de blokjes of je drukt op Ctrl+Shift+X om de Extensions Marketplace te openen. Installeer daar de uitbreiding Python van Microsoft. Deze zal je helpen met het schrijven van Python-code en maakt gebruik van de Python-installatie uit de vorige stap om je code uit te voeren.

Installeer de Python-uitbreiding in Visual Studio Code.

API-toegang

Om nu vanuit onze eigen Python-code toegang tot ChatGPT te krijgen, moeten we eerst een API-sleutel aanvragen. API staat voor Application Programming Interface en is een set afspraken waarmee ons programma de diensten van OpenAI kan gebruiken. Elke keer dat we ChatGPT willen gebruiken in ons programma, moeten we die sleutel meegeven.

Meld je met je OpenAI-account aan op https://platform.openai.com en klik rechts bovenaan op je profiel. In het menu dat verschijnt, klik je op View API keys. Klik dan op Create new secret key, vul een naam in voor je sleutel en klik op Create secret key. Je krijgt dan je sleutel te zien, een lange reeks tekens.

Kopieer de sleutel en gebruik hem in de volgende paragraaf van deze workshop. Let op: nadat je op Done hebt geklikt, krijg je de sleutel nooit meer te zien; ben je de sleutel kwijt, dan moet je een nieuwe aanmaken.

Nieuwe accounts krijgen een klein bedrag gratis voor gebruik van de OpenAI-API. Nadien moet je in Billing betaalgegevens invullen.

Maak een API-sleutel aan bij OpenAI.

Python-code

Klik nu in Visual Studio Code op File / New File… / Python File. Plaats hierin de volgende Python-code:

Klik op de afbeelding voor een grotere weergave.

Met import openai importeren we de Python-module die OpenAI aanbiedt om de API te gebruiken. Tussen de aanhalingstekens na API_KEY plak je je eigen API-sleutel. DEFAULT_MODEL verwijst naar het taalmodel dat we willen gebruiken. Zie het kader ‘GPT-4’ als je het nieuwere taalmodel van ChatGPT wilt gebruiken.

Daarna maken we een hulpfunctie om gemakkelijker met de OpenAI-API te werken. Aan die functie geven we een prompt door (dat is de vraag die je stelt) en een optioneel model. De functie creëert dan een completion en haalt hieruit het resultaat. Op die manier kunnen we eenvoudig een prompt aan de functie doorgeven en het resultaat met print op de opdrachtregel tonen, zoals je in de laatste drie regels van dit Python-script ziet.

GPT-4 In deze workshopreeks maken we gebruik van GPT-3.5, het taalmodel dat ChatGPT standaard aanbiedt. Er is nog een betere versie, GPT-4. Op de website van ChatGPT krijg je hier toegang tot wanneer je een ChatGPT Plus-abonnement hebt (dat kost ca. 23 euro per maand), zij het met een beperking op het aantal boodschappen per uur.

Maar dat account staat los van de toegang tot GPT-4 via de OpenAI-API. Hiervoor moet je je inschrijven op een wachtlijst. Wanneer je toegelaten bent, kun je in de OpenAI-API GPT-4 gebruiken door in je Python-code het model gpt-3.5-turbo te vervangen door gpt-4.

Let op: het gebruik van GPT-4 kost je een factor tien meer dan dat van GPT-3.5. Bekijk zeker de pagina met prijzen van OpenAI en bezoek regelmatig de pagina Usage in je OpenAI-profiel. Voor de zekerheid kun je ook een gebruikslimiet instellen.

Stel in voor hoeveel geld per maand je de API kunt gebruiken.

Eerste API-gebruik

Sla het codebestand uit de vorige paragraaf in Visual Studio Code op met Ctrl+S en geef het een naam. Klik dan op Terminal / New Terminal, waarna er onder je code een nieuw deelvenster opent met een opdrachtprompt. Typ hierin de volgende opdracht om de OpenAI-module voor Python te installeren:

pip install openai

Klik na de installatie rechts bovenaan op het afspeelknopje (het driehoekje met als je er met je muis boven blijft hangen de tooltip Run Python File). Als alles goed gaat, krijg je nu in de terminal een antwoord op de vraag die je in de variabele prompt in je code hebt gezet.

Onze eerste Python-code die van ChatGPT gebruikmaakt.

Tokens

Een belangrijk concept bij gebruik van de OpenAI-API zijn tokens. Een token is een vaak voorkomende opeenvolging van tekens, zoals letters, cijfers of leestekens. Hier kun je zelf zien uit welke tokens een ingevoerde tekst bestaat.

Het taalmodel produceert token na token, gebaseerd op de kans dat ze na de vorige tokens komen. Een token kan een volledig woord of een deel van een woord zijn. Voor Engelse tekst komen 100 tokens ruwweg met 75 woorden overeen. Standaard genereert ChatGPT en dus ook ons Python-script een antwoord met zoveel tokens als er nodig zijn, maar je kunt dit inperken door de parameter max_tokens toe te voegen. De aanroep van openai.ChatCompletion.create ziet er dan als volgt uit:

Dat aantal tokens is belangrijk, omdat je voor het gebruik van OpenAI-API betaalt per token. Voor veelvuldig geautomatiseerd gebruik van de API kan het dus de moeite zijn om een maximum aantal tokens in te stellen. Overigens levert dit wel vaak een antwoord op dat bruusk afgebroken is.

Heel wat woorden worden gecodeerd als één token. Andere bestaan uit meerdere tokens.

Parameters

Als je het Python-script uitvoert, zul je merken dat het altijd hetzelfde antwoord geeft. Dat is omdat we de parameter temperature de waarde 0 gegeven hebben. Je kunt deze parameter een waarde van 0 tot 2 geven, waarbij 0 betekent dat het antwoord elke keer hetzelfde is en hogere waardes een willekeuriger antwoord opleveren. Als je de waarde niet instelt, staat ze op 1, wat redelijk wat variatie tot gevolg geeft. Probeer het effect van de parameter maar eens uit door de parameter temperature in je code enkele andere waarden te geven en je script meerdere keren uit te voeren.

Twee andere parameters (die we hier niet hebben gebruikt) zijn presence_penalty en frequency_penalty. Beide hebben een standaardwaarde 0 en kunnen variëren van -2 tot 2. Met een positieve presence_penalty verlaag je de kans dat al gebruikte tokens nog eens in de tekst voorkomen. Dat verhoogt de kans dat het model over nieuwe onderwerpen begint. Met een positieve frequency_penalty wordt de kans dat een token gebruikt wordt verlaagd naarmate hij al vaker is gebruikt. Dat verlaagt dus concreet de kans dat het model een zin letterlijk herhaalt.

In de praktijk pas je deze twee parameters niet zo vaak aan. Ze zijn wel nuttig als je merkt dat het model voor specifieke vragen wat repetitieve antwoorden geeft. Probeer dan beide parameters eens op een waarde tussen 0,1 en 1 te zetten om die herhaling wat te verminderen.

Met temperatuur 1 geeft ons Python-script altijd een iets verschillend antwoord op dezelfde vraag.

Maak je prompts specifieker

Net zoals bij het gebruik van ChatGPT op de website zijn de resultaten bij het gebruik van de API bruikbaarder wanneer je je prompts zo specifiek mogelijk maakt. Een eerste tip is dat je gewoon aangeeft hoe lang de tekst moet zijn. Bijvoorbeeld met de volgende prompt:

prompt = "Beschrijf het magazine Computer Idee in maximum 50 woorden"

Dat geeft doorgaans een beter resultaat dan de parameter max_tokens, omdat de tekst dan tenminste niet bruusk wordt afgekapt. Maar omdat het taalmodel geen woorden kan tellen en intern met tokens werkt, kan de opgegeven limiet weleens overschreden worden. Je moet dit dus altijd nog zelf testen als de opgegeven limiet belangrijk is. Toon bijvoorbeeld het aantal woorden in de uitvoer met de volgende regel op het einde van het Python-bestand:

print("Aantal woorden:", len(response.split(" ")))

Vraag om een specifiek format

Een andere manier om je prompts specifieker te maken, is dat je het taalmodel vraagt om zijn antwoord in een specifiek format te geven. Bijvoorbeeld met:

Klik op de afbeelding voor een grotere weergave.

Met de drie aanhalingstekens maken we een multi-line-string in Python aan, waardoor we eenvoudig een prompt over meerdere regels kunnen spreiden voor wat meer overzicht. En het antwoord van ons script is nu ook kernachtiger en duidelijker.

Vraag het taalmodel om zijn antwoord in een specifiek format te formuleren.

Vermijd hallucinaties

Taalmodellen hebben de neiging om antwoorden te verzinnen als ze kennis missen over je vraag. Stel je bijvoorbeeld de vraag om het magazine Computer Power te beschrijven (dat niet bestaat!), dan verzint ons script een Belgisch tijdschrift met die naam. Deze neiging noemen we ‘hallucinaties’ en je moet hier altijd beducht op zijn, ook bij het gebruik van ChatGPT op de website.

Je kunt die neiging wel wat afzwakken door in je prompt expliciet te zeggen wat het taalmodel moet doen als het niet voldoende informatie heeft:

prompt = "Beschrijf het magazine Computer Power in maximum 50 woorden. Als je niets over het magazine weet, zeg dit dan."

Daarop antwoordt ons script dat het dit magazine niet kent, maar dat het waarschijnlijk over computers en technologie gaat.

Meer informatie

Wil je meer weten over het gebruik van de OpenAI-API, lees dan de ‘API reference’ op de website van OpenAI, en dan specifiek die van ChatCompletion. Hier vind je meer informatie over de verschillende parameters.

En wil je meer leren over hoe je het meeste uit de taalmodellen haalt met de juiste prompts, bekijk dan zeker het webinar ChatGPT Prompt Engineering for Developers van DeepLearning.AI, dat we hebben geraadpleegd bij het schrijven van deze workshopreeks.

De OpenAI-API is uitgebreid gedocumenteerd, inclusief voorbeelden van het gebruik in Python en Node.js.

Andere programmeertalen In deze workshopreeks gaan we aan de slag met de OpenAI-API in Python, maar OpenAI biedt naast zijn Python-module ook een officiële bibliotheek voor Node.js (JavaScript) aan op de pakketbeheerder npm. Die is vergelijkbaar met de Python-module die we in dit artikel introduceren. Dus als je liever in JavaScript programmeert, zou je deze workshopreeks met wat kleine aanpassingen ook moeten kunnen volgen.

Daarnaast zijn er ook allerlei bibliotheken voor andere talen ontwikkeld door derden. Dus als je graag in C# programmeert, in Java of in Swift, kun je zeker ook gebruikmaken van de OpenAI-API. In de documentatie van OpenAI staat een lijst van bibliotheken die de API gebruiken.

Volgende week maandag het tweede deel van deze reeks! We gaan hierin de kennis uit dit eerste deel toepassen om teksten te laten samenvatten door een taalmodel.

Vervolg: Deel 2: Programmeren in Python met ChatGPT

▼ Volgende artikel
Waar voor je geld: 5 betaalbare pizzarettes voor minder dan 100 euro
© ID.nl
Huis

Waar voor je geld: 5 betaalbare pizzarettes voor minder dan 100 euro

Bij ID.nl zijn we dol op kwaliteitsproducten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we binnen een bepaald thema naar zulke deals. Gek op Italiaans eten? Kijk dan eens naar een pizzarette: een elektrische tafeloven waarbij iedereen aan tafel zijn eigen mini-pizza's kan beleggen en bakken. Wij vonden er vijf voor je.

Een pizzarette is een elektrische tafeloven met een terracotta koepel, vergelijkbaar met gourmetten. Iedereen aan tafel belegt zijn eigen mini-pizza en schuift deze via openingen in de oven. Binnen enkele minuten heb je een versgebakken, krokante pizza. Het is een gezellige, sociale manier om samen te eten. Wij vonden vijf mooie modellen voor een gezellige avond voor minder dan 100 euro.

Emerio PO‑115848 Pizzarette

Dit model van Emerio is geschikt voor zes personen maar heeft een iets ander ontwerp. De terracottadom is gecombineerd met een stevige kunststof basis met antislipvoetjes. Het apparaat gebruikt ongeveer 1200 watt, wat betekent dat de pizzarette snel op temperatuur komt. De bakplaat is voorzien van een antiaanbaklaag waardoor deeg niet blijft plakken en je weinig tot geen olie nodig hebt. Je kunt de pizzarette niet alleen voor pizza gebruiken; met de zes bijgeleverde spatels maak je ook minipannenkoekjes of wraps. Bovenop de dom bevinden zich kleine openingen zodat stoom kan ontsnappen, wat een knapperige korst bevordert. Een controlelampje laat zien wanneer de oven klaar is voor gebruik.

Review.nlis hét testpanel-platform van Kieskeurig.nl waar je als consument de unieke kans krijgt om de nieuwste producten, zoals elektronica en huishoudelijke apparaten, uitgebreid thuis te proberen. Het concept is eenvoudig: je meldt je aan voor specifieke testacties die jou aanspreken. Word je geselecteerd, dan ontvang je het product om het enkele weken in je eigen omgeving te gebruiken.

In ruil voor deze ervaring deel je jouw ongezouten, eerlijke mening in een review om andere kopers te helpen. Na de testperiode is het zelfs soms mogelijk om het product met een mooie korting over te nemen.

Ariete 919 pizzaoven

Wat deze pizzarette uniek maakt, is de speciale 'Pre-Bake' functie op de platte bovenkant van de handgemaakte terracotta koepel. Hiermee bak je het deeg kort voor voordat je het belegt, wat garandeert dat je pizza’s een perfecte, krokante bodem krijgen en niet zompig worden door de tomatensaus. De poreuze terracotta koepel absorbeert bovendien vocht tijdens het bakken, wat bijdraagt aan die authentieke steenoven-smaak. Dankzij het krachtige vermogen van 1500 Watt zijn de creaties in slechts enkele minuten gaar en knapperig. De set is compleet uitgevoerd met acht geïsoleerde bakspatels en een handige deeguitsteker, zodat je direct aan de slag kunt. Of het nu voor een kinderfeestje is of een uitgebreid diner, met deze Emerio Pizzarette wordt samen eten een culinair feestje zonder gedoe.

Emerio PO‑115985 Pizzarette

Voor kleinere gezelschappen is er de Emerio PO‑115985. Deze compacte pizzarette is ontworpen voor vier personen en heeft een vermogen van 900 watt. Net als bij de andere modellen zorgt een terracottadom voor een gelijkmatige warmteverdeling. De bakplaat is voorzien van een antiaanbaklaag waardoor je deeg of andere ingrediënten eenvoudig omdraait. Het apparaat wordt geleverd met vier hittebestendige spatels en heeft ventilatieopeningen om overtollige stoom af te voeren. Met dit toestel bak je niet alleen pizza’s; je kunt er ook kleine broodjes of taartjes mee maken. Doordat het model compacter is, neemt het minder ruimte in op tafel.

Tristar PZ‑9160 Pizza Festa Gourmet

De Tristar PZ‑9160 onderscheidt zich doordat hij drie functies combineert: pizza’s bakken, raclette en gourmetten. Dit tafeltoestel van 1800 watt heeft een grote ronde bakplaat waarboven je een terracottadom plaatst voor pizza’s. Onder dezelfde kap kun je ook kleine pannetjes gebruiken voor kaas of vlees; ze zijn voorzien van een antiaanbaklaag en worden verlicht door een indicatielampje. De temperatuur stel je handmatig in via een draaiknop en een controlelampje geeft aan wanneer het toestel warm is. De set wordt geleverd met zes spatels, zodat je met zes personen kunt koken. Dankzij de antislipvoetjes blijft de unit stabiel op tafel. De PZ‑9160 is sinds 2021 verkrijgbaar.

Emerio Pizzarette PO‑1158471

De Emerio PO‑1158471 is de vierpersoonsversie van de bekende pizzarette. Dit apparaat verbruikt ongeveer 1100 watt en heeft een keramische bakplaat met een antiaanbaklaag, zodat pizza’s niet vastplakken. De terracottadom zorgt voor een gelijkmatige warmte en een knapperige korst. Openingen aan de bovenkant laten stoom ontsnappen en voorkomen dat de pizza te vochtig wordt. Bij de set krijg je vier spatels met geïsoleerde handvatten. Omdat dit model kleiner is, neemt het niet veel plaats in op tafel en is het ook geschikt voor kleinere huishoudens. De pizzarette is geschikt voor gebruik met kant‑en‑klare pizzabodems of zelfgemaakt deeg.

▼ Volgende artikel
Slim wachtwoordbeheer: zo houd je je accounts écht veilig
© Queenmoonlite Studio - stock.adobe.com
Huis

Slim wachtwoordbeheer: zo houd je je accounts écht veilig

Hoewel wachtwoordloze technieken als toegangssleutels snel terrein winnen, doe je er voorlopig goed aan slim om te gaan met je huidige wachtwoorden. De tips en (gratis) tools in dit artikel helpen je bij het opzetten van degelijk wachtwoordbeheer.

Dit gaan we doen

Sterke wachtwoorden en tweestapsverificatie blijven voorlopig onmisbaar, ook nu toegangssleutels opkomen. In dit artikel lees je hoe je veilig en praktisch met wachtwoorden omgaat. Je ontdekt welke gratis tools je helpen – zoals Bitwarden voor cloudbeheer of KeePassXC voor lokale opslag – en hoe je 2FA en authenticatie-apps toevoegt voor extra bescherming. Verder komt aan bod hoe je datalekken opspoort, phishing voorkomt, herstelcodes bewaart en aparte browserprofielen instelt voor gevoelige accounts. Tot slot lees je hoe toegangssleutels werken, de toekomst van wachtwoordloos inloggen.

Lees ook: Bescherm je data: voorkom digitale beveiligingslekken

Cloudbeheer

Telkens hetzelfde wachtwoord gebruiken voor meerdere apps en diensten is sterk af te raden, maar verschillende complexe wachtwoorden onthouden lukt haast niet zonder een wachtwoordbeheerder. Een degelijke, gratis optie is het opensource Bitwarden. Kies eerst een hoofdwachtwoord en installeer daarna de desktop-app, browserextensies (voor automatisch invullen) en/of de mobiele app. Je wachtwoordkluis wordt end-to-end versleuteld in de cloud bewaard en wordt via je account gesynchroniseerd. Kies bij voorkeur bitwarden.eu als serverlocatie. Je kunt ook creditcards en andere gevoelige gegevens in je kluis bewaren.

De webversie van Bitwarden is nog handiger als je ook de browserextensie installeert.

Lokaal beheer

Bitwarden is een uitstekende wachtwoordmanager, maar functies als TOTP-authenticatie (Time-based One-Time Password) zijn alleen beschikbaar in de betaalde versie. Misschien stoort het je ook dat je wachtwoordkluis in de cloud wordt opgeslagen. Een gratis, opensource-alternatief is KeePassXC. Deze bewaart alles lokaal in een versleuteld bestand, van wachtwoorden en creditcards tot notities. De app werkt volledig offline, ondersteunt ook TOTP-authenticatie en vult inloggegevens automatisch in via een browserextensie. Wil je toch synchronisatie, dan kun je de database delen via een cloudopslagdienst als Google Drive of Dropbox, of met Syncthing.

KeePassXC is een volwaardige wachtwoordmanager, weliswaar offline.

Algoritme

Bij wachtwoordbeheerders als Bitwarden en KeePassXC worden je wachtwoorden opgeslagen. LessPass pakt het anders aan. Deze bewaart niets, maar genereert je wachtwoorden telkens opnieuw via een algoritme op basis van je hoofdwachtwoord, gebruikersnaam en sitenaam. Uit veiligheidsoverwegingen gebruik je hiervoor liefst de browserextensie of mobiele app, zodat alles lokaal gebeurt. Omdat nergens iets wordt opgeslagen, is dit systeem veilig, maar je moet bij elke herberekening wel exact dezelfde gegevens ingeven. Automatisch invullen of ondersteuning voor notities ontbreekt helaas.

LessPass: veiliger, maar het luistert nauw en is omslachtiger.

Browsers

Gebruik je bijna uitsluitend je browser voor allerlei aanmeldingen, dan kun je ook de ingebouwde wachtwoordbeheerfunctie gebruiken. Deze zit in de meeste Chromium-browsers en in Firefox. In Chrome ga je naar Instellingen / Jij en Google / Synchronisatie en Google-services. Schakel de functie in en zorg dat bij Beheren wat je synchroniseert ook Wachtwoorden en toegangssleutels is aangevinkt. Wil je liever niet synchroniseren, dan kun je wachtwoorden ook handmatig exporteren en importeren via Instellingen / Automatisch invullen en wachtwoorden / Google Wachtwoordmanager. Kies daar Instellingen en Wachtwoorden exporteren. Je kunt het opnieuw inladen via Wachtwoorden importeren. Verwijder eventueel het csv-bestand na gebruik. Firefox biedt vergelijkbare opties.

In onder meer Chrome kun je wachtwoorden (en meer) via je account laten synchroniseren.

2FA

Zelfs met een degelijke wachtwoordbeheerder blijven wachtwoorden een zwakke schakel: ze zijn te eenvoudig, je vergeet of verliest ze, je geeft ze in op phishing-sites of malware onderschept ze. Daarom is het aangeraden om 2FA, oftewel tweestapsverificatie, te activeren. Daarbij is naast je wachtwoord een extra factor nodig, zoals een pincode, TOTP, sms, pushmelding, biometrie of een beveiligingssleutel. Een handig overzicht van sites en diensten die 2FA ondersteunen, met info over de gebruikte methoden en links naar de instelinstructies, vind je op https://2fawebsites.github.io en op de thematische https://2fa.directory.

Een uitgebreide lijst met diensten die 2FA ondersteunen.

Authenticator

Er bestaan meerdere verificatiemethoden voor 2FA, maar vrijwel alle diensten ondersteunen verificatie zowel via sms als via TOTP. Bij TOTP is geen internet of gsm-netwerk nodig, wat het minder kwetsbaar maakt voor onderschepping of sim-swapping. Om zulke codes te genereren heb je een TOTP-authenticator-app nodig. Goede gratis opties zijn Google Authenticator, Microsoft Authenticator (ondersteunt geen wachtwoordbeheer en autofill meer), Aegis Authenticator en Authy. Alle vier ondersteunen TOTP en bieden een back-upfunctie. Wil je je codes exporteren, dan lukt dit het best met Google of Aegis. Deze laatste is ook opensource, maar is enkel beschikbaar voor Android. Authy is veelzijdigst, want bruikbaar op Android, iOS, macOS en Windows.

Export van TOTP-codes in Google Authenticator (voor gebruik op een ander apparaat).

Herstelcodes

De meeste diensten met 2FA laten je ook herstelcodes gebruiken. Deze bieden een uitweg als je tijdelijk geen toegang hebt tot andere aanmeldopties, bijvoorbeeld bij verlies van je smartphone. Bewaar deze herstelcodes tevens digitaal, zoals in het notitiegedeelte van je favoriete wachtwoordmanager, in een versleutelde VeraCrypt-container of in een versleuteld cloudbestand. Bij Google vind je tot 10 herstelcodes via https://myaccount.google.com/security, bij Back-upcodes. Bij Microsoft is dit beperkt tot één code: ga naar https://account.microsoft.com/security, klik op Beheren hoe ik me aanmeld en kies Een nieuwe code genereren.

Bij Microsoft kun je slechts één herstelcode tegelijk activeren.

Gehackt?

Het is verstandig om regelmatig te controleren of een van je login-id's al in een online datalek voorkomt. Dit kan via Have I Been Pwned. Hier vul je e-mailadres in en je ziet meteen hoeveel en welke datalekken er zijn. Klik bovenaan op Notify Me voor een gratis melding zodra je adres in een nieuw lek opduikt. Klik op Passwords om te controleren of een wachtwoord reeds voorkomt in een datalek.

In Chrome kun je via chrome://password-manager/checkup?start=true eveneens een wachtwoordcheck uitvoeren. Je ziet ook hoeveel wachtwoorden zwak zijn of worden hergebruikt.

Een weinig opbeurend rapport: zestien datalekken gevonden.

Anti-phishing

Wachtwoorden bieden weinig bescherming tegen phishing-sites, dus zorg ervoor dat je hiertegen zo goed mogelijk beveiligd bent. In je browser, zoals Chrome, ga je naar Instellingen, kies Privacy en beveiliging / Beveiliging en activeer bij voorkeur Geoptimaliseerde beveiliging bij Safe Browsing, of anders Standaardbeveiliging. Daarnaast kun je via DNS phishing-sites al blokkeren voor ze laden. Een optie is het gebruik van de nieuwe Europese publieke DNS4EU-resolvers. Kies hier voor Protective resolution (86.54.11.1 en 86.54.11.201), eventueel aangevuld met kinderbescherming en/of advertentieblokkering. Op de site vind je stap-voor-stap-instructies.

De EU biedt nu ook eigen publieke DNS-filters aan.

E-mailadres

Veel diensten laten je een e-mailadres opgeven ingeval je je wachtwoord vergeet of je account wordt geblokkeerd. Je ontvangt dan een mail om je identiteit te bevestigen en een herstellink te krijgen. Gebruik hiervoor liefst niet je hoofdadres, want als iemand dat via een datalek bemachtigt, kan die herstelmails onderscheppen en je accounts via wachtwoordherstel overnemen. Je kiest dus beter een apart e-mailadres dat je nergens anders voor gebruikt. Bij Google kun je dit instellen op https://myaccount.google.com/security, bij Herstelmailadres.

Je gebruikt bij voorkeur een afzonderlijk adres voor het wachtwoordherstel.

Lees ook: Zo meld je phishing in Outlook en Gmail

Browserprofiel

Voor gevoelige accounts zoals online bankieren of je wachtwoordkluis kun je overwegen een apart browserprofiel te gebruiken. Malafide scripts of extensies uit je standaardprofiel worden zo niet geactiveerd. Zo beperk je ook tracering en fingerprinting, en voorkom je dat je per ongeluk ingelogd blijft, aangezien je in dat profiel geen andere sites bezoekt.

In Chrome maak je een nieuw profiel aan via het profielicoon rechtsboven. Kies Chrome-profiel toevoegen. Je kunt inloggen met een Google-account of klikken op Doorgaan zonder account. Kies een zoekmachine, vul een profielnaam in, selecteer een opvallend thema en klik op Klaar.

Overweeg een afzonderlijk browserprofiel voor privacygevoelige online diensten.

Aanmeldpogingen

Bij sommige diensten, zoals Google en Microsoft, ontvang je automatisch een e-mail of pushmelding zodra een nieuw apparaat of een nieuwe browser inlogt. Zo kun je snel ingrijpen, bijvoorbeeld door je wachtwoord aan te passen of verdachte sessies uit te loggen. Bij Google ga je naar https://myaccount.google.com/security. Scrol naar Je apparaten en klik op Apparaten beheren. Selecteer een sessie en kies Uitloggen. Bij Microsoft ga je naar https://account.microsoft.com/security en klik je op Mijn aanmeldactiviteiten weergeven.

Ook bij Google kun je de recentste sessies (en gekoppelde diensten) bekijken.

Beveiligingssleutel

Je kunt een fysieke beveiligingssleutel (zoals de meeste YubiKeys) ook gebruiken om je wachtwoordkluis te openen in combinatie met je hoofdwachtwoord.

Installeer eerst Yubikey Manager en start dit programma. Ga naar Applications/OTP en klik op Configure bij een vrij slot. Kies Challenge-response en klik op Generate voor een geheime sleutel. Vink Require touch aan voor extra veiligheid. Bevestig met Finish.

Open vervolgens je database in KeePassXC en ga naar Database / Databasebeveiliging. Kies Aanvullende bescherming toevoegen / Challenge-Response toevoegen. Selecteer het juiste slot van je ingeplugde beveiligingssleutel en bevestig met OK.

Voortaan is deze wachtwoordkluis alleen toegankelijk met wachtwoord en token.

Yubikey kopen?

Dan kan gewoon

Browserwachtwoorden

Gebruik je meerdere browsers en zoek je het wachtwoord van een specifieke site, wil je alle wachtwoorden exporteren voor import in een andere browser, of is je systeem gecrasht en wil je de wachtwoorden uit je browserprofielen halen? Dan kan het gratis WebBrowserPassView handig van pas komen (let op: je virusscanner kan een foutpositief geven). Pak het zip-bestand uit met het wachtwoord wbpv28821@ en start de portable app. Je krijgt een overzicht van alle gevonden sites en log-ins. Via Bestand / Geselecteerde items opslaan kun je exporteren naar diverse csv-formaten, zoals voor Chrome, KeePass en Firefox.

Je browserlogins op een presenteerblaadje.

Toegangssleutels

Een mooie afsluiter lijkt ons een tip rond passkeys, oftewel toegangssleutels. Immers, steeds meer diensten (en wachtwoordmanagers) ondersteunen deze aanmeldmethode waarbij je geen wachtwoord meer hoeft in te voeren. Een passkey is een cryptografisch sleutelpaar: de publieke sleutel wordt bewaard bij de onlinedienst, terwijl de (afgeleide) private sleutel veilig op je toestel blijft, zoals je pc, smartphone of een fysieke beveiligingssleutel zoals een Yubikey.

Zo maak je een toegangssleutel aan bij Google. Ga naar https://g.co/passkeys en meld je aan. Klik twee keer op Toegangssleutel maken. Je toestel stelt nu een methode voor, zoals gezichtsherkenning, vingerafdruk of pincode. Bevestig de koppeling. Vanaf nu kun je je bij Google aanmelden vanaf dit toestel, zonder wachtwoord.

Je kunt meerdere toegangssleutels maken voor diverse apparaten.

View post on TikTok