Authentication and authorization are crucial components of network security and forensics. They ensure only legitimate users can access systems and resources, protecting against unauthorized access and potential breaches.

Authentication verifies user identity through various methods like passwords, tokens, or biometrics. Authorization determines what actions authenticated users can perform. Together, they form a robust security framework for maintaining confidentiality and integrity of systems and data.

Authentication fundamentals

  • Authentication verifies the identity of users, devices, or services attempting to access a system or resource
  • Ensures only authorized entities can gain access, protecting against unauthorized access and potential security breaches
  • Fundamental security control in network security and forensics to maintain confidentiality, integrity, and availability of systems and data

Verifying identity

Top images from around the web for Verifying identity
Top images from around the web for Verifying identity
  • Process of confirming the claimed identity of a user, device, or service
  • Establishes trust and ensures the entity is who or what it claims to be
  • Involves collecting and validating credentials (username, , biometric data, )
  • Examples:
    • User entering username and password to log into a system
    • Device presenting a digital certificate to authenticate to a network

Authentication factors

  • Different types of information or methods used to verify identity
  • Three main categories:
    • Knowledge factors: Something the user knows (passwords, PINs, security questions)
    • Possession factors: Something the user has (smart cards, security tokens, mobile devices)
    • Inherence factors: Something the user is (biometric characteristics like fingerprints, facial recognition)
  • Combining multiple factors () enhances security by making it harder for attackers to compromise accounts

Multi-factor authentication

  • Requires users to provide two or more authentication factors to verify their identity
  • Adds an extra layer of security beyond single-factor authentication (e.g., password only)
  • Common combinations:
    • Password (knowledge factor) + SMS one-time code (possession factor)
    • Fingerprint (inherence factor) + Hardware security (possession factor)
  • Protects against threats like password guessing, phishing, and credential theft

Authentication protocols

  • Standardized methods for securely exchanging authentication information between entities
  • Define the format, sequence, and encryption of authentication messages
  • Examples:
    • Kerberos: Network authentication protocol using tickets and symmetric-key cryptography
    • RADIUS (Remote Authentication Dial-In User Service): Centralized authentication, authorization, and accounting (AAA) protocol
    • (Security Assertion Markup Language): XML-based framework for exchanging authentication and authorization data between parties
  • Ensure interoperability and secure communication during the authentication process

Authorization basics

  • Authorization determines what actions or resources an authenticated entity is allowed to access
  • Grants or denies access to specific functionalities, data, or systems based on predefined policies or rules
  • Essential for enforcing and protecting sensitive resources in network security and forensics

Principle of least privilege

  • Security concept that grants users only the minimum level of access necessary to perform their tasks
  • Limits the potential damage if a user account is compromised or misused
  • Reduces the attack surface by minimizing unnecessary permissions and privileges
  • Example: A user with read-only access to a database cannot modify or delete records

Role-based access control (RBAC)

  • Access control model that assigns permissions to users based on their roles or job functions within an organization
  • Roles are defined based on common responsibilities and access requirements
  • Users acquire permissions by being assigned to specific roles
  • Simplifies access management and helps maintain consistent access policies across an organization
  • Example: A "Manager" role may have access to sensitive financial data, while an "Employee" role has limited access

Attribute-based access control (ABAC)

  • Dynamic access control model that grants access based on attributes of users, resources, and environment
  • Attributes can include user characteristics (department, security clearance), resource properties (sensitivity level, owner), and contextual factors (time, location)
  • Allows fine-grained access control decisions based on the combination of attributes
  • Provides flexibility and scalability in managing access policies
  • Example: Access to a confidential document is granted only to users with a specific security clearance level and during business hours

Discretionary vs mandatory access control

  • :
    • Access control policy determined by the owner or administrator of the resource
    • Owners can grant or revoke access permissions to other users at their discretion
    • Flexible but may lead to inconsistent or insecure access policies
    • Example: File system permissions in Windows or Unix-based systems
  • :
    • Access control policy enforced by the system based on predefined rules and security labels
    • Users cannot override or modify the access rules set by the system
    • Provides stricter and more centralized control over access permissions
    • Example: Security-Enhanced Linux (SELinux) or US Department of Defense's Multi-Level Security (MLS) model

