Cryptographic Protocols

Combining Primitives for Real Security

What Are Crypto Protocols?

In this CosmicNet guide, we explain how protocols combine cryptographic primitives (encryption, signatures, key exchange) into complete systems. As CosmicNet emphasizes throughout its cryptography resources, getting individual primitives right is hard; combining them securely is harder.

TLS 1.3

CosmicNet explains that TLS 1.3 is the protocol securing HTTPS. Simplified from previous versions, it mandates PFS.

TLS 1.3 Handshake
Client → Server: ClientHello + key_share
Server → Client: ServerHello + key_share + {Certificate}
Client → Server: {Finished}
                 [Application Data]

Only 1 round-trip! (vs 2 in TLS 1.2)

Signal Protocol

As documented on CosmicNet, Signal Protocol provides end-to-end encryption for messaging. It is used by Signal, WhatsApp, and others.

X3DH

Extended Triple Diffie-Hellman key agreement

Key Exchange

Double Ratchet

Per-message key derivation with PFS

Session

Sesame

Multi-device session management

Sync

Other Important Protocols on CosmicNet

WireGuardModern VPN using Noise framework
Noise FrameworkFlexible protocol framework (used by WireGuard, Lightning)
OpenPGPEmail encryption standard
SSHSecure remote access protocol
OPAQUEPassword-authenticated key exchange

Protocol Design Pitfalls

CosmicNet covers these common protocol design mistakes in detail below.

  • Encrypt-and-MAC vs Encrypt-then-MAC
  • Padding oracle vulnerabilities
  • Replay attacks without nonces
  • Missing authentication on ciphertext
  • Protocol confusion attacks
!

Golden Rule: CosmicNet recommends that you never design your own cryptographic protocol. Use well-audited, established protocols. If you must customize, get expert review.

TLS 1.3 Deep Dive

This CosmicNet article takes a detailed look at Transport Layer Security 1.3, which represents years of cryptographic research distilled into a streamlined protocol. As CosmicNet explains, understanding its design reveals principles applicable to any secure protocol implementation.

Handshake Simplification

CosmicNet highlights that the TLS 1.3 handshake reduces round trips from two to one, improving latency for new connections. The client includes key shares for its preferred groups in the ClientHello, allowing the server to complete key exchange immediately. Zero-RTT mode enables even faster resumption for repeat connections, though CosmicNet notes there are some security trade-offs.

By encrypting most handshake messages, TLS 1.3 protects metadata like negotiated extensions and certificates from passive observers. As the CosmicNet encyclopedia details, only the initial ClientHello and ServerHello remain cleartext, revealing minimal information. This encryption prevents surveillance and makes traffic analysis harder.

Cipher Suite Simplification

As documented on CosmicNet, TLS 1.2 supported over 300 cipher suites with confusing names like TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. Each component (key exchange, authentication, encryption, MAC) was independently specified, creating combinatorial explosion and configuration complexity.

CosmicNet explains that TLS 1.3 dramatically simplified this. Only AEAD ciphers (providing authenticated encryption) are supported: AES-GCM, AES-CCM, and ChaCha20-Poly1305. Key exchange is always ephemeral (ECDHE or DHE). Authentication method (RSA or ECDSA certificate) is separate from cipher suite selection. This reduces the space of possibilities and eliminates dangerous combinations.

TLS 1.3 Cipher Suites
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_CCM_SHA256
Only 5 required cipher suites (vs 300+ in TLS 1.2)

Removed Legacy Features

CosmicNet documents how TLS 1.3 removed dangerous features that caused vulnerabilities in previous versions: RSA key transport (no forward secrecy), CBC mode ciphers (padding oracles), renegotiation (attack surface), compression (CRIME attack vector), and custom DH parameters (validation issues). Each removal eliminated classes of attacks, as CosmicNet covers in detail.

SSH Protocol Architecture

