SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Copyright © 2016 Instantiations, Inc.
24th ESUG Conference
Prague, Czech Republic
August 23, 2016
Security with VA Smalltalk
Seth Berman
Vice President of Engineering
Instantiations, Inc.
Copyright © 2016 Instantiations, Inc.
Agenda
•  Security Overview
•  Architectural Goals
•  OpenSSL 1.1 Compatibility
•  Cryptography Library
•  SSL/TLS Library
Copyright © 2016 Instantiations, Inc.
Security Overview
Understanding the Value
•  Secure communications is hard
•  Even Cryptographers get it wrong
•  Protocol Breakage: SSL, PPTP
•  Implementation Breakage: Heartbleed
•  Correct Protocol/Implementations can still be vulnerable
•  Side channel attacks
Copyright © 2016 Instantiations, Inc.
Security Overview
Understanding the Value
•  Demand for Secure Communications
•  Is only going one way…UP!
•  Our customers are receiving increasing pressure to
provide higher security applications
•  The demands extend beyond just SSL/TLS connections
Copyright © 2016 Instantiations, Inc.
Security Overview
Looking Back…
•  Before VA Smalltalk 8.6.2
•  Dated bindings to the OpenSSL SSL/TLS library
•  No Cryptographic primitives exposed
•  Minimal help with native memory management
•  Minimal Test Cases
Copyright © 2016 Instantiations, Inc.
Security Overview
Currently…
•  VA Smalltalk 8.6.2
•  Official Support for 1.0.x
•  Native Memory Management
•  Introduction of the Cryptographic Library
•  Enhanced SSL/TLS APIs
•  Test Cases (with official test vectors) for all exposed
Cryptographic Algorithms
•  Story-driven code examples describing common
Cryptographic Algorithm usage
Copyright © 2016 Instantiations, Inc.
Security Overview
Coming Soon…
•  VA Smalltalk 8.6.3
•  Added Support for OpenSSL 1.1.0
•  Continued support for OpenSSL 1.0.x
•  Many new Cryptographic algorithms available
•  Authenticated Encryption
•  Key Derivation
•  Secure Memory Module
•  Helps protect In-Memory keys on long-running servers
Copyright © 2016 Instantiations, Inc.
Architectural Goals
•  Compatibility
•  New Crypto layer will slide underneath SSL/TLS support
•  SSL/TLS API compatibility must be maintained
•  SSL/TLS and Crypto libraries must handle all OpenSSL
versions we support
•  Currently: OpenSSL 1.0.0, 1.0.1, 1.0.2
•  Next Release: Adding OpenSSL 1.1.0
•  Differences between various OpenSSL versions should
be transparent to the user (except algorithm availability)
•  Separation of Concerns
•  Performance
•  Safety
Copyright © 2016 Instantiations, Inc.
Architectural Goals
•  Compatibility
•  Separation of Concerns
•  API Objects
•  Users should only interact with these
•  Dispatching Engine
•  Performs threaded calls
•  Error Detection and Notification
•  Native Memory Management
•  Various mechanisms to make working with native memory safer
and prevent certain classes of errors.
•  Performance
•  Safety
Copyright © 2016 Instantiations, Inc.
Architectural Goals
•  Compatibility
•  Separation of Concerns
•  Performance
•  Calls to OpenSSL are made on native threads
•  Asynchronous callouts which block only the calling ST process
•  Our thread-locking implementation plugs into OpenSSL
to manage concurrency issues
•  This allows for the usage of multiple cores for higher
throughput
•  Safety
Copyright © 2016 Instantiations, Inc.
Architectural Goals
•  Compatibility
•  Separation of Concerns
•  Performance
•  Safety
•  Uses a Native Memory Manager
•  Uses a Smalltalk GC Notifier to help make sure the
object’s native memory was freed
•  Various OpenSSL APIs may answer
•  Static memory (this should never be freed)
•  Reference counted memory (OpenSSL’s memory manager)
•  Unmanaged memory that the user must free
•  The Native Memory Manager keeps track of memory
ownership and reference counts
Copyright © 2016 Instantiations, Inc.
OpenSSL 1.1
Overview
•  Major revamp of the OpenSSL codebase
•  Post-Heartbleed: It’s getting the attention it deserves
now
•  More resources applied, both internal and external
•  FIPS 140-2 Accreditation is now sponsored
•  At this time: OpenSSL 1.1.0 Beta7
•  With the good comes the bad…API breakageL
Copyright © 2016 Instantiations, Inc.
OpenSSL 1.1
Hiding the API Breakage
•  Version-adapting memory layout
•  All bindings to structures reconfigure their layout to
meet the OpenSSL version layout specification
•  OpenSSL 1.1 uses opaque structures
•  So…we configure to those too and provide the various OpenSSL
getter/setter APIs
Copyright © 2016 Instantiations, Inc.
OpenSSL 1.1
Hiding the API Breakage
•  Version fallback logic
•  General OpenSSL 1.1 APIs we added implement fallback
code for lower version levels
•  This was done by implementing the OpenSSL logic in
Smalltalk
•  We don’t do this for algorithms as this could lead to
side-channel attacks
•  Our implementation may be correct.
•  But perhaps observable cpu or caching behavior leaks information
•  Or semantics of basic primitive operations were not considered
•  i.e. trialKey = storedKey L (not constant-time equality)
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Overview
•  Secure Memory
•  Streaming API
•  Message Digests
•  Message Authentication Code (MAC)
•  Symmetric Ciphers
•  Public/Private Key
•  Key Derivation
•  Secure Random Number Generator
•  X509
•  ASN1
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Secure Memory
•  Mechanisms to secure in-memory storage
•  Intended for long running servers
•  Lots of sensitive data in memory
•  This sensitive data is long-lived
•  More aggressive thread-model
•  Our Secure Objects also override common APIs to
expose as little as possible in case it gets logged
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Secure Memory on Linux/Unix
•  Strategy
•  Attempt to prevent paging sensitive data to disk
•  Should not show up in a core-dump
•  Special heap should be page-guarded to protect against buffer
overrun/underrun
•  Uses OpenSSL 1.1 Secure Arenas
•  Implements the strategy above
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Secure Memory on Windows
•  Strategy
•  Limit the time window that sensitive data could be observed in
decrypted form
•  Assume paging to disk or being core-dumped is unavoidable
•  Should not require a special section of the heap
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Secure Memory on Windows
•  Uses In-Memory Encryption (Microsoft CryptoAPI)
•  Encryption Key is per-user and generated on boot
•  Encryption Key is stored in nonpaged kernel memory
•  By default, only the VAST Smalltalk process can decrypt
•  OpenSSL Dispatcher has been enhanced to
•  Decrypt incoming arguments intended for OpenSSL functions
•  Immediately call the OpenSSL function
•  After the call, re-encrypt the required incoming arguments
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Streaming API
•  Powerful set of High-Performance OpenSSL Streams
•  Two types
•  Source/Sink
•  Socket, File, Memory
•  Filters
•  Digest, Cipher, Base64, Buffer
•  Chain them together to create cryptographic pipelines
•  Example chain to
•  Perform buffered writes of base64-encoded encrypted data to
a file
•  Compute the sha512 hash of the plaint-text
bufferBio | sha512Bio | aes256Bio | base64Bio | fileBio
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Message Digests
•  Secure one-way hash functions
•  Algorithms
•  MD5, RIPEMD160
•  SHA1, SHA2 Family (224, 256, 384, 512)
•  Whirpool
•  Blake2 (OpenSSL 1.1)
•  Example:
OSSslDigest	sha512		
	printableDigest:	‘Hello	World’.	
	
