<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Security on Strathweb. A free flowing tech monologue.</title>
    <link>https://www.strathweb.com/categories/security/</link>
    <description>Recent content in Security on Strathweb. A free flowing tech monologue.</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 24 Mar 2026 07:00:00 +0000</lastBuildDate><atom:link href="https://www.strathweb.com/categories/security/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Introducing AgentGuard - declarative guardrails for .NET AI agents</title>
      <link>https://www.strathweb.com/2026/03/introducing-agentguard-declarative-guardrails-for-dotnet-ai-agents/</link>
      <pubDate>Tue, 24 Mar 2026 07:00:00 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2026/03/introducing-agentguard-declarative-guardrails-for-dotnet-ai-agents/</guid>
      <description>&lt;p&gt;As AI agents become more common in .NET applications, the question of how to keep them safe and well-behaved keeps coming up. Prompt injection, PII leakage, topic drift, tool call abuse - these are all problems that every team building with agents ends up having to deal with, often by hand-rolling ad-hoc checks. Python developers have had libraries like &lt;a href=&#34;https://github.com/NVIDIA/NeMo-Guardrails&#34;&gt;NeMo Guardrails&lt;/a&gt; and &lt;a href=&#34;https://github.com/guardrails-ai/guardrails&#34;&gt;Guardrails AI&lt;/a&gt; to help with this for a while now, but the .NET side has been largely left to fend for itself.&lt;/p&gt;
&lt;p&gt;Today I would like to introduce &lt;a href=&#34;https://filipw.github.io/AgentGuard&#34;&gt;AgentGuard&lt;/a&gt;, a library I have been working on to fill that gap - composable, declarative guardrails and safety controls for .NET AI agents.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pure Post Quantum Cryptography TLS with ASP.NET Core</title>
      <link>https://www.strathweb.com/2026/03/pure-post-quantum-cryptography-tls-with-asp-net-core/</link>
      <pubDate>Mon, 02 Mar 2026 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2026/03/pure-post-quantum-cryptography-tls-with-asp-net-core/</guid>
      <description>&lt;p&gt;Over the last few years, I have dedicated a lot of space &lt;a href=&#34;https://www.strathweb.com/categories/pqc&#34;&gt;on this blog&lt;/a&gt; to the topic of Post-Quantum Cryptography (PQC). Today, we will peek into the TLS 1.3 handshake.&lt;/p&gt;
&lt;p&gt;While &lt;a href=&#34;https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem/&#34;&gt;hybrid mode&lt;/a&gt; TLS is the pragmatic choice for today&amp;rsquo;s internet, understanding how to construct a fully quantum-safe connection is critical for preparing for the &lt;a href=&#34;https://csrc.nist.gov/pubs/ir/8547/ipd&#34;&gt;deprecation of classical algorithms&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this post, we are going to explore a &amp;ldquo;pure&amp;rdquo; PQC TLS stack: Post-Quantum Key Exchange, with Post-Quantum Authentication. We will configure an ASP.NET Core application running on Linux to use &lt;em&gt;ML-DSA-65&lt;/em&gt; for authentication and &lt;em&gt;ML-KEM-768&lt;/em&gt; for key exchange.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>(Maybe) LibOQS.NET 0.3.0: with liboqs 0.15.0, full suite of algorithms and other new features</title>
      <link>https://www.strathweb.com/2026/01/liboqs-net-0-3-0-liboqs-0-15-0-full-suite-of-algorithms-and-other-new-features/</link>
      <pubDate>Fri, 23 Jan 2026 07:30:00 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2026/01/liboqs-net-0-3-0-liboqs-0-15-0-full-suite-of-algorithms-and-other-new-features/</guid>
      <description>&lt;p&gt;Following the initial introduction of &lt;a href=&#34;https://github.com/filipw/maybe-liboqs-dotnet&#34;&gt;(Maybe) LibOQS.NET&lt;/a&gt; a few months ago, the post-quantum cryptography landscape has continued to move rapidly. To keep pace with these developments, the library has undergone significant updates to provide broader algorithm support and deeper integration with the underlying native tooling.&lt;/p&gt;
