GovLeaderboard

Dakota County

Seat: Hastings457,710 people dakotacountymn.gov @co.dakota.mn.us

C

74/100

#9 of 87 in Minnesota

Email

84/100

6 of 8 checks passed

Website

89/100

9 of 11 checks passed

Domain

25/100

1 of 5 checks passed

What to fix first

  1. +6Turn on DNSSEC
  2. +5Set DMARC to p=reject
  3. +3Add a CAA record
  4. +3Turn on IPv6 for the website
  5. +3Move to a .gov domain
  6. +2Add a Content Security Policy

Plus 2 smaller fixes below.

Email84/100

Stops people from sending fake email that looks like it came from the county.

Partly Fake email gets blocked (DMARC)Fake email goes to spam (p=quarantine). It still reaches people, just in a different folder. 15/20

Why it matters. A DMARC policy tells Gmail, Outlook and every other mail service what to do with email that claims to be from the county but isn't. With p=reject the fake mail is thrown away. With p=quarantine it goes to spam. With p=none nothing happens to it.

How to fix it. Publish a TXT record at _dmarc.co.dakota.mn.us. Start with v=DMARC1; p=none; rua=mailto:dmarc@co.dakota.mn.us and read the reports for a few weeks. Once every real sender passes, change p=none to p=quarantine, then to p=reject.

What we saw

_dmarc.co.dakota.mn.us: v=DMARC1; p=quarantine; rua=mailto:ajnhqpf3za@rua.powerdmarc.com; ruf=mailto:ajnhqpf3za@ruf.powerdmarc.com; fo=1; t=n;

How this check works

Pass Made-up subdomains are covered tooMail from made-up subdomains is sent to spam too. 3/3

Why it matters. Scammers can send from addresses like billing.co.dakota.mn.us that the county never set up. The DMARC record decides what happens to that mail with its sp= setting.

What we saw

_dmarc.co.dakota.mn.us: v=DMARC1; p=quarantine; rua=mailto:ajnhqpf3za@rua.powerdmarc.com; ruf=mailto:ajnhqpf3za@ruf.powerdmarc.com; fo=1; t=n;

How this check works

Pass The county gets DMARC reportsThe county collects DMARC reports. 3/3

Why it matters. Reports show every server sending mail in the county's name, real or fake. They are how the county knows it is safe to turn on blocking.

What we saw

_dmarc.co.dakota.mn.us: v=DMARC1; p=quarantine; rua=mailto:ajnhqpf3za@rua.powerdmarc.com; ruf=mailto:ajnhqpf3za@ruf.powerdmarc.com; fo=1; t=n;

How this check works

Pass Approved mail servers are listed (SPF)SPF lists the approved servers and says every other server is fake (-all). 8/8

Why it matters. SPF lists the servers allowed to send the county's email. Ending it with -all tells receivers that every other server is fake.

What we saw

v=spf1 include:1sa3fegl6x.powerspf.com include:spf.mailjet.com -all

How this check works

Pass SPF stays under the 10 lookup limitSPF needs 6 of the 10 allowed lookups. 2/2

Why it matters. Mail services stop reading an SPF record after 10 lookups. Past that, the whole record counts as broken and stops protecting anything.

What we saw

v=spf1 include:1sa3fegl6x.powerspf.com include:spf.mailjet.com -all

How this check works

Pass Outgoing mail is signed (DKIM)Found DKIM signing keys (selector1, s1). 3/3

Why it matters. DKIM adds a signature to every message, so receivers can tell it really came from the county and wasn't changed on the way. Keys live under names the county picks, so this check only looks at the common ones. Not finding a key never lowers the score.

What we saw

selector1._domainkey.co.dakota.mn.us, s1._domainkey.co.dakota.mn.us

How this check works

Partly Incoming mail must be encrypted (MTA-STS)MTA-STS is in testing mode. Servers report problems but still deliver without encryption. 2/4

Why it matters. Without MTA-STS, someone in the middle of the network can quietly strip the encryption off mail sent to the county and read it. MTA-STS in enforce mode tells sending servers to refuse that.

How to fix it. Host a policy file at https://mta-sts.co.dakota.mn.us/.well-known/mta-sts.txt with mode: enforce and your MX hosts, then publish TXT _mta-sts.co.dakota.mn.us "v=STSv1; id=1". Start with mode: testing if you want to watch first.

What we saw

_mta-sts.co.dakota.mn.us: v=STSv1; id=20250922165917601315;
version: STSv1
mode: testing
max_age: 86400
mx: mxb-009fd601.gslb.pphosted.com
mx: mxa-009fd601.gslb.pphosted.com

How this check works

Pass The county hears about failed encrypted deliveryFailed encrypted delivery gets reported to the county. 2/2

Why it matters. TLS reports tell the county when other servers could not deliver mail to it securely, which can mean a broken certificate or an attack.

What we saw

_smtp._tls.co.dakota.mn.us: v=TLSRPTv1;rua=mailto:ajnhqpf3za@tls.powerdmarc.com

How this check works

Website89/100

Keeps visits to the county website private and hard to tamper with.

Pass The website uses HTTPS with a valid certificateThe website loads over HTTPS with a trusted certificate. 10/10

Why it matters. HTTPS keeps what visitors read and type on the site private, and proves they reached the real county site. A broken or expired certificate shows people a scary warning.

What we saw

https://dakotacountymn.gov/

How this check works

Pass http:// visitors are sent to https://http:// visitors are sent to the https:// site. 4/4

Why it matters. People still type addresses without https. If the plain version of the site loads, those visits travel unprotected.

