skip to content

TLS

The wire protocol itself: handshake message order, record framing, named groups, suite strings and the per-version delta. Interviewers probe it when a connection fails and "we use TLS" stops helping.

part ofWeb protocols & securityoverview, primer and where to startread it →
on this pageshow

questions

page 2 of 2

What property of TLS 1.0's CBC initialization vectors did BEAST (CVE-2011-3389) exploit?

level: middleimportance: should knowfreq 42%

basics

~10 s

TLS 1.0 chains CBC across records: the initialization vector for a record is the previous record's last ciphertext block, already visible on the wire. BEAST used that predictability to test guesses at plaintext blocks.

open as a page

A TLS 1.3 client holds no certificate matching the server's CertificateRequest - what does it send, and what may the server do?

level: middleimportance: should knowfreq 42%

basics

~20 s

It still sends a Certificate message, with an empty certificate_list and no CertificateVerify after it. The server may then either continue the handshake with an unauthenticated peer or abort it with a fatal certificate_required(116) alert.

open as a page

TLS 1.3 puts no record sequence number on the wire over a stream transport, so how is each record's nonce formed?

level: middleimportance: should knowfreq 46%

basics

~20 s

Each side keeps a 64-bit record counter for reading and one for writing, both starting at zero. The counter is left-padded to the length of the static write IV and XORed with it, producing a distinct nonce for every record.

open as a page

In TLS 1.3, what does a resuming client put in its pre_shared_key(41) extension, and what does a binder prove?

level: middleimportance: should knowfreq 50%

basics

~20 s

It carries one or more PskIdentity entries - each an opaque ticket plus an obfuscated_ticket_age - and a matching PskBinderEntry list. A binder is a MAC keyed from the pre-shared key, proving possession and tying the offer to this exact ClientHello.

open as a page

Why does the absence of unrecognized_name(112) prove nothing when a server holds no certificate for the requested host_name?

level: middleimportance: should knowfreq 45%

basics

~20 s

Because the alert was never required. RFC 6066 lets a server that does not recognise the requested host_name either abort with a fatal unrecognized_name(112) or simply continue the handshake, so silence is a conforming choice and carries no information.

open as a page

In TLS 1.3, why might a server with a valid, correctly chained certificate still be unable to authenticate to a client?

level: seniorimportance: should knowfreq 44%

basics

~20 s

Because authentication needs a signature scheme both sides accept. The client's signature_algorithms(13) list, and signature_algorithms_cert(50) where present, constrain which certificate the server may select; a server whose only key or chain falls outside those lists cannot sign at all.

open as a page

When a TLS server honours its own cipher suite preference order rather than the client's, what does that cost a fleet of mixed-hardware clients?

level: seniorimportance: should knowfreq 44%

basics

~20 s

Ordering decides only which of the mutually acceptable suites wins, never which suites are permitted. Server order enforces one ranking on every peer, so clients without AES hardware acceleration may be pushed onto a suite they run slowly; client order lets each peer pick what it runs fastest.

open as a page

A buoy's DTLS handshake flight is lost on a satellite uplink; what resends it, and how does the timer behave?

level: seniorimportance: should knowfreq 40%

basics

~20 s

Nothing beneath DTLS retransmits, so the sender does. DTLS groups handshake messages into flights and keeps a timer per flight: it should start at 1 second, double on each retransmission, and cap at 60 seconds, resending the entire flight each time.

open as a page

Clients abort a TLS 1.3 handshake when the server returns an extension they never offered — which rule is that?

level: seniorimportance: should knowfreq 38%

basics

~20 s

Extension negotiation is strictly offer-then-answer: a server may only respond with extensions the client actually offered, and each extension type is legal only in the specific handshake messages the specification permits. Violations are fatal, not ignorable.

open as a page

In a static RSA TLS 1.2 handshake, which message carried the premaster secret, and what does TLS 1.3 send instead?

level: seniorimportance: should knowfreq 48%

basics

~20 s

The client generated a 48-byte premaster secret, encrypted it under the RSA public key in the server's certificate, and sent it in client_key_exchange(16). TLS 1.3 has no such message: both ends contribute ephemeral key_share(51) values instead.

open as a page

What does TLS_FALLBACK_SCSV in a client's retry after a failed handshake oblige the server to do?

level: seniorimportance: should knowfreq 46%

basics

~20 s

It declares that this hello is a retry offering less than the client's best version. A server that supports a version higher than the one offered answers with a fatal inappropriate_fallback(86) alert instead of completing the handshake.

open as a page

After a mutual TLS handshake, where should a service read the caller's identity from, and why not from the request payload?

level: seniorimportance: should knowfreq 45%

basics

~20 s

From the verified client leaf certificate, normally a subjectAltName entry: that is the only name the handshake authenticated. An identifier inside the request is unauthenticated input, so a disagreement between the two must fail the request rather than be resolved silently.

open as a page

A TLS 1.3 connection carrying one continuous stream stays open for hours - how are its record-protection keys rotated without a new handshake?

level: seniorimportance: should knowfreq 36%

basics

~20 s

With a KeyUpdate message, sent inside the protected stream after the handshake. It rotates only the sender's own write keys and resets that direction's record counter; its request_update field, set to update_requested, asks the peer to rotate its direction too.

open as a page

Turnstile readers send 0-RTT early data to whichever server answers. Which RFC 8446 anti-replay defence survives a replay landing on a different server?

level: seniorimportance: should knowfreq 54%

basics

~20 s

None survives on its own. Single-use tickets and ClientHello recording both need state shared by every server that can open the ticket; a freshness check only bounds how long a copied flight stays usable. Partitioning ticket-opening per server is the alternative.