à 958D09788F3C907B1C89A945F478D58C
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Message Authentication Code (MAC)
•  Keyed hash function
•  Provides both data integrity and authenticity
•  Algorithms
•  HMAC
•  CMAC (OpenSSL 1.1)
•  Example:
OSSslDigest	sha1		
	hmacPrintableDigest:	'Hello	Smalltalk‘	
	key:	'secretKey‘.	
	
à 4510149C9D6216D4460571E16B290312…
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Symmetric Ciphers
•  Encryption for confidentiality
•  Shared secret key
•  Block Ciphers
•  AES, Blowfish, Camellia, Cast5, DES, Triple-DES
•  Unauthenticated Modes: CBC, CFB, CTR, OFB, XTS
•  Authenticated Modes: GCM, CCM, OCB
•  Stream Ciphers
•  Unauthenticated: ChaCha20
•  Authenticated: ChaCha20-Poly1305
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Symmetric Ciphers
•  Encrypt Example
"Encrypt“	
cipher	:=	OSSslCipher	aes_256_ocb.	
cData	:=	cipher	cipherDataFor:	'Hello	Smalltalk'.	
cipherText	:=	cipher	encrypt:	cData	key:	key	iv:	iv.	
authTag	:=	cData	tagData.	
		
"Decrypt“	
cData	:=	cipher	cipherDataFor:	cipherText.	
cData	tagData:	authTag.	
plainText	:=	cipher	decrypt:	cData	key:	key	iv:	iv
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Public/Private Key
•  Algorithms using Key Pairs (public and private)
•  Use Cases
•  Key Exchange (i.e. agree on a shared key)
•  Non-Interactive Encryption
•  i.e. Encrypted Email
•  Digital Signatures
•  Algorithms
•  RSA
•  DSA
•  Diffie-Hellman
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Key Derivation
•  Derives one or more keys from an initial key
material
•  Algorithms
•  HKDF
•  PBKDF2
•  Scrypt (OpenSSL 1.1)
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Key Derivation
•  Password Hashing Example
“Derive	crypto	key	from	a	password“	
scrypt	:=	OSSslKDF	scrypt	keyLength:	16.		
pHash	:=	scrypt	derive:	‘password’.	
	