&lt;p&gt;Today marks the release of &lt;a href=&#34;https://github.com/filipw/maybe-liboqs-dotnet/releases&#34;&gt;version 0.3.0&lt;/a&gt;, a major milestone that brings the wrapper up to date with &lt;a href=&#34;https://github.com/open-quantum-safe/liboqs/releases/tag/0.15.0&#34;&gt;liboqs 0.15.0&lt;/a&gt;. This release is more than just a version bump; it exposes pretty much all of the liboqs algorithms to .NET developers and adds support for signature context strings, as well as the ability to perform deterministic (derandomized) KEM operations.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introducing (Maybe) LibOQS.NET - a post quantum cryptography library for .NET</title>
      <link>https://www.strathweb.com/2025/09/introducing-maybe-liboqs-net-a-post-quantum-crypto-library-for-net/</link>
      <pubDate>Tue, 23 Sep 2025 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2025/09/introducing-maybe-liboqs-net-a-post-quantum-crypto-library-for-net/</guid>
      <description>&lt;p&gt;Over recent years I have been involved in the post-quantum cryptography community, especially from the .NET angle - trying to streamline integration of PQC into .NET space and raise the awareness of developers via various &lt;a href=&#34;https://www.strathweb.com/categories/pqc/&#34;&gt;projects, samples and articles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this spirit, I would like to announce today a library called &lt;a href=&#34;https://github.com/filipw/maybe-liboqs-dotnet&#34;&gt;(Maybe) LibOQS.NET&lt;/a&gt;, which is a thin wrapper around &lt;a href=&#34;https://openquantumsafe.org/&#34;&gt;liboqs&lt;/a&gt;, a C library providing implementations for all post-quantum cryptography algorithms. This includes both the standardized ones, like ML-KEM, ML-DSA and SLH-DSA, as well as the ones currently undergoing standarization and under active research and development.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>ML-KEM and ML-DSA Post-Quantum Cryptography in Windows</title>
      <link>https://www.strathweb.com/2025/08/ml-kem-and-ml-dsa-post-quantum-cryptography-in-windows/</link>
      <pubDate>Thu, 28 Aug 2025 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2025/08/ml-kem-and-ml-dsa-post-quantum-cryptography-in-windows/</guid>
      <description>&lt;p&gt;Following up on my &lt;a href=&#34;https://www.strathweb.com/categories/pqc/&#34;&gt;recent posts&lt;/a&gt; about ML-KEM and ML-DSA post-quantum cryptography in .NET using &lt;a href=&#34;https://www.strathweb.com/2025/02/ml-kem-and-ml-dsa-post-quantum-cryptography-in-net/&#34;&gt;BouncyCastle.NET&lt;/a&gt;, I wanted to share an interesting development on the Windows side. Microsoft has recently &lt;a href=&#34;https://techcommunity.microsoft.com/blog/microsoft-security-blog/post-quantum-cryptography-comes-to-windows-insiders-and-linux/4413803&#34;&gt;announced post-quantum cryptography support&lt;/a&gt; in Windows through their Cryptography API: Next Generation (CNG) libraries.&lt;/p&gt;
&lt;p&gt;This development provides an alternative to third-party libraries for quantum-resistant cryptography on Windows systems. The implementation offers direct OS integration and follows standard .NET patterns for cryptographic operations.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>ML-KEM and ML-DSA Post-Quantum Cryptography in .NET</title>
      <link>https://www.strathweb.com/2025/02/ml-kem-and-ml-dsa-post-quantum-cryptography-in-net/</link>
      <pubDate>Fri, 14 Feb 2025 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2025/02/ml-kem-and-ml-dsa-post-quantum-cryptography-in-net/</guid>
      <description>&lt;p&gt;Some time ago, I wrote a post about &lt;a href=&#34;https://www.strathweb.com/2023/02/post-quantum-cryptography-in-net/&#34;&gt;post-quantum cryptography in .NET&lt;/a&gt;, where I introduced the concept of post-quantum cryptography and discussed the early &lt;a href=&#34;https://www.bouncycastle.org&#34;&gt;BouncyCastle.NET&lt;/a&gt; implementation of Kyber and Dilithium. Today I would like to revisit this post, as both of these algorithms have been officially standardized as ML-KEM and ML-DSA.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building a chat app with Blazor WASM, SignalR and post-quantum end-to-end encryption</title>
      <link>https://www.strathweb.com/2024/08/building-a-chat-app-with-blazor-wasm-signalr-and-post-quantum-end-to-end-encryption/</link>
      <pubDate>Fri, 30 Aug 2024 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2024/08/building-a-chat-app-with-blazor-wasm-signalr-and-post-quantum-end-to-end-encryption/</guid>
      <description>&lt;p&gt;I previously blogged about post-quantum cryptography on this blog a &lt;a href=&#34;https://www.strathweb.com/categories/cryptography/&#34;&gt;few times&lt;/a&gt;. Among other things, I released a set of helper libraries for working with Dilithium in .NET and Duende Identity Server, as well as shared some general samples on post-quantum cryptography in .NET.&lt;/p&gt;
