deep dive: aws cloudhsm

39
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved CloudHSM Deep-Dive Dave Walker Specialised Solutions Architect Security/Compliance Amazon Web Services UK Ltd

Upload: amazon-web-services

Post on 21-Feb-2017

1.302 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Deep Dive: AWS CloudHSM

©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

CloudHSM Deep-Dive

Dave Walker – Specialised Solutions Architect Security/Compliance

Amazon Web Services UK Ltd

Page 2: Deep Dive: AWS CloudHSM

CloudHSM

• Tamper-Proof and Tamper-Evident– Destroys its stored keys if under attack

• FIPS 140-2 Level 2 certified• Base position is to be a Keystore• Can also be used to timestamp documents• You can send data for encrypt / decrypt• Needs to be backed-up (ideally to HSM on customer premises)• Can be (and should) be combined in HA clusters• Is NOT a key management system

– but can work with some third-party ones• Communicates via:

– PKCS#11– JCE

• Some applications need a “plugin”• Safenet have one for Apache

Page 3: Deep Dive: AWS CloudHSM

CloudHSM Integration with S3, EBS, EC2

• S3– Integration using SafeNet KeySecure on EC2– White paper at http://www2.safenet-inc.com/AWS-

guides/SafeNetKMIP_AmazonS3_IntegrationGuide.pdf• EBS and EC2

– Use SafeNet KeySecure (6.1.2 or later) on EC2, backed by CloudHSM, for key management

– Install SafeNet ProtectV Manager on EC2 (c1.medium / m1.medium)– Install ProtectV Client on EC2 instances– Use ProtectV for EBS volume encryption (ext3, ext4, swap)– Supported platforms:

• RHEL 5.8, 6.2, 6.3• CentOS 6.2• Microsoft Windows 2008, 2012

– Encrypt full EBS-backed EC2 instances, including root volumes

Page 4: Deep Dive: AWS CloudHSM

AWS Databases and CloudHSM

• Redshift:– When using CloudHSM

• Redshift gets cluster key from HSM

• Redshift generates a database key and encrypts it with the cluster key from the CloudHSM

• Redshift encrypts data with the database key

• Redshift supports re-encryption

• RDS– RDS / Oracle EE can use CloudHSM to store keys as per Oracle Wallet

• So TDE can be HSM-backed

• Note that in-memory database contents (once the database has

been unlocked) are cleartext– RAM encryption is not something AWS has today, but it has been done in other

contexts– Homomorphic encryption

– Proof-of-concept with KVM

Page 5: Deep Dive: AWS CloudHSM

SafeNet Product Support for AWSSafeNet Product AWS Service(s) Supported Notes

ProtectV and Virtual

KeySecure for AWS

EC2 or VPC Instances and EBS

Storage

GovCloud (Beta)

• Requires Safenet KeySecure (HW or Virtual)

• Available in AWS MarketPlace, as well as SafeNet sales channels

Virtual KeySecure for AWS CloudHSM • Available in AWS Marketplace

• CloudHSM supports Virtual KeySecure as the hardware root of trust

for vKS master keys

StorageSecure AWS Storage Gateway • Safenet KeySecure Hardware (optional)

• iSCSI integration (however StorageSecure also supports CIFS,

NFS, FTP, TFTP and HTTP protocols.)

Luna SA 7000 HSM CloudHSM

RedShift

RDS (via 3rd party vendor)

• High availability

• Key synchronization

• Key Management

Luna Backup HSM CloudHSM • Key backup

ProtectApp S3 and EBS volumes • Can be integrated with Amazon S3 Encryption Clients and AWS

SDKs (Java and .Net)

• Requires SafeNet KeySecure (HW or virtual)

• Can be installed on an EC2/VPC instance to protect data stored on

EBS volumes.

ProtectFile EBS volumes and S3 • Requires SafeNet KeySecure (HD or Virtual)

Page 6: Deep Dive: AWS CloudHSM

Difference between CloudHSM and

KMSCloudHSM

• Single-tenant HSM

• Customer-managed durability and

availability

• Customer managed root of trust

• FIPS 140-2 Validation

• Broad third-party app support

• Symmetric and asymmetric ops