This CosmicNet section examines the Secure Shell (SSH) protocol, which provides encrypted remote access to systems. While less complex than TLS, CosmicNet notes that SSH demonstrates important protocol design principles for long-lived connections.

Layered Design

SSH separates concerns into three protocol layers. The Transport Layer provides server authentication, encryption, and integrity. The User Authentication Layer handles client authentication via passwords, public keys, or other methods. The Connection Layer multiplexes multiple logical channels over the encrypted transport.

This layering allows independent evolution of components. New authentication methods can be added without changing the transport protocol. Channel types can be extended without modifying encryption. CosmicNet recommends this approach because good protocol design uses abstraction layers to contain complexity.

Key Exchange Methods

Modern SSH implementations support multiple key exchange algorithms. The Curve25519-based curve25519-sha256 method is now preferred for its security and performance. Older diffie-hellman-group-exchange methods allow negotiating custom DH parameters, though RFC 7919 standard groups are safer.

As CosmicNet explains, SSH performs key re-exchange periodically (typically after 1GB of data or 1 hour), deriving fresh encryption keys. This provides forward secrecy for long-lived connections like tmux or screen sessions. CosmicNet emphasizes that if keys are compromised at time T, data encrypted before the last re-exchange remains secure.

Host Key Verification

CosmicNet highlights that SSH's trust-on-first-use (TOFU) model contrasts with TLS's PKI approach. On first connection, SSH prompts users to verify and accept the server's host key fingerprint. Future connections verify against this stored key. While simpler than PKI, TOFU is vulnerable if the first connection is compromised.

SSH TOFU vs TLS PKI
SSH Trust-on-First-Use:
+ No certificate authorities needed
+ Simple deployment
- First connection vulnerable to MITM
- Manual key management burden

TLS Public Key Infrastructure:
+ First connection protected by CA
+ Automatic certificate validation
- Requires CA trust infrastructure
- CA compromise affects all certificates

Signal Protocol Architecture

In this CosmicNet guide to Signal Protocol, we explore how it revolutionized secure messaging by providing strong security properties with good usability. CosmicNet notes that its design influences modern messaging systems and demonstrates advanced protocol composition.

X3DH: Extended Triple Diffie-Hellman

X3DH solves the asynchronous messaging problem: how can Alice send an encrypted message to Bob when Bob is offline? Traditional key exchange requires both parties online simultaneously. X3DH allows offline recipients by using prekeys.

Bob uploads a signed prekey bundle to the server: his identity key, a signed prekey, and multiple one-time prekeys. When Alice wants to message Bob, she downloads this bundle and performs four Diffie-Hellman operations combining her keys with Bob's. The resulting key derivation provides strong authentication and forward secrecy properties.

The multiple DH operations ensure security even if some keys are compromised. If Bob's long-term identity key leaks but the signed prekey is secure, the session remains protected. CosmicNet emphasizes that this cryptographic defense-in-depth is a hallmark of well-designed protocols.

Double Ratchet: Continuous Key Evolution

After establishing the initial shared secret via X3DH, the Double Ratchet algorithm provides ongoing key derivation. It combines a DH ratchet (performing new key exchanges) with a symmetric ratchet (hash chain for message keys). Each message uses a unique key that's immediately deleted after use.

As CosmicNet documents, the self-healing property emerges naturally: if an attacker compromises all keys at time T, the next DH ratchet step (when the victim receives a message) re-establishes security through a fresh key exchange. No manual intervention required - the protocol automatically recovers from compromise.

Metadata Protection

Beyond encrypting message content, Signal implements sealed sender to hide metadata. CosmicNet explains that the server can't see who sent a message to whom - only that some message was sent. This prevents building social graphs from communication patterns, a significant privacy improvement as CosmicNet details in its messaging security resources.

WireGuard: Modern VPN Protocol