“Algorithm	Params	to	store	with	the	hash”	
pSalt	:=	scrypt	salt.	
pCost	:=	scrypt	cost.	
pBlkSz	:=	scrypt	blockSize.	
pPara	:=	scrypt	parallelization.	
pMaxMem	:=	scrypt	maxMemory.
Copyright © 2016 Instantiations, Inc.
Cryptographic Library
Key Derivation
•  Password Hashing Example
“Verify	supplied	password	with	stored	hash“	
scrypt	:=	OSSslKDF	scrypt		
	keyLength:	16	
	salt:	pSalt	
	cost:	pCost	
	parallelization:	pPara	
	blockSize:	bBlkSz	
	maxMemory:	bMaxMem.	
	
(scrypt	verify:	‘password’ with:	pHash)	
	ifTrue:	[^’Password	is	correct’].
Copyright © 2016 Instantiations, Inc.
SSL/TLS Library
•  VA Smalltalk’s existing SSL/TLS support is now
built on the new crypto library.
•  Inherits the safer memory management features
•  More options exposed for SSL/TLS connections
•  Gained TLSv1.2 support
•  More options for X509 certs
•  OpenSSL 1.1 compatible
Copyright © 2016 Instantiations, Inc.
Thank you for your attention
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Running Secure Server Software on Insecure Hardware Without Parachute
Running Secure Server Software on Insecure Hardware Without ParachuteRunning Secure Server Software on Insecure Hardware Without Parachute
Running Secure Server Software on Insecure Hardware Without ParachuteCloudflare
 
Reinventing anon email
Reinventing anon emailReinventing anon email
Reinventing anon emailantitree
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013Michael Lessard
 
Open stack + Containers + Hyper-V
Open stack + Containers + Hyper-VOpen stack + Containers + Hyper-V
Open stack + Containers + Hyper-VSriram Subramanian
 
Prowler: BlackHat Europe Arsenal 2018
Prowler: BlackHat Europe Arsenal 2018Prowler: BlackHat Europe Arsenal 2018
Prowler: BlackHat Europe Arsenal 2018Toni de la Fuente
 
Virus Bulletin 2012
Virus Bulletin 2012Virus Bulletin 2012
Virus Bulletin 2012Cloudflare
 
Laverna vs etherpad
Laverna vs etherpadLaverna vs etherpad
Laverna vs etherpadantitree
 
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...Felipe Prado
 
Do you lose sleep at night?
Do you lose sleep at night?Do you lose sleep at night?
Do you lose sleep at night?Nathan Van Gheem
 