• High fixed price ($16.5k/yr/hsm)

KMS

• Multi-tenant AWS service

• Highly available and durable key

storage and management

• AWS managed root of trust

• Extensive auditing

• Broad support for AWS services

• Symmetric encryption only

• Usage-based pricing

Page 7: Deep Dive: AWS CloudHSM

Why Customers Choose CloudHSM

• Reasons include:– Control

• Complete control of encryption keys, AWS cannot access key material

• Fine-grained control of how AWS assets can use your keys

– Compliance

• FIPS 140-2 level 2 or 3 certification

• Common Criteria EAL4 certification

– Performance/Availability

• When required, “local” CloudHSM much better than on-prem

– Network transit times

– Usage patterns

Page 8: Deep Dive: AWS CloudHSM

Customer Control Over Keys

• Three reasons for this requirement– Regulatory (hard), Policy (soft) and Trust (soft)

• Soft requirements may be addressed by threat

modelling– KMS can be simpler and less expensive for customer to use

– Important to engage customer’s governance resources

• With CloudHSM, customers have absolute

control and authority over keys through

separation of duties

Page 9: Deep Dive: AWS CloudHSM

Separation of Duties

• Separation of duties is enforced by the HSM

appliance itself, using RBAC

Customer control keys

and crypto operations

CloudHSM

AWS manages the

appliance

Page 10: Deep Dive: AWS CloudHSM

Third-Party Compliance Validation

• Requirements – PCI or other vertical-specific security standard

– Government workloads (US, Canada, and others)

– Enterprise policies increasingly require FIPS validation

• CloudHSM uses SafeNet Luna SA 7000

appliances– FIPS 140-2 Level 2 Validated

– Common Criteria EAL4 Validated

Page 11: Deep Dive: AWS CloudHSM

Performance/Availability Advantages

• Customers may have existing on-prem HSMs

• Applications that require HSM access could

leverage on-prem HSMs over VPN or DX

• Latency and availability characteristics of VPN

or DX make CloudHSM desirable

Page 12: Deep Dive: AWS CloudHSM

Amazon Really Can’t Access Keys

• AWS has “appliance admin” to the HSM

• Luna SA separates appliance admin from “security officer”

• Customer initializes HSM themselves via SSH

• AWS never sees partition credentials

• Device is automatically wiped if unauthorised access attempted

• Bottom line – you don’t have to trust AWS, you are trusting the HSM vendor (SafeNet) and and third party FIPS/CC validations

Page 13: Deep Dive: AWS CloudHSM

Operations

• Each HSM is dedicated to one customer– No sharing or partitioning of the appliance

• Customer is responsible for operating the HSMs in HA mode– SafeNet Client handles replication to multiple HSMs (up to 16)

– SafeNet Client load balances across available HSMs

• Password authentication controls access to the HSM– PEDs (Pin Entry Devices) are not currently supported

• AWS monitors & manages the devices and network infrastructure

• See FAQ and Technical docs for additional details

Page 14: Deep Dive: AWS CloudHSM

• Self-service provisioning and management now supported through a public API– CreateHSM and DeleteHSM to provision and terminate HSMs

– ModifyHSM permits changing the network configuration as well as setting up syslog forwarding

• ListHSMs and DescribeHSM allow discovery and querying of provisioned HSMs

• ListAvailableZones provides visibility into where CloudHSM capacity is available

CloudHSM Public API and SDK

Page 15: Deep Dive: AWS CloudHSM

• Provisioning and de-provisioning– Easy to provision an HSM, intialise it, clone keys from existing

HSMs

• Easier HSM management– Lots of automation in the CLI to reduce management effort

• Simpler HA configuration– Help you build and maintain HSM high availability (HA)

configurations

– From 9 manual steps, interacting with appliance shell directly

– To 2 simpler steps: create-hapg, add-hsm-to-hapg (for each HSM)

• Source code available via open source license

CloudHSM Command Line Interface (CLI) Tools

Page 16: Deep Dive: AWS CloudHSM

• Transparent data encryption support for RDS

Oracle databases

• Store master encryption keys in CloudHSM

instances

• High availability support for two or more HSMs

• Up to 20 separate databases per HSM

CloudHSM for RDS Oracle TDE

