Blog

How to Secure OPC UA Communication Using Proper Authentication and Encryption Mechanisms?

January 28 | 21 min
Monika Stando
Monika Stando
Marketing Campaigns Team Leader
Table of Contents

What is the OPC UA security architecture?

The OPC UA security architecture replaces the old, fragile DCOM systems with a modern, built-in security model. If you have ever wrestled with DCOM configuration nightmares, this change will feel like a breath of fresh air. The OPC Foundation designed it from the ground up to be secure, regardless of the platform you use. Unlike industrial protocols that depend only on external network defenses or operating system configurations, this architecture integrates security directly into the protocol stack. The framework operates through three distinct layers: the Transport Layer, the Communication Layer, and the Application Layer.

Infographic depicting the OPC UA Security Architecture Layers, highlighting key components such as Embedded Defense, Transport and Communication Layers, Application Layer authentication, and the elimination of DCOM.

By stacking defenses, the model secures industrial IoT environments by addressing threats at multiple levels simultaneously. The protocol embeds defense mechanisms directly into the stack to guarantee secure SCADA communication and simplify endpoint configuration, removing dependencies on fragile settings like DCOM. Organizations can meet ICS security best practices by adopting this structure, guaranteeing reliable information modeling protection and proactive vulnerability management across different network layouts.

How does the Transport Layer protect network connections?

The Transport Layer acts as the first line of defense in the protocol stack, using standard IT security mechanisms to manage physical and logical connections. Functioning like a factory’s perimeter fence, the Transport Layer controls access to the gate before anyone can attempt to enter the building. Firewalls and strict port configurations limit exposure by blocking unauthorized network traffic at the infrastructure level.

Blocking these ports stops malicious actors from exploiting open ports, slashing the risk of denial-of-service attacks and network fuzzer intrusions. Before the system establishes an OPC UA session, Transport Layer Security (TLS) encrypts the underlying socket connection. You should also enforce IP filtering to restrict access only to trusted industrial automation data sources, verifying that only legitimate automation traffic can reach the device.

What is the function of the Communication Layer?

Building a Secure Channel between the client and server, this layer guarantees confidentiality and message integrity. It begins with a cryptographic handshake using X.509 certificates to validate the identity of both communication partners. This handshake is like a secret code phrase exchanged at a door; if both sides don’t know the code, the door stays shut. The layer manages the negotiation of cryptographic algorithms and handles key exchange required for session activation.

While asymmetric cryptography protects the initial connection setup, symmetric encryption secures subsequent data transmission. Depending on the selected security mode, such as SignAndEncrypt, the protocol enforces message signing and OPC UA encryption.

How does the Application Layer manage user access?

The Application Layer controls user access through Session Activation, verifying the identity of the specific operator or system. Separating these trusts means a secure device connection doesn’t automatically grant user privileges. Even if the Communication Layer validates a device via application instance certificates, the Application Layer will reject the session if the user lacks valid credentials. Keeping these distinct enforces zero trust architecture by requiring proof for every session.

OPC UA authentication uses three main credential types:

  • Username/password
  • X.509 certificates
  • Issued tokens

The server validates these credentials using tools like Public Key Infrastructure (PKI) and private key signatures. Once you’re logged in, the system applies role-based access control to map users to specific permissions, limiting what they can read or write to authorized personnel only. Audit logging tracks these interactions to keep a secure operational history.

OPC UA Security Mechanisms and Functions

Security Feature Operational Function Benefit & Threat Mitigation

Transport Layer Defense

Acts as the first line of defense using firewalls, strict port configurations, and TLS to control physical and logical connections.

  • Blocks unauthorized network traffic and slashes risk of denial-of-service (DoS) attacks.
  • Prevents network fuzzer intrusions by limiting exposure.

X.509 Certificates (PKI)

Uses digital passports and Certificate Trust Lists (CTLs) for mutual authentication, requiring both client and server to validate identities before connecting.

  • Prevents rogue device connections and spoofing.
  • Enforces zero trust architecture by rejecting unknown certificates.
  • Protects against remote code execution vectors.

Message Signing

Generates a cryptographic hash of the data and encrypts it with a private key to verify the message origin and ensure integrity.

  • Prevents Man-in-the-Middle (MitM) attacks.
  • Guarantees cyberattack protection by rejecting tampered information.
  • Stops unauthorized command injection.

