<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kevin Bridges</title>
    <description>The latest articles on DEV Community by Kevin Bridges (@kevinbridges).</description>
    <link>https://dev.to/kevinbridges</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F204095%2F371a08ad-bee9-4cbb-b93d-97fb2aa4f91c.jpeg</url>
      <title>DEV Community: Kevin Bridges</title>
      <link>https://dev.to/kevinbridges</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kevinbridges"/>
    <language>en</language>
    <item>
      <title>We Solved HTTPS. Why Haven’t We Solved Age Verification?</title>
      <dc:creator>Kevin Bridges</dc:creator>
      <pubDate>Thu, 26 Mar 2026 15:54:57 +0000</pubDate>
      <link>https://dev.to/kevinbridges/we-solved-https-why-havent-we-solved-age-verification-2g9o</link>
      <guid>https://dev.to/kevinbridges/we-solved-https-why-havent-we-solved-age-verification-2g9o</guid>
      <description>&lt;h1&gt;
  
  
  We Solved HTTPS. Why Haven’t We Solved Age Verification?
&lt;/h1&gt;

&lt;p&gt;There’s something fundamentally broken about how the internet handles age verification.&lt;/p&gt;

&lt;p&gt;Right now, most websites rely on a system that looks like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Are you 18?” → &lt;em&gt;Click yes&lt;/em&gt; → full access&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s not a safeguard. It’s a checkbox with zero enforcement.&lt;/p&gt;

&lt;p&gt;At the same time, social media companies and online platforms are increasingly being held responsible for protecting minors from harmful content, addictive design, and inappropriate interactions. The expectation is rising—but the infrastructure to support it hasn’t kept up.&lt;/p&gt;

&lt;p&gt;We’re asking platforms to solve a hard, global identity problem… individually.&lt;/p&gt;

&lt;p&gt;That’s the real issue.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Wrong Problem
&lt;/h2&gt;

&lt;p&gt;Most debates around age verification focus on edge cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What if a kid lies?&lt;/li&gt;
&lt;li&gt;What if they use a parent’s account?&lt;/li&gt;
&lt;li&gt;What about privacy?&lt;/li&gt;
&lt;li&gt;What about global access?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are valid concerns—but they miss the bigger picture.&lt;/p&gt;

&lt;p&gt;The goal should not be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Make it impossible for minors to access restricted content”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s unrealistic.&lt;/p&gt;

&lt;p&gt;Instead, the goal should be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Replace fake safeguards with real, reasonable friction—and give platforms a standard way to enforce it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We already accept this model in the physical world:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ID checks for alcohol&lt;/li&gt;
&lt;li&gt;Age restrictions for movies&lt;/li&gt;
&lt;li&gt;Gambling regulations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None are perfect. All are still worth doing.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Problem: No Shared Infrastructure
&lt;/h2&gt;

&lt;p&gt;Think about how the internet solved other hard problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Payments&lt;/strong&gt; → Stripe, PayPal, Visa&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authentication&lt;/strong&gt; → Google, Apple, OAuth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt; → TLS certificates (DigiCert, GoDaddy)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We don’t expect every website to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build its own payment processor&lt;/li&gt;
&lt;li&gt;Create its own encryption standard&lt;/li&gt;
&lt;li&gt;Design its own login system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We created &lt;strong&gt;shared infrastructure layers&lt;/strong&gt; instead.&lt;/p&gt;

&lt;p&gt;But for age verification?&lt;/p&gt;

&lt;p&gt;Every platform is improvising.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Better Model: Age Tokens as Infrastructure
&lt;/h2&gt;

&lt;p&gt;What if age verification worked more like HTTPS?&lt;/p&gt;

&lt;p&gt;Instead of every website collecting IDs or guessing ages, we introduce:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Age Tokens&lt;/strong&gt; — simple, verifiable credentials that prove a user meets an age requirement (e.g., “18+”) without revealing identity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How it would work:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;A user verifies their age with a trusted provider&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;PayPal, Google, a bank, telecom, or government system&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;The provider issues a signed credential&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;“This user is over 18”&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;A website requests proof when needed&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;e.g., accessing adult content or certain features&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;The user shares a token&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;The site verifies the signature—not the identity&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The PKI Analogy (Why This Scales)
&lt;/h2&gt;