Mirantis OpenStack 5.0 Overview
Mirantis OpenStack 5.0 OverviewMirantis OpenStack 5.0 Overview
Mirantis OpenStack 5.0 OverviewMirantis
 
Open ssl heart bleed weakness.
Open ssl heart bleed weakness.Open ssl heart bleed weakness.
Open ssl heart bleed weakness.Khaled Mosharraf
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydrationMichel Schildmeijer
 
ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...
ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...
ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...DynamicInfraDays
 
Application Security - 28 Nov 2018
Application Security - 28 Nov 2018Application Security - 28 Nov 2018
Application Security - 28 Nov 2018Cheah Eng Soon
 
Open Source Cyber Weaponry
Open Source Cyber WeaponryOpen Source Cyber Weaponry
Open Source Cyber WeaponryJoshua L. Davis
 
TTL Alfresco Product Security and Best Practices 2017
TTL Alfresco Product Security and Best Practices 2017TTL Alfresco Product Security and Best Practices 2017
TTL Alfresco Product Security and Best Practices 2017Toni de la Fuente
 
Openstack Swift Introduction
Openstack Swift IntroductionOpenstack Swift Introduction
Openstack Swift IntroductionPark YounSung
 
OWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a ServiceOWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a ServiceToni de la Fuente
 

Was ist angesagt? (20)

Running Secure Server Software on Insecure Hardware Without Parachute
Running Secure Server Software on Insecure Hardware Without ParachuteRunning Secure Server Software on Insecure Hardware Without Parachute
Running Secure Server Software on Insecure Hardware Without Parachute
 
Reinventing anon email
Reinventing anon emailReinventing anon email
Reinventing anon email
 
Nikto
NiktoNikto
Nikto
 
Openstackoverview-DEC2013
Openstackoverview-DEC2013Openstackoverview-DEC2013
Openstackoverview-DEC2013
 
Open stack + Containers + Hyper-V
Open stack + Containers + Hyper-VOpen stack + Containers + Hyper-V
Open stack + Containers + Hyper-V
 
Prowler: BlackHat Europe Arsenal 2018
Prowler: BlackHat Europe Arsenal 2018Prowler: BlackHat Europe Arsenal 2018
Prowler: BlackHat Europe Arsenal 2018
 
Virus Bulletin 2012
Virus Bulletin 2012Virus Bulletin 2012
Virus Bulletin 2012
 
Laverna vs etherpad
Laverna vs etherpadLaverna vs etherpad
Laverna vs etherpad
 
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
 
Do you lose sleep at night?
Do you lose sleep at night?Do you lose sleep at night?
Do you lose sleep at night?
 
Mirantis OpenStack 5.0 Overview
Mirantis OpenStack 5.0 OverviewMirantis OpenStack 5.0 Overview
Mirantis OpenStack 5.0 Overview
 
Open ssl heart bleed weakness.
Open ssl heart bleed weakness.Open ssl heart bleed weakness.
Open ssl heart bleed weakness.
 
Oracle SOA suite and Coherence dehydration
Oracle SOA suite and  Coherence dehydrationOracle SOA suite and  Coherence dehydration
Oracle SOA suite and Coherence dehydration
 
Web security
Web securityWeb security
Web security
 
ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...
ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...
ContainerDays NYC 2016: "The Secure Introduction Problem: Getting Secrets Int...
 
Application Security - 28 Nov 2018
Application Security - 28 Nov 2018Application Security - 28 Nov 2018
Application Security - 28 Nov 2018
 
Open Source Cyber Weaponry
Open Source Cyber WeaponryOpen Source Cyber Weaponry
Open Source Cyber Weaponry
 
TTL Alfresco Product Security and Best Practices 2017
TTL Alfresco Product Security and Best Practices 2017TTL Alfresco Product Security and Best Practices 2017
TTL Alfresco Product Security and Best Practices 2017
 
Openstack Swift Introduction
Openstack Swift IntroductionOpenstack Swift Introduction
Openstack Swift Introduction
 
OWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a ServiceOWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a Service
 

Andere mochten auch

Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)
Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)
Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)Texas A&M Transportation Institute
 