SignAndEncrypt Mode

Combines message signing with OPC UA encryption to scramble data using advanced cryptographic algorithms.

  • Ensures data privacy for sensitive intellectual property and recipes.
  • Prevents industrial espionage and eavesdropping.
  • Makes stolen data unreadable to malicious actors.

User Authentication & RBAC

Verifies specific operators via Session Activation (using passwords, certificates, or tokens) and maps them to roles with granular permissions.

  • Enforces the principle of least privilege.
  • Prevents unauthorized modification of endpoint configurations.
  • Facilitates audit logging to track user interactions.

How do X.509 certificates secure OPC UA communication?

X.509 certificates are central to the OPC UA trust model, providing a standardized method for digital identity verification and Public Key Infrastructure implementation. These electronic documents act like digital passports that must be stamped before entry; they contain the public key and specific identity information necessary for asymmetric cryptography. The corresponding private key remains securely stored on the device, enabling message signing and decryption without ever exposing it to the network.

Mutual authentication relies on these components, requiring both the client and the server to validate each other’s certificates before establishing a connection. This bidirectional verification prevents unauthorized devices from intercepting sensitive data or issuing malicious commands. This mechanism underpins secure SCADA communication by ensuring message integrity and confirming the data’s origin. You should use a Certificate Authority (CA) to issue and manage these credentials, simplifying certificate trust list maintenance in large-scale deployments. OPC UA authentication processes use these cryptographic proofs to maintain zero trust within operational technology networks.

What is an application instance certificate?

An Application Instance Certificate is a unique X.509 certificate assigned to a specific installation of an OPC UA application. It identifies the software instance itself rather than the human operator. Essential for the initial Secure Channel, devices exchange this credential during the connection handshake.

It uses asymmetric cryptography for message signing, relying on a stored private key and the Public Key Infrastructure. Valid endpoint configuration binds this certificate to the hardware. So, if an application moves to a different host, it requires a new Application Instance Certificate to maintain OPC UA security standards. This isolation keeps IoT security strong by verifying device identity independently of user permissions.

How are certificate trust lists used to verify identity?

Certificate Trust Lists (CTLs) work like a strict whitelist containing the X.509 certificates of all trusted applications and Certificate Authorities that you allow to communicate with the server. Whitelisting supports zero trust architecture by guaranteeing that only approved devices can establish a secure communication protocol.

For a connection to succeed, the receiver’s Trust List must contain the connecting client’s application instance certificates, or a trusted CA must sign them. From what I have seen in the field, diligent list management is the unsung hero of network defense. Manual list management is vital for maintaining a valid endpoint configuration and aligning with ICS security best practices. If a certificate is missing from the Trust List, the server automatically rejects the connection attempt. By blocking unknown connections, the server prevents unauthorized access, using Public Key Infrastructure to protect OT network security against unverified devices.

How should administrators handle quarantined certificates?

When a client not present in the certificate trust list attempts to connect, the server places its X.509 certificates into a quarantined state. Isolating the certificate blocks immediate access, preventing unauthorized entities from interacting with the system while alerting administrators to the new request. To handle these safely, you must manually verify the certificate’s thumbprint through a separate check, like checking the local display of the connecting device.

Checking the thumbprint confirms the requester’s identity before modifying the endpoint configuration. I have seen many secure systems compromised simply because an admin clicked ‘Trust’ too quickly. Don’t blindly trust quarantined items; it violates ICS security best practices and exposes the network to Man-in-the-Middle attacks. You must validate the source to maintain strict OPC UA security and guarantee effective cyberattack protection. Once you confirm the thumbprint, the certificate moves to the trusted directory, enabling secure SCADA communication. Ignoring these requests blocks the flow of legitimate industrial automation data, potentially causing downtime. Finally, all changes to trust stores should trigger audit logging to maintain a secure history of user authentication and administrative actions.

How does OPC UA encryption protect industrial data?

OPC UA encryption guarantees data privacy by encoding messages so that only the intended recipient with the correct private key can decipher them. This encoding protects industrial automation data from unauthorized access during transmission over untrusted networks. The protocol uses advanced cryptographic algorithms to make stolen data unreadable to malicious actors. Encryption is essential for preventing industrial espionage, securing proprietary formulas and sensitive operational parameters from eavesdropping.