Page 17: Deep Dive: AWS CloudHSM

Auditing

• CloudTrail– Track resource changes

– Audit activities for security and compliance purposes

– Review all CloudHSM API calls

• Syslog– Audit operations on the HSM appliance

– Send syslog to customer-built and managed collector

Page 18: Deep Dive: AWS CloudHSM

CloudHSM Use Cases

Page 19: Deep Dive: AWS CloudHSM

EBS Volume Encryption

• Master key stored in CloudHSM

• SafeNet ProtectV & KeySecure

• Instances with ProtectV client

authenticate to KeySecure

• ProtectV client encrypts all I/O to

EBS volume (AES256)

Availability Zone

CloudHSM

CustomerApplications

SafeNetKeySecure

SafeNetProtectV

Client

Page 20: Deep Dive: AWS CloudHSM

Redshift Encryption

• Cluster master key in CloudHSM

• Direct integration – no client software required

Your

applications

in Amazon

EC2

Amazon Redshift

Cluster

Your encrypted data

in Amazon Redshift

AWS CloudHSM

Page 21: Deep Dive: AWS CloudHSM

Database Encryption (non-RDS)

• Customer-managed

database in EC2– Oracle 11g & 12c with

Transparent Data Encryption

(TDE)

– Microsoft SQL Server 2008 &

2012 with TDE

– Master key in CloudHSM

AWS

CloudHSM

Your database

with TDE in

Amazon EC2

Master key is created in

the HSM and never

leaves

Your applications

in Amazon EC2

Page 22: Deep Dive: AWS CloudHSM

Custom Software Applications

• Architectural building block to help you secure

your applications

• Use standard libraries, with back-end HSM

rather than software-based crypto– PKCS#11, JCA/JCE, Microsoft CAPI/CNG/EKM

• Code examples and details in the CloudHSM

User Guide make it easier to get started

Page 23: Deep Dive: AWS CloudHSM

Other Use Cases

• Customer use cases continue to emerge:– Enterprises using on-prem HSMs and want to move these workloads to the cloud

– Startups who want to offer high assurance services and achieve compliance

– Enterprises who are not using HSMs for some of their on-prem apps but who want to use HSMs for these apps in the cloud

• Examples:– Object encryption

– Digital Rights Management (DRM)

– Document signing, secure document management & secure document repository

– Payments, financial applications & transaction processing

– Privileged account management

– Certification authority (CA)

Page 24: Deep Dive: AWS CloudHSM

Using CloudHSM

Page 25: Deep Dive: AWS CloudHSM

Detailed Examples

• Building the CloudHSM Environment

• Configuring High Availability

• Integrating with RDS

Page 26: Deep Dive: AWS CloudHSM

Building a CloudHSM Environment

• Create customer

infrastructure using CF

template

• Install the CLI Tools

• Provision HSMs

• Initialise HSMs

Page 27: Deep Dive: AWS CloudHSM

Create Infrastructure with CF

Page 28: Deep Dive: AWS CloudHSM

Create Infrastructure with CF

Lookup your AZ identifiers on the EC2

Dashboard, and use those names

Page 29: Deep Dive: AWS CloudHSM

Install CLI Tools on Control Instance

• SSH to control instance deployed by CF Template

• Download and install the CloudHSM CLI Tools# Install python 2.7

sudo yum install python27

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

sudo python2.7 ez_setup.py

# Download and install the CloudHSM CLI Tools

wget https://s3.amazonaws.com/cloudhsm-software/CloudHsmCLI.egg

sudo easy_install-2.7 -s /usr/local/bin CloudHsmCLI-beta.egg

cloudhsm version

{

"Version": ”<version>"

}

• Assign an IAM role to your instance to permit CloudHSM API access

Page 30: Deep Dive: AWS CloudHSM

Provision HSMs

• Create two HSMs (one for each subnet)

$ cloudhsm -c cloudhsm.conf create-hsm --ssh-public-key-file

cloudhsm_ssh.pub --iam-role-arn

arn:aws:iam::315160724404:role/CloudHSM-FRA-CloudHsmRole-

1ZEAT0Z2PB8P --subnet-id subnet-d244b0bb