Password-based authentication

  • Most common and widely used authentication method
  • Users provide a secret password to verify their identity
  • Relies on the confidentiality and strength of the password
  • Vulnerable to various attacks if not implemented securely

Password strength considerations

  • Length: Longer passwords (12+ characters) are harder to crack
  • Complexity: Include a mix of uppercase, lowercase, numbers, and special characters
  • Uniqueness: Avoid using the same password across multiple accounts
  • Avoid common words, phrases, or personal information that can be easily guessed
  • Encourage the use of password managers to generate and store strong, unique passwords

Password storage best practices

  • Never store passwords in plain text
  • Use secure, one-way hashing algorithms (bcrypt, PBKDF2, scrypt) to store password hashes
  • Apply a unique salt to each password before hashing to prevent rainbow table attacks
  • Iterate the hashing process multiple times (key stretching) to increase computational cost for attackers
  • Protect password databases with strong access controls and encryption

Password attacks and defenses

  • Brute-force attacks: Systematically trying all possible password combinations
    • Defense: Enforce strong password policies and implement account lockout after failed attempts
  • Dictionary attacks: Trying common words and variations from a predefined list
    • Defense: Encourage the use of long, complex passwords and avoid common words
  • : Trying a few common passwords against many user accounts
    • Defense: Implement multi-factor authentication and monitor for suspicious login attempts
  • Phishing and social engineering: Tricking users into revealing their passwords
    • Defense: Educate users about phishing techniques and encourage the use of anti-phishing tools

Implementing secure password policies

  • Define minimum password length and complexity requirements
  • Enforce regular password expiration and prevent password reuse
  • Implement password history to prevent users from recycling old passwords
  • Provide user education on creating strong passwords and identifying phishing attempts
  • Enable multi-factor authentication for an additional layer of security
  • Regularly audit and monitor password-related events and anomalies

Token-based authentication

  • Uses secure tokens to authenticate users and grant access to resources
  • Tokens contain encrypted or signed authentication information
  • Provides a stateless and scalable alternative to session-based authentication

Session tokens vs API tokens

  • :
    • Issued by the server upon successful authentication
    • Stored on the client-side (e.g., browser cookies) and sent with each request to maintain the session state
    • Used for web applications to authenticate and track user sessions
    • Example: used for session management
  • :
    • Used to authenticate and authorize access to API endpoints
    • Typically long-lived and issued to client applications or services
    • Included in the request headers or parameters to authenticate API calls
    • Example: 2.0 access tokens used for API authorization

JSON Web Tokens (JWTs)

  • Compact, self-contained tokens for securely transmitting authentication and authorization information
  • Consist of three parts: header, payload, and signature
  • Header specifies the token type and hashing algorithm
  • Payload contains claims (user information, token expiration, etc.)
  • Signature ensures the integrity of the token using a secret key or public/private key pair
  • Widely used for stateless authentication in web applications and microservices architectures

OAuth 2.0 framework

  • Industry-standard protocol for authorization and secure delegated access to resources
  • Enables users to grant third-party applications limited access to their resources without sharing credentials
  • Defines four roles: resource owner, client application, authorization server, and resource server
  • Supports different grant types (authorization code, implicit, resource owner password credentials, client credentials) for various use cases
  • Provides secure mechanisms for obtaining and refreshing access tokens
  • Widely adopted by web and mobile applications for authentication and authorization

Token security best practices

  • Keep token lifetimes short and use refresh tokens for long-lived access
  • Encrypt sensitive information in token payloads using strong encryption algorithms
  • Validate and verify token signatures to ensure integrity and detect tampering
  • Implement secure token storage on the client-side (e.g., secure cookies, local storage with encryption)
  • Use secure communication channels (HTTPS) to prevent token interception and eavesdropping
  • Implement token revocation mechanisms to invalidate tokens when necessary (e.g., user logout, password change)
  • Regularly rotate and update token signing keys to minimize the impact of key compromises

Biometric authentication

  • Uses unique physical or behavioral characteristics to verify user identity
  • Provides a convenient and secure alternative to traditional authentication methods
  • Relies on the uniqueness and permanence of biometric traits
  • Requires specialized hardware or sensors for capturing and processing biometric data

Fingerprint recognition

  • Uses the unique patterns and minutiae points of a user's fingerprints for authentication
  • Captures fingerprint images using optical, capacitive, or ultrasonic sensors
  • Compares the captured fingerprint against a stored template to verify identity
  • Widely used in smartphones, laptops, and access control systems
  • Example: Touch ID on Apple devices

