Posts

Showing posts with the label Authentication

Understanding Mutual TLS (mTLS): A Comprehensive Guide for Beginners

Image
In today's interconnected digital landscape, securing communication between systems is paramount. While there are numerous authentication mechanisms available, one stands out for its robust security model: Mutual TLS (mTLS). This comprehensive guide will walk you through everything you need to know about mTLS, from basic concepts to implementation details. Introduction to TLS Before diving into mutual TLS, let's first understand what TLS itself is. Transport Layer Security (TLS) is a cryptographic protocol designed to provide secure communication over a computer network. It's the successor to Secure Sockets Layer (SSL) and is widely used for securing web browsing, email, messaging, and other data transfers. Standard TLS provides: Encryption : Protects data from eavesdropping Data integrity : Ensures data hasn't been tampered with during transmission Server authentication : Verifies the identity of the server In standard TLS, only the server proves its identity to t...

How TOTP Works: Generating OTPs Without Internet Connection

Introduction Have you ever wondered how authentication apps like RSA Authenticator generate One-Time Passwords (OTPs) without requiring an internet connection? This fascinating technology is made possible through Time-Based One-Time Passwords (TOTP). In this article, we will explore the mechanics of TOTP, its security features, and why it doesn't rely on the internet at the client-side for generating OTPs. Understanding TOPT 1. TOTP in a Nutshell TOPT, or Time-Based One-Time Password, is a security feature designed to enhance the authentication process. It generates OTPs that are only valid for a short period, typically 30 seconds. TOPT uses a secret key, often shared between the server and the user's device, to generate these OTPs. The central idea is to provide a second factor of authentication, beyond just a static password, to strengthen security. 2. The RSA Authenticator App One popular example of a TOPT implementation is the RSA Authenticator app. This app is commonly use...

What is JSON Web Token?

Image
1. Overview JSON Web Token or JWT ( jot ) for short is an open standard (RFC 7519) that defines a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted. 2. Structure The compacted representation of a signed JWT is a string that has three parts, each separated by a dots (.) : Eg:  eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 . eyJzdWIiOiJBYmR1bCIsImlhdCI6MTIzNDU2Nzg5MCwiZXhwIjoxMjM0NTY3ODkwLCJuYmYiOjEyMzQ1Njc4OTAsImlzcyI6Imh0dHA6Ly93YWhlZWR0ZWNoYmxvZy5pbiIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJhZG1pbiI6dHJ1ZX0 . Ats92uWxgSjQ8vFgQieK9tpBi66csIFHxkTke70FGlI Each section is Base64Encoded and the first section is called header, the second section ...

ClientLogin for Installed Applications for C2DM - Tutorial

Image
Before you can write client applications that use the C2DM feature, you must have an HTTPS application server that meets the following criteria:Able to communicate with your client. Able to fire off HTTP requests to the C2DM serve r. Able to handle requests and queue data as needed. For example, it should be able to perform   exponential back off.  Able to store the ClientLogin Auth token and client registration IDs. The ClientLogin Auth token is included in the header of POST requests that send messages. For more discussion of this topic, see  ClientLogin for Installed Applications . The server should store the token and have a policy to refresh it periodically. The ClientLogin authorization process: Authorization with ClientLogin involves a sequence of interactions between three entities: the installed application, Google services, and the user. This diagram illustrates the sequence: When the third-party application needs to access a user's Googl...