IP Library › Granted Patent US 10,256,981
Granted Patent B2
US 10,256,981 · App. 15/277,215 · Granted Apr 9, 2019

Secure logging for host security module

Inventors: Richard V. Kisley (Charlotte, NC); Mark D. Marik (Denver, NC); Michael J. Miele (Concord, NC); Tamas Visegrady (Zurich, CH)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L9/3252G06F17/30185G06F21/64G06F21/72G06F2221/2101G06F2221/2151
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,256,981
App. No.
15/277,215
Granted
Apr 9, 2019
Kind
B2
Abstract

Embodiments include method, systems and computer program products for secure logging of host security module. In some embodiments, an event may be received. The event may include data to be written to a secure log file. A hash may be generated using data of the event. The hash may be stored in a first field of an event record associated with the event. The event record may be stored in the secure log file. The hash may be stored in a second field of a next event record in the secure log file.

Claims (123)

1. A computer-implemented method for secure logging on a host security module (HSM), the method comprising:

receiving an event, wherein the event comprises data to be written to a secure log file;

generating a hash using data of the event;

storing the hash in a first field of an event record associated with the event, wherein the event record is stored in the secure log file;

storing the hash in a second field of a next event record in the secure log file;

receiving a request from a user associated with a first user role to clear a set of event records from the secure log file;

verifying that the set of event records has been retrieved at least once by analyzing metadata associated with each event record of the set of event records to be cleared;

updating metadata associated each event record of the set of event records;

receiving a second request from a second user associated with a second user role to clear the set of event records from the secure log file;

verifying the data received in the second request by analyzing the metadata associated with each event record of the set of event records; and

removing the set of event records from the secure log file.

2. The computer-implemented method of claim 1 , further comprising:

in response to receiving the event, increasing a value of a first counter indicative of a number of events received;

storing the event in a staging file stored in a Battery Back Random Access Memory (BBRAM);

determining that the first counter equals a pre-determined threshold;

processing a set of event records of the staging file;

writing the processed set of event records to the secure log file from the staging file, wherein the secure log file is stored in a slower file system than the staging file;

removing the set of event records from the staging file;

incrementing a second counter in the secure log file using the first counter; and

resetting the first counter in the staging file.

3. The computer-implemented method of claim 1 , wherein the secure log file is stored in a flash file system.

4. The computer-implemented method of claim 1 , further comprising:

retrieving a set of event records from the secure log file;

generating an elliptic curve digital signature algorithm (ECDSA) signature on the hash of the retrieved group of event records;

verifying the ECDSA signature on the group of retrieved event records;

verifying that a second field of each event record is equal to the first field of an immediately previous event record in the retrieved set of event records; and

verifying that the second field of a first event record of the secure log file comprises a hash field of zeroes.

5. The computer-implemented method of claim 1 , further comprising:

determining that the secure log file is full;

determining to add the event to an overflow flash file;

receiving a second event;

determining the second event is an updated version of the event;

overwriting the event in the overflow flash file using the second event;

determining the secure log file is not full;

writing overflow events from the overflow flash file to the secure log file; and

removing the overflow events from the overflow flash file.

6. The computer-implemented method of claim 5 , further comprising:

sorting the overflow events from the overflow flash file using a timestamp associated with each of the overflow events; and

updating a sequence number associated with each of the overflow flash file event records as they are written to the secure log file; and

updating the second field associated with each of the overflow events as the overflow events are written to the secure log file; and

updating a first field associated with each of the overflow events as the overflow events are written to the secure log file.

7. A computer program product comprising a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

receiving an event, wherein the event comprises data to be written to a secure log file;

generating a hash using data of the event;

storing the hash in a first field of an event record associated with the event, wherein the event record is stored in the secure log file;

storing the hash in a second field of a next event record in the secure log file;

receiving a request from a user associated with a first user role to clear a set of event records from the secure log file;

verifying that the set of event records has been retrieved at least once by analyzing metadata associated with each event record of the set of event records to be cleared;

updating metadata associated each event record of the set of event records;

receiving a second request from a second user associated with a second user role to clear the set of event records from the secure log file;

verifying the data received in the second request by analyzing the metadata associated with each event record of the set of event records; and

removing the set of event records from the secure log file.

8. The computer program product of claim 7 , the method further comprising:

in response to receiving the event, increasing a value of a first counter indicative of a number of events received;

