SlideShare a Scribd company logo
Implementing PII Encryption with
PDX Serialization
Gideon Low & Niranjan Sarvi
Pivotal Data Engineering
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Some Disturbing Data Security Trends . . .
● According to breachlevelindex.com,
there were over 1.3 billion data
records stolen or lost in 2017, up 86
million from 2016. 2/3rds due to
malicious intent.
● In the last 5 years, only 4% were
“Secure Breaches”, where the
record data was encrypted.
● Industry analyst group Forrester
reports that “51% of global network
security decision makers reported at
least one breach in the past 12
months”
3
● Kaspersky Lab reports that 31% of
data security breaches lead to the
firing of employees(!)
Anecdotal: In 2018, I have
personally been asked about
protecting PII data by every one of
my customers and prospects.
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
PDX-Based PII Encryption Features
• PII data Encrypted on Disk, In memory, and in-transit (within TCP Network
stack).
• All encryption/decryption happens on the Geode client (App Server). Server-
side never handles un-encrypted PII.
• Retain the ability to search data based on encrypted PII fields:
• Support OQL queries/indexes with equality predicates (no range queries).
• Support encrypted PII as Region keys. MAYBE NOT FOR S1 insufficient
time?
• Minimize Performance impact
• Minimize impact to existing application logic
• Integrate with key management tools.
4
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
PDX PII Serialization Fundamentals
• PDX PII Serialization logic installed on Geode client-side only: Geode servers
receive/handle only encrypted PII.
• Serialization Logic encrypts each PII field individually, replacing the original
String with a Base64-encrypted String.
• A short char sequence is prepended as a marker to enable migration (first-
time encryption & re-encryption due to key rotation).
• Deserialization logic reads encrypted String field from the inbound PDX byte
array, decrypts the PII value, and assigns the decrypted value to the POJO
member field.
• Enabled via Java Annotations — Designate PII fields via annotations, which
drive the custom serializer behavior.
5
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Basic Concept Distilled . . .
6
Serialize Before:
public boolean toData(Object o, PdxWriter writer) {
Customer instance = (Customer) o;
writer.writeDate("creationDate", instance.creationDate)
.writeString("name", instance.name)
.writeObject("ssn", instance.ssn)
.writeString("dob", instance.dob);
return true;
}
After:
public boolean toData(Object o, PdxWriter writer) {
Customer instance = (Customer) o;
writer.writeDate("creationDate", instance.creationDate)
.writeString("name", instance.name)
.writeObject("ssn", encryptorBean.encrypt(instance.ssn))
.writeString("dob", encryptorBean.encrypt(instance.dob));
return true;
}
Deserialize Before:
public Object fromData(Class<?> clazz, PdxReader reader) {
if (!clazz.equals(Customer.class)) return null;
Customer c = new Customer ();
c.creationDate = reader.readDate("creationDate");
c.name = reader.readString("name");
c.ssn = reader.readString("ssn");
c.dob = reader.readString("dob");
return c;
}
After:
public Object fromData(Class<?> clazz, PdxReader reader) {
if (!clazz.equals(Customer.class)) return null;
Customer c = new Customer ();
c.creationDate = reader.readDate("creationDate");
c.name = reader.readString("name");
c.ssn = piiEncryptionBean.decrypt(reader.readString("ssn"));
c.dob = piiEncryptionBean.decrypt(reader.readString("dob"));
return c;
}
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Encryption Service Details
• NOTE: Encryption service does not use Geode API . . .
• Encapsulates Logic into a single service class ("ICryptoService"):
• Init( ) logic obtains encryption key & instantiates Cipher
• Only Public methods are:
• encrypt(String pii)
• decrypt(String encryptedPii)
• Ciphers provided via JRE Java Cryptography Extensions (JCE).
• Wired-in as a Singleton Spring Bean
7
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Putting it Together: Custom PDX
AutoSerializer
Brief Description of Geode’s ReflectionBasedAutoSerializer:
• Enabled via PDX Configuration (cache-client.xml, API, or SDG)
• Reflects on Java Class definitions to construct PDX Type metadata and
runtime serialization logic.
• Extensible via these methods:
• boolean transformFieldValue ( Field f, Class type ) — Is the Field PII?
• Object writeTransform ( Object origValue ) — Modify default serialization
logic.
• Object readTransform ( Object serializedValue ) — Modify default de-
serialization logic.
8
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Putting it Together: Annotated PII Fields
@EnableEncryption
private String ccardNumber;
Add Annotation Checks
public boolean transformFieldValue(Field field, Class<?> type) {
// Check if encryption is enabled on the field
if (field.isAnnotationPresent( EnableEncryption.class)) {
return true;
} else
return super.transformFieldValue(field, type);
}
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Java JRE JCE
Ciphers
Spring
Initialization Steps
1
1
Initialization/Startup Logic
AutoSerializer:
- Reflects on D.O. Classes
- Builds PDX metadata repo
incl. annotated PII Fields
CryptoService:
- Obtains Encryption Key(s)
- Instantiates Cipher from
JCE
Geode Client:
- Connect to Geode Server
Cluster
Boot
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Runtime
1
2
Java JRE JCE
Ciphers
Spring
Runtime Logic
PIIAutoSerializer:
- Reflects on D.O. Classes
- Builds PDX metadata
repo incl. annotated PII
Fields
CryptoService:
- Obtains Encryption
Key(s)
- Instantiates Cipher from
JCE
Geode Client:
- Connect to Geode
Server Cluster
Boot
Geode Client API (Region, Function Service, Subscriptions)
Geode PDX Serialization
Geode Client Connection Pool
CryptoService::
- encrypt()
- decrypt()
Data Ops Requests
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Code & Demo
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Demo’able Items
1
4
● Data model
● Encryption implementation
● Gemfire operations
● OQL queries
● gfsh queries with encrypted data
Geode PII Encryption code is at
https://github.com/Pivotal-Data-Engineering/geode-pii-encryption
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Zero downtime migration
● Our follow-up blog titled “PDX PII Encryption Migration Strategies” will be
published in the next few weeks.
● Meanwhile, please see us after the session if you’d pick-up a hard-copy.
Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial
license: http://creativecommons.org/licenses/by-nc/3.0/
Q & A

