<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: agwa</title><link>https://news.ycombinator.com/user?id=agwa</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 00:38:52 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=agwa" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by agwa in "SSH certificates: the better SSH experience"]]></title><description><![CDATA[
<p>Instead of using a CA, why not set the key's PIN policy to "once" and use an agent (e.g. <a href="https://github.com/FiloSottile/yubikey-agent/" rel="nofollow">https://github.com/FiloSottile/yubikey-agent/</a>) that holds an active session to the yubikey? You start the agent at the beginning of the day, enter the PIN once, and then stop the agent at the end of the day.</p>
]]></description><pubDate>Fri, 03 Apr 2026 17:59:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47629875</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47629875</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47629875</guid></item><item><title><![CDATA[New comment by agwa in "NaN Is Weird"]]></title><description><![CDATA[
<p>Fun fact - in C++ std::sort has undefined behavior, and can crash[1], if you try to sort a container with NaNs in it.<p>[1] <a href="https://stackoverflow.com/questions/18291620/why-will-stdsort-crash-if-the-comparison-function-is-not-as-operator" rel="nofollow">https://stackoverflow.com/questions/18291620/why-will-stdsor...</a></p>
]]></description><pubDate>Thu, 12 Mar 2026 20:24:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47356531</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47356531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47356531</guid></item><item><title><![CDATA[New comment by agwa in "Making Firefox's right-click not suck with about:config"]]></title><description><![CDATA[
<p>The blog post is also complaining about the options to create a screenshot, copy a link to a text fragment, copy a link without trackers, debug accessibility issues, auto-fill a form, and even to print the page.<p>Also, Mozilla Corporation's sole "shareholder" is the not-for-profit Mozilla Foundation.</p>
]]></description><pubDate>Wed, 04 Mar 2026 20:33:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47253404</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47253404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47253404</guid></item><item><title><![CDATA[New comment by agwa in "Making Firefox's right-click not suck with about:config"]]></title><description><![CDATA[
<p>In an alternative timeline, Firefox makes their context menu really short and someone writes a blog post ranting about how it deprives functionality from power users.<p>In fact, I've read several such rants about Firefox removing functionality from other parts of their UI.<p>It's sure hard to make everyone happy.</p>
]]></description><pubDate>Wed, 04 Mar 2026 18:41:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47251908</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47251908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47251908</guid></item><item><title><![CDATA[New comment by agwa in "Robust and efficient quantum-safe HTTPS"]]></title><description><![CDATA[
<p>At the beginning of a TCP connection, which is when the certificate chain is sent, you can't send more data than the initial congestion window without waiting for it to be acknowledged. 160KB is far beyond the initial congestion window, so on a high-latency connection the additional time would be higher than the numbers you calculated. Of course, if the web page is very bloated the user might not notice, but not all pages are bloated.<p>The increased certificate size would also be painful for Certificate Transparency logs, which are required to store certificates and transmit them to anyone who asks. MTC doesn't require logs to store the subject public key.</p>
]]></description><pubDate>Sun, 01 Mar 2026 18:05:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47209082</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47209082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47209082</guid></item><item><title><![CDATA[Why IP Address Certificates Are Dangerous and Usually Unnecessary]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.agwa.name/blog/post/ip_address_certs">https://www.agwa.name/blog/post/ip_address_certs</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47075332">https://news.ycombinator.com/item?id=47075332</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 19 Feb 2026 16:14:59 +0000</pubDate><link>https://www.agwa.name/blog/post/ip_address_certs</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47075332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47075332</guid></item><item><title><![CDATA[New comment by agwa in "DNS-Persist-01: A New Model for DNS-Based Challenge Validation"]]></title><description><![CDATA[
<p>> <i>It's also not quite clear how to revoke this challenge, and how domain expiration deal with this</i><p>CAs can cache the record lookup for no longer than 10 days. After 10 days, they have to check it again. If the record is gone, which would be expected if the domain has expired or been transferred, then the authorization is no longer valid.<p>(I would have preferred a much shorter limit, like 8 hours, but 10 days is a lot better than the current 398 day limit for the original ACME DNS validation method.)</p>
]]></description><pubDate>Wed, 18 Feb 2026 20:23:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47065884</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47065884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47065884</guid></item><item><title><![CDATA[New comment by agwa in "Google Public CA is down"]]></title><description><![CDATA[
<p>It doesn't comply with one or more root store policies (which all incorporate the Baseline Requirements by reference, which incorporate various specs, such as RFC5280, by reference).<p>Mozilla root store policy: <a href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/" rel="nofollow">https://www.mozilla.org/en-US/about/governance/policies/secu...</a><p>Chrome root store policy: <a href="https://googlechrome.github.io/chromerootprogram/" rel="nofollow">https://googlechrome.github.io/chromerootprogram/</a><p>Apple root store policy: <a href="https://www.apple.com/certificateauthority/ca_program.html" rel="nofollow">https://www.apple.com/certificateauthority/ca_program.html</a><p>Baseline Requirements: <a href="https://github.com/cabforum/servercert/blob/main/docs/BR.md" rel="nofollow">https://github.com/cabforum/servercert/blob/main/docs/BR.md</a><p>There are countless examples of non-compliant certificates documented in the Bugzilla component I linked above. A recent example: a certificate which was backdated by more than 48 hours, in violation of section 7.1.2.7 of the Baseline Requirements: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2016672" rel="nofollow">https://bugzilla.mozilla.org/show_bug.cgi?id=2016672</a></p>
]]></description><pubDate>Wed, 18 Feb 2026 02:31:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47056438</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47056438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47056438</guid></item><item><title><![CDATA[New comment by agwa in "Google Public CA is down"]]></title><description><![CDATA[
<p>This usually indicates that the CA was issuing non-compliant certificates and needed to prevent further non-compliance. Will be interesting to watch Bugzilla for the incident report: <a href="https://bugzilla.mozilla.org/buglist.cgi?product=CA%20Program&component=CA%20Certificate%20Compliance&resolution=---" rel="nofollow">https://bugzilla.mozilla.org/buglist.cgi?product=CA%20Progra...</a></p>
]]></description><pubDate>Wed, 18 Feb 2026 02:15:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47056291</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=47056291</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47056291</guid></item><item><title><![CDATA[New comment by agwa in "Upcoming changes to Let's Encrypt and how they affect XMPP server operators"]]></title><description><![CDATA[
<p>If an attacker gets a misissued cert not through BGP or DNS hijacks, but by exploiting a domain validation flaw in a CA (e.g. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2011713" rel="nofollow">https://bugzilla.mozilla.org/show_bug.cgi?id=2011713</a>) then it's trivial for them to use it as a client certificate, even if you're requiring the serverAuth EKU. On the other hand, dialback over TLS would require the attacker to also MitM the connection between XMPP servers, which is a higher bar.<p>The good news is that since Prosody requires the serverAuth EKU, the misissued cert would be in-scope of Mozilla's root program, so if it's discovered, Mozilla would require an incident report and potentially distrust the CA. But that's reactive, not proactive.</p>
]]></description><pubDate>Tue, 10 Feb 2026 12:25:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46958794</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46958794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46958794</guid></item><item><title><![CDATA[New comment by agwa in "Google Cloud suspended my account for 2 years, only automated replies"]]></title><description><![CDATA[
<p>Having the customer send me the key is less secure because that key never gets rotated.  Google wants to discourage long-lived credentials so badly that new organizations can't even create service account keys by default anymore.<p>Having the customer grant permission to a single master service account is vulnerable to confused deputy attacks.<p>In any case, why should I have to pursue "other solutions" to something that's in their documentation?</p>
]]></description><pubDate>Tue, 10 Feb 2026 01:31:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46954177</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46954177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46954177</guid></item><item><title><![CDATA[New comment by agwa in "Upcoming changes to Let's Encrypt and how they affect XMPP server operators"]]></title><description><![CDATA[
<p>Ah, I didn't know that dialback doesn't use TLS. That's too bad.</p>
]]></description><pubDate>Tue, 10 Feb 2026 00:11:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46953524</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46953524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46953524</guid></item><item><title><![CDATA[New comment by agwa in "Upcoming changes to Let's Encrypt and how they affect XMPP server operators"]]></title><description><![CDATA[
<p>Google Chrome (along with Mozilla, and eventually the other root stores) distrusted Symantec, despite being the largest CA at the time and frequently called "too big to fail".</p>
]]></description><pubDate>Mon, 09 Feb 2026 23:51:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46953333</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46953333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46953333</guid></item><item><title><![CDATA[New comment by agwa in "Upcoming changes to Let's Encrypt and how they affect XMPP server operators"]]></title><description><![CDATA[
<p>Is there a reason why dialback isn't the answer?<p>I would think it's more secure than clientAuth certs because if an attacker gets a misissued cert they'd have to actually execute a MitM attack to use it. In contrast, with a misissued clientAuth cert they can just connect to the server and present it.<p>Another fun fact: the Mozilla root store, which I'd guess the vast majority of XMPP servers are using as their trust store, has ZERO rules governing clientAuth issuance[1]. CAs are allowed to issue clientAuth-only certificates under a technically-constrained non-TLS sub CA to anyone they want without any validation (as long as the check clears ;-). It has never been secure to accept the clientAuth EKU when using the Mozilla root store.<p>[1] <a href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/#11-scope" rel="nofollow">https://www.mozilla.org/en-US/about/governance/policies/secu...</a></p>
]]></description><pubDate>Mon, 09 Feb 2026 23:37:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46953191</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46953191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46953191</guid></item><item><title><![CDATA[New comment by agwa in "Upcoming changes to Let's Encrypt and how they affect XMPP server operators"]]></title><description><![CDATA[
<p>XMPP identifiers have domain names, so the XMPP server can check that the DNS SAN matches the domain name of the identifiers in incoming XMPP messages.<p>I've seen non-XMPP systems where you configure the DNS name to require in the client certificate.<p>It's possible to do this securely, but I agree entirely with your other comment that using a public PKI with client certs is a recipe for disaster because it's so easy and common to screw up.</p>
]]></description><pubDate>Mon, 09 Feb 2026 22:54:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46952734</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46952734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46952734</guid></item><item><title><![CDATA[New comment by agwa in "Upcoming changes to Let's Encrypt and how they affect XMPP server operators"]]></title><description><![CDATA[
<p>After the WebPKI banned the issuance of new SHA-1 certificates due to the risk of collisions, several major payment processors (Worldpay[1], First Data[2], TSYS[3]) demanded to get more SHA-1 certificates because their customers had credit card terminals that did not support SHA-2 certificates.<p>They launched a gross pressure campaign, trotting out "small businesses" and charity events that would lose money unless SHA-1 certificates were allowed. Of course, these payment processors did billions in revenue per year and had years to ship out new credit card terminals. And small organizations could have and would have just gotten a $10 Square reader at the nearest UPS store if their credit card terminals stopped working, which is what the legacy payment processors were truly scared of.<p>The pressure was so strong that the browser vendors ended up allowing Symantec to intentionally violate the Baseline Requirements and issue SHA-1 certificates to these payment processors. Ever since, there has been a very strong desire to get use cases like this out of the WebPKI and onto private PKI where they belong.<p>A clientAuth EKU is the strongest indicator possible that a certificate is not intended for use by browsers, so allowing them is entirely downside for browser users. I feel bad for the clientAuth use cases where a public PKI is useful and which aren't causing any trouble (such as XMPP) but this is ultimately a very tiny use case, and a world where browsers prioritize the security of ordinary Web users is much better than the bad old days when the business interests of CAs and their large enterprise customers dominated.<p>[1] <a href="https://groups.google.com/g/mozilla.dev.security.policy/c/RHBHXJOG8Io/m/5_H_NzZhAQAJ" rel="nofollow">https://groups.google.com/g/mozilla.dev.security.policy/c/RH...</a><p>[2] <a href="https://groups.google.com/g/mozilla.dev.security.policy/c/yhq6QNhEQok/m/9sdadL9kFwAJ" rel="nofollow">https://groups.google.com/g/mozilla.dev.security.policy/c/yh...</a><p>[3] <a href="https://groups.google.com/g/mozilla.dev.security.policy/c/LM9tkZR9mLM/m/ACBIRX7GAAAJ" rel="nofollow">https://groups.google.com/g/mozilla.dev.security.policy/c/LM...</a></p>
]]></description><pubDate>Mon, 09 Feb 2026 22:40:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46952590</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46952590</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46952590</guid></item><item><title><![CDATA[New comment by agwa in "Google Cloud suspended my account for 2 years, only automated replies"]]></title><description><![CDATA[
<p>They denied my request for a service account quota increase even though my use case[1] was literally straight from their documentation. They only increased it after I complained on Twitter and got retweeted by Corey Quinn.<p>[1] <a href="https://www.agwa.name/blog/post/accessing_your_customers_google_cloud_accounts" rel="nofollow">https://www.agwa.name/blog/post/accessing_your_customers_goo...</a></p>
]]></description><pubDate>Sun, 01 Feb 2026 19:30:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46848628</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46848628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46848628</guid></item><item><title><![CDATA[New comment by agwa in "Certificate Transparency Log Explorer"]]></title><description><![CDATA[
<p>Logs are sharded by the expiration date of the certificate, not the issuance date, so you should expect to see growth in shards covering the next 398 days (the maximum lifetime of certificates).<p>As for the 2025h2 logs, these will not be acquiring any newly-issued certificates, but someone might be copying previously-issued certificates from other logs.</p>
]]></description><pubDate>Sat, 24 Jan 2026 01:38:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46740260</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46740260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46740260</guid></item><item><title><![CDATA[New comment by agwa in "6-Day and IP Address Certificates Are Generally Available"]]></title><description><![CDATA[
<p>That doesn't work, as neither SNI nor the server_name field of the ECHConfig are allowed to contain IP addresses: <a href="https://www.ietf.org/archive/id/draft-ietf-tls-esni-25.html#name-authenticating-for-the-publ" rel="nofollow">https://www.ietf.org/archive/id/draft-ietf-tls-esni-25.html#...</a><p>Even if it did work, the privacy value of hiding the SNI is pretty minimal for an IP address that hosts only a couple domains, as there are plenty of databases that let you look up an IP address to determine what domain names point there - e.g. <a href="https://bgp.tools/prefix/18.220.0.0/14#dns" rel="nofollow">https://bgp.tools/prefix/18.220.0.0/14#dns</a></p>
]]></description><pubDate>Fri, 16 Jan 2026 17:47:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46649341</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46649341</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46649341</guid></item><item><title><![CDATA[New comment by agwa in "Every GitHub object has two IDs"]]></title><description><![CDATA[
<p>> <i>GitHub's migration guide tells developers to treat the new IDs as opaque strings and treat them as references. However it was clear that there was some underlying structure to these IDs as we just saw with the bitmasking</i><p>Great, so now GitHub can't change the structure of their IDs without breaking this person's code. The lesson is that if you're designing an API and want an ID to be opaque you have to literally encrypt it. I find it really demoralizing as an API designer that I have to treat my API's consumers as adversaries who will knowingly and intentionally ignore guidance in the documentation like this.</p>
]]></description><pubDate>Wed, 14 Jan 2026 01:31:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46611194</link><dc:creator>agwa</dc:creator><comments>https://news.ycombinator.com/item?id=46611194</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46611194</guid></item></channel></rss>