{

"HsmArn": "arn:aws:cloudhsm:eu-central-1:315160724404:hsm-

f32462d6",

"RequestId": "e55c9da1-7b5b-11e4-9222-dd57de14ff9c"

}

Page 31: Deep Dive: AWS CloudHSM

Provision HSMs

• Describe status, wait until status changes from “PENDING” to “RUNNING”

$ cloudhsm -c cloudhsm.conf describe-hsm -H arn:aws:cloudhsm:eu-central-1:315160724404:hsm-f32462d6

{

"EniId": "eni-047fbd6d",

"EniIp": "10.0.201.252",

"HsmArn": "arn:aws:cloudhsm:eu-central-1:315160724404:hsm-f32462d6",

"IamRoleArn": "arn:aws:iam::315160724404:role/CloudHSM-FRA-CloudHsmRole-1ZEAT0Z2PB8P",

"Partitions": [],

"RequestId": "2179b6f0-7b5c-11e4-a252-9d68fcf58947",

"SerialNumber": "472673",

"SoftwareVersion": "5.1.0-25",

"SshPublicKey": “…",

"Status": ”RUNNING",

"SubnetId": "subnet-d244b0bb",

"SubscriptionStartDate": "2014-12-04T02:18:56.292Z",

"SubscriptionType": "PRODUCTION",

"VendorName": "SafeNet Inc."

}

Page 32: Deep Dive: AWS CloudHSM

Provision HSMs

• Look for ENI “CloudHSM Managed Interface, DO

NOT DELETE!” in the description

Page 33: Deep Dive: AWS CloudHSM

Provisioning HSMs

• Change the ENI security group to the one with the description “Allows SSH and NTLS from the public subnet”

Page 34: Deep Dive: AWS CloudHSM

Initialize the HSM

$cloudhsm -c cloudhsm.conf initialize-hsm -H

arn:aws:cloudhsm:eu-central-1:315160724404:hsm-f32462d6 -

-label hsmLabel --cloning-domain cloningDomain --so-

password sopassword

{

"Status": "Initialization of the HSM successful"

}

Page 35: Deep Dive: AWS CloudHSM

Configure High Availability

• Create an HAPG (high availability partition group)

$ cloudhsm -c cloudhsm.conf create-hapg --group-label

Partition_001

Partition_001

{

"HapgArn": "arn:aws:cloudhsm:eu-central-1:315160724404:hapg-

8e3be050",

"RequestId": "ce3e1b17-7b64-11e4-a252-9d68fcf58947"

}

Page 36: Deep Dive: AWS CloudHSM

Configure High Availability

• Add the HSMs to the HAPGcloudhsm -c cloudhsm.conf add-hsm-to-hapg -H

arn:aws:cloudhsm:eu-central-1:315160724404:hsm-f32462d6 --

hapg-arn arn:aws:cloudhsm:eu-central-1:315160724404:hapg-

8e3be050 --cloning-domain cloningDomain --partition-password

partitionPassword --so-password sopassword

{

"Status": "Addition of HSM arn:aws:cloudhsm:eu-central-

1:315160724404:hsm-f32462d6 to HAPG arn:aws:cloudhsm:eu-

central-1:315160724404:hapg-8e3be050 successful"

}

(then do it again for the second HSM)

Page 37: Deep Dive: AWS CloudHSM

Done!

• After this, you are ready to set up custom

software with SafeNet clients, RDS integration,

customer-managed databases, and more.

• Comprehensive documentation available at

http://aws.amazon.com/cloudhsm

Page 38: Deep Dive: AWS CloudHSM

CloudHSM Pricing and Trials

• HSM provisioned in any region has a $5,000

one-time charge, then metered hourly after that

• There is no “stop” only “terminate”– We know this is challenging, since re-provisioning will incur

another $5,000 upfront charge

• 30-day trials are available for customers on

premium support– Access these by opening a case with dev support

Page 39: Deep Dive: AWS CloudHSM

Conclusion

• HSMs, for basic key storage and bulk crypto,

are available in AWS, if you need them

• They’ll have better performance that on-prem

HSMs, owing to co-location

• CloudHSM (and HSMs in general) aren’t for

everyone– Customers need trained staff, tight operational practice