SlideShare uma empresa Scribd logo
1 de 40
TechCon 2020
Rob Parker
Security Focal and Software
engineer, IBM MQ Distributed
M08: Protecting your message data in IBM MQ with Encryption
Agenda
• Introduction
• Data at rest
• Data in transit
2
TechCon 2020 / © 2020 IBM Corporation
Where can you protect data?
Protecting data at rest Protecting data in transit
3
TechCon 2020 / © 2020 IBM Corporation
What data do you need to
protect?
Data controlled by regulations
• PCI
• HIPAA
4
TechCon 2020 / © 2020 IBM Corporation
Valuable messages
• Audit messages
• Important documents
Types of protection
Integrity Encryption
5
TechCon 2020 / © 2020 IBM Corporation





Encryption types
Symmetric Encryption Asymmetric Encryption
6
TechCon 2020 / © 2020 IBM Corporation
Decry
ption
Encry
ption
plain
text




ciphertext plain
text
Public
Key
Private
Key
Decry
ption
Encry
ption
plain
text




ciphertext plain
text
How encryption can provide integrity protection
7
TechCon 2020 / © 2020 IBM Corporation
Plaintext
h
h
h
h
Hash
Function h
h
h
h
"sign" the hash
(encrypts the
hash with a
private key)
Recipient
Decrypts the
signed hash with
the public key
h
h
h
h h
h
h
h
h
h
h
h
Hash
Function
Re-hashes the plaintext
to derive the hash
If hashes match:
ƒOnly sender
could have
signed
ƒPlaintext didn't
change in
transit
Sender
Protecting data at rest
8
TechCon 2020/ © 2020 IBM Corporation
Disk Encryption
• Encrypt the whole disk
• Software can offer and
manage this.
• Data set encryption on Z
• Easy to understand
• Only protects from disk theft
• System intrusions can still see
the data.
• Must be invisible to MQ
• Performance impact from
encrypt/decrypt on every disk
read/write
9
TechCon 2020 / © 2020 IBM Corporation
Data Set Encryption
Support for Z Data Set encryption has been extended.
Previously only the following MQ data sets could be
protected:
• BSDS
• CSQINP
• Archive Logs
Now, allows the encryption of data contained in active
logs and page sets.
10
TechCon 2020 / © 2020 IBM Corporation
Page Sets
Active
Logs
QM Disk Read/Write
Encryption
Policy
Data Set
Encryption
9.1.4
Protecting message data
• Encrypts just the message
data
• Use libraries, third-party
products.
• Only encrypted/decrypted at
creation/consumption.
• Can be protected for it’s
lifetime.
• Protected from system
intrusions.
• Requires an exchange of keys
• Applications must be changed to
support this.
• Application systems must have
capacity for cryptographic
operations.
• Who maintains this?
11
TechCon 2020 / © 2020 IBM Corporation





IBM MQ Advanced Message
Security
IBM MQ’s solution for Protecting
message data.
• Same benefits as before
• IBM MQ Support
• Can offload cryptographic support
• No application changes required
• Requires exchange of certificates
• Requires Advanced License
• Requires infrastructure configuration
• Policy Objects
12
TechCon 2020 / © 2020 IBM Corporation
IBM MQAMS
Configuring AMS
13
TechCon 2020 / © 2020 IBM Corporation
• AMS is configured using Policies
• Detail what protection to provide/is provided on messages in a queue.
• Set on a per-queue basis
SET POLICY(Q.LOCAL)
ENCALG(AES256)
RECIP(‘CN=ClientB’)
SIGNALG(SHA512)
SIGNER(‘CN=ClientA’)
ACTION(ADD)
App App
End to End protection
14
TechCon 2020 / © 2020 IBM Corporation
• By default, End to End protection is used.
• Messages are protected before they leave the application until after they are retrieved
• Does require Client application machines to perform cryptographic operations
encrypted
Application to application
App App
Moving the load
15
TechCon 2020 / © 2020 IBM Corporation
• With AMS you can move this to the queue manager if needed.
• However, during the first network communication the message won’t be protected.
encrypted
Queue manager entry
App App
Organizational differences
16
TechCon 2020 / © 2020 IBM Corporation
• On z/OS 9.1.3 queue Managers you can set AMS interception between channels.
• Useful for organizational boundaries
encrypted
Organizational Boundary
App App
ASPOLICY
REMOVE
New sender and receiver channel property,
SPLPROT controls the use of AMS policies for
inbound and outbound messages
9.1.3
Implementing in applications
17
TechCon 2020 / © 2020 IBM Corporation
• To enable a configuration file and environment variable is used.
• No programmatical changes required in application! – Invisible to application.
Sending/Receiving
App
cms.keystore=/…/Keystore
cms.certificate=MyCertificate
MQS_KEYSTORE_CONF=/…/Keystore.conf
(Or create Keystore.conf in home directory)
No Changes Necessary!
Keystore.conf
Keystore
MyCertificate
Uses TLS certificates
TechCon 2020 / © 2020 IBM Corporation
• To provide AMS protection we use TLS Certificates:
Message Data
Message Properties
Keystore
MyCertificate & Key
UserA Trusted Cert
UserB Trusted Cert
AMS Encrypted Message
• Generate symmetric key
• Encrypt message data
• Add PDMQ Header
Uses TLS certificates
TechCon 2020 / © 2020 IBM Corporation
• To provide AMS protection we use TLS Certificates:
Message Data
PDMQ Header
Message Properties
Data encrypted with key
Keystore
MyCertificate & Key
UserA Trusted Cert
UserB Trusted Cert
AMS Encrypted Message
• Encrypt key with each recipient certificate
• Add to message in PKCS#7 envelope
Uses TLS certificates
TechCon 2020 / © 2020 IBM Corporation
• To provide AMS protection we use TLS Certificates:
Message Data
PDMQ Header
PKCS #7 Envelope
Message Properties
Key encrypted with certificate 1
Data encrypted with key
Key encrypted with certificate 2
…
Keystore
MyCertificate & Key
UserA Trusted Cert
UserB Trusted Cert
AMS Encrypted Message
Reusing keys
TechCon 2020 / © 2020 IBM Corporation
• Normally every message must have a new symmetric key generated. Encrypted then later decrypted.
App App
1. Gen symmetric key
2. Encrypt message data
3. Encrypt symmetric key
with cert(s)
x 6
1. Decrypt symmetric key
2. Decrypt message data
x 6
SET POLICY(Q.LOCAL)
ENCALG(AES256)
RECIP(‘CN=ClientB’)
ACTION(ADD)
Reusing keys
TechCon 2020 / © 2020 IBM Corporation
• However key reuse can be used to improve performance
KEYREUSE(5)
App App
1. Gen symmetric key
2. Encrypt message data
3. Encrypt symmetric key
with cert(s)
1. Decrypt symmetric key
2. Decrypt message data
Message 1
SET POLICY(Q.LOCAL)
ENCALG(AES256)
RECIP(‘CN=ClientB’)
KEYREUSE(5)
ACTION(ADD)
Reusing keys
TechCon 2020 / © 2020 IBM Corporation
• However key reuse can be used to improve performance
KEYREUSE(5)
App App
1. Encrypt message data
with same symmetric key
1. Decrypt message data
with same symmetric key
Message 2-5
SET POLICY(Q.LOCAL)
ENCALG(AES256)
RECIP(‘CN=ClientB’)
KEYREUSE(5)
ACTION(ADD)
Reusing keys
TechCon 2020 / © 2020 IBM Corporation
• However key reuse can be used to improve performance
App App
1. Gen symmetric key
2. Encrypt message data
3. Encrypt symmetric key
with cert(s)
1. Decrypt symmetric key
2. Decrypt message data
Message 6
SET POLICY(Q.LOCAL)
ENCALG(AES256)
RECIP(‘CN=ClientB’)
KEYREUSE(5)
ACTION(ADD)
25
TechCon 2020 / © 2020 IBM Corporation
Protecting data in transit
Protected message data
• If the message data is
encrypted for it’s lifetime
then it is encrypted in transit.
• Cannot authenticate where the
message is going
• Cannot detect if a message was
tampered between nodes.
• Only protects the message data
• Not headers, properties, etc.
26
TechCon 2020 / © 2020 IBM Corporation