&lt;p&gt;Earlier this month, in a big milestone, &lt;a href=&#34;https://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards&#34;&gt;NIST released&lt;/a&gt; the first 3 finalized Post-Quantum encryption standards. I thought it might be nice to celebrate this by building a simple chat application with Blazor WASM and SignalR, that uses post-quantum cryptography for end-to-end encryption.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Strathweb.Dilithium for Duende Identity Server now supports automatic key management</title>
      <link>https://www.strathweb.com/2024/08/strathweb-dilithium-for-duende-identity-server-now-supports-automatic-key-management/</link>
      <pubDate>Fri, 23 Aug 2024 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2024/08/strathweb-dilithium-for-duende-identity-server-now-supports-automatic-key-management/</guid>
      <description>&lt;p&gt;Earlier this week, I released version 0.2.0 of my post-quantum cryptography helper library .NET, &lt;a href=&#34;https://github.com/filipw/Strathweb.Dilithium&#34;&gt;Strathweb.Dilithium&lt;/a&gt;, which introduces a new feature - automatic key management support in Duende Identity Server. This feature plugs into the automatic key management capabilities of Duende Identity Server, and allows you to automatically generate and manage Dilithium keys for token signing purposes, without having to manually handle the key generation and rotation.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing Strathweb.Dilithium - a set of ASP.NET helper libraries for post quantum cryptography</title>
      <link>https://www.strathweb.com/2023/08/announcing-strathweb-dilithium-a-set-of-net-helper-libraries-for-post-quantum-cryptography/</link>
      <pubDate>Tue, 22 Aug 2023 18:00:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/08/announcing-strathweb-dilithium-a-set-of-net-helper-libraries-for-post-quantum-cryptography/</guid>
      <description>&lt;p&gt;Earlier this year I blogged about post-quantum cryptography in .NET using &lt;a href=&#34;https://www.strathweb.com/2023/02/post-quantum-cryptography-in-net/&#34;&gt;Dilithium and Kyber&lt;/a&gt;. This was then followed by &lt;a href=&#34;https://www.strathweb.com/2023/03/post-quantum-token-signing-with-dilithium-using-duende-identity-server/&#34;&gt;another post&lt;/a&gt;, which showed how Dilithium can be wired into a popular .NET Identity Server, &lt;a href=&#34;https://duendesoftware.com/products/identityserver&#34;&gt;Duende Identity Server&lt;/a&gt;, for token signing purposes.&lt;/p&gt;
&lt;p&gt;Today I would like to announce &lt;a href=&#34;https://github.com/filipw/Strathweb.Dilithium&#34;&gt;Strathweb.Dilithium&lt;/a&gt;, a set of .NET helper libraries to facilitate working with Dilithium in ASP.NET Core projects.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Post-quantum token signing with Dilithium using Duende Identity Server</title>
      <link>https://www.strathweb.com/2023/03/post-quantum-token-signing-with-dilithium-using-duende-identity-server/</link>
      <pubDate>Fri, 24 Mar 2023 11:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/03/post-quantum-token-signing-with-dilithium-using-duende-identity-server/</guid>
      <description>&lt;p&gt;On March 12th, a new IETF draft &lt;a href=&#34;https://www.ietf.org/id/draft-ietf-cose-dilithium-00.html&#34;&gt;JOSE and COSE Encoding for Dilithium&lt;/a&gt; was published. It describes JSON serializations for CRYSTALS-Dilithium, a post-quantum cryptography suite. This in turn allows using post-quantum cryptography for tasks like signing JSON Web Tokens in a standardized fashion.&lt;/p&gt;
