
What Zero Trust Actually Requires
An examination of the practical requirements for Zero Trust Architecture based on NIST 800-207, covering tenets, maturity models, and implementation steps.
Zero Trust is frequently mischaracterized as a single security product or a vague cultural shift. In reality, it is a specific architectural strategy defined by the National Institute of Standards and Technology (NIST) in Special Publication 800-207. For architects and security engineers, understanding Zero Trust requires moving beyond marketing slogans to examine the mechanical requirements of identity verification, continuous validation, and least-privilege access control. As the first part of the Zero Trust series, this article breaks down the actual technical requirements, the underlying mechanisms of policy enforcement, and the maturity models that guide implementation.
The Core Tenets: A Mechanism for Verification
NIST SP 800-207 defines Zero Trust through seven foundational tenets, which this guide groups into three operational themes for clarity. These are not abstract principles but operational constraints on how systems process requests. To meet these zero trust requirements, organizations must implement strict controls at every layer of the stack.
1. Never Trust, Always Verify Traditional network security operates on the assumption that anything inside the perimeter is trustworthy. Zero Trust rejects this. Every request for access must be authenticated and authorized, regardless of origin. Mechanistically, this means that network location (IP address, VLAN) is no longer a valid credential. Instead, identity becomes the new perimeter. Every request must present valid credentials, often verified through multi-factor authentication (MFA) and device health checks.
2. Verify Explicitly Verification is not a one-time event at login. It is a continuous process that evaluates context in real-time. The system must verify:
- Identity: Who is the user or service?
- Device: Is the device compliant, patched, and unmodified?
- Context: Where is the request coming from? What time is it? What resource is being accessed?
- Behavior: Does the request align with historical patterns?
This explicit verification requires collecting telemetry from multiple sources (identity providers, endpoint detection and response tools, network logs) and correlating them at the time of the request.
3. Assume Breach This tenet dictates that the architecture must be designed with the expectation that a compromise will occur. Mechanically, this leads to two key practices: minimizing the attack surface and segmenting access. By assuming breach, architects design systems so that if one component is compromised, lateral movement is restricted. This is achieved through micro-segmentation and least-privilege access, ensuring that a compromised identity or device cannot access resources outside its immediate need.
While these tenets define the what, understanding your current position relative to a security maturity model helps determine where to start the implementation journey.
The Policy Engine: PDP and PEP
The heart of a Zero Trust architecture is the policy engine. Unlike traditional firewalls that rely on static rules, Zero Trust uses dynamic policy evaluation. This involves two key components: the Policy Decision Point (PDP) and the Policy Enforcement Point (PEP). This structure is explicitly outlined in nist 800-207 as the foundational control plane.
The Policy Enforcement Point (PEP) intercepts access requests. It does not make decisions; it only enforces them. When a user attempts to access a resource, the PEP blocks the request and forwards the context (identity, device info, request type) to the PDP.
The Policy Decision Point (PDP) is the brain. It evaluates the context against defined policies. For example, a policy might state: "Allow access to the financial database only if the user is in the Finance department, the device is encrypted, and the request originates from the corporate network." The PDP queries various data sources (Active Directory, endpoint security tools) to gather the necessary context. It then makes a decision: Allow, Deny, or Challenge (e.g., request MFA).
The PDP sends the decision back to the PEP, which either grants or denies access. This interaction is critical because it decouples policy decision from enforcement, allowing for centralized policy management and consistent enforcement across diverse environments.
# Simplified conceptual flow of a Zero Trust policy evaluation
def handle_access_request(request):
# 1. PEP intercepts the request
context = gather_context(request.user, request.device, request.location)
# 2. PDP evaluates context against policies
decision = policy_engine.evaluate(context, policies)
# 3. PEP enforces the decision
if decision.status == 'ALLOW':
grant_access(request)
elif decision.status == 'DENY':
block_access(request)
elif decision.status == 'CHALLENGE':
request_mfa(request)Maturity Models: Measuring Progress
Implementing Zero Trust is a journey, not a destination. Organizations use maturity models to assess their current state and plan their progression. While NIST provides guidelines, various frameworks (such as Forrester’s or Gartner’s) offer structured maturity levels. A common model includes five levels:
- Initial: Ad-hoc security, perimeter-based, manual processes.
- Developing: Basic identity management, some segmentation, limited visibility.
- Defined: Centralized policy management, automated provisioning, clear roles and responsibilities.
- Quantitatively Managed: Continuous monitoring, automated threat response, data-driven decisions.
- Optimizing: Fully automated Zero Trust, predictive analytics, self-healing systems.
Progressing through these levels requires specific technical capabilities. For example, moving from Level 2 to Level 3 requires implementing a centralized identity provider and deploying policy engines that can evaluate context in real-time. Moving from Level 3 to Level 4 requires integrating telemetry from all systems to enable automated response. When evaluating where your organization stands on a security maturity model, it is essential to recognize that the zero trust tenets must be embedded into each level of progression, ensuring that verification and least-privilege principles are reinforced as capabilities mature.
Implementation Steps: A Practical Approach
Given the complexity, a "boil the ocean" approach is rarely successful. Instead, organizations should follow a phased implementation strategy to meet core zero trust requirements effectively.
1. Identify Critical Assets Not all assets require the same level of protection. Start by identifying your most sensitive data and critical applications. These become your initial target for Zero Trust implementation.
2. Map Traffic Flows Understand how users and services interact with these critical assets. Map out all traffic flows, including internal east-west traffic. This helps identify where segmentation and policy enforcement are needed.
3. Deploy Identity-Centric Access Implement strong identity verification. This includes MFA, single sign-on (SSO), and role-based access control (RBAC). Ensure that access is granted based on identity, not network location.
4. Implement Micro-Segmentation Segment your network into smaller zones. This limits lateral movement if a breach occurs. Use software-defined perimeters (SDP) or zero-trust network access (ZTNA) solutions to enforce these segments.
5. Continuously Monitor and Adjust Zero Trust is not a set-and-forget solution. Continuously monitor access patterns and adjust policies based on observed behavior. Use analytics to detect anomalies and automate responses.
Building a resilient zero trust architecture requires aligning these steps with your organizational goals, ensuring that each phase delivers tangible security improvements while laying the groundwork for future automation.
Conclusion
Zero Trust is a rigorous architectural framework that requires a fundamental shift in how security is designed and implemented. It replaces the implicit trust of perimeter-based security with explicit, continuous verification and least-privilege access. For architects, this means building systems where identity is the primary credential, policy is central and dynamic, and every request is evaluated in context. While the journey is complex, the result is a more resilient and adaptive security posture capable of withstanding modern threats.
Related posts
Implementing Conditional Access Policies with Keycloak and ForgeRock
A technical examination of implementing conditional access policies using Keycloak and ForgeRock for context-aware access control.
Implementing Entitlement Management for Fine-Grained Authorization
An examination of entitlement management and fine-grained authorization using XACML and policy engines for secure access control.
Event-Driven Architecture for Identity: Security Events and Real-Time Monitoring
Examination of event-driven identity architectures focusing on security events, real-time monitoring, and identity analytics using Kafka security and event sourcing.