SlideShare a Scribd company logo
Making Security Usable:
Tales of Product Engineering
…in a Security Company
@vixentael
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
database-encryption-detection-tools
Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
#data_security
#cryptography
#product_thinking
#product_design
@vixentael Product Engineer
Feel free to reach me with
security questions.
I do check my inbox :)
I. The story
@vixentael
A long time ago in a galaxy far,
far away…
@vixentael
@vixentael
@vixentael@vixentael
@vixentael
@vixentael
@vixentael
@vixentael
@vixentael
@vixentael
Encrypt
all the data!
@vixentael
@vixentael
ceo@startup.com
@vixentael
@vixentael
$encrypted= mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
‘54ca04988748501e93a3061763b0b6a’,
$data,
MCRYPT_MODE_CBC,
$iv
);
$encrypted= mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
‘54ca04988748501e93a3061763b0b6a’,
$data,
MCRYPT_MODE_CBC,
$iv
);
@vixentael
PHP. AES-CBC
$encrypted= mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
‘54ca04988748501e93a3061763b0b6a’,
$data,
MCRYPT_MODE_CBC,
$iv
);
@vixentael
PHP. AES-CBC
@vixentael
Invite
pen-testers!
@vixentael
@vixentael
Use pre-built
tools!
@vixentael
postgresql encryption options
cybertec-postgresql.com/en/postgresql-instance-level-encryption/
export PGENCRYPTIONKEY=db-enc-key
initdb -k -K pgcrypto /data/dbencrypt/
@vixentael
🙄"
@vixentael
Hire
someone?
No data security expertise?
– Find one.
@vixentael
II. The challenge
@vixentael
@vixentael
?
..but how it should work
..and will it really be
secure now?
we want one tool that
solves all problems..
@vixentael
key lifecycle
trusted code execution
environment
side channel resistance
risk echelonization
@vixentael
?
@vixentael
?
@vixentael
database encryption proxy
@vixentael
@vixentael
client app
writer proxy
database
database encryption proxy
@vixentael
client app
writer proxy server
database
keygen
zones
IDS
@vixentael
@vixentael
Hard to build
@vixentael
Pain to manage
@vixentael
Making Security Usable: Product Engineer Perspective
Making Security Usable: Product Engineer Perspective
@vixentael
accep-
tance
denial
anger
barga-
ining
depre-
ssion
Listen to customers.
It improves everything...
even security!
@vixentael
III. The adventure
@vixentael
@vixentael
security
model
key/trust
scheme
encryption
scheme
cipher
suits
@vixentael
security
model
key/trust
scheme
encryption
scheme
cipher
suits
@vixentael
– real time analytics (user actions)
– servers load
– error logs
– user testing / user research
– open tickets / issues
@vixentael
– real time analytics (user actions)
– user testing / user research
– servers load
– open tickets / issues
– error logs
@vixentael
?
@vixentael
?
Bad Usability
→
Bad Security
@vixentael
@vixentael
Data Security
Assistance Program
@vixentael
business
model /
regulations
risks
to data
threat
model / attack
vectors
data
security
scheme
@vixentael
Analyze use-cases
Analyze use-cases
@vixentael
Hard to deploy Hard to support
Easy to misuse
Hard to verify
@vixentael
@vixentael
Deployment
@vixentael
Deployment
code
Multiple channels of distribution
@vixentael
Deployment
code
Multiple channels of distribution
@vixentael
Deployment
code
built packages (.pkg)
Multiple channels of distribution
@vixentael
Deployment
Multiple channels of distribution
code
built packages (.pkg) docker images
VM imageschef configuration
docker compose
@vixentael
Deployment
@vixentael
Deployment
1. Download, build, install every component
2. Generate keys / tokens for each component
3. Put keys into right folders (PK exchange)
5. Run components using correct config
4. Configure each component (port, keys)
2. Generate keys / tokens for each component
@vixentael
Deployment
1. Download, build, install every component
3. Put keys into right folders (PK exchange)
5. Run components using correct config
4. Configure each component (port, keys)
script
@vixentael
Deployment
1. Download, build, install every component
3. Put keys into right folders (PK exchange)
5. Run components using correct config
4. Configure each component (port, keys)
2. Generate keys / tokens for each component
script
@vixentael
Deployment
1. Download, build, install every component
3. Put keys into right folders (PK exchange)
5. Run components using correct config
4. Configure each component (port, keys)defaults
2. Generate keys / tokens for each component
script
@vixentael
Deployment
1. Download, build, install every component
3. Put keys into right folders (PK exchange)
5. Run components using correct config
4. Configure each component (port, keys)
one command!
2. Generate keys / tokens for each component
@vixentael
Deployment
Pre-baked configurations
docker-compose -f <compose_file>.yml up
@vixentael
Deployment
Pre-baked configurations
mysql-ssl-server-ssl.yml
MySQL <-SSL-> AServer <-SSL-> client
@vixentael
Deployment
Pre-baked configurations
mysql-ssl-server-ssl.yml
MySQL <-SSL-> AServer <-SSL-> client
pgsql-nossl-server-ssession-connector.yml
PostgreSQL <-> AServer <-SecureSession-> AConnector <---> client
‘-> AWebconfig
@vixentael
Deployment
Pre-baked configurations
@vixentael
Deployment
Integration tests everywhere 🙄
– run on 12 OSs
– run on empty environments
– provide testing scripts for users
@vixentael
Integration
– logging formats (plaintext, json, CEF)
– infrastructure as a code (configs everywhere)
– event formats (unique event codes)
Good products do not exist in a vacuum
@vixentael
@vixentael
Secure by default
@vixentael
default strict parameters
pre-defined configuration files
make accidental changes unlikely
Secure by default
API design
API design
from pythemis.scell import SCellSeal
scell = SCellSeal(key)
encrypted_message = scell.encrypt(message, context)
message = scell.decrypt(encrypted_message, context)
github.com/cossacklabs @vixentael
easy to use
@vixentael
API design
unambiguous to use
2017.hack.lu/archive/2017/hacklu-crypto-api.pdf
&&
@vixentael
Naming
@vixentael
Naming
writer proxy server
database
db proxyclient app
@vixentael
Naming
writer proxy server
database
db proxyclient app
@vixentael
Naming
writer connector server
database
@vixentael
Naming
https://circleci.com/blog/why-did-builds-become-jobs-in-the-ui/
@vixentael
Client side
client app
writer
Nodejs
Go
Python
Ruby
PHP
@vixentael
@vixentael
Docs
no docs tons of docs👌
@vixentael
Docs
for developers
integration scenarios
security recommendations
simple explanations
benchmarks
security model
threat vectors
schemes & formulas
for security ppl
@vixentael
Playgrounds
who reads docs if you
can play with simulator?
@vixentael
Interactive simulator
check your
encryption works
Examples-examples-
examples
@vixentael
Dogfooding
@vixentael
use
update
feedbackshare
There is no absolute
security
@vixentael
develop test deploy repeat
Short feedback cycle
is a key
@vixentael
IV. Where it got us?
@vixentael
@vixentael
Secure defaults
Unambiguous APIs
Easy deployment
Shipped scripts / libs
Playgrounds
@vixentael
Secure defaults
Unambiguous APIs
Easy deployment
Shipped scripts / libs
Playgrounds
@vixentael
adopt faster
become less frustrated
make less mistakes
@vixentael
make user-facing decisions
iterate faster
plan better
become less frustrated
usable ≠ over-simplified
@vixentael
@vixentael
Home reading?
https://medium.com/@kshortridge/security-as-a-product-83a78c45ca27
Security as a Product
https://github.com/forter/security-101-for-saas-startups/blob/english/security.md
Organization security for startups
https://2017.hack.lu/archive/2017/hacklu-crypto-api.pdf
API design for cryptography
https://cr.yp.to/talks/2015.10.05/slides-djb-20151005-a4.pdf
Boring crypto, Daniel J. Bernstein
My other security slides
github.com/vixentael/
my-talks
@vixentael Product Engineer
Feel free to reach me with
security questions.
I do check my inbox :)
Image credits
www.flaticon.com 
freepik, linector, switficons, pixelperfect, smashicons, icon pond,
dinosoftlabs
Authors:
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
database-encryption-detection-tools

