Overview
Syllabus
Intro
aka "A Tale of Two Hippos"
Guest Starring Blue Elephant
How Do Passwords Work in PostgreSQL?
PostgreSQL Plaintext Passwords
Plaintext Password Authentication Flow
Transport Layer Security
PostgreSQL MD5 Password Authentication
MD5 Authentication Flow
Salted Challenge Response Authentication Mechanism
Creating a Password For SCRAM
Building a SCRAM Secret - DIGEST
Building a SCRAM Secret - ITERATIONS
Building a SCRAM Secret - SASLPrep the Password
Building a SCRAM Secret - Generate the Salted Password
Building a SCRAM Secret - SERVER KEY
Building a SCRAM Secret - "Easy Button"
SCRAM Authentication Flow: Generating Proof
Recall: Client Key
Client Signature
SCRAM Authentication Flow: Server Verification
Server Signature
SCRAM Authentication Flow: Client Verification
Case #1: Server "Claims" To Know Secret
Case #2: Elephant-in-the-Middle Attack
Channel Binding
Upgrading to SCRAM
Driver Support for SCRAM
Taught by
Confreaks