Facial recognition

  • Uses the unique facial features and geometry of a user's face for authentication
  • Captures facial images using cameras and applies computer vision algorithms for analysis
  • Compares the captured facial data against a stored facial template to verify identity
  • Increasingly used in smartphones, surveillance systems, and border control
  • Example: Face ID on Apple devices, Windows Hello facial recognition

Iris and retinal scanning

  • Iris recognition:
    • Uses the unique patterns and texture of the iris (colored part of the eye) for authentication
    • Captures high-resolution images of the iris using near-infrared cameras
    • Analyzes the iris patterns and compares them against a stored template
  • Retinal scanning:
    • Uses the unique pattern of blood vessels at the back of the eye (retina) for authentication
    • Captures retinal patterns using low-intensity light and specialized cameras
    • Requires precise alignment and is more intrusive compared to iris recognition
  • Provides high accuracy and is commonly used in high-security environments (e.g., military, government facilities)

Behavioral biometrics

  • Uses unique patterns and characteristics of a user's behavior for authentication
  • Analyzes various behavioral traits such as typing rhythm, mouse movements, gait, or voice patterns
  • Continuously monitors user behavior and compares it against a baseline profile
  • Provides passive and continuous authentication without requiring explicit user interaction
  • Helps detect anomalous behavior and potential account compromises
  • Example: Keystroke dynamics analysis for continuous authentication

Certificate-based authentication

  • Uses digital certificates to authenticate entities (users, devices, servers) in a network
  • Relies on public key cryptography and a trusted third-party (Certificate Authority) for issuing and verifying certificates
  • Provides strong authentication, encryption, and integrity for secure communication

Public key infrastructure (PKI)

  • Framework for creating, managing, and distributing digital certificates
  • Consists of:
    • : Trusted entities that issue and sign digital certificates
    • Registration Authorities (RAs): Verify the identity of entities requesting certificates
    • Certificate repositories: Store and distribute issued certificates and certificate revocation lists (CRLs)
    • Key management systems: Generate, store, and manage cryptographic keys
  • Enables secure communication and authentication in large-scale networks

Digital certificates and signatures

  • Digital certificates:
    • Electronic documents that bind a public key to the identity of an entity
    • Issued and digitally signed by a trusted Certificate Authority (CA)
    • Contain information such as the entity's name, public key, validity period, and issuer details
    • Used to establish trust and verify the identity of entities in a network
  • Digital signatures:
    • Mathematical scheme for verifying the authenticity and integrity of digital documents or messages
    • Generated using the private key of the signer
    • Can be verified using the corresponding public key from the signer's digital certificate
    • Provide non-repudiation and ensure that the signed data has not been tampered with

Certificate authorities (CAs)

  • Trusted third-party entities responsible for issuing and managing digital certificates
  • Follow strict procedures for verifying the identity of entities requesting certificates
  • Digitally sign issued certificates using their own private key
  • Maintain certificate revocation lists (CRLs) to revoke compromised or invalid certificates
  • Examples: Symantec, DigiCert, GlobalSign, Let's Encrypt

Mutual authentication with certificates

  • Process where both the client and server authenticate each other using digital certificates
  • Client verifies the server's certificate to ensure it is communicating with the intended server
  • Server verifies the client's certificate to authenticate the client's identity
  • Establishes a secure, encrypted communication channel (e.g., SSL/TLS) between the client and server
  • Prevents man-in-the-middle attacks and ensures confidentiality and integrity of the communication
  • Commonly used in scenarios requiring high security, such as banking, e-commerce, and enterprise networks

Single sign-on (SSO)

  • Authentication mechanism that allows users to access multiple applications or services with a single set of credentials
  • Eliminates the need for users to remember and manage multiple usernames and passwords
  • Improves user experience and reduces password fatigue
  • Centralizes authentication and makes it easier to enforce consistent security policies

