Patent ID: 8402267

Claim:
A method of operation of a microkernel executing on a processing device, the method comprising: partitioning, by the microkernel, a network device into a communication address space, a security enforcement address space, and a protected operations address space; providing secure isolation of the protected operations address space from the communication address space, by security threads of the security enforcement address space; and allocating, by the microkernel, a limited amount of processor execution time to the communication address space, the protected operations address space, and the security enforcement address space such that no thread of any of the communication address space, the protected operations address space, and the security enforcement address space can obtain unlimited processor execution time; mediating communication between the communications threads, the protected operations threads, and the security threads; receiving an identity of a sender of an inter-process communication; and providing the identity of the sender to a receiver of the inter-process communication, such that the identity of the sender cannot be forged; wherein the protected operations are field device control and data acquisition operations in a supervisory control and data acquisition system; the method further including: authenticating, by a field device security enforcement point thread of the security threads, a request from Supervisory Control and Data Acquisition (SCADA) protocol threads of the communication threads via inter-process communication, then, if authenticated: making a request to an I/O database interface thread of the protected operations threads; and forwarding a response back to the SCADA protocol threads wherein the step of authenticating the request from the SCADA protocol threads further includes: verifying that the request is a legitimate operation by consulting a security policy stored in the security enforcement address space; sending a challenge message to an initiator of the request; comparing a response to the challenge message to an expected response calculated using a pre-shared secret, nonce, and a cryptographic hash function, then, if the response to the challenge message matches the expected response: consulting the security policy for the initiator of the request to determine if the initiator is allowed to carry out the operation.