Open dataset · updated daily · public sources only

Swiss Public-Sector Security Census

How secure is the Swiss public sector?

Summary

The census measures the email and website security of every Swiss municipality, canton and federal office, every day. It uses only information that anyone can see on the internet. Each body receives a score from 0 to 100.

Median score
56of 100
Bodies on the list
2,210
Bodies with a score
2,202
Latest measurement
25 Oct 2026

Half of the bodies score below 56, half above. 2,202 bodies have a score. The other 8 could not be measured enough, mostly because their website did not answer.

1How the score works

Each body gets 0 to 100 points from 17 measurements in five areas. A measurement that does not apply, or could not be taken, is left out of the total.

Share of points obtained on average, by area

01

Email sender

Can someone else send email in the body’s name?

66% 30 points
02

Email encryption

Must email to the body travel encrypted?

11% 10 points
03

Website encryption

Is the website reached only over a secure connection?

77% 30 points
04

Website hardening

Does the homepage send the recommended security headers?

44% 15 points
05

DNS and contact

Are DNS records signed, and is there a contact for security reports?

34% 15 points

Bodies per score band

  • Median score: 56
All 17 measurements and their points
  • Email sender · 30 points
  • DMARC 16 points
  • SPF 8 points
  • DMARC reports 3 points
  • Website domain protected from forged email 3 points
  • Email encryption · 10 points
  • DANE or MTA-STS 8 points
  • TLS-RPT 2 points
  • Website encryption · 30 points
  • TLS 15 points
  • HSTS 12 points
  • Certificate valid for more than 14 days 3 points
  • Website hardening · 15 points
  • Content-Security-Policy 5 points
  • X-Frame-Options 3 points
  • X-Content-Type-Options 3 points
  • Referrer-Policy 2 points
  • Secure cookie attributes 2 points
  • DNS and contact · 15 points
  • DNSSEC 8 points
  • CAA 2 points
  • security.txt 5 points

2Six key checks

Together they are worth 64 of the 100 points. Each bar covers all 2,210 bodies.

1,001 of 2,210

bodies pass DMARC

  • 1,001 passed
  • 472 partly
  • 735 failed
  • 2 not measured
Each square is one body.
01

DMARC

Forged email in the body’s name is rejected or quarantined.

45% passed
  • 1,001 passed
  • 472 partly
  • 735 failed
  • 2 not measured
16 points
02

TLS

The website accepts only TLS 1.2 or newer, with a valid certificate.

95% passed
  • 2,107 passed
  • 0 partly
  • 95 failed
  • 8 not measured
15 points
03

HSTS

Browsers are told to use only HTTPS, for at least a year.

29% passed
  • 650 passed
  • 837 partly
  • 715 failed
  • 8 not measured
12 points
04

DNSSEC

DNS records are signed, so answers cannot be forged.

33% passed
  • 730 passed
  • 0 partly
  • 1,476 failed
  • 4 not measured
8 points
05

SPF

The domain lists the servers allowed to send its email.

94% passed
  • 2,076 passed
  • 95 partly
  • 34 failed
  • 5 not measured
8 points
06

security.txt

The website names a contact for security reports.

45% passed
  • 998 passed
  • 15 partly
  • 1,178 failed
  • 19 not measured
5 points

3By canton

Median score of each canton’s administration and municipalities. Cantons with fewer than 20 bodies are combined into one group.

  • 36–43
  • 44–51
  • 52–59
  • 60–67
  • 68–75
  • Group
Share of bodies that passed each check, by canton
CantonBodiesScoreDMARCTLSHSTSDNSSECSPFsecurity.txt
Aargau AG1976665%98%52%21%97%67%
Appenzell Ausserrhoden AR217148%–33%24%81%76%
Basel-Landschaft BL876566%87%52%31%94%41%
Bern / Berne BE3355860%96%39%37%95%40%
Fribourg / Freiburg FR1204737%94%12%39%94%23%
Genève GE4646––15%9%–46%
Graubünden / Grigioni / Grischun GR1014423%93%14%30%96%26%
Jura JU526254%90%42%75%85%8%
Luzern LU806370%–42%12%–66%
Neuchâtel NE2537––––––
Schaffhausen SH2736––22%63%–26%
Schwyz SZ315871%–35%16%–68%
Solothurn SO1055538%–37%28%95%64%
St. Gallen SG766137%–18%14%–76%
Thurgau TG815816%–58%9%91%75%
Ticino TI1014216%97%11%19%94%–
Uri UR204220%––––25%
Valais / Wallis VS1235033%91%18%65%89%20%
Vaud VD3015759%91%17%65%88%22%
Zürich ZH1615813%98%33%11%96%86%
Other cantons Combined: AI, BS, GL, NW, OW, ZG465330%93%37%20%–74%

– means too few bodies to show without identifying them.

4Most common gaps

Number of bodies with each gap. Each check has a guide to fix it.

01

Domain not signed with DNSSEC

1,473 67%
02

No security.txt

1,178 53%
03

HSTS shorter than a year

837 38%
04

No DMARC record

727 33%
05

No HSTS header

595 27%
06

DMARC monitoring only (p=none)

461 21%
07

HTTP not redirected to HTTPS

59 3%
08

TLS 1.0 or 1.1 still accepted

57 3%
09

SPF ends in ?all

55 2%
10

Invalid or expired certificate

35 2%
10 more gaps

5Day by day

Share of all bodies that passed each check. A website that does not answer counts as not passed, so a dip can mean an outage rather than a weaker setup.

DMARC

45%
18 Oct · 43% 25 Oct · 45%

TLS

95%
18 Oct · 94% 25 Oct · 95%

HSTS

29%
18 Oct · 30% 25 Oct · 29%

DNSSEC

33%
18 Oct · 34% 25 Oct · 33%

SPF

94%
18 Oct · 94% 25 Oct · 94%

security.txt

45%
18 Oct · 45% 25 Oct · 45%

6Download the data

The figures on this page are open data. They may be reused freely, including commercially, provided the source is cited.

Suggested citation

Webcracy.ch, Swiss Public-Sector Security Census, measured on 2026-10-25, https://census.webcracy.ch/, CC BY 4.0.

Licence: Creative Commons Attribution 4.0 (CC BY 4.0). Results for individual bodies are not published.

7About the census

The census is an independent research project of Webcracy.ch, carried out by Liam Giannini. It has no commercial purpose, and no result can be bought.

For each body the census reads public DNS records, the security.txt file and the homepage. It sends at most one request per second, with no logins and no forms.

Corrections to a domain or a result can be sent to contact@webcracy.ch. They are applied before the next measurement.