More Related Content

PPTX
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
PDF
Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...
PDF
Implementing security requirements for banking API system using Open Source ...
PPTX
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
PDF
Implementing WebAuthn & FAPI supports on Keycloak
PPTX
Apache con@home 2021_sha
PDF
Cisco connect winnipeg 2018 cloud and on premises collaboration security ex...
PDF
OSCON 2018 Getting Started with Hyperledger Indy
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Consideration on Holder-of-Key Bound Token < from Financial-grade API (FAPI) ...
Implementing security requirements for banking API system using Open Source ...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Implementing WebAuthn & FAPI supports on Keycloak
Apache con@home 2021_sha
Cisco connect winnipeg 2018 cloud and on premises collaboration security ex...
OSCON 2018 Getting Started with Hyperledger Indy

What's hot (20)

PDF
Secure Webservices
PDF
cyber security analyst certification
PPTX
APIdays London 2020: Toward certifying Financial-grade API security profile w...
PPTX
RSA Conference 2016: Don't Use Two-Factor Authentication... Unless You Need It!
PDF
OpenID Foundation RISC WG Update - 2017-10-16
PPTX
Introduction to the FAPI Read & Write OAuth Profile
PDF
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
PDF
OIDF Workshop at Verizon Media -- 9/30/2019 -- Continuous Access Evaluation P...
PDF
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
PPTX
U2F/FIDO2 implementation of YubiKey
PDF
International Journal of Engineering and Science Invention (IJESI)
PDF
IRJET- Authentic and Anonymous Data Sharing with Enhanced Key Security
PDF
OpenID Foundation/Open Banking Workshop - OpenID Foundation Overview
PPTX
Implementing a Secure and Effective PKI on Windows Server 2012 R2
PDF
OIDC4VP for AB/C WG
DOC
chaitraresume
PDF
OIDF Workshop at Verizon Media -- 9/30/2019 -- OpenID Connect Federation Update
PDF
Developing applications with Hyperledger Fabric SDK
PPTX
DEVNET-1124 Cisco pxGrid: A New Architecture for Security Platform Integration
PDF
OpenID Foundation Workshop at EIC 2018 - OpenID Enhanced Authentication Profi...
Secure Webservices
cyber security analyst certification
APIdays London 2020: Toward certifying Financial-grade API security profile w...
RSA Conference 2016: Don't Use Two-Factor Authentication... Unless You Need It!
OpenID Foundation RISC WG Update - 2017-10-16
Introduction to the FAPI Read & Write OAuth Profile
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
OIDF Workshop at Verizon Media -- 9/30/2019 -- Continuous Access Evaluation P...
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
U2F/FIDO2 implementation of YubiKey
International Journal of Engineering and Science Invention (IJESI)
IRJET- Authentic and Anonymous Data Sharing with Enhanced Key Security
OpenID Foundation/Open Banking Workshop - OpenID Foundation Overview
Implementing a Secure and Effective PKI on Windows Server 2012 R2
OIDC4VP for AB/C WG
chaitraresume
OIDF Workshop at Verizon Media -- 9/30/2019 -- OpenID Connect Federation Update
Developing applications with Hyperledger Fabric SDK
DEVNET-1124 Cisco pxGrid: A New Architecture for Security Platform Integration
OpenID Foundation Workshop at EIC 2018 - OpenID Enhanced Authentication Profi...
Ad