If a bad actor captures network packets, the encrypted payload remains unintelligible without the decryption key. Secure SCADA communication relies on this confidentiality to maintain the secrecy of critical control strategies. The architecture supports varying levels of protection through security policies like SignAndEncrypt. Combining message integrity checks with encryption, this mode verifies that no one has modified or viewed the data. You should select specific encryption strengths based on data sensitivity and performance needs to keep the transport layer secure.

What is the difference between symmetric and asymmetric encryption?

Symmetric and asymmetric encryption differ fundamentally in their key management and computational demands within a secure channel. Asymmetric cryptography relies on a Public Key Infrastructure where a mathematically linked pair acts as the foundation: a public key for encryption and a private key for decryption and message signing. Because it’s computationally intensive, this method is impractical for encrypting large volumes of real-time data. On the other hand, symmetric encryption uses a single shared session key to encrypt and decrypt information, allowing for much faster processing speeds.

OPC UA encryption integrates both cryptographic algorithms to balance speed and protection. The system uses asymmetric encryption during the initial handshake to safely exchange the secrets needed for session activation. For example, algorithms like RSA secure the transfer of the AES keys used for the subsequent connection. Once the systems exchange keys, the protocol shifts to symmetric encryption to handle the continuous stream of data. Blending these methods ensures resilient transport layer security by combining the secure key exchange of asymmetric methods with the high-speed performance of symmetric algorithms.

How does message signing ensure data integrity?

Message signing ensures message integrity by generating a cryptographic hash of the data and encrypting it with the sender’s private key. To protect against Man-in-the-Middle attacks where an adversary attempts to inject unauthorized commands or alter operational parameters, the system hashes the data. The receiving device uses the sender’s public key, which it gets from X.509 certificates within the Public Key Infrastructure, to validate the signature and confirm the message’s origin.

Cryptographic algorithms compare the received signature against the locally calculated hash. If anything modifies the message in transit, even a single bit, the verification fails, and the system immediately discards the packet. Validating every packet ensures cyberattack protection and keeps data private by rejecting any tampered information.

Which message security modes are available in OPC UA?

OPC UA defines three primary Message Security Modes, allowing administrators to balance security needs with system performance within the secure communication protocol:

  • None
  • Sign
  • SignAndEncrypt

These modes determine how the secure channel processes industrial automation data during transmission. Selecting the appropriate mode is crucial for endpoint configuration, as it affects both data transfer speed and protection levels against cyber threats.

Avoid the None security mode whenever possible. It removes all transport layer security, disabling both message signing and OPC UA encryption. Think of this as leaving your front door unlocked in a bad neighborhood. While this maximizes throughput, it exposes the system to significant risks. In this mode, there is no guarantee of message integrity or data privacy, leaving the network vulnerable to eavesdropping and unauthorized command injection. That’s why you should typically restrict ‘None’ to initial commissioning phases or strictly isolated networks where physical security is absolute.

The Sign mode offers a balanced approach. It ensures message integrity and authentication without encrypting the data payload. In this configuration, the system digitally signs every message, allowing the receiver to verify that the data originated from a trusted source and no one tampered with it during transit. However, the data remains readable in plain text. This mode is suitable for environments where data privacy is not a primary concern, but preventing unauthorized control is essential. Most production environments mandate at least the ‘Sign’ mode to prevent malicious actors from altering process values.

For the highest level of protection, choose SignAndEncrypt. This mode uses OPC UA encryption to scramble the data, making it unreadable to anyone without the correct decryption key, while simultaneously signing the message to verify its origin. SignAndEncrypt is the standard for protecting sensitive intellectual property and critical control instructions over untrusted networks. It stops espionage and tampering, providing a strong defense for the secure communication protocol.

Diagram displaying the Message Security Modes Workflow, illustrating the process from no security to advanced protection levels including Signing, Data Integrity, Confidentiality, and SignAndEncrypt.

When should you use SignAndEncrypt vs. Sign only?

Deciding between these modes depends fundamentally on whether you require data privacy in addition to message integrity. SignAndEncrypt is the mandatory choice when protecting sensitive industrial automation data, such as proprietary pharmaceutical recipes or intellectual property, from unauthorized viewing. This mode uses OPC UA encryption and complex cryptographic algorithms to guarantee that information remains confidential across the network. But this added layer of security consumes more processing power and increases bandwidth usage due to the encryption overhead.