TLS between queue managers
• TLS provides both Encryption & Integrity protection
between endpoints
• Can be used as an authentication mechanism
• Natively supported in MQ.
• Requires exchange of certificates
• Certificates expire and must be replaced. Can
cause downtime.
27
TechCon 2020 / © 2020 IBM Corporation
TLS
TLS in MQ
28
TechCon 2020 / © 2020 IBM Corporation
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(SDR)
SSLCIPH(ECDHE_RSA_A
ES_256_CBC_SHA384)
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(RCVR)
SSLCIPH(ECDHE_RSA_A
ES_256_CBC_SHA384)
SSLCAUTH(OPTIONAL)
keystore
• TLS 1.2 & TLS 1.3 support
• Enabled on Channel objects
keystore
Multiple CipherSpecs
29
TechCon 2020 / © 2020 IBM Corporation
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(SDR)
SSLCIPH(ECDHE_RSA_A
ES_256_CBC_SHA384)
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(RCVR)
SSLCIPH(ANY_TLS12_O
R_HIGHER)
SSLCAUTH(OPTIONAL)
keystore
• Set an ANY_* CipherSpec on server
• Fine granular control on Client side
keystore
Multiple CipherSpecs
30
TechCon 2020 / © 2020 IBM Corporation
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(SDR)
SSLCIPH(TLS_AES_256_
GCM_SHA384)
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(RCVR)
SSLCIPH(ANY_TLS12_O
R_HIGHER)
SSLCAUTH(OPTIONAL)
keystore
• If Client moves to use TLS 1.3 then automatically supported with no change on server
keystore
Multiple CipherSpecs
31
TechCon 2020 / © 2020 IBM Corporation
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(SDR)
SSLCIPH(ANY_TLS12_O
R_HIGHER)
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(RCVR)
SSLCIPH(ANY_TLS12_O
R_HIGHER)
SSLCAUTH(OPTIONAL)
keystore
• OR Just set the client to matching Alias CipherSpec and let us work it out
keystore
TLS as Authentication
32
TechCon 2020 / © 2020 IBM Corporation
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(SDR)
SSLCIPH(ECDHE_RSA_A
ES_256_CBC_SHA384)
SSLPEER(‘CN=Server’)
DEFINE
CHANNEL(TO.QM2)
CHLTYPE(RCVR)
SSLCIPH(ECDHE_RSA_AE
S_256_CBC_SHA384)
SSLCAUTH(REQUIRED)
SSLPEER(‘CN=Client’)
keystore
• TLS can be configured to authenticate both the client and the server.
• Clients must connect with their own certificate that the server already trusts.
• Can filter to make sure the distinguished name of the certificate matches an expected value.
keystore
HSM Support
33
TechCon 2020 / © 2020 IBM Corporation
ALTER QMGR
SSLCRYP(‘<token>’)
• Support for PKCS#11 devices for storing private keys/certificates
ALTER QMGR
SSLCRYP(‘<token>’)
MQIPT/Secure Gateway
34
TechCon 2020 / © 2020 IBM Corporation
TLS
MQIPT
/Secure
gateway
MQIPT
/Secure
gateway
Internet Secured Network
Secured Network
keystore keystore
• If you have a secured network you can selectively encrypt where you need
• Invisible to MQ
MQIPT HTTPS
35
TechCon 2020 / © 2020 IBM Corporation
HTTPS
MQIPT MQIPT
Internet Secured Network
Secured Network
keystore keystore
• MQIPT supports converting MQ communications to HTTPS and back
• Allows you to tighten firewall security for your network
MQIPT PKCS#11 Support
36
TechCon 2020 / © 2020 IBM Corporation
HTTPS
MQIPT MQIPT
Internet Secured Network
Secured Network
• MQIPT also supports PKCS#11 devices for storing private keys/certificates
• IBM MQ Advanced license required.
37
TechCon 2020 / © 2020 IBM Corporation
Conclusion
In conclusion
• We looked at a number of options for protecting
message data
• At rest
• In transit
• We looked at advantages and disadvantages of
solutions.
38
TechCon 2020 / © 2020 IBM Corporation
TLS
S
Disk
Encryption
Message Data
Encryption
Protected on the
network
Protected on disk
Protected in
memory
Protected end to
end
Transparent to
application
* Yes if you use AMS, no otherwise
*
Thank you
Rob Parker
Security Focal and Software engineer, IBM MQ Distributed
—
parrobe@uk.ibm.com
© Copyright IBM Corporation 2019. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind,
express or implied. Any statement of direction represents IBM’s current intent, is subject to change or withdrawal, and represent only goals and objectives. IBM, the IBM logo, and ibm.com are trademarks
of IBM Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available at Copyright and
trademark information.
39
TechCon 2020 / © 2020 IBM Corporation
TechCon 2020 / © 2020 IBM Corporation 40