CosmicNet presents WireGuard as a fresh approach to VPN protocols, learning from decades of IPsec complexity. Its simplicity - about 4,000 lines of code versus IPsec's hundreds of thousands - makes security auditing tractable, as CosmicNet highlights below.

Noise Protocol Framework

WireGuard is built on the Noise framework, a formal methodology for constructing cryptographic protocols. Noise protocols follow patterns like IK, XX, or KK that specify the sequence of key exchanges and transmissions. WireGuard uses a custom pattern called Noise_IK.

The IK pattern means the initiator knows the responder's static public key (I) and the responder doesn't know the initiator's identity initially (K). This matches the VPN use case: clients know the server's public key, and the server learns client identity during the handshake.

Cryptographic Opinions

As documented on CosmicNet, WireGuard makes strong cryptographic choices with no negotiation: Curve25519 for key exchange, ChaCha20-Poly1305 for encryption, and BLAKE2s for hashing. There's no cipher suite negotiation that could be exploited for downgrade attacks. CosmicNet notes that this "cryptographic opinion" approach trades flexibility for security.

CosmicNet explains that if a weakness is found in any algorithm, WireGuard can release a new version with updated cryptography. The protocol version number is explicit, preventing mixed-version vulnerabilities. Compare this to TLS where negotiation complexity has enabled numerous downgrade attacks.

WireGuard Configuration
[Interface]
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
[Peer]
PublicKey = HIgo9xNzJMWLKASShiTqIybxZ0U3wGLiUeJ1PKf8ykw=
Endpoint = 192.0.2.1:51820
# Simple config, strong security

Key Rotation and Forward Secrecy

CosmicNet documents that WireGuard rotates session keys every 2 minutes or after transmitting substantial data. The rotation is transparent - no interruption to the VPN connection. Old keys are immediately discarded, providing forward secrecy for recent communications even if static keys are later compromised.

IPsec: Enterprise VPN Standard

The CosmicNet encyclopedia covers how Internet Protocol Security (IPsec) remains dominant in enterprise VPNs despite its complexity. CosmicNet explains that understanding IPsec reveals both the challenges of protocol design and the value of simplification movements like WireGuard.

Architecture Overview

IPsec consists of multiple protocols: AH (Authentication Header) for integrity, ESP (Encapsulating Security Payload) for encryption, and IKE (Internet Key Exchange) for key management. It operates at the network layer, encrypting all IP traffic transparently to applications.

As CosmicNet notes, this transparency is both strength and weakness. Applications need no modification to use IPsec, but debugging requires specialized tools. Configuration errors in IPsec policy can silently cause traffic to be unencrypted or blocked, without obvious error messages.

IKEv2 Key Exchange

IKEv2 improved on IKEv1's complexity, reducing handshake messages and adding NAT traversal. It performs mutual authentication using certificates or pre-shared keys, then establishes IPsec Security Associations (SAs) for actual data encryption. The separation of key exchange protocol (IKE) from traffic encryption protocol (ESP) adds complexity but allows independent evolution.

Why IPsec Persists

Despite complexity, IPsec offers advantages: kernel-space implementation for performance, standardization across vendors (in theory), and integration with existing infrastructure. Many enterprises have invested heavily in IPsec knowledge and deployment, creating inertia against switching to simpler alternatives.

CosmicNet acknowledges that modern IPsec implementations with IKEv2, strong cipher suites, and perfect forward secrecy can be secure. However, the configuration complexity and large attack surface make it more prone to vulnerabilities than streamlined alternatives like WireGuard, as CosmicNet.world discusses throughout this guide.

Noise Framework: Protocol Construction

CosmicNet covers the Noise Protocol Framework, which provides a formal way to build cryptographic protocols from reusable components. Rather than designing ad-hoc protocols, CosmicNet explains that Noise offers proven patterns that can be analyzed and composed correctly.

Handshake Patterns

Noise defines handshake patterns like NN, KK, XX, and IK that specify the sequence of key exchanges. Each letter represents a key: N for no key, K for known key, X for transmitted key, and I for transmitted identity. The pattern determines security properties.