What we saw

http://dakotacountymn.gov/ -> https://dakotacountymn.gov/

How this check works

Pass Browsers are told to always use HTTPS (HSTS)Browsers are told to use HTTPS only, for 365 days at a time. 5/5

Why it matters. HSTS makes browsers remember to use the secure site, so nobody on public Wi-Fi can trick them into the insecure one first.

What we saw

max-age=31557600

How this check works

Pass The newest encryption (TLS 1.3) worksTLS 1.3 works. 3/3

Why it matters. TLS 1.3 is faster and drops the weak options older versions allowed.

How this check works

Pass Retired encryption (TLS 1.0 and 1.1) is turned offTLS 1.0 and 1.1 are turned off. 4/4

Why it matters. TLS 1.0 and 1.1 have known weaknesses and every major browser dropped them in 2020. Leaving them on only helps attackers.

How this check works

Pass The certificate isn't about to expireThe certificate is good for 34 more days. 2/2

Why it matters. When a certificate expires, every visitor sees a security warning and many can't reach the site at all.

What we saw

Expires 2026-11-17, issued by Let's Encrypt

How this check works

Fail Scripts are limited (Content Security Policy)No Content Security Policy, so any script that gets onto a page can run. 0/2

Why it matters. A Content Security Policy lists where scripts on the site may come from. If an attacker slips code into a page, the browser refuses to run it.

How to fix it. Send a Content-Security-Policy header. Many CMS vendors document one that fits their platform.

How this check works

Pass Browsers don't guess file typesBrowsers are told not to guess file types. 1/1

Why it matters. Without this header a browser may run an uploaded file as a script just because it looks like one.

What we saw

nosniff

How this check works

Pass Other sites can't frame the county siteOther sites can't load this one in a frame. 1/1

Why it matters. A fake site can load the real county site in a hidden frame and trick people into clicking buttons they can't see.

What we saw

X-Frame-Options: SAMEORIGIN

How this check works

Pass Visitors' page addresses aren't shared with other sitesFull page addresses aren't shared with other sites. 1/1

Why it matters. A referrer policy stops the full address of the page someone was on, which can include search terms or case numbers, from being sent to other sites.

What we saw

Referrer-Policy: strict-origin-when-cross-origin

How this check works

Fail Security problems can be reported (security.txt)There is no security.txt file at https://dakotacountymn.gov/.well-known/security.txt. 0/2

Why it matters. A security.txt file tells people who find a problem with the county's systems exactly who to tell. Without it, many reports never arrive.

How to fix it. Publish https://dakotacountymn.gov/.well-known/security.txt with a Contact: line (an email address or form) and an Expires: date.

How this check works

Domain25/100

Protects the county's internet address itself.

Partly Uses a .gov domaindakotacountymn.gov is on .gov, but co.dakota.mn.us isn't. 3/6

Why it matters. Only real US government bodies can get a .gov address, and it is free for them. People can trust a .gov address in a way they can't trust a .us or .com one.

How to fix it. Request a .gov domain from get.gov (run by CISA), then move the website and email to it.

What we saw

dakotacountymn.gov, co.dakota.mn.us

How this check works

Fail DNS answers are signed (DNSSEC)DNS answers aren't signed, so they can be forged. 0/6

Why it matters. DNSSEC signs the county's DNS records, so nobody can send visitors or email to a fake server by forging the answers.

How to fix it. Turn on DNSSEC with your DNS host, then add the DS record it gives you at your registrar (for .gov, in the get.gov dashboard).

What we saw

dakotacountymn.gov: unsigned
co.dakota.mn.us: unsigned

How this check works

Fail Only chosen companies can issue certificates (CAA)There is no CAA record, so any certificate company may issue certificates for the domain. 0/3

Why it matters. A CAA record lists the certificate companies the county uses. Every other company must refuse to issue a certificate for the county's domain.

How to fix it. Add a CAA record such as 0 issue "letsencrypt.org" (or your certificate provider) to the domain.

How this check works

Pass Name servers in more than one address blockThe domain has name servers in more than one address block. 2/2

Why it matters. If all of a domain's name servers sit on one network, one outage takes the website and email offline together.

What we saw

dakotacountymn.gov: ns1.state.mn.us, ns2.state.mn.us, ns3.state.mn.us
co.dakota.mn.us: ns1.state.mn.us, ns2.state.mn.us, ns3.state.mn.us

How this check works

Fail The website works over IPv6The website has no IPv6 address. 0/3

Why it matters. Many phone networks and newer internet connections use IPv6. A site with an IPv6 address is reachable over them directly.

How to fix it. Ask your hosting provider or CDN to turn on IPv6 and publish an AAAA record for the site.

What we saw

dakotacountymn.gov has no AAAA record

How this check works

Dakota and its neighbors

3 Hennepin B82 87 91 55
7 Ramsey C76 87 74 55
9 Dakota C74 84 89 25
14 Rice C70 81 74 40
24 Scott D65 76 74 25
39 Washington F57 42 69 70
77 Goodhue F44 24 71 40

Score history

First checked on Oct 13, 2026. The history chart fills in as daily scans add up.

This score only covers settings anyone can see from the internet. It can't see passwords, backups, staff training or anything inside the county's network, so a high score doesn't mean a county is safe, and a low one doesn't mean it has been hacked.

Work for Dakota County and something looks wrong? Email hello@govleaderboard.com and we'll recheck it. Last checked Oct 13, 2026, 3:01 PM CT.

Looking for Dakota County offices and records? Find them on GISFinder.