&lt;p&gt;This model mirrors how HTTPS works today:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;HTTPS&lt;/th&gt;
&lt;th&gt;Age Verification&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Certificate Authorities (DigiCert, GoDaddy)&lt;/td&gt;
&lt;td&gt;Age Providers (PayPal, Google, governments)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSL Certificates&lt;/td&gt;
&lt;td&gt;Age Tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browsers trust a list of CAs&lt;/td&gt;
&lt;td&gt;Platforms trust a list of providers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A website doesn’t need to know &lt;em&gt;who you are&lt;/em&gt;—only that:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A trusted authority vouches for a specific property.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this case:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“This user is over 18.”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why This Approach Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. No Reinventing the Wheel
&lt;/h3&gt;

&lt;p&gt;Platforms don’t need to build their own verification systems. They integrate once.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Better Privacy (at the Platform Level)
&lt;/h3&gt;

&lt;p&gt;Websites don’t collect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IDs&lt;/li&gt;
&lt;li&gt;birthdates&lt;/li&gt;
&lt;li&gt;biometric data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They only receive a yes/no assertion.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Global Flexibility
&lt;/h3&gt;

&lt;p&gt;Different regions can use different methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;U.S. → private providers (Google, PayPal)&lt;/li&gt;
&lt;li&gt;EU → privacy-focused digital identity wallets&lt;/li&gt;
&lt;li&gt;China → state-backed systems&lt;/li&gt;
&lt;li&gt;Developing regions → telecom-based verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The platform doesn’t care how verification happens—only that the token is valid.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Clearer Accountability
&lt;/h3&gt;

&lt;p&gt;Responsibility becomes shared and defined:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Providers&lt;/strong&gt; → verify age correctly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platforms&lt;/strong&gt; → enforce access using tokens&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Realistic Enforcement
&lt;/h3&gt;

&lt;p&gt;This doesn’t eliminate bypassing—and it doesn’t need to.&lt;/p&gt;

&lt;p&gt;It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Removes trivial access (“just click yes”)&lt;/li&gt;
&lt;li&gt;Adds friction&lt;/li&gt;
&lt;li&gt;Creates enforceable standards&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Core Critique (And It’s Valid)
&lt;/h2&gt;

&lt;p&gt;A common and important pushback is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You’re still asking users to trust a provider—Google, a bank, a telecom, or a government.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s true.&lt;/p&gt;

&lt;p&gt;Even in this model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;platform doesn’t know who you are&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;But the &lt;strong&gt;provider does&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which raises the real issue:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Have we actually solved the privacy problem—or just moved it?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why Technology Alone Isn’t Enough
&lt;/h2&gt;

&lt;p&gt;Even with strong cryptography (signed tokens, zero-knowledge proofs), one issue remains:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The entity issuing the age credential still sees—and verifies—your identity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That means they could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store more data than necessary&lt;/li&gt;
&lt;li&gt;Correlate activity across services&lt;/li&gt;
&lt;li&gt;Monetize or misuse that data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So while the &lt;strong&gt;platform risk is reduced&lt;/strong&gt;, the &lt;strong&gt;provider risk remains&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is where a second layer is needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Proposed Layer: Age Assurance Compliance Framework (AACF)
&lt;/h2&gt;

