Pilcrow Publishes Free Comprehensive Guide on Web Authentication
Pilcrow has released a personal handbook on authentication that serves as a free collection of guides, recommendations, and code examples for implementing secure authentication in web applications.
The book focuses primarily on authentication and authorization systems for web apps and directs readers to the OWASP Cheat Sheets series for broader security topics. It is available without cost or advertising and includes both JavaScript and Go examples hosted on GitHub.
Authentication Methods
The simplest approach uses a username and password, yet the text details multiple risks including weak or reused passwords, phishing, and database compromise. Email addresses are presented as globally unique identifiers that also enable password recovery through time-limited links or codes.
For stronger protection, the guide covers two-factor and multi-factor authentication using SMS codes or authenticator apps. It notes that these methods should be viewed as rate-limiting mechanisms rather than absolute security and advises against reusing email verification as a second factor when it is also used for password resets.
Passwordless options receive detailed treatment, including one-time codes or magic links sent via email. Passkeys based on public-key cryptography are highlighted for resistance to brute-force attacks and phishing while offering convenience through device biometrics or a master password. External hardware tokens such as YubiKey devices are discussed for both passkey support and corporate second-factor use.
The author recommends supporting both email-based and passkey authentication so users can select their preferred method, with passkeys enforced for high-security accounts.
Session Management
Because HTTP is stateless, the book explains the necessity of server-side session records paired with client tokens. Session secrets must be generated from cryptographically secure random sources, hashed with SHA-256, and combined with an identifier into a single token using encodings such as hex or base64url.
Recommended practices include setting reasonable expiration times, optionally binding sessions to geographic regions derived from IP addresses, and invalidating sessions on logout or password change. The guide stresses that session invalidation is a privileged operation and that operation-specific sessions should be used for sensitive actions such as password updates or passkey registration.
Email Addresses and Final Advice
Email addresses are endorsed as reliable account identifiers because of their uniqueness and familiarity, provided domain validation is performed. The book concludes that authentication method selection must balance security requirements, user behavior, and platform expectations, favoring stronger methods implemented from the start rather than relying on post-login detection.
Related articles
OAuth Authorization Server Built Without Storing User Profiles
The article details the evolution of an OAuth Authorization Server that deliberately avoids storing user profiles, relying instead on external identity providers for authentication. It addresses three core constraints: hundreds of dynamically created isolated APIs, a public SPA client without a BFF, and the inability of resources to query the AS on every request. The design separates concerns so the AS handles only clients, tenants, grants, audiences, scopes, keys, sessions, and token issuance while the Main API owns profiles and roles. Tokens are managed securely inside a Service Worker using a custom FedCM grant, eliminating races across tabs and reducing XSS exposure. The approach minimizes blast radius, simplifies compliance, and keeps the AS replaceable without affecting product domain logic.
Why a 202-Character License Key Uses ECDSA P-256 Instead of Ed25519 or RSA
A developer building offline license verification for a .NET desktop application evaluated Ed25519, RSA, and ECDSA P-256 before selecting the last option. The decision was driven by the requirement for zero external dependencies, keys short enough for manual entry from email, and support for key rotation without breaking existing licenses. Although Ed25519 offers faster verification and a smaller public key, it is absent from System.Security.Cryptography in both .NET 8 and .NET 10, with API approval only targeted for version 11. RSA-2048 produces signatures too long for practical use, resulting in a 571-character Base32 string that users would find cumbersome. ECDSA P-256 with SHA-256 delivers a fixed 64-byte signature that becomes a manageable 202-character key when encoded in Base32, while remaining fully available in the runtime. The article also covers performance measurements, the risks of ECDSA nonce generation, and the deliberate choice of the IEEE P1363 signature format to guarantee fixed-length output.
redb 3.4.0 Adds Replay Checkpoints, Shared Runtime Layer and Declarative Secrets Handling for .NET Ecosystem
redb 3.4.0 delivers operational improvements for the .NET integration platform that includes typed storage over Postgres, MSSQL and SQLite, the redb.Route engine modeled after Apache Camel, the Tsak runtime with dashboard and clustering, and redb.Identity for OIDC and OAuth 2.1. The release focuses on post-deployment resilience with replay checkpoints that capture message state at named points inside routes, allowing safe re-execution of downstream steps without duplicating side effects. A shared runtime layer moves framework assemblies into a separate Libs/shared directory so that individual DLLs can be replaced without rebuilding or redeploying the entire Tsak or Identity packages. Secrets are now declared with a [Sensitive] attribute on endpoint options, ensuring URIs containing passwords or keys are sanitized before they reach logs, metrics or health checks. Additional controls include role-based access to management APIs, persistent audit trails and cryptographic signing of dynamically loaded modules. All Pro features remain free on the entire 3.x line with no licensing server required.
Neural Networks Without Magic: 80-Year History, Business Applications, and Why They Will Not Replace Experts Overnight
In an in-depth interview, Data Science team lead Vasily Ryazanov traces neural networks back to the 1970s work of his father and academician Zhuravlev, explaining that the technology is approximately 80 years old rather than a recent phenomenon. Ryazanov details how modern large language models such as ChatGPT and Claude function by predicting tokens within a context window after pre-training on massive datasets, and he contrasts prompt engineering with the deeper mathematical and programming skills required to build models. He describes real-world deployments including an antifraud system for the insurance company Alliance that automates detection of medical claim fraud. The discussion covers practical limits such as hallucinations, risks of uploading sensitive data to external services, and the psychological tendency of users to over-trust fluent model outputs. Ryazanov emphasizes that while tools like Claude and ChatGPT accelerate routine tasks, they remain assistants that require human verification on high-stakes decisions in health, finance, or security.