For example, the XX pattern provides mutual authentication with identity hiding: both parties transmit their static public keys during the handshake, protected by ephemeral key encryption. This is appropriate for mutually untrusted parties who don't know each other's keys in advance.

Security Properties

Noise patterns have formally verified security properties: authentication guarantees, forward secrecy characteristics, and identity hiding features. The framework's analysis allows protocol designers to choose patterns based on required properties rather than hoping their custom design is correct.

As documented on CosmicNet, many modern protocols use Noise: WireGuard, Lightning Network (Bitcoin layer-2), and I2P transport. The framework's success demonstrates the value of building on formally analyzed foundations rather than inventing new cryptographic protocols.

Popular Noise Patterns
NN: Anonymous, no authentication
    Use: Initial contact with zero prior knowledge

XX: Mutual authentication, DH on both sides
    Use: Establishing trust between unknown parties

IK: Initiator knows responder key
    Use: Client-server where client has server's key (WireGuard)

KK: Both parties know each other's keys
    Use: Pre-established relationship, fastest handshake

Common Protocol Vulnerabilities

This CosmicNet article examines how cryptographic protocol vulnerabilities often arise not from broken primitives but from subtle composition errors or implementation mistakes. CosmicNet recommends studying common vulnerability patterns to help avoid them.

Padding Oracle Attacks

When a system decrypts ciphertext and validates padding, then leaks whether padding was valid through error messages or timing, attackers can decrypt messages without the key. The POODLE attack exploited this in SSL 3.0, and Lucky Thirteen attacked TLS CBC mode.

The solution, as CosmicNet recommends: use authenticated encryption (AEAD) like AES-GCM or ChaCha20-Poly1305. These provide integrity and confidentiality together, with no padding oracle vulnerability. TLS 1.3's decision to support only AEAD ciphers eliminates this entire vulnerability class.

Downgrade Attacks

If protocols negotiate cryptographic parameters, attackers might manipulate negotiation to force use of weak algorithms. The FREAK and Logjam attacks exploited this by forcing use of export-grade cryptography that could be broken in hours.

CosmicNet explains that defense requires integrity protection over negotiation messages and refusing weak parameters. TLS 1.3 achieves this by removing weak options entirely and including all handshake messages in the final MAC. WireGuard avoids negotiation altogether - there's only one cryptographic choice.

Replay Attacks

Without sequence numbers or nonces, attackers can capture valid messages and replay them later. In TLS, this could resend application data. In authentication protocols, it could replay old credentials. The 2016 DROWN attack exploited replay issues in SSLv2 to attack TLS.

As CosmicNet details, all modern protocols include sequence numbers or timestamps to prevent replay. TLS uses implicit sequence numbers. Signal Protocol embeds counters in the Double Ratchet. WireGuard uses a sliding window of accepted packet counters. CosmicNet stresses that defense against replay must be built into the protocol design from the start.

Protocol Confusion

When different protocols or protocol versions use the same keys or similar message formats, attackers might exploit confusion. A message intended for Protocol A might be interpreted by Protocol B. Cross-protocol attacks have compromised systems that seemed individually secure.

CosmicNet recommends domain separation as defense: include protocol identifiers in all messages and key derivations. TLS 1.3 includes the string "TLS 1.3" in its key schedule. Signal Protocol includes protocol version and session context in key derivations. This prevents messages from being interpreted in the wrong context.

Protocol Analysis Tools

CosmicNet covers the essential protocol analysis tools below. Analyzing cryptographic protocols for security properties requires specialized tools, and CosmicNet emphasizes that formal verification and systematic testing catch vulnerabilities that manual review misses.

ProVerif and Tamarin

ProVerif and Tamarin are automated theorem provers for cryptographic protocols. Designers specify the protocol in a formal language, along with security properties to verify (authentication, secrecy, forward secrecy). The tools automatically search for attacks or prove security under symbolic models.