&lt;p&gt;I &lt;a href=&#34;https://www.strathweb.com/2023/02/post-quantum-cryptography-in-net/&#34;&gt;previously blogged&lt;/a&gt; about using CRYSTALS-Dilithium from .NET applications, so in this post let&amp;rsquo;s see how we can apply this new draft to one of the most popular .NET OpenID Connect / OAuth 2.0 servers, &lt;a href=&#34;https://duendesoftware.com/products/identityserver&#34;&gt;Duende Identity Server&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Beware of the default ASP.NET Core Identity settings</title>
      <link>https://www.strathweb.com/2023/03/beware-of-the-default-aspnet-identity-settings/</link>
      <pubDate>Thu, 02 Mar 2023 11:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/03/beware-of-the-default-aspnet-identity-settings/</guid>
      <description>&lt;p&gt;The other day I was involved in setting up a new project based on &lt;a href=&#34;https://learn.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-7.0&amp;amp;tabs=visual-studio&#34;&gt;ASP.NET Core Identity&lt;/a&gt;, when I noticed something related to the default configuration that I thought would be worth sharing here.&lt;/p&gt;
&lt;p&gt;Of course, while in general it is not great to rely on default settings of any product (especially when it is the security backbone of your application!) one also expects sensible defaults to be provided.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s have a look.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Post quantum cryptography in .NET</title>
      <link>https://www.strathweb.com/2023/02/post-quantum-cryptography-in-net/</link>
      <pubDate>Tue, 21 Feb 2023 11:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/02/post-quantum-cryptography-in-net/</guid>
      <description>&lt;p&gt;I have written extensively about &lt;a href=&#34;https://www.strathweb.com/categories/quantum-computing&#34;&gt;quantum computing&lt;/a&gt; on this blog before. Quantum computing has the potential to break many of the cryptographic systems that we use today. Shor&amp;rsquo;s algorithm, for example, can efficiently factor large numbers, which would make widely-used asymmetric cryptography schemes such as RSA and elliptic curves insecure.&lt;/p&gt;
&lt;p&gt;In this post, we&amp;rsquo;ll explore how to use post-quantum cryptography from a C# program, using CRYSTALS-Kyber and CRYSTALS-Dilithium as examples.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Initiating User Registration via OpenID Connect with Duende Identity Server</title>
      <link>https://www.strathweb.com/2022/09/initiating-user-registration-via-openid-connect-with-duende-identity-server/</link>
      <pubDate>Wed, 28 Sep 2022 12:39:30 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2022/09/initiating-user-registration-via-openid-connect-with-duende-identity-server/</guid>
      <description>&lt;p&gt;There is a new proposal for an extension to OpenID Connect Authentication Framework, called &lt;a href=&#34;https://openid.net/specs/openid-connect-prompt-create-1_0.html&#34;&gt;Initiating User Registration via OpenID Connect&lt;/a&gt;. It went into &lt;a href=&#34;https://openid.net/2022/09/22/public-review-period-for-proposed-final-initiating-user-registration-via-openid-connect-specification/&#34;&gt;public review&lt;/a&gt; just last week, which is expected to close later this year.&lt;/p&gt;
&lt;p&gt;This very useful extension defines how a client application can indicate to the OpenID Provider that a new user account should be created, rather than triggering the typical login procedure.&lt;/p&gt;
&lt;p&gt;In this post we will look at how to support it with &lt;a href=&#34;https://github.com/DuendeSoftware/IdentityServer&#34;&gt;Duende Identity Server&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Self-issuing an IdentityServer4 token in an IdentityServer4 service</title>
      <link>https://www.strathweb.com/2017/10/self-issuing-an-identityserver4-token-in-an-identityserver4-service/</link>
      <pubDate>Tue, 10 Oct 2017 15:00:29 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2017/10/self-issuing-an-identityserver4-token-in-an-identityserver4-service/</guid>
      <description>&lt;p&gt;When building logic around the IdentityServer4 extensibility points, it is sometimes necessary to dynamically issue a token, with which your code can then call some external endpoints or dependencies.&lt;/p&gt;
&lt;p&gt;Turns out that rather than round-tripping back to same IdentityServer4 instance over the network to get that token, there is a more efficient and quicker way to do it. Let&amp;rsquo;s have a look.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