SSO protocols and standards

  • SAML (Security Assertion Markup Language):
    • XML-based standard for exchanging authentication and authorization data between parties
    • Enables web-based SSO by allowing an identity provider (IdP) to authenticate users and assert their identities to service providers (SPs)
  • OAuth 2.0:
    • Authorization framework that enables third-party applications to obtain limited access to user accounts on an HTTP service
    • Commonly used for SSO in web and mobile applications
    • Allows users to grant access to their resources without sharing their credentials
  • OpenID Connect (OIDC):
    • Identity layer built on top of OAuth 2.0 for authentication
    • Enables clients to verify the identity of users based on the authentication performed by an authorization server
    • Provides a standard way to obtain user profile information in a secure and interoperable manner

Federated identity management

  • Allows users to use the same identity across multiple organizations or domains
  • Enables organizations to share identity information and trust relationships
  • Users can authenticate with their home organization and access resources in partner organizations without creating separate accounts
  • Facilitates collaboration and reduces administrative overhead
  • Examples: SAML-based federations, OAuth-based identity providers (Google, Facebook)

Benefits and risks of SSO

  • Benefits:
    • Improved user experience and productivity
    • Reduced password fatigue and password reset requests
    • Centralized authentication and access control
    • Easier to enforce consistent security policies
    • Reduced administrative overhead for managing user accounts
  • Risks:
    • Single point of failure: If the SSO system is compromised, all connected applications and services are at risk
    • Increased impact of account compromises: An attacker gaining access to the SSO credentials can access multiple systems
    • Complexity in managing and synchronizing user identities across different systems
    • Potential privacy concerns with sharing user information across different services

Implementing SSO securely

  • Choose a reputable and well-established SSO protocol or solution
  • Ensure proper configuration and security of the SSO system, including secure communication channels and strong authentication mechanisms
  • Implement multi-factor authentication (MFA) for an additional layer of security
  • Regularly monitor and audit SSO-related events and logs for suspicious activities
  • Educate users about the importance of protecting their SSO credentials and identifying phishing attempts
  • Establish clear policies and procedures for , deprovisioning, and access reviews
  • Implement secure session management and logout mechanisms to prevent unauthorized access
  • Regularly update and patch the SSO system and connected applications to address security vulnerabilities

Authentication and authorization vulnerabilities

  • Weaknesses or flaws in the design, implementation, or configuration of authentication and authorization mechanisms
  • Can lead to unauthorized access, data breaches, and compromised user accounts
  • Regularly exploited by attackers to gain unauthorized access to systems and sensitive information

Broken authentication flaws

  • Weaknesses in the authentication process that allow attackers to bypass or compromise user authentication
  • Examples:
    • Weak password policies allowing easily guessable or brute-forceable passwords
    • Lack of account lockout or rate limiting, enabling brute-force attacks
    • Insecure storage of passwords (e.g., plain text, weak hashing algorithms)
    • Insufficient protection against session hijacking or session fixation attacks
    • Inadequate multi-factor authentication (MFA) implementation or bypass
  • Mitigations:
    • Implement strong password policies and enforce them consistently
    • Use secure password hashing algorithms with salting and key stretching
    • Implement account lockout and rate limiting to prevent brute-force attempts
    • Properly secure session management and protect against session-related attacks
    • Implement and properly configure multi-factor authentication (MFA)

Insufficient authorization issues

  • Weaknesses in the authorization process that allow users to access resources or perform actions they are not entitled to
  • Examples:
    • Improper implementation of access control mechanisms (e.g., missing or incorrect permissions checks)
    • Lack of proper authorization checks at the application or API level

Key Terms to Review (30)

