<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://cunicula.com/en/articles/claritycheck-exposed-face-images</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/claritycheck-exposed-face-images/claritycheck-exposure-record--article-desktop.png</image:loc>
      <image:title>What the public record establishes</image:title>
      <image:caption>The database was restricted after responsible disclosure; its exposure duration, downstream access, and number of unique people remain unknown.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/agent-wallet-threat-model</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/agent-wallet-threat-model/agent-wallet-approval--article-desktop.png</image:loc>
      <image:title>The agent drafts. It never signs.</image:title>
      <image:caption>The safer architecture from the article: intent and signing authority are separated, with limits enforced before payment.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/anonymous-vpn-setup-mullvad</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/anonymous-vpn-setup-mullvad/privacy-vpn-comparison--article-desktop.png</image:loc>
      <image:title>Four privacy VPNs, seven operating facts</image:title>
      <image:caption>Privacy VPN comparison from the article, with the April 2023 Mullvad search-warrant outcome retained as historical evidence rather than a provider claim.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/anonymous-vps-hosting-guide</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/anonymous-vps-hosting-guide/no-kyc-vps-trust-path--article-desktop.png</image:loc>
      <image:title>Clean the payment trail and the admin path separately</image:title>
      <image:caption>Anonymous payment, Tor signup, server hardening, and onion-service SSH remove different records; the provider still knows the order, server, payment event, abuse history, and local legal process.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/axon-police-ai-body-cameras</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/axon-police-ai-body-cameras/axon-report-approval-pipeline--article-desktop.png</image:loc>
      <image:title>Draft One makes a draft; Vision makes an alert</image:title>
      <image:caption>An officer approves a Draft One report, while a trained person decides what happens after a Vision activity alert.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/california-drop-data-broker-removal</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/california-drop-data-broker-removal/drop-lifecycle--article-desktop.png</image:loc>
      <image:title>One request, five outcomes, one recheck loop</image:title>
      <image:caption>The five broker statuses and the recheck loop, with the 45-day processing and 90-day reporting windows.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/coldcard-rng-entropy-incident-2026</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/coldcard-rng-entropy-incident-2026/coldcard-rng-causal-chain--article-desktop.png</image:loc>
      <image:title>A zero-valued guard selected a deterministic fallback</image:title>
      <image:caption>The stable root cause was a defined-only build guard that silently selected a deterministic fallback; the hardware TRNG code remained present but the seed-generation call did not reach it.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/degoogle-without-breaking-everything</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/degoogle-without-breaking-everything/degoogle-migration-rail--article-desktop.png</image:loc>
      <image:title>Retire dependencies before deleting the account</image:title>
      <image:caption>A Google account is a dependency bundle. Exporting is not deletion; each critical sign-in, library, purchase, and recovery path must be moved or explicitly retained before deletion.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/encrypted-messaging-comparison</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/encrypted-messaging-comparison/messaging-envelope--article-desktop.png</image:loc>
      <image:title>What each messenger still reveals</image:title>
      <image:caption>Registration and delivery-path differences between four end-to-end encrypted messengers.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/frigate-private-camera-network</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/frigate-private-camera-network/frigate-data-path--article-desktop.png</image:loc>
      <image:title>What leaves the camera network, and what must not</image:title>
      <image:caption>The documented Frigate surfaces: port 8971 authenticated, port 5000 internal only, remote access through a private tailnet.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/grapheneos-privacy-phone-guide</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/grapheneos-privacy-phone-guide/grapheneos-profile-boundaries--article-desktop.png</image:loc>
      <image:title>Profiles separate app state, not the phone identity</image:title>
      <image:caption>GrapheneOS profiles separate app data and profile state; they do not create separate devices, SIMs, carrier records, Wi-Fi histories, or public IP addresses.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/license-plate-readers-traffic-enforcement</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/license-plate-readers-traffic-enforcement/flock-claim-evidence-ledger--article-desktop.png</image:loc>
      <image:title>Public limits did not prevent broader recorded uses</image:title>
      <image:caption>A Georgia traffic citation and nationwide search records show why contract controls, system settings, and audit logs matter more than a narrow public description of local plate-reader use.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/no-kyc-phone-stack-2026</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/no-kyc-phone-stack-2026/private-phone-egress-stack--article-desktop.png</image:loc>
      <image:title>Six layers narrow identity; residual records still cross out</image:title>
      <image:caption>The stack reduces identity exposure layer by layer; it does not remove tower-visible IMEI, ICCID, and IMSI records, provider-side order records, location habits, or endpoint risk.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/pgp-basics</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/pgp-basics/pgp-content-metadata-envelope--article-desktop.png</image:loc>
      <image:title>PGP protects content, not the envelope</image:title>
      <image:caption>OpenPGP protects content and signatures, while normal email routing metadata remains exposed. A full fingerprint check over a second channel establishes key trust.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/private-ai-local-llm</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/private-ai-local-llm/local-ai-egress--article-desktop.png</image:loc>
      <image:title>Local inference is one hop, not the whole boundary</image:title>
      <image:caption>The article&apos;s reproducible check: run the complete task offline and inventory every configured endpoint.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/private-dns-setup-guide</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/private-dns-setup-guide/mullvad-dns-tunnel-path--article-desktop.png</image:loc>
      <image:title>One tunnel, one resolver path, no browser exception</image:title>
      <image:caption>The leak-resistant Mullvad baseline uses in-tunnel DNS, blocks browser resolver exceptions, and treats encrypted DNS without VPN as a separate IP-exposed mode.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/private-email-providers</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/private-email-providers/email-alias-routing--article-desktop.png</image:loc>
      <image:title>The alias hides the mailbox, not the routing relationship</image:title>
      <image:caption>SimpleLogin keeps the Proton address from the sender and supports replies through a reverse alias, but it must process the routing relationship and normal email metadata remains visible.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/private-home-network-setup</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/private-home-network-setup/home-network-zones--article-desktop.png</image:loc>
      <image:title>Five networks, one blocked-by-default boundary</image:title>
      <image:caption>The firewall plan from the article: default block between networks, narrow allow rules for actual services.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/proton-pass-vs-bitwarden-simplelogin</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/proton-pass-vs-bitwarden-simplelogin/password-alias-boundaries--article-desktop.png</image:loc>
      <image:title>One recovery zone or two systems joined by an API key</image:title>
      <image:caption>The main architectural choice is one joined recovery boundary versus two separately recoverable services connected by a revocable API key; a custom domain is the portable address option.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/self-host-unbroker-data-broker-removal</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/self-host-unbroker-data-broker-removal/unbroker-consent-custody-pipeline--article-desktop.png</image:loc>
      <image:title>Consent gates the run; custody grows with the host surface</image:title>
      <image:caption>The workflow records consent before scanning, keeps deterministic run state and verification in a ledger, and treats a shared hosted app as the highest personal-data custody option.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/self-osint-personal-exposure-audit</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/self-osint-personal-exposure-audit/self-osint-audit-gates--article-desktop.png</image:loc>
      <image:title>Confirm twice, choose one response, verify before closure</image:title>
      <image:caption>Discovery does not authorize removal: the workflow requires two independent matching fields, one chosen response per finding, and separate verification of the source page and search result.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/surveillance-resistant-phone-numbers</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/surveillance-resistant-phone-numbers/jmp-phone-retention-path--article-desktop.png</image:loc>
      <image:title>A separate number still crosses the public telephone boundary</image:title>
      <image:caption>JMP separates a public number from a primary mobile contract, but calls and messages still cross the PSTN; JMP documents up to seven days of SMS content retention and billing-related call metadata.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/tails-os-financial-privacy-guide</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/tails-os-financial-privacy-guide/tails-session-lifecycle--article-desktop.png</image:loc>
      <image:title>The session is amnesic; Persistent Storage is an explicit exception</image:title>
      <image:caption>Ordinary Tails session state is wiped at shutdown; Persistent Storage is the explicit encrypted exception, while ISP-visible Tor use, hardware compromise, and personal-account login remain outside the amnesic guarantee.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/tor-browser-hardening-setup</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/tor-browser-hardening-setup/tor-browser-session-rail--article-desktop.png</image:loc>
      <image:title>Accept the route, then reset between compartments</image:title>
      <image:caption>The acceptance sequence for Tor Browser 15.0.19: verify the build and route, avoid unique customization, then clear session state with New Identity between compartments.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/what-is-a-sar</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/what-is-a-sar/sar-reporting-rule-ledger--article-desktop.png</image:loc>
      <image:title>Amount alone triggers a CTR; a SAR requires suspicious facts</image:title>
      <image:caption>The reporting paths differ: CTR and Form 8300 are cash-threshold reports, while a mandatory bank SAR generally requires at least $5,000 plus one of the specified suspicious-fact conditions.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/qwen38-obliterated-local-model</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/qwen38-obliterated-local-model/qwen38-obliterated-provenance-contract--article-desktop.png</image:loc>
      <image:title>The same download gave two answers</image:title>
      <image:caption>The downloaded files, typed request, and answer settings stayed the same; only the extra directions added by the app changed.</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://cunicula.com/en/articles/btcpay-server-lnd-macaroon-incident</loc>
    <image:image>
      <image:loc>https://cunicula.com/article-figures/btcpay-server-lnd-macaroon-incident/btcpay-lnd-macaroon-blast-radius--article-desktop.png</image:loc>
      <image:title>The exposed path reached LND control</image:title>
      <image:caption>BTCPay Server versions before 2.4.2 exposed LND macaroons; 2.4.2 fixes the path and regenerates BTCPay-managed credentials.</image:caption>
    </image:image>
  </url>
</urlset>