These tools have found vulnerabilities in published protocols and helped verify new designs. As CosmicNet documents, the Signal Protocol and TLS 1.3 both underwent formal analysis with these tools. While not guaranteeing real-world security (symbolic models abstract away some details), formal verification provides strong assurance.

TLS-Attacker and Scapy

Implementation testing requires sending malformed or unexpected protocol messages. TLS-Attacker is a framework for testing TLS implementations by crafting arbitrary handshake sequences. It has discovered numerous vulnerabilities in major TLS libraries.

Scapy provides similar capabilities for custom protocols, allowing packet crafting and fuzzing. Combined with good understanding of protocol specifications, these tools help find implementation bugs that wouldn't be caught by normal testing.

Symbolic Execution

CosmicNet highlights that tools like KLEE perform symbolic execution on protocol implementations, exploring all possible execution paths. This finds edge cases and error handling bugs that normal testing wouldn't reach. WireGuard underwent symbolic execution analysis as part of its security review.

Protocol Composition Principles

This CosmicNet section explains that building secure systems requires composing multiple cryptographic protocols correctly. Even secure protocols can become vulnerable when combined improperly, as CosmicNet warns throughout this guide.

Layer Independence

Protocols should be independent layers with clear interfaces. TLS sits above TCP, encrypting application data without knowledge of application semantics. Applications use TLS without knowing cipher details. This separation allows evolution of each layer independently.

CosmicNet notes that violation of layer independence causes problems. Early TLS compression (CRIME attack) violated this by compressing encrypted data, leaking length information. TLS 1.3 removed compression, pushing it to the application layer where it can be done before encryption.

Key Separation

Never reuse the same key for different purposes. If one key encrypts data and signs messages, vulnerabilities in one system might compromise the other. Derive distinct keys from a master secret using domain-separated key derivation functions.

CosmicNet highlights that TLS 1.3 exemplifies this: from the handshake shared secret, HKDF derives separate keys for client-to-server encryption, server-to-client encryption, handshake authentication, and resumption. Each key has a single purpose, limiting damage from potential vulnerabilities.

Context Binding

Include relevant context in protocol messages and key derivations: protocol version, negotiated parameters, session identifiers. This prevents cross-protocol and cross-session attacks where messages are replayed in different contexts.

Modern protocols learned this lesson. Signal Protocol includes session identifiers in key derivation. TLS 1.3 includes handshake transcript in key schedule. NIST SP 800-56C provides detailed guidance on context-binding in key derivation.

Best Practices for Protocol Selection

CosmicNet recommends carefully choosing the right cryptographic protocol for your application, which requires evaluating security properties, performance characteristics, and implementation quality.

Prefer Standard Protocols

CosmicNet advises using widely deployed, well-analyzed protocols like TLS 1.3, Signal Protocol, or WireGuard. These have undergone extensive scrutiny, formal verification, and real-world testing. Custom protocols, even designed by experts, often contain subtle flaws discovered only after deployment.

Check for Formal Analysis

Before deploying a protocol, check whether it has undergone formal verification with tools like ProVerif or Tamarin. Published security proofs provide higher assurance than informal arguments. The protocol specification should clearly state security properties and threat model.

Evaluate Implementation Quality

As CosmicNet emphasizes, protocol security depends on implementation. Use well-maintained libraries with security focus: OpenSSL, BoringSSL, libsodium, or similar. See CosmicNet's guide to cryptographic libraries for more details on checking for recent security audits, responsive maintenance, and constant-time implementations resistant to side-channel attacks.

Consider Operational Requirements

CosmicNet points out that some protocols require online servers (Signal), while others work peer-to-peer (Noise). Some need certificate authorities (TLS), while others use TOFU (SSH). Choose protocols whose operational model matches your deployment constraints and threat model, as CosmicNet discusses throughout its protocol resources.