Skip to main content

3.4. The KRB_SAFE Exchange

Overview

The KRB_SAFE message provides integrity protection for application data exchanged between principals. It does not provide confidentiality - the data is sent in cleartext but protected by a keyed checksum.

Purpose

KRB_SAFE is used when:

  • Integrity protection is required
  • Confidentiality is not needed
  • Lower overhead than encryption is desired

Message Structure

KRB_SAFE contains:

  • User data (in cleartext)
  • Timestamp (for replay detection)
  • Sequence number (optional)
  • Sender and recipient addresses (optional)
  • Keyed checksum (provides integrity)

Generation of KRB_SAFE Message

Sender:

  1. Constructs message with user data
  2. Adds timestamp and optional sequence number
  3. Computes keyed checksum over entire message
  4. Transmits message with checksum

Receipt of KRB_SAFE Message

Receiver:

  1. Recomputes checksum using shared key
  2. Compares computed checksum with received checksum
  3. Verifies timestamp (replay protection)
  4. Checks sequence number if used
  5. Accepts or rejects message based on validation

Security Properties

  • Integrity: Keyed checksum prevents tampering
  • Replay Protection: Timestamp and sequence number
  • No Confidentiality: Data is transmitted in cleartext

Reference

For complete technical details, refer to RFC 4120 Section 3.4.