&lt;p&gt;To address this, we can introduce:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Age Assurance Compliance Framework (AACF)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AACF would function similarly to PCI—but tailored for identity and age verification.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can you securely process credit card data?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AACF asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can you verify age while minimizing, protecting, and restricting the use of identity data?”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What AACF Would Enforce
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Data Minimization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Only collect what is required to verify age&lt;/li&gt;
&lt;li&gt;Prefer derived attributes (e.g., “18+”) over storing birthdates&lt;/li&gt;
&lt;li&gt;Prohibit unnecessary retention of raw identity data&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. Purpose Limitation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Data can only be used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;age verification&lt;/li&gt;
&lt;li&gt;fraud prevention&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Explicitly prohibited:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;advertising use&lt;/li&gt;
&lt;li&gt;resale&lt;/li&gt;
&lt;li&gt;behavioral profiling&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Token Design Requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Short-lived or one-time-use tokens&lt;/li&gt;
&lt;li&gt;No persistent cross-site identifiers&lt;/li&gt;
&lt;li&gt;Encouragement of privacy-preserving techniques&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. Audit &amp;amp; Certification
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Independent third-party audits conducted regularly&lt;/li&gt;
&lt;li&gt;Verification of data minimization practices&lt;/li&gt;
&lt;li&gt;Review of storage, retention, and deletion policies&lt;/li&gt;
&lt;li&gt;Inspection of technical controls (token handling, anti-tracking safeguards)&lt;/li&gt;
&lt;li&gt;Evaluation of internal access controls and monitoring systems&lt;/li&gt;
&lt;li&gt;Financial and operational audits to ensure compliance with data usage restrictions, including review of records to detect any sale or unauthorized sharing of user data with third parties (similar in rigor to an IRS-style audit)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Certification would be required to act as a &lt;strong&gt;trusted provider&lt;/strong&gt;, with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Required remediation for violations&lt;/li&gt;
&lt;li&gt;Suspension for significant issues&lt;/li&gt;
&lt;li&gt;Revocation for severe or repeated non-compliance&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Assurance Levels
&lt;/h3&gt;

&lt;p&gt;Not all providers are equal. AACF could define tiers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Level 1:&lt;/strong&gt; Self-asserted / low confidence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Level 2:&lt;/strong&gt; Behavioral / heuristic-based&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Level 3:&lt;/strong&gt; Verified (KYC, ID-backed)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platforms could require different levels depending on risk.&lt;/p&gt;




&lt;h2&gt;
  
  
  How AACF Compares to PCI and HIPAA
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Goal&lt;/th&gt;
&lt;th&gt;Key Limitation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PCI DSS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Payment card data&lt;/td&gt;
&lt;td&gt;Prevent fraud and breaches&lt;/td&gt;
&lt;td&gt;Does not regulate broader data use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HIPAA&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Health information&lt;/td&gt;
&lt;td&gt;Protect sensitive medical data&lt;/td&gt;
&lt;td&gt;Applies only to healthcare&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AACF (proposed)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Age/identity attributes&lt;/td&gt;
&lt;td&gt;Minimize and constrain identity usage&lt;/td&gt;
&lt;td&gt;Requires trust and enforcement&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Key Differences
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PCI DSS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Focus: &lt;em&gt;security&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Question: “Can you protect this data?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HIPAA&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Focus: &lt;em&gt;privacy + regulation&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Question: “Are you allowed to use this data this way?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AACF&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Focus: &lt;em&gt;minimal disclosure + controlled trust&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Question:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can you verify age without becoming a data exploitation point?”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What This Solves (and What It Doesn’t)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What it improves:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Reduces data sprawl across platforms&lt;/li&gt;
&lt;li&gt;Limits misuse by verification providers&lt;/li&gt;
&lt;li&gt;Creates enforceable standards&lt;/li&gt;
&lt;li&gt;Builds trust through audits&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What it does NOT solve:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Eliminates trust entirely ❌&lt;/li&gt;
&lt;li&gt;Prevents all misuse ❌&lt;/li&gt;
&lt;li&gt;Resolves global political differences ❌&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Bigger Picture
&lt;/h2&gt;

&lt;p&gt;If we combine everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Age Tokens&lt;/strong&gt; → how verification works&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust Framework (PKI-style)&lt;/strong&gt; → who is trusted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AACF (compliance layer)&lt;/strong&gt; → how they must behave&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We move from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;fragmented, inconsistent, and opaque systems&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;a structured, auditable, and interoperable model&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;The internet didn’t become secure because we told websites to “be careful.”&lt;/p&gt;

&lt;p&gt;It became secure because we built:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;protocols (TLS)&lt;/li&gt;
&lt;li&gt;trust systems (certificate authorities)&lt;/li&gt;
&lt;li&gt;enforcement mechanisms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Age verification will likely follow the same path.&lt;/p&gt;

&lt;p&gt;Not perfect.&lt;/p&gt;

&lt;p&gt;But significantly better than a checkbox that says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Yes, I’m 18.”&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>dis</category>
      <category>architecture</category>
      <category>security</category>
    </item>
  </channel>
</rss>