Sobre la dimension social en la industria minera
Sobre la dimension social en la industria mineraSobre la dimension social en la industria minera
Sobre la dimension social en la industria mineraAndres Recalde
 
Presentación Lmeg Xtremland
Presentación Lmeg Xtremland Presentación Lmeg Xtremland
Presentación Lmeg Xtremland LME-G
 
Business ChineseII 1.14 ppt
Business ChineseII 1.14 pptBusiness ChineseII 1.14 ppt
Business ChineseII 1.14 pptMandy Lin
 
Vance Loiselle TU Automotive Keynote
Vance Loiselle TU Automotive KeynoteVance Loiselle TU Automotive Keynote
Vance Loiselle TU Automotive KeynoteTrueMotion
 

Andere mochten auch (6)

Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)
Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)
Overivew of Data Driven Approaches to Crime and Traffic Safety (DDACTS)
 
P1
P1P1
P1
 
Sobre la dimension social en la industria minera
Sobre la dimension social en la industria mineraSobre la dimension social en la industria minera
Sobre la dimension social en la industria minera
 
Presentación Lmeg Xtremland
Presentación Lmeg Xtremland Presentación Lmeg Xtremland
Presentación Lmeg Xtremland
 
Business ChineseII 1.14 ppt
Business ChineseII 1.14 pptBusiness ChineseII 1.14 ppt
Business ChineseII 1.14 ppt
 
Vance Loiselle TU Automotive Keynote
Vance Loiselle TU Automotive KeynoteVance Loiselle TU Automotive Keynote
Vance Loiselle TU Automotive Keynote
 

Ähnlich wie Security with VA Smalltalk

1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)Gabriella Davis
 
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For ScalaScala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For ScalaLightbend
 
Open Source Private Cloud Management with OpenStack and Security Evaluation w...
Open Source Private Cloud Management with OpenStack and Security Evaluation w...Open Source Private Cloud Management with OpenStack and Security Evaluation w...
Open Source Private Cloud Management with OpenStack and Security Evaluation w...XHANI TRUNGU
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyserAlex Moskvin
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Ajin Abraham
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 
A Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsA Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsSalman Baset
 
Arcanum - Client side encryption based file storage service.
Arcanum - Client side encryption based file storage service.Arcanum - Client side encryption based file storage service.
Arcanum - Client side encryption based file storage service.Yashin Mehaboobe
 
Token vs Cookies (DevoxxMA 2015)
Token vs Cookies (DevoxxMA 2015)Token vs Cookies (DevoxxMA 2015)
Token vs Cookies (DevoxxMA 2015)Markus Schlichting
 
Encrypt your volumes with barbican open stack 2018
Encrypt your volumes with barbican open stack 2018Encrypt your volumes with barbican open stack 2018
Encrypt your volumes with barbican open stack 2018Duncan Wannamaker
 
BSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad GuysBSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad GuysJoff Thyer
 
Secure360 - Attack All the Layers! Again!
Secure360 - Attack All the Layers! Again!Secure360 - Attack All the Layers! Again!
Secure360 - Attack All the Layers! Again!Scott Sutherland
 
State of Crypto in Python (OSCON)
State of Crypto in Python (OSCON)State of Crypto in Python (OSCON)
State of Crypto in Python (OSCON)jarito030506
 
Maximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSLMaximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSLZoompf
 
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Bob Pusateri
 
BSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced FeaturesBSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced FeaturesSimon Bennetts
 
When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014Anant Shrivastava
 

Ähnlich wie Security with VA Smalltalk (20)

1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
 
OpenSSL
OpenSSLOpenSSL
OpenSSL
 
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For ScalaScala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
Scala Security: Eliminate 200+ Code-Level Threats With Fortify SCA For Scala
 
Open Source Private Cloud Management with OpenStack and Security Evaluation w...
Open Source Private Cloud Management with OpenStack and Security Evaluation w...Open Source Private Cloud Management with OpenStack and Security Evaluation w...
Open Source Private Cloud Management with OpenStack and Security Evaluation w...
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
A Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsA Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container Platforms
 
Arcanum - Client side encryption based file storage service.
Arcanum - Client side encryption based file storage service.Arcanum - Client side encryption based file storage service.
Arcanum - Client side encryption based file storage service.
 