On the other hand, the ‘Sign’ mode is sufficient for scenarios where the data values themselves are not secret, but verifying their origin is critical for OT network security. For example, high-frequency sensor status updates often use message signing alone to maintain low latency while maintaining cyberattack protection against tampering. Skipping encryption reduces the computational load on the CPU, speeding things up for real-time secure SCADA communication. Ultimately, you should reserve SignAndEncrypt for confidential secrets, while applying ‘Sign’ to non-sensitive telemetry to get both speed and security.

What is a channel security policy?

A Channel Security Policy acts as a named collection of specific cryptographic algorithms and key lengths used to enforce transport layer security within a connection. This policy defines the exact mathematical suite and dictates what the protocol stack uses for asymmetric cryptography, symmetric encryption, message signing, and key derivation. Examples of these suites include strong standards like Basic256Sha256 or Aes128_Sha256_RsaOaep.

During the connection handshake, servers expose multiple policies through their endpoint configuration, and clients must select a policy that matches their security requirements to establish a secure channel. Disabling deprecated security policies is key to keeping solid OPC UA security.

Older suites, such as ‘Basic128Rsa15’, rely on outdated algorithms like SHA-1 that contain known vulnerabilities. Attackers can exploit these weaknesses to compromise information modeling integrity or decrypt traffic. You must restrict options to high-security policies to maintain effective cyber defense.

How does user authentication work in OPC UA?

User authentication verifies the identity of the specific individual or service accessing the server, distinct from the device-level authentication that certificates handle. This process happens during Session Activation and confirms that only authorized personnel interact with the system. OPC UA authentication supports four primary methods:

  • Anonymous
  • Username/Password
  • X.509 certificates
  • JSON Web Tokens (JWT)

A maintenance engineer typically uses a smart card containing a User Certificate to log in, offering higher security than a shared password.

Enabling Anonymous authentication creates significant risks for industrial IoT security. Allowing anonymous access lets any client access the server without credentials, bypassing role-based access control. Attackers exploit this vulnerability to read data or change settings without detection. You must disable this option in the endpoint configuration to keep communications secure, strictly following zero trust architecture and enabling precise audit logging.

How can role-based access control (RBAC) enforce least privilege?

Role-based access control enforces the principle of least privilege by assigning permissions to specific organizational roles rather than directly to individuals. You map users to defined roles such as ‘Operator’, ‘Engineer’, or ‘Observer’ during user authentication. Mapping permissions to roles restricts access to only the industrial automation data and methods strictly required for a specific job function. Each role possesses granular permissions defined within the information modeling structure, controlling read, write, and execute capabilities.

For instance, an ‘Observer’ role retains the ability to read sensor values but cannot write setpoints or call control methods. Enforcing these limits upholds secure SCADA communication by preventing unauthorized modifications to endpoint configuration. RBAC simplifies user management in large systems by allowing administrators to modify permissions for a single role rather than updating hundreds of individual accounts. Centralizing management supports ICS security best practices and zero trust architecture by guaranteeing that privilege changes apply immediately. Also, clear role definitions help with granular permissions to track which role performed specific actions within the OT network security environment.

Which cyber threats does OPC UA security mitigate?

OPC UA security mechanisms use a layered defense to provide reliable cyberattack protection against sophisticated industrial threats. The protocol addresses the CIA triad—Confidentiality, Integrity, and Availability—through integrated encryption, digital signing, and strong session management. The architecture targets specific vulnerabilities common in OT network security to verify that industrial IoT security remains resilient against both external intrusions and internal errors. By enforcing strict standards, the architecture mitigates risks ranging from data tampering to service disruption.

Infographic illustrating cyber threats mitigated by OPC UA, showing how the CIA Triad defends against risks like Rogue Devices, Man in the Middle, Denial of Service, and Remote Code Execution.

How is unauthorized access and rogue device connection prevented?

Mutual authentication prevents rogue devices from impersonating legitimate controllers or servers. The system uses X.509 application instance certificates to verify the identity of every connecting entity before a session begins. By checking credentials, the system ensures that only authorized hardware participates in the network; if a device attempts to connect without a trusted certificate, the handshake fails, blocking potential remote code execution vectors. The OPC Foundation maintains a rigorous vulnerability disclosure process to address software flaws, keeping authentication mechanisms secure against new threats.

