# US 10,503,894 B2 · Secure process impersonation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,894 B2
- Document ID: US10503894B2
- Status: Granted
- Kind: B2
- Application number: 15/251,172
- Filed: 2016-08-30
- Published: 2018-03-01
- Granted: 2019-12-10
- Earliest claimed: 2016-08-30
- Assignees: NCR Corporation
- Applicants: NCR Corporation
- Inventors: Nir Veltman
- Web page: https://patentgrep.com/patent/US10503894B2

## CPC

- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- G06F 21/44: Program or device authentication
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 63/10: {for controlling access to devices or network resources}
- H04W 12/06: Authentication
- H04W 12/08: Access security
- G06F 2221/033: Test or assess software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

An Operating System (OS) command launcher or loader is newly obfuscated each time a command is successfully processed by the OS command launcher. Moreover, a binary for the OS command launcher is validated each time a command is attempted to be processed for execution by the OS command launcher.

## Claims

### Claim 1

A method, comprising:
identifying a command for execution during a session with an Operating System (OS); and
retrieving an executable for an OS command launcher from a location that is based at least in part on the session;
validating the executable before processing the executable to launch the command for execution within the OS;
hashing the executable with a randomly generated key producing a hash value;
encrypting credentials associated with the session and a path to the location with the randomly generated key producing first encrypted data;
encrypting the randomly generated key with an OS-provided Key Encryption Key (KEK) producing second encrypted data; and
storing the hash value, the first encrypted data, and the second encrypted data.

### Claim 2 (depends on 1)

The method of claim 1 further comprising, reiterating the method processing for a second command identified for execution during the session and processing the hash value, the first encrypted data, and the second encrypted data for retrieving and validating the executable for processing to launch the second command for execution within the OS.

### Claim 3

A method, comprising:
identifying a command for execution during a session with an Operating System (OS); and
retrieving an executable for an OS command launcher from a location that is based at least in part on the session; and
validating the executable before processing the executable to launch the command for execution within the OS;
decrypting a stored encrypted key with an OS-provided Key Encryption Key (KEK) obtaining a key;
decrypting stored encrypted data with the key obtaining credentials associated with the session and a path to the location;
wherein validating further includes authenticating the credentials ensuring that the credentials were processed when the session was initiated within the OS;
wherein authenticating further includes hashing the executable retrieved from the location over the path with the key obtaining a hash value and ensuring that the hash value is equal to a stored hash value; and
generating a new hash value with a new randomly generated key for the executable, producing new encrypted data for the credentials and the path using the new randomly generated key, producing a new encrypted key for the newly generated key using the KEK, and storing the new hash value, the new encrypted data, and the new encrypted key for a subsequent iteration of the method with a second command that is presented for executing within the session.

### Claim 4 (depends on 3)

The method of claim 3 further comprising, processing the executable to launch the command within the session when the credentials are authenticated and the hash value is equal to the stored hash value.

### Claim 5 (depends on 3)

The method of claim 3 further comprising, ignoring the command and preventing the OS from processing the command when either the credentials are invalid for the session or when the hash value is not equal to the stored hash value.

### Claim 6 (depends on 3)

The method of claim 3, wherein validating further includes validating the executable in a manner that is specific and unique to presentation of the command for execution within the OS.
