<?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: Amr Abumady</title>
    <description>The latest articles on DEV Community by Amr Abumady (@clientnshield).</description>
    <link>https://dev.to/clientnshield</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3833542%2F55ff19dc-639d-4578-816b-b3cd496d8acb.png</url>
      <title>DEV Community: Amr Abumady</title>
      <link>https://dev.to/clientnshield</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/clientnshield"/>
    <language>en</language>
    <item>
      <title>What the Revolut Breach Says About Storing Identity Documents Forever</title>
      <dc:creator>Amr Abumady</dc:creator>
      <pubDate>Sun, 13 Sep 2026 06:34:33 +0000</pubDate>
      <link>https://dev.to/clientnshield/what-the-revolut-breach-says-about-storing-identity-documents-forever-e8n</link>
      <guid>https://dev.to/clientnshield/what-the-revolut-breach-says-about-storing-identity-documents-forever-e8n</guid>
      <description>&lt;p&gt;Revolut confirmed this week that it sent customer passport scans and transaction records to attackers who impersonated a government agency with a forged legal request (&lt;a href="https://www.reuters.com/legal/litigation/revolut-confirms-sensitive-customer-data-breach-falling-fake-government-requests-2026-09-12/" rel="noopener noreferrer"&gt;Reuters, Sept 12&lt;/a&gt;). No server was hacked. No password was cracked. A human on the compliance side looked at a request that read like it came from law enforcement, and handed over the file.&lt;/p&gt;

&lt;p&gt;This is the failure mode that's easy to miss when we talk about "data breaches." We spend enormous engineering effort on encryption at rest, encryption in transit, access logging, and SOC 2 audits, and then the actual leak happens because someone approved a request that looked legitimate enough. The data was sitting there, complete and exportable, waiting for exactly the right piece of social engineering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The root problem isn't the process failure. It's that the data existed to be exported at all.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most identity verification today follows the same shape: a site asks for a passport or ID scan, stores it (or a vendor stores it on the site's behalf), and keeps it indefinitely "in case we need it again" (for compliance, for support disputes, for re-verification). Every one of those stores is a future Revolut. The attacker doesn't need a zero-day; they need one convincing forged letter and one tired employee on a Friday.&lt;/p&gt;

&lt;p&gt;We built ClientN around a different assumption: verification and storage don't have to be the same step.&lt;/p&gt;

&lt;p&gt;When someone verifies as a real, unique human on ClientN, the ID/passport check and the face match happen once, and the raw documents aren't retained afterward: what persists is a cryptographic attestation, not the image. Each site the person then connects to gets a different anonymous ID (a &lt;code&gt;CN-&lt;/code&gt; handle), scoped to that site, with no shared identifier a second party could correlate across services or exfiltrate in one shot. There's no central vault of passport scans sitting behind a support ticket queue for someone to social-engineer their way into, because the vault doesn't exist after the initial check is done.&lt;/p&gt;

&lt;p&gt;This is a trade-off, not a magic fix. A site that genuinely needs an auditable copy of your ID for its own regulatory reasons (say, a bank) still needs to hold that copy. ClientN doesn't solve that problem, and it's not trying to be a KYC vendor for regulated finance. What it solves is the far more common case: sites that ask for identity verification purely to prove "this is one real human, not a bot or a Sybil farm," and then hold onto sensitive documents they never technically needed to keep. Passkey login for session security, a one-time Sybil-resistance check, an anonymous per-site ID, and nothing left over that a forged government letter could unlock.&lt;/p&gt;

&lt;p&gt;If you're building anything that needs "prove you're a real, unique person" without needing "collect and retain their government ID forever," the demo is at &lt;a href="https://clientn.com/demo" rel="noopener noreferrer"&gt;clientn.com/demo&lt;/a&gt; and integration docs are at &lt;a href="https://clientn.com/dev" rel="noopener noreferrer"&gt;clientn.com/dev&lt;/a&gt;. Verified Human accounts start at $1/year during the launch window: &lt;a href="https://clientn.com/signup" rel="noopener noreferrer"&gt;clientn.com/signup&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verified Human. Still Anonymous.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>identity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why websites replaced passwords with sign-in codes — and what comes after</title>
      <dc:creator>Amr Abumady</dc:creator>
      <pubDate>Fri, 04 Sep 2026 09:23:24 +0000</pubDate>
      <link>https://dev.to/clientnshield/why-websites-replaced-passwords-with-sign-in-codes-and-what-comes-after-455j</link>
      <guid>https://dev.to/clientnshield/why-websites-replaced-passwords-with-sign-in-codes-and-what-comes-after-455j</guid>
      <description>&lt;p&gt;There's a recurring question on Hacker News that keeps resurfacing: &lt;em&gt;why do so many websites now email you a sign-in code instead of asking for a password?&lt;/em&gt; It's a fair question, and the answer says a lot about where web authentication is heading — and about a gap almost nobody is solving.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version: passwords were always the wrong primitive
&lt;/h2&gt;

&lt;p&gt;A password is a shared secret. You know it, the site stores a hash of it, and every breach is a race between their hashing and someone's GPU. Email codes ("magic codes") sidestep the stored-secret problem: the site never keeps anything you'd mind leaking, and the proof of identity is "you can read this inbox right now." That's genuinely better than a reused password. It's also why they spread so fast — they're cheap to bolt on and they kill the top support ticket ("I forgot my password").&lt;/p&gt;