How does OPC UA prevent Man-in-the-Middle attacks?

OPC UA prevents Man-in-the-Middle (MitM) attacks through mandatory message signing and strict certificate validation, guaranteeing that no third party can intercept or modify traffic within the secure channel. The protocol uses X.509 certificates to verify that the client communicates directly with the intended server, preventing redirection to malicious nodes.

Private key protection is generated using a private key that the system never transmits, making it impossible for an attacker to forge a valid message. If an unauthorized entity attempts to alter a command during transit, the signature check fails, and the system immediately terminates the connection. This mechanism relies on private key protection to verify that only components capable of generating valid signatures can bypass OPC UA encryption and maintain message integrity. Without access to these keys, the secure communication protocol remains impenetrable to spoofing attempts, enforcing a secure endpoint configuration.

Can OPC UA defend against denial-of-service attacks?

While no system is entirely immune to denial-of-service (DoS) attacks, OPC UA uses strong mechanisms to reduce these risks by managing resource allocation and validating requests early in the protocol stack. Servers use specific endpoint configuration settings to enforce strict limits on the number of active sessions, subscriptions, and maximum message sizes. Session limits prevent resource exhaustion when a network fuzzer floods the system with requests. The secure channel handshake requires minimal server resources until the client provides valid credentials, reducing the impact of connection flooding.

Connection limits help mitigate DoS attempts by defining a hard cap on concurrent links. If an attacker exceeds this threshold, the secure communication protocol automatically rejects new connection attempts at the transport layer security level without performing deep-packet processing. Early rejection ensures that industrial automation data processing for legitimate users remains unaffected. By discarding unauthorized traffic before it reaches the application logic, the architecture maintains OT network security and effectively protects against availability threats.

How does the protocol prevent remote code execution?

The protocol mitigates remote code execution (RCE) through rigorous input validation and the removing of vulnerabilities within the protocol stack. Modern implementations use a network fuzzer to perform extensive stress testing. Stress testing helps developers identify and fix memory corruption issues like buffer overflows. Fuzz testing is critical for the protocol stack because it simulates malicious data injection to discover weaknesses before attackers can exploit them.

The architecture enforces strict data typing to ensure the system processes payloads only as information modeling elements rather than executable scripts. Strict type enforcement prevents the injection of malicious code into the system. Regular vulnerability disclosure cycles ensure that vendors patch any newly identified flaws in the secure communication protocol immediately. You can maintain a secure endpoint configuration by adhering to these updates. By following these ICS security best practices, organizations achieve comprehensive cyberattack protection and maintain high standards of industrial IoT security.

What are the best practices for OPC UA security configuration?

Secure configuration requires a defense-in-depth approach involving strict endpoint configuration, certificate management, and continuous software updates. You must implement a combination of protocol settings, development practices, and monitoring strategies to maintain a secure environment.

Why should the ‘None’ security mode be disabled?

The None security mode removes all transport layer security, transmitting industrial automation data in plain text without OPC UA encryption or message signing. This open door allows attackers to easily intercept traffic and manipulate secure SCADA communication, compromising the entire control system.

How does OPC UA fit into a zero trust architecture?

OPC UA implements zero trust architecture principles by assuming that it trusts no network traffic, regardless of its physical location or origin. Unlike legacy protocols that rely solely on perimeter defenses like firewalls, this standard enforces strict mutual authentication for every single connection attempt. This mandate ensures that both the client and server validate each other’s X.509 certificates before establishing a secure channel, adhering strictly to the “never trust, always verify” philosophy. This requirement ensures that even devices operating within a secured local network must explicitly prove their identity, effectively preventing unauthorized actors from moving sideways through the network within OT network security environments.

The framework supports micro-segmentation by applying precise controls directly at the application layer. Once the system confirms device identity via the endpoint configuration, the system enforces user authentication to verify the specific operator or service account.

Role-based access control then limits privileges to the exact data nodes required for the task, minimizing the potential impact of a compromised credential. Verifying at multiple layers ensures resilient industrial IoT security by validating every request against specific security policies. As a result, OPC UA security transforms the infrastructure into a verified ecosystem where trust is explicitly granted per session rather than implied by network access.