Mais conteúdo relacionado

Mais procurados

오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
Opennaru, inc.
 

Mais procurados (20)

Secure Your Messages with IBM MQ Advanced Message Security
Secure Your Messages with IBM MQ Advanced Message SecuritySecure Your Messages with IBM MQ Advanced Message Security
Secure Your Messages with IBM MQ Advanced Message Security
 
How to use IAM roles grant access to AWS
How to use IAM roles grant access to AWSHow to use IAM roles grant access to AWS
How to use IAM roles grant access to AWS
 
Deep Dive - Amazon Virtual Private Cloud (VPC)
Deep Dive - Amazon Virtual Private Cloud (VPC)Deep Dive - Amazon Virtual Private Cloud (VPC)
Deep Dive - Amazon Virtual Private Cloud (VPC)
 
Aws VPC
Aws VPCAws VPC
Aws VPC
 
AWS API Gateway
AWS API GatewayAWS API Gateway
AWS API Gateway
 
Network Security and Access Control within AWS
Network Security and Access Control within AWS Network Security and Access Control within AWS
Network Security and Access Control within AWS
 
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
 
Exploiting IAM in the google cloud platform - dani_goland_mohsan_farid
Exploiting IAM in the google cloud platform - dani_goland_mohsan_faridExploiting IAM in the google cloud platform - dani_goland_mohsan_farid
Exploiting IAM in the google cloud platform - dani_goland_mohsan_farid
 
Keycloak Single Sign-On
Keycloak Single Sign-OnKeycloak Single Sign-On
Keycloak Single Sign-On
 
Why HATEOAS
Why HATEOASWhy HATEOAS
Why HATEOAS
 
AWS Summit Seoul 2015 -CloudFront와 Route53 기반 콘텐츠 배포 전략 (GS네오텍-박정수)
AWS Summit Seoul 2015 -CloudFront와 Route53 기반 콘텐츠 배포 전략 (GS네오텍-박정수)AWS Summit Seoul 2015 -CloudFront와 Route53 기반 콘텐츠 배포 전략 (GS네오텍-박정수)
AWS Summit Seoul 2015 -CloudFront와 Route53 기반 콘텐츠 배포 전략 (GS네오텍-박정수)
 
Introduction to Serverless
Introduction to ServerlessIntroduction to Serverless
Introduction to Serverless
 
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
Build an AppStream 2.0 Environment to Deliver Desktop Applications to Any Com...
 
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best Practices
 
Advanced Security Best Practices Masterclass
Advanced Security Best Practices MasterclassAdvanced Security Best Practices Masterclass
Advanced Security Best Practices Masterclass
 
B2B Integration in the Cloud
B2B Integration in the CloudB2B Integration in the Cloud
B2B Integration in the Cloud
 
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
 
IBM MQ cloud architecture blueprint
IBM MQ cloud architecture blueprintIBM MQ cloud architecture blueprint
IBM MQ cloud architecture blueprint
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS Security
 

Semelhante a M08 protecting your message data in IBM MQ with encryption

Using DDS to Secure the Industrial Internet of Things (IIoT)
Using DDS to Secure the Industrial Internet of Things (IIoT)Using DDS to Secure the Industrial Internet of Things (IIoT)
Using DDS to Secure the Industrial Internet of Things (IIoT)
Gerardo Pardo-Castellote
 

Semelhante a M08 protecting your message data in IBM MQ with encryption (20)

cisco-nti-Day20
cisco-nti-Day20cisco-nti-Day20
cisco-nti-Day20
 
Z111806 strengthen-security-sydney-v1910a
Z111806 strengthen-security-sydney-v1910aZ111806 strengthen-security-sydney-v1910a
Z111806 strengthen-security-sydney-v1910a
 
IBM MQ security deep dive including AMS MQTC 2017
IBM MQ security deep dive including AMS MQTC 2017IBM MQ security deep dive including AMS MQTC 2017
IBM MQ security deep dive including AMS MQTC 2017
 
MQTC 2016: IBM MQ Security deep dive including AMS
MQTC 2016: IBM MQ Security deep dive including AMSMQTC 2016: IBM MQ Security deep dive including AMS
MQTC 2016: IBM MQ Security deep dive including AMS
 
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
Strengthen your security posture! Getting started with IBM Z Pervasive Encryp...
 
Z110932 strengthen-security-jburg-v1909c
Z110932 strengthen-security-jburg-v1909cZ110932 strengthen-security-jburg-v1909c
Z110932 strengthen-security-jburg-v1909c
 
Making networks secure with multi-layer encryption
Making networks secure with multi-layer encryptionMaking networks secure with multi-layer encryption
Making networks secure with multi-layer encryption
 
DEF CON 27 - CAMPBELL / MURRAY - gsm we can hear everyone now
DEF CON 27 - CAMPBELL / MURRAY - gsm we can hear everyone nowDEF CON 27 - CAMPBELL / MURRAY - gsm we can hear everyone now
DEF CON 27 - CAMPBELL / MURRAY - gsm we can hear everyone now
 
DDS Secure Intro
DDS Secure IntroDDS Secure Intro
DDS Secure Intro
 
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQMachine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
Machine to Machine Communication with Microsoft Azure IoT Edge & HiveMQ
 
Understanding Wireguard, TLS and Workload Identity
Understanding Wireguard, TLS and Workload IdentityUnderstanding Wireguard, TLS and Workload Identity
Understanding Wireguard, TLS and Workload Identity
 
Container security within Cisco Container Platform
Container security within Cisco Container PlatformContainer security within Cisco Container Platform
Container security within Cisco Container Platform
 
Confidential Computing overview
Confidential Computing overviewConfidential Computing overview
Confidential Computing overview
 