Token vs Cookies (DevoxxMA 2015)
Token vs Cookies (DevoxxMA 2015)Token vs Cookies (DevoxxMA 2015)
Token vs Cookies (DevoxxMA 2015)
 
Encrypt your volumes with barbican open stack 2018
Encrypt your volumes with barbican open stack 2018Encrypt your volumes with barbican open stack 2018
Encrypt your volumes with barbican open stack 2018
 
BSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad GuysBSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad Guys
 
Secure360 - Attack All the Layers! Again!
Secure360 - Attack All the Layers! Again!Secure360 - Attack All the Layers! Again!
Secure360 - Attack All the Layers! Again!
 
Ip sec
Ip secIp sec
Ip sec
 
State of Crypto in Python (OSCON)
State of Crypto in Python (OSCON)State of Crypto in Python (OSCON)
State of Crypto in Python (OSCON)
 
Maximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSLMaximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSL
 
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
 
BSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced FeaturesBSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced Features
 
When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 

Kürzlich hochgeladen (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 

Security with VA Smalltalk

  • 1. Copyright © 2016 Instantiations, Inc. 24th ESUG Conference Prague, Czech Republic August 23, 2016 Security with VA Smalltalk Seth Berman Vice President of Engineering Instantiations, Inc.
  • 2. Copyright © 2016 Instantiations, Inc. Agenda •  Security Overview •  Architectural Goals •  OpenSSL 1.1 Compatibility •  Cryptography Library •  SSL/TLS Library
  • 3. Copyright © 2016 Instantiations, Inc. Security Overview Understanding the Value •  Secure communications is hard •  Even Cryptographers get it wrong •  Protocol Breakage: SSL, PPTP •  Implementation Breakage: Heartbleed •  Correct Protocol/Implementations can still be vulnerable •  Side channel attacks
  • 4. Copyright © 2016 Instantiations, Inc. Security Overview Understanding the Value •  Demand for Secure Communications •  Is only going one way…UP! •  Our customers are receiving increasing pressure to provide higher security applications •  The demands extend beyond just SSL/TLS connections
  • 5. Copyright © 2016 Instantiations, Inc. Security Overview Looking Back… •  Before VA Smalltalk 8.6.2 •  Dated bindings to the OpenSSL SSL/TLS library •  No Cryptographic primitives exposed •  Minimal help with native memory management •  Minimal Test Cases
  • 6. Copyright © 2016 Instantiations, Inc. Security Overview Currently… •  VA Smalltalk 8.6.2 •  Official Support for 1.0.x •  Native Memory Management •  Introduction of the Cryptographic Library •  Enhanced SSL/TLS APIs •  Test Cases (with official test vectors) for all exposed Cryptographic Algorithms •  Story-driven code examples describing common Cryptographic Algorithm usage
  • 7. Copyright © 2016 Instantiations, Inc. Security Overview Coming Soon… •  VA Smalltalk 8.6.3 •  Added Support for OpenSSL 1.1.0 •  Continued support for OpenSSL 1.0.x •  Many new Cryptographic algorithms available •  Authenticated Encryption •  Key Derivation •  Secure Memory Module •  Helps protect In-Memory keys on long-running servers
  • 8. Copyright © 2016 Instantiations, Inc. Architectural Goals •  Compatibility •  New Crypto layer will slide underneath SSL/TLS support •  SSL/TLS API compatibility must be maintained •  SSL/TLS and Crypto libraries must handle all OpenSSL versions we support •  Currently: OpenSSL 1.0.0, 1.0.1, 1.0.2 •  Next Release: Adding OpenSSL 1.1.0 •  Differences between various OpenSSL versions should be transparent to the user (except algorithm availability) •  Separation of Concerns •  Performance •  Safety
  • 9. Copyright © 2016 Instantiations, Inc. Architectural Goals •  Compatibility •  Separation of Concerns •  API Objects •  Users should only interact with these •  Dispatching Engine •  Performs threaded calls •  Error Detection and Notification •  Native Memory Management •  Various mechanisms to make working with native memory safer and prevent certain classes of errors. •  Performance •  Safety
  • 10. Copyright © 2016 Instantiations, Inc. Architectural Goals •  Compatibility •  Separation of Concerns •  Performance •  Calls to OpenSSL are made on native threads •  Asynchronous callouts which block only the calling ST process •  Our thread-locking implementation plugs into OpenSSL to manage concurrency issues •  This allows for the usage of multiple cores for higher throughput •  Safety
  • 11. Copyright © 2016 Instantiations, Inc. Architectural Goals •  Compatibility •  Separation of Concerns •  Performance •  Safety •  Uses a Native Memory Manager •  Uses a Smalltalk GC Notifier to help make sure the object’s native memory was freed •  Various OpenSSL APIs may answer •  Static memory (this should never be freed) •  Reference counted memory (OpenSSL’s memory manager) •  Unmanaged memory that the user must free •  The Native Memory Manager keeps track of memory ownership and reference counts
  • 12. Copyright © 2016 Instantiations, Inc. OpenSSL 1.1 Overview •  Major revamp of the OpenSSL codebase •  Post-Heartbleed: It’s getting the attention it deserves now •  More resources applied, both internal and external •  FIPS 140-2 Accreditation is now sponsored •  At this time: OpenSSL 1.1.0 Beta7 •  With the good comes the bad…API breakageL
  • 13. Copyright © 2016 Instantiations, Inc. OpenSSL 1.1 Hiding the API Breakage •  Version-adapting memory layout •  All bindings to structures reconfigure their layout to meet the OpenSSL version layout specification •  OpenSSL 1.1 uses opaque structures •  So…we configure to those too and provide the various OpenSSL getter/setter APIs
  • 14. Copyright © 2016 Instantiations, Inc. OpenSSL 1.1 Hiding the API Breakage •  Version fallback logic •  General OpenSSL 1.1 APIs we added implement fallback code for lower version levels •  This was done by implementing the OpenSSL logic in Smalltalk •  We don’t do this for algorithms as this could lead to side-channel attacks •  Our implementation may be correct. •  But perhaps observable cpu or caching behavior leaks information •  Or semantics of basic primitive operations were not considered •  i.e. trialKey = storedKey L (not constant-time equality)
  • 15. Copyright © 2016 Instantiations, Inc. Cryptographic Library Overview •  Secure Memory •  Streaming API •  Message Digests •  Message Authentication Code (MAC) •  Symmetric Ciphers •  Public/Private Key •  Key Derivation •  Secure Random Number Generator •  X509 •  ASN1
  • 16. Copyright © 2016 Instantiations, Inc. Cryptographic Library Secure Memory •  Mechanisms to secure in-memory storage •  Intended for long running servers •  Lots of sensitive data in memory •  This sensitive data is long-lived •  More aggressive thread-model •  Our Secure Objects also override common APIs to expose as little as possible in case it gets logged
  • 17. Copyright © 2016 Instantiations, Inc. Cryptographic Library Secure Memory on Linux/Unix •  Strategy •  Attempt to prevent paging sensitive data to disk •  Should not show up in a core-dump •  Special heap should be page-guarded to protect against buffer overrun/underrun •  Uses OpenSSL 1.1 Secure Arenas •  Implements the strategy above
  • 18. Copyright © 2016 Instantiations, Inc. Cryptographic Library Secure Memory on Windows •  Strategy •  Limit the time window that sensitive data could be observed in decrypted form •  Assume paging to disk or being core-dumped is unavoidable •  Should not require a special section of the heap
  • 19. Copyright © 2016 Instantiations, Inc. Cryptographic Library Secure Memory on Windows •  Uses In-Memory Encryption (Microsoft CryptoAPI) •  Encryption Key is per-user and generated on boot •  Encryption Key is stored in nonpaged kernel memory •  By default, only the VAST Smalltalk process can decrypt •  OpenSSL Dispatcher has been enhanced to •  Decrypt incoming arguments intended for OpenSSL functions •  Immediately call the OpenSSL function •  After the call, re-encrypt the required incoming arguments
  • 20. Copyright © 2016 Instantiations, Inc. Cryptographic Library Streaming API •  Powerful set of High-Performance OpenSSL Streams •  Two types •  Source/Sink •  Socket, File, Memory •  Filters •  Digest, Cipher, Base64, Buffer •  Chain them together to create cryptographic pipelines •  Example chain to •  Perform buffered writes of base64-encoded encrypted data to a file •  Compute the sha512 hash of the plaint-text bufferBio | sha512Bio | aes256Bio | base64Bio | fileBio
  • 21. Copyright © 2016 Instantiations, Inc. Cryptographic Library Message Digests •  Secure one-way hash functions •  Algorithms •  MD5, RIPEMD160 •  SHA1, SHA2 Family (224, 256, 384, 512) •  Whirpool •  Blake2 (OpenSSL 1.1) •  Example: OSSslDigest sha512 printableDigest: ‘Hello World’. à 958D09788F3C907B1C89A945F478D58C
  • 22. Copyright © 2016 Instantiations, Inc. Cryptographic Library Message Authentication Code (MAC) •  Keyed hash function •  Provides both data integrity and authenticity •  Algorithms •  HMAC •  CMAC (OpenSSL 1.1) •  Example: OSSslDigest sha1 hmacPrintableDigest: 'Hello Smalltalk‘ key: 'secretKey‘. à 4510149C9D6216D4460571E16B290312…
  • 23. Copyright © 2016 Instantiations, Inc. Cryptographic Library Symmetric Ciphers •  Encryption for confidentiality •  Shared secret key •  Block Ciphers •  AES, Blowfish, Camellia, Cast5, DES, Triple-DES •  Unauthenticated Modes: CBC, CFB, CTR, OFB, XTS •  Authenticated Modes: GCM, CCM, OCB •  Stream Ciphers •  Unauthenticated: ChaCha20 •  Authenticated: ChaCha20-Poly1305
  • 24. Copyright © 2016 Instantiations, Inc. Cryptographic Library Symmetric Ciphers •  Encrypt Example "Encrypt“ cipher := OSSslCipher aes_256_ocb. cData := cipher cipherDataFor: 'Hello Smalltalk'. cipherText := cipher encrypt: cData key: key iv: iv. authTag := cData tagData. "Decrypt“ cData := cipher cipherDataFor: cipherText. cData tagData: authTag. plainText := cipher decrypt: cData key: key iv: iv
  • 25. Copyright © 2016 Instantiations, Inc. Cryptographic Library Public/Private Key •  Algorithms using Key Pairs (public and private) •  Use Cases •  Key Exchange (i.e. agree on a shared key) •  Non-Interactive Encryption •  i.e. Encrypted Email •  Digital Signatures •  Algorithms •  RSA •  DSA •  Diffie-Hellman
  • 26. Copyright © 2016 Instantiations, Inc. Cryptographic Library Key Derivation •  Derives one or more keys from an initial key material •  Algorithms •  HKDF •  PBKDF2 •  Scrypt (OpenSSL 1.1)
  • 27. Copyright © 2016 Instantiations, Inc. Cryptographic Library Key Derivation •  Password Hashing Example “Derive crypto key from a password“ scrypt := OSSslKDF scrypt keyLength: 16. pHash := scrypt derive: ‘password’. “Algorithm Params to store with the hash” pSalt := scrypt salt. pCost := scrypt cost. pBlkSz := scrypt blockSize. pPara := scrypt parallelization. pMaxMem := scrypt maxMemory.
  • 28. Copyright © 2016 Instantiations, Inc. Cryptographic Library Key Derivation •  Password Hashing Example “Verify supplied password with stored hash“ scrypt := OSSslKDF scrypt keyLength: 16 salt: pSalt cost: pCost parallelization: pPara blockSize: bBlkSz maxMemory: bMaxMem. (scrypt verify: ‘password’ with: pHash) ifTrue: [^’Password is correct’].
  • 29. Copyright © 2016 Instantiations, Inc. SSL/TLS Library •  VA Smalltalk’s existing SSL/TLS support is now built on the new crypto library. •  Inherits the safer memory management features •  More options exposed for SSL/TLS connections •  Gained TLSv1.2 support •  More options for X509 certs •  OpenSSL 1.1 compatible
  • 30. Copyright © 2016 Instantiations, Inc. Thank you for your attention Questions?