Why is DevSecOps important for industrial automation security?

When vendors employ DevSecOps, they integrate security practices directly into the development and deployment lifecycle of industrial software. For the end user, this ‘shift left’ approach ensures that the software arriving on the plant floor is secure by design. Instead of patching later, developers identify and resolve vulnerabilities in the protocol stack during the coding phase. The process relies on continuous testing, where automated pipelines use tools like a network fuzzer and vulnerability scanners to test information modeling structures. These automated tests verify that new code additions don’t introduce regressions or compromise the secure communication protocol.

Continuous testing improves protocol security by subjecting the software to constant, automated scrutiny before it reaches the production environment. By simulating malicious inputs and stress conditions, developers ensure that industrial automation data handling remains strong against known exploits. Additionally, DevSecOps speeds up the deployment of patches following a vulnerability disclosure. Rapid patching ensures that endpoint configuration updates and security fixes reach production systems quickly and reliably. This approach meets ICS security best practices, guaranteeing that the software lifecycle supports a resilient and secure system.

How can audit logging improve OT network security?

Audit logging strengthens OT network security by maintaining a detailed chronological record of all system activities and user authentication events. A comprehensive trail is essential for forensic analysis and regulatory compliance, allowing administrators to reconstruct incidents after a security breach. You will thank yourself for enabling this the first time you need to troubleshoot a mysterious configuration change. Effective logging strategies capture specific high-risk events, including failed login attempts, changes to endpoint configuration, and unauthorized access to critical industrial automation data. Analyzing these logs helps security teams identify unusual activity that often precedes a malicious intrusion.

For example, a sudden spike in failed session activation requests serves as a clear indicator of a potential brute-force attack or vulnerability disclosure exploitation. By continuously monitoring these parameters, organizations detect anomalies in role-based access control usage and facilitate rapid cyberattack protection. Implementing strong audit trails supports ICS security best practices, guaranteeing that you can account for and verify every interaction with the control system.

Sources

  • http://www.dsinteroperability.com/OPCClassicVSUA.pdf
  • https://profiles.opcfoundation.org/profile/1532
  • https://www.cisa.gov/uscert/ncas/alerts/aa22-103a
Monika Stando
Monika Stando
Marketing Campaigns Team Leader
  • follow the expert:

Testimonials

What our partners say about us

Hicron Software proved to be a trusted partner with unmatched technical expertise, delivering a scalable and user-friendly web application that was pivotal to our successful U.S. market expansion.

Mikko Hyvärinen
Director of Software Portfolio at iLOQ

Hicron’s contributions have been vital in making our product ready for commercialization. Their commitment to excellence, innovative solutions, and flexible approach were key factors in our successful collaboration.
I wholeheartedly recommend Hicron to any organization seeking a strategic long-term partnership, reliable and skilled partner for their technological needs.

tantum sana logo transparent
Günther Kalka
Managing Director, tantum sana GmbH

After carefully evaluating suppliers, we decided to try a new approach and start working with a near-shore software house. Cooperation with Hicron Software House was something different, and it turned out to be a great success that brought added value to our company.

With HICRON’s creative ideas and fresh perspective, we reached a new level of our core platform and achieved our business goals.

Many thanks for what you did so far; we are looking forward to more in future!

hdi logo
Jan-Henrik Schulze
Head of Industrial Lines Development at HDI Group

Hicron is a partner who has provided excellent software development services. Their talented software engineers have a strong focus on collaboration and quality. They have helped us in achieving our goals across our cloud platforms at a good pace, without compromising on the quality of our services. Our partnership is professional and solution-focused!

NBS logo
Phil Scott
Director of Software Delivery at NBS

The IT system supporting the work of retail outlets is the foundation of our business. The ability to optimize and adapt it to the needs of all entities in the PSA Group is of strategic importance and we consider it a step into the future. This project is a huge challenge: not only for us in terms of organization, but also for our partners – including Hicron – in terms of adapting the system to the needs and business models of PSA. Cooperation with Hicron consultants, taking into account their competences in the field of programming and processes specific to the automotive sector, gave us many reasons to be satisfied.

 

PSA Group - Wikipedia
Peter Windhöfel
IT Director At PSA Group Germany

Get in touch

Say Hi!cron

This site uses cookies. By continuing to use this website, you agree to our Privacy Policy.

OK, I agree