Mqtt – a protocol for the internet of things
Mqtt – a protocol for the internet of thingsMqtt – a protocol for the internet of things
Mqtt – a protocol for the internet of things
 
Secure socket later
Secure socket laterSecure socket later
Secure socket later
 
Secure Messages with IBM WebSphere MQ Advanced Message Security
Secure Messages with IBM WebSphere MQ Advanced Message SecuritySecure Messages with IBM WebSphere MQ Advanced Message Security
Secure Messages with IBM WebSphere MQ Advanced Message Security
 
Advancing IoT Communication Security with TLS and DTLS v1.3
Advancing IoT Communication Security with TLS and DTLS v1.3Advancing IoT Communication Security with TLS and DTLS v1.3
Advancing IoT Communication Security with TLS and DTLS v1.3
 
Alfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transitAlfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transit
 
Introducing ConnectGuard™ Cloud
Introducing ConnectGuard™ Cloud Introducing ConnectGuard™ Cloud
Introducing ConnectGuard™ Cloud
 
Using DDS to Secure the Industrial Internet of Things (IIoT)
Using DDS to Secure the Industrial Internet of Things (IIoT)Using DDS to Secure the Industrial Internet of Things (IIoT)
Using DDS to Secure the Industrial Internet of Things (IIoT)
 

Mais de Robert Parker

Mais de Robert Parker (20)

Simplifying IBM MQ Security in your MQ estate
Simplifying IBM MQ Security in your MQ estateSimplifying IBM MQ Security in your MQ estate
Simplifying IBM MQ Security in your MQ estate
 
IBM MQ Token Authentication.pdf
IBM MQ Token Authentication.pdfIBM MQ Token Authentication.pdf
IBM MQ Token Authentication.pdf
 
IBM MQ Whats new - up to 9.3.4.pdf
IBM MQ Whats new - up to 9.3.4.pdfIBM MQ Whats new - up to 9.3.4.pdf
IBM MQ Whats new - up to 9.3.4.pdf
 
IBM MQ Whats new - including 9.3 and 9.3.1
IBM MQ Whats new - including 9.3 and 9.3.1IBM MQ Whats new - including 9.3 and 9.3.1
IBM MQ Whats new - including 9.3 and 9.3.1
 
Controlling access to your IBM MQ System
Controlling access to your IBM MQ SystemControlling access to your IBM MQ System
Controlling access to your IBM MQ System
 
531: Controlling access to your IBM MQ system
531: Controlling access to your IBM MQ system531: Controlling access to your IBM MQ system
531: Controlling access to your IBM MQ system
 
MQ Guide France - IBM MQ and Containers
MQ Guide France - IBM MQ and ContainersMQ Guide France - IBM MQ and Containers
MQ Guide France - IBM MQ and Containers
 
MQ Guide France - What's new in ibm mq 9.1.4
MQ Guide France - What's new in ibm mq 9.1.4MQ Guide France - What's new in ibm mq 9.1.4
MQ Guide France - What's new in ibm mq 9.1.4
 
M14: MQ security deep dive ITC 2019
M14: MQ security deep dive ITC 2019M14: MQ security deep dive ITC 2019
M14: MQ security deep dive ITC 2019
 
M10: How to implement mq in a containerized architecture ITC 2019
M10: How to implement mq in a containerized architecture ITC 2019M10: How to implement mq in a containerized architecture ITC 2019
M10: How to implement mq in a containerized architecture ITC 2019
 
M11 - Securing your MQ environment. Integration technical conference 2019
M11 - Securing your MQ environment. Integration technical conference 2019M11 - Securing your MQ environment. Integration technical conference 2019
M11 - Securing your MQ environment. Integration technical conference 2019
 
Running IBM MQ in the Cloud
Running IBM MQ in the CloudRunning IBM MQ in the Cloud
Running IBM MQ in the Cloud
 
Running IBM MQ in Containers
Running IBM MQ in ContainersRunning IBM MQ in Containers
Running IBM MQ in Containers
 
Securing your IBM MQ environment.
Securing your IBM MQ environment.Securing your IBM MQ environment.
Securing your IBM MQ environment.
 
IBM MQ on cloud and containers
IBM MQ on cloud and containersIBM MQ on cloud and containers
IBM MQ on cloud and containers
 
What's new in IBM MQ
What's new in IBM MQWhat's new in IBM MQ
What's new in IBM MQ
 
IBM MQ in Containers - Think 2018
IBM MQ in Containers - Think 2018IBM MQ in Containers - Think 2018
IBM MQ in Containers - Think 2018
 
IBM MQ Security Overview MQTC 2017
IBM MQ Security Overview MQTC 2017IBM MQ Security Overview MQTC 2017
IBM MQ Security Overview MQTC 2017
 
IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017
 
Planning for MQ in the cloud MQTC 2017
Planning for MQ in the cloud MQTC 2017Planning for MQ in the cloud MQTC 2017
Planning for MQ in the cloud MQTC 2017
 

Último

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Último (20)

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 