Similar to Implementing PII Encryption with PDX Serialization (9)

PDF
Defending against Java Deserialization Vulnerabilities
PDF
Unsafe Deserialization Attacks In Java and A New Approach To Protect The JVM ...
PPTX
Fixing the Java Serialization Mess
PPTX
Hacking MongoDB at RelateIQ, A Salesforce Company
PDF
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
PDF
Mitigating Java Deserialization attacks from within the JVM
PPTX
Insecure Java Deserialization
PDF
Breakfast cereal for advanced beginners
PDF
Java Hurdling: Obstacles and Techniques in Java Client Penetration-Testing
Defending against Java Deserialization Vulnerabilities
Unsafe Deserialization Attacks In Java and A New Approach To Protect The JVM ...
Fixing the Java Serialization Mess
Hacking MongoDB at RelateIQ, A Salesforce Company
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Mitigating Java Deserialization attacks from within the JVM
Insecure Java Deserialization
Breakfast cereal for advanced beginners
Java Hurdling: Obstacles and Techniques in Java Client Penetration-Testing
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
PDF
What AI Means For Your Product Strategy And What To Do About It
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
PPTX
Enhancing DevEx and Simplifying Operations at Scale
PDF
Spring Update | July 2023
PPTX
Platforms, Platform Engineering, & Platform as a Product
PPTX
Building Cloud Ready Apps
PDF
Spring Boot 3 And Beyond
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
PPTX
tanzu_developer_connect.pptx
PDF
Tanzu Virtual Developer Connect Workshop - French
PDF
Tanzu Developer Connect Workshop - English
PDF
Virtual Developer Connect Workshop - English
PDF
Tanzu Developer Connect - French
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
PDF
SpringOne Tour: The Influential Software Engineer
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
Spring into AI presented by Dan Vega 5/14
What AI Means For Your Product Strategy And What To Do About It
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Enhancing DevEx and Simplifying Operations at Scale
Spring Update | July 2023
Platforms, Platform Engineering, & Platform as a Product
Building Cloud Ready Apps
Spring Boot 3 And Beyond
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
tanzu_developer_connect.pptx
Tanzu Virtual Developer Connect Workshop - French
Tanzu Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
Tanzu Developer Connect - French
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: Domain-Driven Design: Theory vs Practice

Recently uploaded (20)

PPTX
Introduction to Artificial Intelligence
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
history of c programming in notes for students .pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
System and Network Administration Chapter 2
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Transform Your Business with a Software ERP System
PPTX
Essential Infomation Tech presentation.pptx
Introduction to Artificial Intelligence
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Operating system designcfffgfgggggggvggggggggg
How to Migrate SBCGlobal Email to Yahoo Easily
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Softaken Excel to vCard Converter Software.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
2025 Textile ERP Trends: SAP, Odoo & Oracle
Upgrade and Innovation Strategies for SAP ERP Customers
Which alternative to Crystal Reports is best for small or large businesses.pdf
history of c programming in notes for students .pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
System and Network Administration Chapter 2
Design an Analysis of Algorithms I-SECS-1021-03
Transform Your Business with a Software ERP System
Essential Infomation Tech presentation.pptx

