Technical audit · 26.05.2026

ibz.be

Belgian Federal Public Service for the Interior

Belgian Federal Public Service for the Interior — 27 requests, 6 domains. The CookieFirst consent manager correctly blocks Matomo before consent, but Google Fonts slips past it: it loads on page load, transmitting the visitor's IP address to Google (USA) before consent. Google Fonts is not named in the policy, despite the policy stating that no third-party cookies are placed.

Request timeline

+0 ms · portal load
Content and resources served from ibz.be.
+354 ms · Google Fonts before consent
fonts.googleapis.com (×5) and fonts.gstatic.com — Google Fonts (Archivo, Montserrat). The visitor's IP address goes to Google (USA). The consent banner is not yet ready.
+355–549 ms · consent manager
consent.cookiefirst.com — CookieFirst and the consent banner load.
+580 ms · Matomo blocked
matomo.ibz-dev.be/matomo.js — the request returns with status 0: the Matomo script is held back by CookieFirst until consent (correct behavior).

Declared versus actual

✓ 'Aucun cookie de tierce partie ne sera placé' — no third-party cookies are placed — declared
✓ Matomo-Cloud (data centers in Europe) — analytics only after consent — declared
✓ The cookie table is managed by CookieFirst — declared
+ Google Fonts (fonts.googleapis.com, fonts.gstatic.com) — third-party recipient of the IP address from the USA, before consent, not named in the policy — not declared

Transfer timings

+354 ms fonts.googleapis.com

Google Fonts CSS. Google, USA. Not held back by the CMP.

+488 ms fonts.gstatic.com

Google font files. Google, USA.

+580 ms matomo.ibz-dev.be

Matomo held back by CookieFirst until consent. Correct.

Detected trackers

Indicators of GDPR non-compliance

Context

ibz.be is the website of Belgium’s Federal Public Service for the Interior (SPF Intérieur / FOD Binnenlandse Zaken), responsible for the police, security, migration, identity documents, and elections. Controller: SPF Intérieur. The general privacy policy references a separate cookie policy, which was retrieved from the site. Measurement: 27 requests, 6 domains, captured on a clean browser.

Google (USA) — the visitor’s IP address, via the Google Fonts load.

Declared versus actual

ibz.be’s cookie policy states plainly that no third-party cookies are placed when visiting the site (“Aucun cookie de tierce partie ne sera placé”). Analytics are described as Matomo-Cloud with data centers in Europe, installed only after consent. Management of the cookie table is assigned to CookieFirst.

The measurement largely confirms this — and shows that the consent mechanism works selectively. The Matomo analytics script (matomo.ibz-dev.be/matomo.js) returns with status 0 in the measurement: it is held back by CookieFirst until consent and effectively does not load. This is correct behavior, consistent with the policy.

However, Google Fonts slips past this mechanism. At +354 ms, before the consent banner appears (+549 ms), the Google Fonts CSS loads from fonts.googleapis.com, and the font files load from fonts.gstatic.com. Both requests transmit the visitor’s IP address to Google (USA). Google Fonts sets no cookie, so the policy’s literal statement about the absence of third-party cookies is not violated — but Google is a third-party recipient of data from the USA, receiving the IP address before consent, and this service is not named in the policy. The consent manager thus holds back the analytics tool but does not hold back the IP transfer to Google via the fonts.

Google Fonts loads at +354 ms, the CookieFirst banner at +549 ms, and Matomo is blocked at +580 ms. In other words, the fonts reach Google before the banner is even ready, and before the blocking mechanism activates. No consent was given during the session (zero Set-Cookie).

What cannot be claimed from the measurement

The measurement covers the homepage. Matomo’s status 0 is interpreted as blocking by the consent manager before consent; Matomo’s behavior after consent is not observed in this session. Google may use edge nodes within the EU, so the conclusion is drawn based on the recipient’s affiliation (a US company), not the physical location of the node. Server-side processing is not visible in a browser-based measurement.

Conclusion

The Belgian Ministry of the Interior’s website correctly gates its analytics: Matomo (Matomo-Cloud, Europe) is held back by the CookieFirst consent manager until consent. But Google Fonts slips past this mechanism and transmits the visitor’s IP address to Google (USA) before consent; this service is not named in the policy, and the policy itself states that no third-party cookies are placed. For the website of a core security-sector ministry, transmitting the IP address to a third-party recipient in the USA before consent and outside the consent mechanism indicates non-compliance with the requirements for disclosure of recipients and cross-border transfer. The remedy is simple and does not affect the already-correct analytics setup: host the fonts locally on the proprietary domain — the one remaining leak would then disappear.

Evidence

How to verify: download the file and compute its checksum — sha256sum file.har (Linux, macOS) or certutil -hashfile file.har SHA256 (Windows); it must match the one shown. The conclusions apply to the scope of this measurement — see the limitations of the method.

Original (audit)
HAR file: be/ibz-be-2026-05-26.har
SHA-256: 360a09d63b4caa2686ce0a0b0c6306c678809e3a36919ccc71e59b052b50b20b
Re-check snapshot
Awaiting changes
HAR files are stored on EU infrastructure (Proton Drive). SHA-256 is published for integrity verification.