M08 protecting your message data in IBM MQ with encryption

  • 1. TechCon 2020 Rob Parker Security Focal and Software engineer, IBM MQ Distributed M08: Protecting your message data in IBM MQ with Encryption
  • 2. Agenda • Introduction • Data at rest • Data in transit 2 TechCon 2020 / © 2020 IBM Corporation
  • 3. Where can you protect data? Protecting data at rest Protecting data in transit 3 TechCon 2020 / © 2020 IBM Corporation
  • 4. What data do you need to protect? Data controlled by regulations • PCI • HIPAA 4 TechCon 2020 / © 2020 IBM Corporation Valuable messages • Audit messages • Important documents
  • 5. Types of protection Integrity Encryption 5 TechCon 2020 / © 2020 IBM Corporation     
  • 6. Encryption types Symmetric Encryption Asymmetric Encryption 6 TechCon 2020 / © 2020 IBM Corporation Decry ption Encry ption plain text     ciphertext plain text Public Key Private Key Decry ption Encry ption plain text     ciphertext plain text
  • 7. How encryption can provide integrity protection 7 TechCon 2020 / © 2020 IBM Corporation Plaintext h h h h Hash Function h h h h "sign" the hash (encrypts the hash with a private key) Recipient Decrypts the signed hash with the public key h h h h h h h h h h h h Hash Function Re-hashes the plaintext to derive the hash If hashes match: ƒOnly sender could have signed ƒPlaintext didn't change in transit Sender
  • 8. Protecting data at rest 8 TechCon 2020/ © 2020 IBM Corporation
  • 9. Disk Encryption • Encrypt the whole disk • Software can offer and manage this. • Data set encryption on Z • Easy to understand • Only protects from disk theft • System intrusions can still see the data. • Must be invisible to MQ • Performance impact from encrypt/decrypt on every disk read/write 9 TechCon 2020 / © 2020 IBM Corporation
  • 10. Data Set Encryption Support for Z Data Set encryption has been extended. Previously only the following MQ data sets could be protected: • BSDS • CSQINP • Archive Logs Now, allows the encryption of data contained in active logs and page sets. 10 TechCon 2020 / © 2020 IBM Corporation Page Sets Active Logs QM Disk Read/Write Encryption Policy Data Set Encryption 9.1.4
  • 11. Protecting message data • Encrypts just the message data • Use libraries, third-party products. • Only encrypted/decrypted at creation/consumption. • Can be protected for it’s lifetime. • Protected from system intrusions. • Requires an exchange of keys • Applications must be changed to support this. • Application systems must have capacity for cryptographic operations. • Who maintains this? 11 TechCon 2020 / © 2020 IBM Corporation     
  • 12. IBM MQ Advanced Message Security IBM MQ’s solution for Protecting message data. • Same benefits as before • IBM MQ Support • Can offload cryptographic support • No application changes required • Requires exchange of certificates • Requires Advanced License • Requires infrastructure configuration • Policy Objects 12 TechCon 2020 / © 2020 IBM Corporation IBM MQAMS
  • 13. Configuring AMS 13 TechCon 2020 / © 2020 IBM Corporation • AMS is configured using Policies • Detail what protection to provide/is provided on messages in a queue. • Set on a per-queue basis SET POLICY(Q.LOCAL) ENCALG(AES256) RECIP(‘CN=ClientB’) SIGNALG(SHA512) SIGNER(‘CN=ClientA’) ACTION(ADD) App App
  • 14. End to End protection 14 TechCon 2020 / © 2020 IBM Corporation • By default, End to End protection is used. • Messages are protected before they leave the application until after they are retrieved • Does require Client application machines to perform cryptographic operations encrypted Application to application App App
  • 15. Moving the load 15 TechCon 2020 / © 2020 IBM Corporation • With AMS you can move this to the queue manager if needed. • However, during the first network communication the message won’t be protected. encrypted Queue manager entry App App
  • 16. Organizational differences 16 TechCon 2020 / © 2020 IBM Corporation • On z/OS 9.1.3 queue Managers you can set AMS interception between channels. • Useful for organizational boundaries encrypted Organizational Boundary App App ASPOLICY REMOVE New sender and receiver channel property, SPLPROT controls the use of AMS policies for inbound and outbound messages 9.1.3
  • 17. Implementing in applications 17 TechCon 2020 / © 2020 IBM Corporation • To enable a configuration file and environment variable is used. • No programmatical changes required in application! – Invisible to application. Sending/Receiving App cms.keystore=/…/Keystore cms.certificate=MyCertificate MQS_KEYSTORE_CONF=/…/Keystore.conf (Or create Keystore.conf in home directory) No Changes Necessary! Keystore.conf Keystore MyCertificate
  • 18. Uses TLS certificates TechCon 2020 / © 2020 IBM Corporation • To provide AMS protection we use TLS Certificates: Message Data Message Properties Keystore MyCertificate & Key UserA Trusted Cert UserB Trusted Cert AMS Encrypted Message • Generate symmetric key • Encrypt message data • Add PDMQ Header
  • 19. Uses TLS certificates TechCon 2020 / © 2020 IBM Corporation • To provide AMS protection we use TLS Certificates: Message Data PDMQ Header Message Properties Data encrypted with key Keystore MyCertificate & Key UserA Trusted Cert UserB Trusted Cert AMS Encrypted Message • Encrypt key with each recipient certificate • Add to message in PKCS#7 envelope
  • 20. Uses TLS certificates TechCon 2020 / © 2020 IBM Corporation • To provide AMS protection we use TLS Certificates: Message Data PDMQ Header PKCS #7 Envelope Message Properties Key encrypted with certificate 1 Data encrypted with key Key encrypted with certificate 2 … Keystore MyCertificate & Key UserA Trusted Cert UserB Trusted Cert AMS Encrypted Message
  • 21. Reusing keys TechCon 2020 / © 2020 IBM Corporation • Normally every message must have a new symmetric key generated. Encrypted then later decrypted. App App 1. Gen symmetric key 2. Encrypt message data 3. Encrypt symmetric key with cert(s) x 6 1. Decrypt symmetric key 2. Decrypt message data x 6 SET POLICY(Q.LOCAL) ENCALG(AES256) RECIP(‘CN=ClientB’) ACTION(ADD)
  • 22. Reusing keys TechCon 2020 / © 2020 IBM Corporation • However key reuse can be used to improve performance KEYREUSE(5) App App 1. Gen symmetric key 2. Encrypt message data 3. Encrypt symmetric key with cert(s) 1. Decrypt symmetric key 2. Decrypt message data Message 1 SET POLICY(Q.LOCAL) ENCALG(AES256) RECIP(‘CN=ClientB’) KEYREUSE(5) ACTION(ADD)
  • 23. Reusing keys TechCon 2020 / © 2020 IBM Corporation • However key reuse can be used to improve performance KEYREUSE(5) App App 1. Encrypt message data with same symmetric key 1. Decrypt message data with same symmetric key Message 2-5 SET POLICY(Q.LOCAL) ENCALG(AES256) RECIP(‘CN=ClientB’) KEYREUSE(5) ACTION(ADD)
  • 24. Reusing keys TechCon 2020 / © 2020 IBM Corporation • However key reuse can be used to improve performance App App 1. Gen symmetric key 2. Encrypt message data 3. Encrypt symmetric key with cert(s) 1. Decrypt symmetric key 2. Decrypt message data Message 6 SET POLICY(Q.LOCAL) ENCALG(AES256) RECIP(‘CN=ClientB’) KEYREUSE(5) ACTION(ADD)
  • 25. 25 TechCon 2020 / © 2020 IBM Corporation Protecting data in transit
  • 26. Protected message data • If the message data is encrypted for it’s lifetime then it is encrypted in transit. • Cannot authenticate where the message is going • Cannot detect if a message was tampered between nodes. • Only protects the message data • Not headers, properties, etc. 26 TechCon 2020 / © 2020 IBM Corporation     
  • 27. TLS between queue managers • TLS provides both Encryption & Integrity protection between endpoints • Can be used as an authentication mechanism • Natively supported in MQ. • Requires exchange of certificates • Certificates expire and must be replaced. Can cause downtime. 27 TechCon 2020 / © 2020 IBM Corporation TLS
  • 28. TLS in MQ 28 TechCon 2020 / © 2020 IBM Corporation DEFINE CHANNEL(TO.QM2) CHLTYPE(SDR) SSLCIPH(ECDHE_RSA_A ES_256_CBC_SHA384) DEFINE CHANNEL(TO.QM2) CHLTYPE(RCVR) SSLCIPH(ECDHE_RSA_A ES_256_CBC_SHA384) SSLCAUTH(OPTIONAL) keystore • TLS 1.2 & TLS 1.3 support • Enabled on Channel objects keystore
  • 29. Multiple CipherSpecs 29 TechCon 2020 / © 2020 IBM Corporation DEFINE CHANNEL(TO.QM2) CHLTYPE(SDR) SSLCIPH(ECDHE_RSA_A ES_256_CBC_SHA384) DEFINE CHANNEL(TO.QM2) CHLTYPE(RCVR) SSLCIPH(ANY_TLS12_O R_HIGHER) SSLCAUTH(OPTIONAL) keystore • Set an ANY_* CipherSpec on server • Fine granular control on Client side keystore
  • 30. Multiple CipherSpecs 30 TechCon 2020 / © 2020 IBM Corporation DEFINE CHANNEL(TO.QM2) CHLTYPE(SDR) SSLCIPH(TLS_AES_256_ GCM_SHA384) DEFINE CHANNEL(TO.QM2) CHLTYPE(RCVR) SSLCIPH(ANY_TLS12_O R_HIGHER) SSLCAUTH(OPTIONAL) keystore • If Client moves to use TLS 1.3 then automatically supported with no change on server keystore
  • 31. Multiple CipherSpecs 31 TechCon 2020 / © 2020 IBM Corporation DEFINE CHANNEL(TO.QM2) CHLTYPE(SDR) SSLCIPH(ANY_TLS12_O R_HIGHER) DEFINE CHANNEL(TO.QM2) CHLTYPE(RCVR) SSLCIPH(ANY_TLS12_O R_HIGHER) SSLCAUTH(OPTIONAL) keystore • OR Just set the client to matching Alias CipherSpec and let us work it out keystore
  • 32. TLS as Authentication 32 TechCon 2020 / © 2020 IBM Corporation DEFINE CHANNEL(TO.QM2) CHLTYPE(SDR) SSLCIPH(ECDHE_RSA_A ES_256_CBC_SHA384) SSLPEER(‘CN=Server’) DEFINE CHANNEL(TO.QM2) CHLTYPE(RCVR) SSLCIPH(ECDHE_RSA_AE S_256_CBC_SHA384) SSLCAUTH(REQUIRED) SSLPEER(‘CN=Client’) keystore • TLS can be configured to authenticate both the client and the server. • Clients must connect with their own certificate that the server already trusts. • Can filter to make sure the distinguished name of the certificate matches an expected value. keystore
  • 33. HSM Support 33 TechCon 2020 / © 2020 IBM Corporation ALTER QMGR SSLCRYP(‘<token>’) • Support for PKCS#11 devices for storing private keys/certificates ALTER QMGR SSLCRYP(‘<token>’)
  • 34. MQIPT/Secure Gateway 34 TechCon 2020 / © 2020 IBM Corporation TLS MQIPT /Secure gateway MQIPT /Secure gateway Internet Secured Network Secured Network keystore keystore • If you have a secured network you can selectively encrypt where you need • Invisible to MQ
  • 35. MQIPT HTTPS 35 TechCon 2020 / © 2020 IBM Corporation HTTPS MQIPT MQIPT Internet Secured Network Secured Network keystore keystore • MQIPT supports converting MQ communications to HTTPS and back • Allows you to tighten firewall security for your network
  • 36. MQIPT PKCS#11 Support 36 TechCon 2020 / © 2020 IBM Corporation HTTPS MQIPT MQIPT Internet Secured Network Secured Network • MQIPT also supports PKCS#11 devices for storing private keys/certificates • IBM MQ Advanced license required.
  • 37. 37 TechCon 2020 / © 2020 IBM Corporation Conclusion
  • 38. In conclusion • We looked at a number of options for protecting message data • At rest • In transit • We looked at advantages and disadvantages of solutions. 38 TechCon 2020 / © 2020 IBM Corporation TLS S Disk Encryption Message Data Encryption Protected on the network Protected on disk Protected in memory Protected end to end Transparent to application * Yes if you use AMS, no otherwise *
  • 39. Thank you Rob Parker Security Focal and Software engineer, IBM MQ Distributed — parrobe@uk.ibm.com © Copyright IBM Corporation 2019. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. Any statement of direction represents IBM’s current intent, is subject to change or withdrawal, and represent only goals and objectives. IBM, the IBM logo, and ibm.com are trademarks of IBM Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available at Copyright and trademark information. 39 TechCon 2020 / © 2020 IBM Corporation
  • 40. TechCon 2020 / © 2020 IBM Corporation 40

