Privacy - Wat niemand over je mag weten

Je e-mailadres staat onversleuteld in de barcode op je PostNL-pakket

10-02-2026, 17:39 door Componix, 2 reacties
Ik kwam er onlangs achter dat de 2D-barcode op PostNL-pakketlabels veel meer informatie bevat dan je zou verwachten -- inclusief je e-mailadres. De data is alleen gecomprimeerd (deflate), niet versleuteld. Iedereen met basiskennis kan dit uitlezen.


WAT ZIT ER IN DE BARCODE?

De code op een PostNL-label begint met een herkenbare prefix (bijv. PNL3STUNM...) gevolgd door een blok base64-gecodeerde data. Als je die base64 decodeert en vervolgens deflate-decompressie toepast (vanaf offset 1), krijg je een binaire structuur met daarin in plain text:

- Achternaam
- Voornaam
- Straatnaam + huisnummer
- Postcode
- Woonplaats
- Datum
- E-mailadres


HOE REPRODUCEER JE DIT?

Neem de lange code van een PostNL-label (de string die begint met PNL3S...). Knip het prefix eraf tot aan het base64-gedeelte (herkenbaar aan de + en = tekens en alfanumerieke karakters). Decode vervolgens:

import base64, zlib

b64_data = "<plak hier het base64 gedeelte>"
raw = base64.b64decode(b64_data)
decompressed = zlib.decompress(raw[1:], -15)

for line in decompressed.split(b'\x00'):
text = line.decode('utf-8', errors='ignore').strip()
if len(text) > 2:
print(text)

Je ziet dan je volledige NAW-gegevens en e-mailadres voorbijkomen.


WAAR KOMT DAT E-MAILADRES VANDAAN?

PostNL vraagt webshops actief om het e-mailadres van de ontvanger mee te sturen bij het aanmaken van een verzendlabel. In hun officiele Labelling API documentatie (https://developer.postnl.nl) staat bij het Contact type:

"Please add the e-mail address of the receiver to improve the
Mijn PostNL experience of your customer."

Dit e-mailadres wordt vervolgens opgenomen in de gecomprimeerde data die in de barcode op het fysieke label terechtkomt. Voor bepaalde producten (avondlevering, ophalen bij PostNL-punt) is het zelfs verplicht om minstens e-mail, SMS-nummer of telefoonnummer mee te sturen.


WAAROM IS DIT EEN PROBLEEM?

1. Geen encryptie
De data is alleen gecomprimeerd, niet versleuteld. Decompressie is triviaal.

2. Meer data dan zichtbaar
Op het label zelf zie je naam en adres in leesbare tekst. Maar het e-mailadres is alleen zichtbaar als je de barcode decodeert. Een consument verwacht niet dat zijn e-mailadres fysiek op een pakketlabel staat.

3. Dataminimalisatie (AVG art. 5 lid 1c)
Het e-mailadres is niet nodig voor de fysieke bezorging. Waarom zit het dan in een barcode die iedereen kan scannen?

4. Transparantie (AVG art. 13/14)
PostNL informeert consumenten niet dat hun e-mailadres in de barcode op het pakket zit. De privacyverklaring noemt het verwerken van e-mailadressen, maar niet dat deze fysiek uitleesbaar op het pakket staan.

5. Praktisch risico
Iedereen die een foto maakt van je pakketlabel -- een buurman, iemand in een sorteercentrum, een voorbijganger bij een stapel retouren -- kan met een simpel script je naam, adres en e-mailadres achterhalen. Dat is een combinatie die bruikbaar is voor gerichte phishing.


WAT IK NIET HEB GEVONDEN

Ik heb uitgebreid gezocht op Tweakers, Radar-forum, Security.nl en in internationale bronnen. Er zijn wel discussies over PostNL en privacy (QR-code scannen bij pakketpunten, metadata van brieven, clipboard-uitlezing door de app), maar het feit dat het e-mailadres onversleuteld in de barcode op het pakketlabel staat lijkt nog nergens publiek beschreven te zijn.


ADVIES

- Scheur altijd het label van je pakket voordat je de doos weggooit
- Overweeg bij webshops een apart e-mailadres te gebruiken voor bestellingen
- PostNL zou de data in de barcode moeten versleutelen, of op z'n minst het e-mailadres eruit moeten halen -- het is niet nodig voor de bezorging

Ik ben benieuwd of anderen dit kunnen bevestigen met hun eigen pakketlabels.
Reacties (2)
Gisteren, 16:04 door Anoniem
Heb je dit aan ChatGPT gevraagd? Volgens mij zit er alleen een ouderwetse streepjescode op een bezorgd pakketje met PostNL. Deze zal vermoedelijk coderen naar de alfanumerieke code die daaronder staat.

Deze code (samen met de postcode en huisnummer die ook op het label staan) is genoeg om in te loggen bij PostNL en allerlei dingen te weten te komen. Zoals het adres van de afzender (voor retour) en het gewicht en de afmetingen van het pakketje.

Een streepjescode zoals ik die ken kan al de gegevens die je noemt niet bevatten. Een e-mail adres kan immers heel lang zijn en mag in geen teken verschillen anders werkt die niet meer.

Het tijdstip van bezorging is natuurlijk op de site van PostNL op te vragen met de track en trace code. Het is sowieso een goed idee om deze te vernietigen voor je de doos weg doet.

De barcode waar ik het over heb is overigens 1D. Niet 2D of 3D.
Gisteren, 20:37 door Anoniem
Door Anoniem: Heb je dit aan ChatGPT gevraagd? Volgens mij zit er alleen een ouderwetse streepjescode op een bezorgd pakketje met PostNL. Deze zal vermoedelijk coderen naar de alfanumerieke code die daaronder staat.

Deze code (samen met de postcode en huisnummer die ook op het label staan) is genoeg om in te loggen bij PostNL en allerlei dingen te weten te komen. Zoals het adres van de afzender (voor retour) en het gewicht en de afmetingen van het pakketje.

Een streepjescode zoals ik die ken kan al de gegevens die je noemt niet bevatten. Een e-mail adres kan immers heel lang zijn en mag in geen teken verschillen anders werkt die niet meer.

Het tijdstip van bezorging is natuurlijk op de site van PostNL op te vragen met de track en trace code. Het is sowieso een goed idee om deze te vernietigen voor je de doos weg doet.

De barcode waar ik het over heb is overigens 1D. Niet 2D of 3D.

Een postnl doosje dat ik toevallig nog had staan heeft zowel een barcode met alleen het track-trace nummer (3Sxxx) , maar ook een heel dichte QR code met beduidend meer informatie .

QR codes kun je als "2D barcodes" zien.

En TS heeft gelijk - in de gedecodeerde data zit de bezorginformatie (ook "gewoon" leesbaar) plus mailadres.

Mooi gevonden, Componix.
Reageren
Ondersteunde bbcodes
Bold: [b]bold text[/b]
Italic: [i]italic text[/i]
Underline: [u]underlined text[/u]
Quote: [quote]quoted text[/quote]
URL: [url]https://www.security.nl[/url]
Config: [config]config text[/config]
Code: [code]code text[/code]

Je bent niet en reageert "Anoniem". Dit betekent dat Security.NL geen accountgegevens (e-mailadres en alias) opslaat voor deze reactie. Je reactie wordt niet direct geplaatst maar eerst gemodereerd. Als je nog geen account hebt kun je hier direct een account aanmaken. Wanneer je Anoniem reageert moet je altijd een captchacode opgeven.