open as a page

When a service negotiates TLS 1.3 instead of TLS 1.2, which protocol capabilities are gone, and what relied on them?

level: seniorimportance: should knowfreq 55%

basics

~20 s

TLS 1.3 drops static key transport, so every full handshake uses an ephemeral exchange; it removes renegotiation and record-layer compression; its cipher suites are a separate set from TLS 1.2's; and everything from EncryptedExtensions onward, including the server's certificate, is encrypted.

open as a page

How would you choose and stage a minimum TLS version floor across a metering fleet you cannot upgrade all at once?

level: principalimportance: should knowfreq 40%

basics

~20 s

Measure before enforcing: record the version every peer actually negotiates over a full check-in cycle, take TLS 1.2 as the deprecation baseline and prefer 1.3, run the floor in report-only first, then raise it population by population with a separately scoped, time-boxed exception.

open as a page

In TLS, where does a stapled certificate status response travel, and which extension asks the server for one?

level: middleimportance: nice to knowfreq 30%

basics

~20 s

The client asks with status_request(5) in its ClientHello. TLS 1.2 answers with a separate CertificateStatus handshake message after Certificate; TLS 1.3 carries the response as an extension inside the CertificateEntry it describes, so any entry in the chain can carry one.

open as a page

An audit narrows a server's TLS 1.2 suite list, yet live TLS 1.3 connections still negotiate an unlisted suite — why?

level: middleimportance: nice to knowfreq 30%

basics

~20 s

TLS 1.3 suites are a separate family with their own code points, chosen by their own policy once version 1.3 is negotiated. Narrowing the 1.2 list constrains only connections that settle on 1.2, so a 1.3 connection is unaffected by it.

open as a page

Which properties of SSL 2.0 mean that a peer offering it cannot be made safe by configuration alone?

level: middleimportance: nice to knowfreq 30%

basics

~20 s

SSL 2.0 authenticates messages with an MD5-based construction, leaves the handshake unprotected so an intermediary can silently weaken the agreed suite, uses one key for both authentication and encryption, and lets an injected TCP FIN end a session undetectably.

open as a page

Why does every protected TLS 1.3 record show application_data(23) in its header, and where is the real content type?

level: middleimportance: nice to knowfreq 28%

basics

~20 s

TLS 1.3 moved the real content type inside the encrypted payload. The outer header's opaque_type reads application_data(23) for every protected record; the receiver decrypts, strips trailing zero octets, and reads the last non-zero byte as the type.

open as a page

With encrypted client hello in use, which host name travels in the ClientHelloOuter and which in the ClientHelloInner?

level: middleimportance: nice to knowfreq 28%

basics

~10 s

The outer hello names the ECHConfig's public_name in its server_name(0) extension; the host the client actually wants sits in the ClientHelloInner, sealed with HPKE inside the encrypted_client_hello(0xfe0d) extension the outer carries.

open as a page

Under TLS 1.3, why can a peer's warning-level alert not be treated as a recoverable condition mid-handshake?

level: middleimportance: nice to knowfreq 32%

basics

~20 s

Because TLS 1.3 makes severity implicit in the alert description. Every error alert must be treated as an error whatever level the sender claimed, and only the closure alerts close_notify(0) and user_canceled(90) are not error alerts.

open as a page

Why does a TLS 1.3 handshake still put a change_cipher_spec record and a non-empty session id on the wire?

level: middleimportance: nice to knowfreq 28%

basics

~20 s

Middlebox compatibility mode. A TLS 1.3 client sends a non-empty legacy session id that the server echoes, plus a dummy change_cipher_spec record, so the exchange resembles a TLS 1.2 resumption to elements in the path. Neither changes any key.

open as a page

In DTLS, what lets a receiver select the right security association when a peer reappears from a different source address?

level: seniorimportance: nice to knowfreq 30%

basics

~20 s

The connection_id(54) extension. Each party advertises a ConnectionId it wishes to receive, the peer stamps that value on records it sends, and the receiver selects the association by that identifier instead of by the source address and port.

open as a page

Why does a TLS 1.3 handshake still carry a ChangeCipherSpec record and echo a session id it never uses?

level: seniorimportance: nice to knowfreq 27%

basics

~20 s

Compatibility only. TLS 1.3 keeps a dummy session id and a ChangeCipherSpec record so the exchange resembles a TLS 1.2 handshake to intermediaries written for that version. Neither affects keys, and neither is part of the handshake transcript.

open as a page

What does extended master secret change about how a TLS 1.2 master secret is derived, and why?

level: seniorimportance: nice to knowfreq 26%

basics

~20 s

It derives the TLS 1.2 master secret from a hash of the handshake messages instead of the two hello random values, so a master secret can belong to only the one handshake that produced it.

open as a page

In TLS 1.3, what must a client advertise before a server may request a certificate after the handshake has finished?

level: seniorimportance: nice to knowfreq 26%

basics

~10 s

The post_handshake_auth(49) extension in its ClientHello. Without it the server must not send a late CertificateRequest, and a client that receives one anyway aborts the connection with a fatal alert.

open as a page

When a reverse proxy forwards an HTTP request received as TLS early data, what marks it, and how can the origin refuse?

level: seniorimportance: nice to knowfreq 32%

basics

~20 s

RFC 8470 has the forwarding hop add the Early-Data request header field with the value 1, warning the next hop the request may be a replay. An origin unwilling to act on it answers 425 (Too Early), asking for a retry after the handshake completes.

open as a page

showing 31–58 of 58