Notas do Editor

  1. In this presentation we will be talking about protecting valuable message data when it is in your MQ infrastructure. We will look at where and how you can protect message data during its lifetime and the benefits/disadvantages of each. We will look at both MQ and third-party technologies as MQ provides flexible options for how you can protect your data.
  2. In the introduction section we will cover a few key topics and concepts for protecting data In data at rest section we will discuss options for protecting data at rest
  3. Once message data is created there are two main places that it can reside. At rest on your systems disk or memory and in transit while flowing between two destinations. There are different risks associated with leaving message data unprotected in each of these places. For example leaving the message data unprotected at rest poses the risk that if an attacker gains access to your system either physically or virtually they could steal your message data or change it. For certain types of message data, policies or regulation may require the message data to be protected at rest. For example: PCI, HIPAA, etc Leaving message data in transit unprotected could result in man in the middle attacks where the traffic is intercepted to either steal the data or modify it in transit..
  4. Generally protecting data is costly and so protecting all data that flows through your network on lives on disks can create an unacceptable performance degradation. As such sometimes it is ideal to protect only a subset of data in your network. But what data do you need to protect? Some data has to be protected due to regulations around it, for example credit card data, health care data, other personal data Some data you may want to protect because it’s leak or edit may cause damage to your company, for example if your company is working on a secret project to gain an edge in a market, having that information leaked so competitors can move into that area before you could cause issues. Of course when protecting data there is a number of different ways we can protect data.
  5. When protecting data at rest or in transit there are two forms of protection we can apply. Integrity protection can provide 2 main protections: Ensuring that the message data was not changed since it was created. Ensuring that the message data has arrived from the expected person. It is generally quicker than encryption and useful if the data is not secret and so could be viewed but absolutely cannot be changed or come from an invalid source. Encryption protection ensures that only intended recipients can read the contents of the message data Both require a pre-exchange of information in order to provide the protection. Commonly referred to as the keys.
  6. Even though encryption is a broad topic we can subdivide it one more time to the two major forms of encryption that are used. Symmetric Key Single secret key Relatively fast Poses key distribution challenges when faced with large numbers of senders/receivers The key has to be known by the sender and receiver Asymmetric Keys Private & Public key pairing Message encrypted with one key can only be decrypted by the other one Slower than symmetric key cryptography Asymmetric Keys can be used to solve the key distribution challenges associated with symmetric keys In some places to provide encryption protection BOTH are used together.
  7. Integrity protection is commonly provide using asymmetric encryption. A one way hash function will be used to create a hash of the plaintext being sent, this hash is then signed with the private key of the sender. The plaintext and signed hash are sent to the recipient who decrypts the signed hash, rehashes the plaintext they got and compares the two. If the hashes match then it came from the owner of the public key (the sender) and was not altered in transit.
  8. In this section we will be focusing on what options there are for protecting data that is at rest on your system.
  9. One option is to encrypt the entire disk. This will ensure that messages sat on a queue or disk are protected in the event that the disk is stolen. As long as the disk encryption software is invisible to applications then it may work with IBM MQ. For example, Data Set encryption on Z is invisible to applications and encrypts/decrypts data depending on a system policy. If the method of disk encryption requires the software to provide a key or interact with an API in order to gain access to data then it will not work with IBM MQ. A benefit to disk encryption is that any message data on the physical disk could not be read if the disk was physically stolen. However disk encryption does not prevent data being stolen if an attacker gains access to the system and does not prevent administrators or other users from accessing the data as long as they are on the system when they do it. It also adds a performance impact because every disk call requires a encrypt or decrypt operation before the data is provided to application, this includes configuration reading, logging and all messages regardless of content.
  10. Data Set encryption is a feature of z/OS where encryption is provided on specific data sets invisibly to applications. When an application asks to read/write from a protected dataset the data set encryption policy will intercept the read/write in order to add or remove encryption protection as defined in the policy. Support for this has been added in 9.1.4 for active logs and page sets as well as BSDS CSQINP and Archive logs.
  11. Another option is to protect just the message data. This has benefits over disk encryption as it means that costly encrypt and decrypt operations are not performed on every IO write. Additionally if message data is protected on disk then even if an attacker gains access to the system they will not be able to read the message data unless they have the key. This system also works because it will be invisible to MQ. We do not parse message data so if the data is encrypted or plain text will not matter. However it also offloads the responsibility to the application to perform the encrypt/decrypt and so requires applications changes or integrations of a third party application into your applications in order to work. As well as integrating libraries you also have to exchange secret data ahead of time (e.g. the symmetric keys used to encrypt the data). By also pushing the encryption/decryption to the applications you also need to ensure that applications system will have the capacity to perform the cryptographic operations. But what if you can’t make a change to your application? Or you don’t want another third party app/library? Or you can’t put encryption operations on your client applications? MQ has a solution…
  12. IBM MQ Advanced Message Security (or AMS) is MQ’s answer to message data protection. It provides all the benefits as discussed in the previous slides with some improvements in the areas identified as disadvantages. Unfortunately it does not come without it’s own disadvantages, namely that it still requires an exchange of secret information (this time certificates) and an advanced license. Additionally although it does not require changes to the applications it does require additionally MQ objects to be defined on AMS Queue Managers.
  13. The basis for configuring AMS on queue managers is to define a policy object for each queue that will handle messages that need to be protected. The Policy object needs to be defined on the first and last queue that the message will be in your MQ system. Each policy object details the minimum level of protection that should be placed on a queue object, for example if the first policy says the messages are to be protected with AES128 then the last policy must allow AES128. If it is set to AES256 it will cause an error. Policies support two different types of protection. Encryption and Integrity. For encryption protection you must also supply who the intended recipients are. For Integrity protection you must supply who is allowed to have signed the message.
  14. The default protection in AMS is that client applications will handle the protection/deprotection of message data.
  15. However if you do not want the client applications to perform AMS operations you can opt to move the protection to the Queue Manager. A downside to this is that in the first jump from App to Queue Manager the message data will not be protected. As such other protection should be applied for the message while it is in transit.
  16. Added in 9.1.3 for z/OS queue managers the capability to add or remove AMS protection on a queue manager to queue manager boundary was added. This is useful for times when there is a difference in requirement on a organisational boundary. Distributed queue managers do not have this functionality but there is a statement of direction saying we will add it in the future. The control for this is on channel objects the SSLPROT property can be configured to remove or apply AMS protection as necessary.
  17. To implement AMS in client applications no changes to the application is required. Instead activation an application for AMS is performed by supplying a environment variable pointing to a configuration file. This file contains details of the key store and certificate to use for AMS. When an IBM MQ application sees that a queue has a policy defined on it, it will look for the key store configuration file automatically in order to perform AMS operations.
  18. AMS protection works by combining Asymmetric encryption and symmetric encryption. First we will generate a symmetric key and encrypt the message data with that key. We also add a PDMQ header to the message so we know this message contains protected data.
  19. The protected message data is added to a PKCS#7 envelope and attached to the message. We also protect the symmetric key we used to encrypt the message with the public keys of all intended recipients. These protected keys are then also attached to the PKCS#7 envelope.
  20. The whole message is then sent to the queue. When an application wants to get the message it will use it’s private key to retrieve the symmetric key and then use the symmetric key to retrieve the message data.
  21. By default the same set of operations as discussed before are performed on every message. This means in the case that 6 messages are sent we have to perform 18 cryptographic operations to protect the messages and a further 12 to decrypt the messages. This can be costly for performance but there is a way we can improve the performance using key reuse.
  22. By setting key reuse to a number greater than 1 we will reuse the same symmetric key. For the first message the process is the same but then we remember the symmetric key for the next 4 messages.
  23. With a remembered symmetric key we can cut the number of cryptographic operations as we can reuse the symmetric key to quickly encrypt/decrypt message data.
  24. For the same 6 messages the number of cryptographic operations drop from 30 to 18. If you set key reuse to large numbers then you get a better performance improvement at the loss of security. With message data being protected by the same key if that key is cracked then an attacker could use that key to read the messages.
  25. In this section we will talk about what options there are for protecting data in transit
  26. If you have protected your message data and it is protected throughout it’s lifetime then as it traverses through your network it will retain that protection. This will meet your protection in transit but may cause some issues around detecting when a message was tampered with. For example, if a message does get tampered with during it’s traversal from Client A to B then you will only pick that up at Client B. If it had to go through 100 nodes to get there then which one tampered with it? Additionally, protected message data will not protect the whole message? Message headers or properties could still be tampered with or a message could be rerouted by a man in the middle attack.
  27. The more common approach for protecting data in transit is to use TLS. IBM MQ has supported TLS for a number of versions and continues to add new features and improvements to our TLS enhancement even to this day. With TLS you can secure your data both to ensure that it is not edited in transit and that prying eyes cannot view it. If data is edited in transit then MQ will detect this and reject the tampered data. This is a benefit over just using protected data as you will be able to see exactly which hop is open to data tampering. Additionally MQ supports using TLS as an authentication method so you can ensure that clients connecting to you are valid clients and additionally that your clients are connecting to expected servers (not a man in the middle). The downside to TLS is that it does require certificate management and the exchanging of certificates to work. This is a common pitfall for customers as it is not a single action. Certificates expire and when they do it can cause outages, renewing certificates also requires downtime in order for queue managers or applications to use the new certificates.
  28. IBM MQ supports TLS 1.2 and TLS 1.3 CipherSpec by default, older CipherSpecs can be enabled but are disabled by default due to being weak. Each queue manager and client must have a key store that contains certificates. What certificates need to go in depends on what purpose the queue manager or client is performing. If a queue manager is acting as a server it must have both the certificate and private key for that certificate available to it. If it is a client application or queue manager acting as a client then it must trust the queue manager it is connecting to by containing the certificate of the queue manager in it’s trust store. On Distributed IBM MQ uses the CMS format key store which combines both trust store and key store. On Z and IBM I we use the platform key store (RACF). Once the certificates have been exchanged to enable TLS communication a channel object must be edited to supply a CipherSpec in the SSLCIPH value of the channel. If you are using a specific CipherSpec this same one must be set on the other channel. Now when the channels start they will use TLS communications.
  29. Setting a specific CipherSpec was the standard way of enabling TLS on IBM MQ up until 9.1.2. However this is not the industry standard of how TLS communications should work. The normal way of operating is that the TLS client and TLS server communicate a list of CipherSpecs they support and then the TLS handshake process choses one from the list that both support and is the highest priority. In 9.1.2 and 9.1.4 we added Alias CipherSpecs which begin to operate IBM MQ in the industry standard. By setting an Alias CipherSpec like ANY_TLS12_OR_HIGHER you tell the channel to use any CipherSpec that is in TLS 1.2 or above. If you need granular control over which CipherSpec needs to be used you can still set the client side to use a specific CipherSpec and leave the server side as a broader alias CipherSpec. However you should not do this the other way as it likely will not work.
  30. A benefit of using a alias CipherSpec on your server channels is that if the client decides to move up to a different CipherSpec for whatever reason then the only change that needs to be made is on the client side. You no longer have to co-ordinate with the server to make the change there as well. In this case we moved from TLS 1.2 to a specific TLS 1.3 CipherSpec.
  31. Of course if you don’t want Granular control then you can set Clients to a matching Alias CipherSpec and then let MQ figure it out. As stated before though, don’t set the Client to an Alias CipherSpec and the server to a specific CipherSpec. This will not work as any users of .NET will tell you.
  32. By configuring the clients to connect with their own certificate you can have the server authenticate that it trusts the client trying to connect. With IBM MQ as well you can enforce that clients connecting must supply a valid, trusted certificate using the SSLCAUTH setting. Additionally you can further filter to make sure that the certificate received either on the client side or server side matches a particular Distinguished name to ensure you have connected to where you expect. On the Server side you can also use Channel Authentication rules to filter further on the issuer.
  33. Finally, while the default for Distributed MQ is to store certificates and private keys in a file on the system disk you can also configure IBM MQ to securely store these private keys in PKCS#11 devices instead.
  34. If you don’t want to configure IBM MQ Queue Managers to be available on the outside network or only want particular routes to be secured then using a secure gateway or MQIPT may be a solution as well. You can configure MQIPT or secure gateway to be invisible to MQ and automatically convert communications into TLS secured communications.
  35. Additionally if you want to secure your firewall so that only HTTPS traffic can enter then you can use MQIPT to convert MQ traffic into HTTP or HTTPS traffic and then later convert it back invisibly to MQ. SOAP is also supported
  36. Finally as of 9.1.5 MQIPT supports PKCS#11 as a place you can store your certificates and private keys. However this is a MQ Advanced feature and requires a license as such.
  37. No Notes
  38. In conclusion deciding on whether you need to protect your message at rest and in transit or just one of those is up to you. We looked at each in turn and the advantages and disadvantages of each solution.
  39. No Notes
  40. No notes