More Related Content

PPTX
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
PDF
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
PDF
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
PDF
ThoughtWorks Technology Radar Roadshow - Brisbane
PDF
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
PDF
EVE Microservices Platform
PDF
Neues aus dem Docker-Universum
PDF
Introduction to Infrastructure as Code & Automation / Introduction to Chef
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
ThoughtWorks Technology Radar Roadshow - Brisbane
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
EVE Microservices Platform
Neues aus dem Docker-Universum
Introduction to Infrastructure as Code & Automation / Introduction to Chef

What's hot (20)

PDF
How Nuxeo uses the open-source continuous integration server Jenkins
PDF
Securing the Pipeline
PDF
Automated Server Administration for DevSecOps
PDF
Kubernetes security
PDF
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
PDF
The Future of Security and Productivity in Our Newly Remote World
PDF
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
PPTX
DevOps & Security: Here & Now
PPTX
360° Kubernetes Security: From Source Code to K8s Configuration Security
PDF
Yale Jenkins Show and Tell
PDF
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
PPTX
Best Practices for Mission-Critical Jenkins
PPT
Continuous Integration (Jenkins/Hudson)
PPTX
Automated Testing in Continuous Change Management
PDF
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
PDF
Security Patterns for Microservice Architectures - London Java Community 2020
PDF
Building security into the pipelines
PDF
Jenkins tutorial
PPTX
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
PDF
Cloud native development without the toil
How Nuxeo uses the open-source continuous integration server Jenkins
Securing the Pipeline
Automated Server Administration for DevSecOps
Kubernetes security
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
The Future of Security and Productivity in Our Newly Remote World
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
DevOps & Security: Here & Now
360° Kubernetes Security: From Source Code to K8s Configuration Security
Yale Jenkins Show and Tell
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Best Practices for Mission-Critical Jenkins
Continuous Integration (Jenkins/Hudson)
Automated Testing in Continuous Change Management
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Security Patterns for Microservice Architectures - London Java Community 2020
Building security into the pipelines
Jenkins tutorial
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
Cloud native development without the toil
Ad

