Title: Building an Encrypted and Searchable Audit Log
1Building an Encrypted and Searchable Audit Log
- Brent Waters
- Dirk Balfanz
- Glenn Durfee
- D.K. Smetters
2Audit Logs
- Employed on most server systems
- Web logs
- Database logs
- Provide invaluable access to past activity
- Hold users accountable for their actions
- Diagnostics
3Desirable Characteristics
- Tamper Resistant
- Verifiable
- Can check that entries are present and have not
been altered - Data Access Control
- Entries may be sensitive to individuals or log
owner - Searchability
- Search for log on specific criteria
- e.g keyword search
4Desirable Characteristics
- Tamper Resistant
- Verifiable
- Can check that entries are present and have not
been altered - Data Access Control
- Entries may be sensitive to individuals or log
owner - Searchability
- Search for log on specific criteria
- e.g keyword search
5An Audit Log for a Database System
log storage (untrusted)
6Requirements
- Data Access Control
- Entries must be encrypted on untrusted storage
- Forward security in case auditing device becomes
compromised ? asymmetric encryption - Limit scope of data released to that of the
search - Searchability
- Be able to efficiently retrieve entries based on
certain criteria - We focus on keyword search
7A Simple Solution
- Encrypt all entries with a public key
- Auditor downloads all entries, then decrypts
them, then performs the search
8A Simple Solution
- Encrypt all entries with a public key
- Auditor downloads all entries, then decrypts
them, then performs the search - Disadvantages
- Auditor sees all entries and regardless of what
search criteria was - All entries must be transmitted from server
9Delegating Search Capabilities
The investigator requests a capability to search
for all entries that were made by the user Alice.
user Alice Smith
1
capabilityfor search
mastersecret
investigator
audit escrow agent
The investigator submits the capability to the
audit log and receives only entries that the
capability matches.
capabilityfor search
2
auditrecord
auditrecord
auditrecord
audit log
investigator
10Searching on Asymmetrically Encrypted Data
Document
11Searching on Asymmetrically Encrypted Data
Document
Encrypted Data
Keywords must not be in the clear!
12Searching on Asymmetrically Encrypted Data
Document
mastersecret
audit escrow agent
Encrypted Data
13Searching on Asymmetrically Encrypted Data
Document
mastersecret
audit escrow agent
Encrypted Data
14Searching on Asymmetrically Encrypted Data
Document
mastersecret
audit escrow agent
Encrypted Data
15Searching on Asymmetrically Encrypted Data
Document
mastersecret
audit escrow agent
Encrypted Data
No information is learned
16Searching on Asymmetrically Encrypted Data
Keywords Alice Ford Loans
Document
mastersecret
audit escrow agent
Encrypted Data
17Searching on Asymmetrically Encrypted Data
Document
mastersecret
audit escrow agent
Encrypted Data
18Searching on Asymmetrically Encrypted Data
Document
mastersecret
audit escrow agent
Embed decryption in search
Encrypted Data
Document
19Identity Based Encryption (IBE)
- Public Key is simply a string e.g. bob_at_parc.com
- Private Key given from master secret holder(s)
- Removes need for distribution of public key
certificates - We use scheme of Boneh and Franklin (2001)
20Using IBE to Search on Asymmetrically Encrypted
Data
21Using IBE to Search on Asymmetrically Encrypted
Data
22Using IBE to Search on Asymmetrically Encrypted
Data
23Using IBE to Search on Asymmetrically Encrypted
Data
24Using IBE to Search on Asymmetrically Encrypted
Data
25Using IBE to Search on Asymmetrically Encrypted
Data
- FLAG used to test
- K to decrypt on match
26Using IBE to Search on Asymmetrically Encrypted
Data
- FLAG used to test
- K to decrypt on match
- Key-privacy property?keywords kept private
27Using IBE to Search on Asymmetrically Encrypted
Data
- FLAG used to test
- K to decrypt on match
- Key-privacy property?keywords kept private
- Pairing operation per keyword
28Using IBE to Search on Asymmetrically Encrypted
Data
29Using IBE to Search on Asymmetrically Encrypted
Data
- Attempt IBE decryption on each part
- Test for presence of FLAG
30Using IBE to Search on Asymmetrically Encrypted
Data
011010
- Attempt IBE decryption on each part
- Test for presence of FLAG
31Using IBE to Search on Asymmetrically Encrypted
Data
0011100
- Attempt IBE decryption on each part
- Test for presence of FLAG
32Using IBE to Search on Asymmetrically Encrypted
Data
FLAG K
- Attempt IBE decryption on each part
- Test for presence of FLAG
33Using IBE to Search on Asymmetrically Encrypted
Data
FLAG K
- Attempt IBE decryption on each part
- Test for presence of FLAG
- On match use K to decrypt document
Document
34Using IBE to Search on Asymmetrically Encrypted
Data
FLAG K
- Attempt IBE decryption on each part
- Test for presence of FLAG
- On match use K to decrypt document
- Pairing per keyword in document
Document
35Scoping of Keywords
- We want to type keywords
- e.g. Capability to search on entries about
Alice vs. those made by Alice - Solution Prefix keywords with type
- userAlice
- kwAlice
36Performance
- Encryption
- One pairing per keyword in document
- One exponentiation per keyword
- Search/Decryption
- One pairing per keyword per document
37Optimizations
- Cache pairings of frequently used keywords
- eg. ê(userAlice,sP)
- Only need a pairing per new keyword on encryption
- In limit exponentiation per keyword is dominant
cost
38Optimizations
- Cache pairings of frequently used keywords
- eg. ê(userAlice,sP)
- Only need a pairing per new keyword on encryption
- In limit exponentiation per keyword is dominant
cost - Reuse randomness for IBE encryption within one
document - Okay since cannot use same public key per
document - In decryption only one pairing per document
- Save storage in log
39Indexing
- Incremental update of an index on untrusted
storage is insecure
40Indexing
- Incremental update of an index on untrusted
storage is insecure
Index
41Indexing
- Incremental update of an index on untrusted
storage is insecure
Index
42Indexing
- Incremental update of an index on untrusted
storage is insecure
Index
43Indexing
- Incremental update of an index on untrusted
storage is insecure
Index
44Indexing
- Build local index on auditing device and flush
out to storage
45Indexing
- Build local index on auditing device and flush
out to storage
46Indexing
- Longer index is held in auditing device more
information leaked on device compromise
47Implementation
- Implemented a logging system for MySQL database
queries - Goal to protect individuals privacy
- Used Stanford IBE library
- Pairing cost 80ms on current machines
48Related Work
- Searching on Encrypted Data
- Boneh, Crescenzo, Ostrovsky and Persiano (2003)
- Song, Wagner and Perrig (2000)
- Goh (2003)
- Identity Based Encryption
- Boneh and Franklin (2001)
49Conclusion
- Tension between data access control and
searchability in audit logs - Asymmetric scheme for searching on encrypted data
- Explored optimizations for practical systems
50(No Transcript)
51Searching on Asymmetrically Encrypted Data
Encrypted Data
52Using IBE to Search on Asymmetrically Encrypted
Data
Document
- FLAG used to test
- K to decrypt on match
- Key-privacy property?keywords kept private
- Pairing operation per keyword
53Using IBE to Search on Asymmetrically Encrypted
Data
- Attempt IBE decryption on each part
- Test for presence of FLAG
- On match use K to decrypt document
- Pairing per test