storing the event in a staging file stored in a Battery Back Random Access Memory (BBRAM);

determining that the first counter equals a pre-determined threshold;

processing a set of event records of the staging file;

writing the processed set of event records to the secure log file from the staging file, wherein the secure log file is stored in a slower file system than the staging file;

removing the set of event records from the staging file;

incrementing a second counter in the secure log file using the first counter; and

resetting the first counter in the staging file.

9. The computer program product of claim 7 , wherein the secure log file is stored in a flash file system.

10. The computer program product of claim 7 , the method further comprising:

retrieving a set of event records from the secure log file;

generating an elliptic curve digital signature algorithm (ECDSA) signature on the hash of the retrieved group of event records;

verifying the ECDSA signature on the group of retrieved event records;

verifying that a second field of each event record is equal to the first field of an immediately previous event record in the retrieved set of event records; and

verifying that the second field of a first event record of the secure log file comprises a hash field of zeroes.

11. The computer program product of claim 7 , the method further comprising:

determining that the secure log file is full;

determining to add the event to an overflow flash file;

receiving a second event;

determining the second event is an updated version of the event;

overwriting the event in the overflow flash file using the second event;

determining the secure log file is not full;

writing overflow events from the overflow flash file to the secure log file; and

removing the overflow events from the overflow flash file.

12. The computer program product of claim 11 , the method further comprising:

sorting the overflow events from the overflow flash file using a timestamp associated with each of the overflow events; and

updating a sequence number associated with each of the overflow flash file event records as they are written to the secure log file; and

updating the second field associated with each of the overflow events as the overflow events are written to the secure log file; and

updating a first field associated with each of the overflow events as the overflow events are written to the secure log file.

13. A system, comprising:

a processor in communication with one or more types of memory, the processor configured to:

receive an event, wherein the event comprises data to be written to a secure log file;

generate a hash using data of the event;

store the hash in a first field of an event record associated with the event, wherein the event record is stored in the secure log file;

store the hash in a second field of a next event record in the secure log file;

receive a request from a user associated with a first user role to clear a set of event records from the secure log file;

verify that the set of event records has been retrieved at least once by analyzing metadata associated with each event record of the set of event records to be cleared;

update metadata associated each event record of the set of event records;

receive a second request from a second user associated with a second user role to clear the set of event records from the secure log file;

verify the data received in the second request by analyzing the metadata associated with each event record of the set of event records; and

remove the set of event records from the secure log file.

14. The system of claim 13 , wherein the processor is further configured to:

in response to receiving the event, increase a value of a first counter indicative of a number of events received;

store the event in a staging file stored in a Battery Back Random Access Memory (BBRAM);

determine that the first counter equals a pre-determined threshold;

process a set of event records of the staging file;

write the processed set of event records to the secure log file from the staging file, wherein the secure log file is stored in a slower file system than the staging file;

remove the set of event records from the staging file;

increment a second counter in the secure log file using the first counter; and

reset the first counter in the staging file.

15. The system of claim 13 , wherein the processor is further configured to:

retrieve a set of event records from the secure log file;

generate an elliptic curve digital signature algorithm (ECDSA) signature on the hash of the retrieved group of event records;

verify the ECDSA signature on the group of retrieved event records;

verify that a second field of each event record is equal to the first field of an immediately previous event record in the retrieved set of event records; and

verify that the second field of a first event record of the secure log file comprises a hash field of zeroes.

16. The system of claim 13 , wherein the processor is further configured to:

determine that the secure log file is full;

determine to add the event to an overflow flash file;

receive a second event;

determine the second event is an updated version of the event;

overwrite the event in the overflow flash file using the second event;

determine the secure log file is not full;

write overflow events from the overflow flash file to the secure log file; and

remove the overflow events from the overflow flash file.

17. The system of claim 16 , wherein the processor is further configured to:

sort the overflow events from the overflow flash file using a timestamp associated with each of the overflow events; and

update a sequence number associated with each of the overflow flash file event records as they are written to the secure log file; and

update the second field associated with each of the overflow events as the overflow events are written to the secure log file; and

update a first field associated with each of the overflow events as the overflow events are written to the secure log file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2016
From: KISLEY, RICHARD V.; MARIK, MARK D.; MIELE, MICHAEL J.; VISEGRADY, TAMAS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039866/0985 →
Continuity (1)
Related Publication 20180091311A1 · Mar 29, 2018