This document examines various authentication protocols used in distributed systems, reviewing their development, flaws, and types. Key protocols such as the Needham-Schroeder protocol are discussed, highlighting bugs that were discovered long after their implementation. The report aims to introduce the field and provide a comprehensive overview while suggesting areas for future research on authentication and encryption.