<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>March on Aashutosh Poudel</title><link>https://atosh502.github.io/blog/til/2026/march/</link><description>Recent content in March on Aashutosh Poudel</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright © \b20\d{2}\b, Aashutosh Poudel.</copyright><lastBuildDate>Wed, 25 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://atosh502.github.io/blog/til/2026/march/index.xml" rel="self" type="application/rss+xml"/><item><title>HTTP/1.1 desync attacks</title><link>https://atosh502.github.io/blog/til/2026/march/http/1.1-desync-attacks/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://atosh502.github.io/blog/til/2026/march/http/1.1-desync-attacks/</guid><description>&lt;ul&gt;
&lt;li&gt;isolation between individual http requests is fundamentally broken in http/1.1
&lt;ul&gt;
&lt;li&gt;no reliable way to say when one request finishes and next request starts&lt;/li&gt;
&lt;li&gt;multiple ways to specify request length + requests are concatenated under single connection without delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.cloudflare.com/resolving-a-request-smuggling-vulnerability-in-pingora/#what-is-request-smuggling"&gt;request smuggling&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;between client and application servers, request passes through multiple components such as load balancers, reverse proxies, etc.&lt;/li&gt;
&lt;li&gt;HTTP request parsers inconsistency: an attacker can craft a request that one component sees as complete, but the other continues to parse into a second, malicious request made on the same connection.&lt;/li&gt;
&lt;li&gt;the malicious request could inject headers and its URL into a subsequent valid request sent on the same connection.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Links&lt;/p&gt;</description></item><item><title>appliedcryptography.page</title><link>https://atosh502.github.io/blog/til/2026/march/appliedcryptography.page/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://atosh502.github.io/blog/til/2026/march/appliedcryptography.page/</guid><description>&lt;ul&gt;
&lt;li&gt;Very interesting talk by &lt;a href="https://nadim.computer/"&gt;Nadim Kobeissi&lt;/a&gt; on teaching Cryptography in Post-Crisis Lebanon.&lt;/li&gt;
&lt;li&gt;The course syllabus, assignments, and projects are awesome.&lt;/li&gt;
&lt;li&gt;For students with zero crypto experience.&lt;/li&gt;
&lt;li&gt;Based on Joy of Cryptography (Mike Rosulek) and Serious Cryptography (Jean-Philippe Aumasson).&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Earning Attention, Not Assuming It&amp;rdquo;
&lt;ul&gt;
&lt;li&gt;enfranchise students and earn their attention&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Break the intimidation barrier&amp;rdquo;
&lt;ul&gt;
&lt;li&gt;hard math behind cryptography is &amp;ldquo;intimidation&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;intimidation&amp;rdquo; stemming from &amp;ldquo;notation&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;notations&amp;rdquo; (mathematical formalisms) are scarier than the &amp;ldquo;ideas&amp;rdquo; they contain&lt;/li&gt;
&lt;li&gt;&amp;ldquo;ideas&amp;rdquo; are intuitive and easy to explain&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Links&lt;/p&gt;</description></item><item><title>DPoP (Demonstrating Proof of Possession)</title><link>https://atosh502.github.io/blog/til/2026/march/dpop-demonstrating-proof-of-possession/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><guid>https://atosh502.github.io/blog/til/2026/march/dpop-demonstrating-proof-of-possession/</guid><description>&lt;ul&gt;
&lt;li&gt;&amp;ldquo;bearer&amp;rdquo; token grants access to the &amp;ldquo;bearer&amp;rdquo; of the token&lt;/li&gt;
&lt;li&gt;sender-constrained tokens to solve the problem of leaked &amp;ldquo;bearer&amp;rdquo; tokens&lt;/li&gt;
&lt;li&gt;client using a &amp;ldquo;bearer&amp;rdquo; token provides &amp;ldquo;a proof&amp;rdquo; every time it uses the token
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;proof&amp;rdquo; ensures client has a secret private key&lt;/li&gt;
&lt;li&gt;&amp;ldquo;proof&amp;rdquo; is usually a JWT signed by the secret private key&lt;/li&gt;
&lt;li&gt;binds &amp;ldquo;proof&amp;rdquo; to a specific HTTP request&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;application layer&lt;/li&gt;
&lt;li&gt;no PKI required&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Links&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://auth0.com/blog/protect-your-access-tokens-with-dpop/"&gt;Protect Your Access Tokens with DPoP (Demonstrating Proof of Possession) | Auth0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.rfc-editor.org/rfc/rfc9449.html"&gt;RFC 9449 OAuth 2.0 Demonstrating Proof of Possession (DPoP)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dpop.info/"&gt;dpop.info&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>