Similar to Making Security Usable: Product Engineer Perspective (20)

PPTX
Anatomy of a Build Pipeline
PPT
Agentless System Crawler - InterConnect 2016
PPT
ZCM update VAI Brainforce
PDF
Pragmatic Pipeline Security
PPTX
Tour of Azure DevOps
PPTX
Azure DevOps in Action
PPTX
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
PDF
Introducing a Security Feedback Loop to your CI Pipelines
PDF
Deploying Kubernetes without scaring off your security team - KubeCon 2017
PDF
Build your first DApp using Substrate Framework - Part I
PDF
Masterless Puppet Using AWS S3 Buckets and IAM Roles
DOCX
Michael Zaytsev-resume-Verint-2013-v3
PPTX
Continuous Delivery with a PaaS Application
PPTX
AzureDay Kyiv 2016 Release Management
PDF
Shift Right Security for EKS Webinar Slides
PDF
Mastinder singh visualcv_resume
PPTX
Getting Started with Azure Artifacts
PDF
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
PPTX
Development in Dataverse SSHOC project
 
PPTX
Managing Micro Services with Windows Container Service
Anatomy of a Build Pipeline
Agentless System Crawler - InterConnect 2016
ZCM update VAI Brainforce
Pragmatic Pipeline Security
Tour of Azure DevOps
Azure DevOps in Action
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Introducing a Security Feedback Loop to your CI Pipelines
Deploying Kubernetes without scaring off your security team - KubeCon 2017
Build your first DApp using Substrate Framework - Part I
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Michael Zaytsev-resume-Verint-2013-v3
Continuous Delivery with a PaaS Application
AzureDay Kyiv 2016 Release Management
Shift Right Security for EKS Webinar Slides
Mastinder singh visualcv_resume
Getting Started with Azure Artifacts
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
Development in Dataverse SSHOC project
 
Managing Micro Services with Windows Container Service
Ad

More from C4Media (20)

PDF
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
PDF
Next Generation Client APIs in Envoy Mobile
PDF
Software Teams and Teamwork Trends Report Q1 2020
PDF
Understand the Trade-offs Using Compilers for Java Applications
PDF
Kafka Needs No Keeper
PDF
High Performing Teams Act Like Owners
PDF
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
PDF
Service Meshes- The Ultimate Guide
PDF
Shifting Left with Cloud Native CI/CD
PDF
CI/CD for Machine Learning
PDF
Fault Tolerance at Speed
PDF
Architectures That Scale Deep - Regaining Control in Deep Systems
PDF
ML in the Browser: Interactive Experiences with Tensorflow.js
PDF
Build Your Own WebAssembly Compiler
PDF
User & Device Identity for Microservices @ Netflix Scale
PDF
Scaling Patterns for Netflix's Edge
PDF
Make Your Electron App Feel at Home Everywhere
PDF
The Talk You've Been Await-ing For
PDF
Future of Data Engineering
PDF
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Next Generation Client APIs in Envoy Mobile
Software Teams and Teamwork Trends Report Q1 2020
Understand the Trade-offs Using Compilers for Java Applications
Kafka Needs No Keeper
High Performing Teams Act Like Owners
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Service Meshes- The Ultimate Guide
Shifting Left with Cloud Native CI/CD
CI/CD for Machine Learning
Fault Tolerance at Speed
Architectures That Scale Deep - Regaining Control in Deep Systems
ML in the Browser: Interactive Experiences with Tensorflow.js
Build Your Own WebAssembly Compiler
User & Device Identity for Microservices @ Netflix Scale
Scaling Patterns for Netflix's Edge
Make Your Electron App Feel at Home Everywhere
The Talk You've Been Await-ing For
Future of Data Engineering
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More

Recently uploaded (20)

PPTX
Tartificialntelligence_presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
project resource management chapter-09.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Approach and Philosophy of On baking technology
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
A Presentation on Touch Screen Technology
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Tartificialntelligence_presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
project resource management chapter-09.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Heart disease approach using modified random forest and particle swarm optimi...
NewMind AI Weekly Chronicles - August'25-Week II
Unlocking AI with Model Context Protocol (MCP)
WOOl fibre morphology and structure.pdf for textiles
Zenith AI: Advanced Artificial Intelligence
Assigned Numbers - 2025 - Bluetooth® Document
Approach and Philosophy of On baking technology
DP Operators-handbook-extract for the Mautical Institute
Programs and apps: productivity, graphics, security and other tools
A Presentation on Touch Screen Technology
Chapter 5: Probability Theory and Statistics
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
A comparative study of natural language inference in Swahili using monolingua...
Web App vs Mobile App What Should You Build First.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Making Security Usable: Product Engineer Perspective