Implementing PII Encryption with PDX Serialization

  • 1. Implementing PII Encryption with PDX Serialization Gideon Low & Niranjan Sarvi Pivotal Data Engineering
  • 2. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Some Disturbing Data Security Trends . . . ● According to breachlevelindex.com, there were over 1.3 billion data records stolen or lost in 2017, up 86 million from 2016. 2/3rds due to malicious intent. ● In the last 5 years, only 4% were “Secure Breaches”, where the record data was encrypted. ● Industry analyst group Forrester reports that “51% of global network security decision makers reported at least one breach in the past 12 months” 3 ● Kaspersky Lab reports that 31% of data security breaches lead to the firing of employees(!) Anecdotal: In 2018, I have personally been asked about protecting PII data by every one of my customers and prospects.
  • 3. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ PDX-Based PII Encryption Features • PII data Encrypted on Disk, In memory, and in-transit (within TCP Network stack). • All encryption/decryption happens on the Geode client (App Server). Server- side never handles un-encrypted PII. • Retain the ability to search data based on encrypted PII fields: • Support OQL queries/indexes with equality predicates (no range queries). • Support encrypted PII as Region keys. MAYBE NOT FOR S1 insufficient time? • Minimize Performance impact • Minimize impact to existing application logic • Integrate with key management tools. 4
  • 4. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ PDX PII Serialization Fundamentals • PDX PII Serialization logic installed on Geode client-side only: Geode servers receive/handle only encrypted PII. • Serialization Logic encrypts each PII field individually, replacing the original String with a Base64-encrypted String. • A short char sequence is prepended as a marker to enable migration (first- time encryption & re-encryption due to key rotation). • Deserialization logic reads encrypted String field from the inbound PDX byte array, decrypts the PII value, and assigns the decrypted value to the POJO member field. • Enabled via Java Annotations — Designate PII fields via annotations, which drive the custom serializer behavior. 5
  • 5. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Basic Concept Distilled . . . 6 Serialize Before: public boolean toData(Object o, PdxWriter writer) { Customer instance = (Customer) o; writer.writeDate("creationDate", instance.creationDate) .writeString("name", instance.name) .writeObject("ssn", instance.ssn) .writeString("dob", instance.dob); return true; } After: public boolean toData(Object o, PdxWriter writer) { Customer instance = (Customer) o; writer.writeDate("creationDate", instance.creationDate) .writeString("name", instance.name) .writeObject("ssn", encryptorBean.encrypt(instance.ssn)) .writeString("dob", encryptorBean.encrypt(instance.dob)); return true; } Deserialize Before: public Object fromData(Class<?> clazz, PdxReader reader) { if (!clazz.equals(Customer.class)) return null; Customer c = new Customer (); c.creationDate = reader.readDate("creationDate"); c.name = reader.readString("name"); c.ssn = reader.readString("ssn"); c.dob = reader.readString("dob"); return c; } After: public Object fromData(Class<?> clazz, PdxReader reader) { if (!clazz.equals(Customer.class)) return null; Customer c = new Customer (); c.creationDate = reader.readDate("creationDate"); c.name = reader.readString("name"); c.ssn = piiEncryptionBean.decrypt(reader.readString("ssn")); c.dob = piiEncryptionBean.decrypt(reader.readString("dob")); return c; }
  • 6. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Encryption Service Details • NOTE: Encryption service does not use Geode API . . . • Encapsulates Logic into a single service class ("ICryptoService"): • Init( ) logic obtains encryption key & instantiates Cipher • Only Public methods are: • encrypt(String pii) • decrypt(String encryptedPii) • Ciphers provided via JRE Java Cryptography Extensions (JCE). • Wired-in as a Singleton Spring Bean 7
  • 7. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Putting it Together: Custom PDX AutoSerializer Brief Description of Geode’s ReflectionBasedAutoSerializer: • Enabled via PDX Configuration (cache-client.xml, API, or SDG) • Reflects on Java Class definitions to construct PDX Type metadata and runtime serialization logic. • Extensible via these methods: • boolean transformFieldValue ( Field f, Class type ) — Is the Field PII? • Object writeTransform ( Object origValue ) — Modify default serialization logic. • Object readTransform ( Object serializedValue ) — Modify default de- serialization logic. 8
  • 8. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Putting it Together: Annotated PII Fields @EnableEncryption private String ccardNumber; Add Annotation Checks public boolean transformFieldValue(Field field, Class<?> type) { // Check if encryption is enabled on the field if (field.isAnnotationPresent( EnableEncryption.class)) { return true; } else return super.transformFieldValue(field, type); }
  • 9. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Java JRE JCE Ciphers Spring Initialization Steps 1 1 Initialization/Startup Logic AutoSerializer: - Reflects on D.O. Classes - Builds PDX metadata repo incl. annotated PII Fields CryptoService: - Obtains Encryption Key(s) - Instantiates Cipher from JCE Geode Client: - Connect to Geode Server Cluster Boot
  • 10. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Runtime 1 2 Java JRE JCE Ciphers Spring Runtime Logic PIIAutoSerializer: - Reflects on D.O. Classes - Builds PDX metadata repo incl. annotated PII Fields CryptoService: - Obtains Encryption Key(s) - Instantiates Cipher from JCE Geode Client: - Connect to Geode Server Cluster Boot Geode Client API (Region, Function Service, Subscriptions) Geode PDX Serialization Geode Client Connection Pool CryptoService:: - encrypt() - decrypt() Data Ops Requests
  • 11. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Code & Demo
  • 12. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Demo’able Items 1 4 ● Data model ● Encryption implementation ● Gemfire operations ● OQL queries ● gfsh queries with encrypted data Geode PII Encryption code is at https://github.com/Pivotal-Data-Engineering/geode-pii-encryption
  • 13. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Zero downtime migration ● Our follow-up blog titled “PDX PII Encryption Migration Strategies” will be published in the next few weeks. ● Meanwhile, please see us after the session if you’d pick-up a hard-copy.
  • 14. Unless otherwise indicated, these slides are © 2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Q & A