Nova Patents
EP1536307A1

Encryption of system paging file

Abstract

An operating system copies data from memory pages into a paging file on disk, in order to free up space in the memory. A mechanism is disclosed that causes the data to be encrypted as it is copied into the paging file, thereby protecting the paged data from unauthorized (or otherwise undesired) observation. The data that is stored in the paging file is encrypted with a session key, that is generated shortly after the machine on which the paging file exists is started. The session key, which is used both for encryption and decryption of the paging file data, is stored in volatile memory, so that the key is not persisted across boots of the machine. Since the key is not persisted across boots, old paging file data that was stored prior to the most recent boot cannot be recovered in clear text, thereby protecting the data from observation.

EP1536307A1, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 25 October 2024, 1.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

23 claims: 5 independent, 18 dependent

  1. 1
    A system for providing a computing environment, the environment including a virtual memory, the system comprising:a virtual memory manager that provides the virtual memory by moving or copying data between a volatile memory and a paging file stored in a hard disk, the system protecting the contents of the virtual memory by encrypting the data stored in the paging file.
  2. 9
    A method of protecting a virtual memory comprising:storing data in a plurality of pages of a volatile memory;determining to move contents of a first one of said plurality of pages from said volatile memory to a paging file stored on a disk;providing said contents to a file system with instructions to store said contents in a paging file, said paging file being marked for encryption, said file system causing said contents to be encrypted with a key prior to storing said contents in said paging file, said key being required to decrypt information contained in said paging file, said key being stored in a manner such that a reboot of a machine on which said key is stored causes said key to be lost.
  3. 14
    A system for maintaining an encrypted paging file that stores virtual memory data for a computer, the system comprising:an encryption component that receives data and performs encryption and decryption operations on said data using a key;a mechanism that generates said key;a storage location in the computer that stores said key in a manner that causes said key not to persist across boots of the computer;and a virtual memory manager that copies or moves data from volatile memory to disk by requesting that a file system store the copied or moved data in a paging file, the file system calling upon the encryption component to encrypt the copied or moved data with said key.
  4. 20
    A computer-readable medium encoded with computer executable instructions to perform a method that takes place upon startup of a computer, the method comprising:generating a session key;storing said session key in a non-persistent manner that does not survive across machine boots;retrieving information indicating that virtual memory data stored on disk is to be encrypted;marking a paging file as an encrypted file;receiving, from a memory manager, data from a volatile storage device that is to be stored on disk in the paging file;and protecting the received data from observation by encrypting the received data with a session key prior to storing said data in the paging file.
  5. 23
    A method of protecting a virtual memory comprising:storing data in a plurality of pages of a volatile memory;determining to move contents of a first one of said plurality of pages from said volatile memory to a paging file stored on a disk;providing said contents to a file system with instructions to store said contents in a paging file, said paging file being marked for encryption, said file system causing said contents to be encrypted with a key prior to storing said contents in said paging file, said key being required to decrypt information contained in said paging file, said key being stored in a manner such that a reboot of a machine on which said key is stored causes said key to be lost.