&lt;p&gt;But a code in your inbox is still a &lt;em&gt;bearer&lt;/em&gt; proof. Anyone who can read that inbox — a forwarded email, a hijacked mail account, a shoulder-surfed screen — can sign in as you. It moves the weak link from the password to the mailbox; it doesn't remove it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passkeys are the actual fix
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://passkeys.dev/" rel="noopener noreferrer"&gt;Passkeys&lt;/a&gt; (WebAuthn discoverable credentials) replace the shared secret with public-key cryptography bound to your device and unlocked by your fingerprint or face. The site stores a public key; the private key never leaves your hardware. There's nothing in the database worth stealing, nothing to phish, and nothing to type. This is the endpoint the "sign-in code" trend is stumbling toward: no password, no bearer token sitting in an inbox.&lt;/p&gt;

&lt;p&gt;If you build web apps, this is the part worth internalizing: the industry has quietly agreed that the login secret should not be something a human types or an attacker can copy. The only debate left is the packaging.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gap nobody talks about: "who" vs. "unique human"
&lt;/h2&gt;

&lt;p&gt;Here's what neither passwords nor magic codes nor even passkeys solve on their own: &lt;strong&gt;is this a real, unique person — without me having to collect their identity?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most sites answer that by hoarding data. They demand your email, your phone, sometimes your ID, and they store all of it so they can de-duplicate accounts and fight bots and Sybil attacks. You end up with the worst of both worlds: the site carries a breach liability it never wanted, and you hand over identifying data to every service you touch.&lt;/p&gt;

&lt;p&gt;That's the problem we've been building &lt;a href="https://clientn.com" rel="noopener noreferrer"&gt;ClientN&lt;/a&gt; around. The idea is to split the two jobs that authentication usually fuses together:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Prove you're a unique, real human — once.&lt;/strong&gt; We verify a person with a passkey plus a layered "Verified Human" check (an email code, a card check, and an optional ID/passport + selfie face-match done on our own servers, encrypted at rest, never shared).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Give each site a &lt;em&gt;different&lt;/em&gt; anonymous identifier for that person.&lt;/strong&gt; A site sees a stable &lt;code&gt;CN-…&lt;/code&gt; id that's unique to &lt;em&gt;that site&lt;/em&gt; and reveals nothing else. The same human logging into two sites gets two unrelated ids, so the sites can't correlate you — but neither can be fooled into thinking one person is a thousand.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The login flow itself is not an OAuth redirect that leaks your identity to a broker. The site asks ClientN for a one-time session; you confirm on &lt;code&gt;clientn.com&lt;/code&gt; with your passkey ("Do you want to sign in to &lt;em&gt;example.com&lt;/em&gt;?"); we send the site back a signed, per-site anonymous id. The site gets "verified, unique, human" without ever getting &lt;em&gt;you&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verified Human. Still Anonymous.
&lt;/h2&gt;

&lt;p&gt;That's the whole thesis in four words. The sign-in-code trend is a symptom of an industry that knows passwords are finished but hasn't decided what "identity" should mean online. Our bet is that the right answer is &lt;strong&gt;less&lt;/strong&gt; identity, cryptographically proven — not more of it, stored in more databases.&lt;/p&gt;

&lt;p&gt;If you want to see it working, there's a live demo forum whose only login is "Sign in with ClientN": &lt;a href="https://clientn.com/demo" rel="noopener noreferrer"&gt;https://clientn.com/demo&lt;/a&gt;. If you run a site and want to add it, the integration is a single &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag plus one signed callback — docs at &lt;a href="https://clientn.com/dev" rel="noopener noreferrer"&gt;https://clientn.com/dev&lt;/a&gt;. And if you just want your own Verified Human account, we're in early access at a $1/year launch price: &lt;a href="https://clientn.com/signup" rel="noopener noreferrer"&gt;https://clientn.com/signup&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Passwords are ending. The interesting question is what we replace them with — and whether we finally stop treating "prove you're human" as an excuse to collect everything about you.&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>webdev</category>
      <category>authentication</category>
    </item>
    <item>
      <title>ClientN Shield: Privacy-First Authentication for the Modern Web</title>
      <dc:creator>Amr Abumady</dc:creator>
      <pubDate>Thu, 19 Mar 2026 13:04:32 +0000</pubDate>
      <link>https://dev.to/clientnshield/clientn-shield-privacy-first-authentication-for-the-modern-web-2meh</link>
      <guid>https://dev.to/clientnshield/clientn-shield-privacy-first-authentication-for-the-modern-web-2meh</guid>
      <description>&lt;h2&gt;
  
  
  Your Identity Shouldn't Be the Price of Admission
&lt;/h2&gt;

&lt;p&gt;Every time you sign up for a service, you hand over your email, name, and personal data. ClientN Shield changes that.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/d_j2RQNoDMU"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ClientN Shield?
&lt;/h2&gt;

&lt;p&gt;ClientN Shield is a privacy-first authentication platform launching H2 2026. It lets users sign in to any website without sharing personal information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zero personal data shared with websites&lt;/li&gt;
&lt;li&gt;Anonymous authentication that actually works&lt;/li&gt;
&lt;li&gt;Your identity stays yours&lt;/li&gt;
&lt;li&gt;Simple integration for developers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try Our Privacy IQ Quiz
&lt;/h2&gt;

&lt;p&gt;Think you know how your data is being used? Take our &lt;a href="https://clientn.com/quiz/" rel="noopener noreferrer"&gt;Privacy IQ Quiz&lt;/a&gt; and score 7+ to claim a free 3-month premium account!&lt;/p&gt;

&lt;h2&gt;
  
  
  Join the Waitlist
&lt;/h2&gt;

&lt;p&gt;We're launching in H2 2026. &lt;a href="https://clientn.com/" rel="noopener noreferrer"&gt;Join the waitlist&lt;/a&gt; to be first in line.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What privacy challenges do you face as a developer? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