Access Control: Access control refers to the security measures that regulate who can view or use resources in a computing environment. It ensures that only authorized users can access certain data, systems, or networks, which is essential for protecting sensitive information and maintaining overall security. Effective access control combines various techniques, including authentication, authorization, and auditing, to enforce policies that dictate user permissions.
Active Directory: Active Directory is a directory service developed by Microsoft for Windows domain networks that allows administrators to manage permissions and access to network resources. It is essential for authentication and authorization within a network, providing a structured data store that enables users and devices to be identified and managed efficiently. This service plays a critical role in ensuring that only authorized users can access sensitive information and perform specific actions based on their roles within the organization.
Api tokens: API tokens are unique identifiers used to authenticate and authorize users or applications when they interact with an API. These tokens help to secure communications by ensuring that only legitimate users can access specific resources, enabling a controlled exchange of information. They play a crucial role in managing user permissions and maintaining secure connections between clients and servers.
Attribute-based access control (ABAC): Attribute-based access control (ABAC) is a security model that grants access rights to users based on their attributes, the resources being accessed, and the environment in which the access request is made. ABAC enhances traditional access control methods by considering various factors, such as user roles, resource types, and contextual information, allowing for more dynamic and fine-grained permissions. This model is particularly important in areas like identity management, compliance with regulations, and the overall security architecture of modern systems.
Authentication protocols: Authentication protocols are a set of rules that dictate how entities verify their identities and confirm access to systems or data. These protocols are essential for establishing secure communications and ensuring that only authorized users can access sensitive information, making them crucial for maintaining network security and integrity.
Biometric authentication: Biometric authentication is a security process that relies on unique biological characteristics of individuals, such as fingerprints, facial recognition, or iris scans, to verify their identity. This method provides a more secure and convenient alternative to traditional passwords or PINs, as it utilizes inherent traits that are difficult to replicate or steal. The growing use of biometric systems enhances user experience while improving access control in various applications, including personal devices and networked environments.
Brute Force Attack: A brute force attack is a method used to gain unauthorized access to a system by systematically trying every possible combination of passwords or encryption keys until the correct one is found. This type of attack can be effective against weak passwords and is often used in attempts to bypass authentication mechanisms. The reliance on computational power makes brute force attacks a significant concern in both cryptographic security and user authentication processes.
Certificate Authorities (CAs): Certificate Authorities (CAs) are trusted entities responsible for issuing digital certificates that validate the identities of individuals, organizations, or devices online. These certificates are essential in establishing secure connections over the internet, as they ensure that users are communicating with the legitimate party and not an imposter. By managing the issuance and revocation of certificates, CAs play a crucial role in both authentication and authorization processes, helping to protect sensitive information exchanged between parties.
Credential stuffing: Credential stuffing is a type of cyber attack where attackers use stolen usernames and passwords from one data breach to gain unauthorized access to multiple user accounts on different platforms. This technique takes advantage of users who often reuse the same login credentials across various sites, making it easier for attackers to exploit these accounts after a breach occurs.
Digital certificates: Digital certificates are electronic credentials used to verify the identity of individuals, organizations, or devices in digital communications. They act like an online passport, ensuring that parties involved in transactions can trust each other’s identities. By linking a public key to the entity’s identity, digital certificates facilitate secure communication through encryption, enabling authentication and integrity in data exchange.
Discretionary access control (DAC): Discretionary access control (DAC) is a type of access control method where the owner of a resource has the authority to determine who can access that resource. This means that users can grant or restrict access to their own resources based on their discretion, creating a flexible but potentially less secure environment compared to more rigid access controls. DAC is often used in environments where users need to share information freely while still retaining some level of control over their data.
Identity federation: Identity federation is a system that allows multiple organizations to share user identities and access rights across different security domains, enabling seamless single sign-on experiences for users. This process helps organizations collaborate while maintaining control over their data and user authentication, ultimately enhancing security and user convenience.
ISO 27001: ISO 27001 is an international standard that specifies the requirements for establishing, implementing, maintaining, and continually improving an information security management system (ISMS). This framework helps organizations manage sensitive information securely, ensuring the confidentiality, integrity, and availability of data while addressing various aspects of security management, including risk assessment and compliance.
JSON Web Tokens (JWTs): JSON Web Tokens (JWTs) are compact, URL-safe means of representing claims to be transferred between two parties. They are primarily used for securely transmitting information between a client and a server in a way that can be verified and trusted, making them essential for authentication and authorization processes.
LDAP: LDAP, or Lightweight Directory Access Protocol, is a protocol used to access and manage directory information over a network. It enables applications to interact with directory services that store user, group, and resource information, making it essential for authentication and authorization processes in various systems.
Mandatory Access Control (MAC): Mandatory Access Control (MAC) is a security model that restricts the ability to access or modify resources based on predefined security policies set by a central authority. Unlike discretionary access control, where users can make decisions about who can access their resources, MAC enforces strict rules that are not changeable by users, making it critical for maintaining data confidentiality and integrity in sensitive environments.
Multi-factor authentication: Multi-factor authentication (MFA) is a security mechanism that requires users to provide two or more verification factors to gain access to a system, application, or data. By combining something the user knows (like a password), something the user has (like a smartphone or security token), and something the user is (like a fingerprint), MFA significantly enhances security by making it much harder for unauthorized individuals to access sensitive information.
Mutual authentication: Mutual authentication is a security process where both parties involved in a communication verify each other's identity before establishing a connection. This method enhances security by ensuring that both the client and server are authenticated, preventing unauthorized access and man-in-the-middle attacks. It plays a crucial role in creating trust between communicating entities, especially in secure wireless communications and authorization processes.
NIST: The National Institute of Standards and Technology (NIST) is a U.S. federal agency that develops and promotes measurement standards, guidelines, and technology across various fields, including cybersecurity. NIST plays a critical role in establishing best practices for security frameworks, risk management, and compliance, helping organizations protect their information systems and data. Its contributions are vital in shaping policies and standards that enhance the overall security posture of networked environments.
Oauth: OAuth is an open standard for access delegation, commonly used as a way to grant websites or applications limited access to a user's information without exposing their passwords. It allows users to share specific data with third-party applications while maintaining control over their personal information. By enabling secure authorization flows, OAuth enhances user privacy and security in various environments, particularly with cloud services and APIs.
Password: A password is a secret string of characters that is used to authenticate a user's identity and grant access to systems, networks, or data. It serves as the first line of defense against unauthorized access and is a critical component of the authentication process, where a user must prove their identity before being allowed to access secured resources. Strong password policies often include guidelines on complexity and length to enhance security.
Password spraying: Password spraying is a cyber attack method that involves attempting to gain unauthorized access to a large number of accounts by trying a few commonly used passwords against many usernames. This technique is distinct from traditional brute-force attacks, which target a single account with numerous password attempts. The goal is to exploit the tendency of users to select weak passwords while minimizing account lockouts and detection.
Public Key Infrastructure (PKI): Public Key Infrastructure (PKI) is a framework that uses public key cryptography to secure communications and manage digital identities through the issuance, renewal, and revocation of digital certificates. It provides the necessary tools for secure data exchange, ensuring that both parties in a communication can verify each other's identities and protect sensitive information. PKI relies on a combination of hardware, software, policies, and standards to facilitate secure authentication and authorization processes.
Role-based access control: Role-based access control (RBAC) is a security mechanism that restricts system access to authorized users based on their roles within an organization. It allows for efficient management of user permissions, ensuring that individuals have access only to the resources necessary for their job functions, which enhances security and compliance. This method connects seamlessly with various aspects of network architecture, enabling the establishment of security zones, control over network access, and tailored authentication processes.
SAML: SAML, or Security Assertion Markup Language, is an open standard for exchanging authentication and authorization data between parties, specifically between an identity provider and a service provider. By enabling Single Sign-On (SSO), SAML allows users to authenticate once and gain access to multiple services without needing to log in separately for each one. This streamlines user experience and enhances security by reducing password fatigue.
Session tokens: Session tokens are unique identifiers that are generated by a server to maintain a user's session during interactions with web applications. They allow users to stay logged in and facilitate the management of authentication and authorization by tracking active sessions without requiring constant re-authentication. This makes the user experience smoother while maintaining security across multiple requests.
Single Sign-On: Single Sign-On (SSO) is an authentication process that allows a user to access multiple applications or services with one set of login credentials. This method enhances user convenience by reducing the number of times they need to log in, while also centralizing access management and improving security protocols across various platforms.
Token: A token is a digital object or piece of data used in authentication processes to verify the identity of a user and grant them access to resources. Tokens serve as a temporary representation of a user's identity and permissions, enabling secure communication between the user and the system without requiring constant re-authentication. They can enhance security by reducing the need to transmit sensitive information like passwords repeatedly.
Two-factor authentication: Two-factor authentication (2FA) is a security process that requires users to provide two different forms of identification before gaining access to an account or system. This method enhances security by combining something the user knows, like a password, with something the user has, such as a smartphone or a hardware token. By requiring two forms of verification, it significantly reduces the risk of unauthorized access, making it especially important for safeguarding sensitive information in various digital environments.
User provisioning: User provisioning is the process of creating, managing, and maintaining user accounts and access rights in an information system. It ensures that users have the appropriate permissions to access the resources they need while also enforcing security policies and compliance requirements. This process is crucial for effective authentication and authorization, helping organizations maintain control over user access and data security.
© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.