SafeNet KMIP and Amazon S3 Integration Guide



Similar documents
SafeNet KMIP and Google Cloud Storage Integration Guide

KMIP installation Guide. DataSecure and KeySecure Version SafeNet, Inc

SafeNet Authentication Manager Express. Upgrade Instructions All versions

SafeNet MSSQL EKM Provider User Guide

Preface. Limitations. Disclaimers. Technical Support. Luna SA and IBM HTTP Server/IBM Web Sphere Application Server Integration Guide

Microsoft IIS Integration Guide

Exchange Reporter Plus SSL Configuration Guide

SSL Configuration on Weblogic Oracle FLEXCUBE Universal Banking Release [August] [2014]

Active Directory Rights Management Service Integration Guide

Integration Guide. SafeNet Authentication Service. Using SAS as an Identity Provider for Tableau Server

Installation Guide. SafeNet Authentication Service

Configuration Guide. SafeNet Authentication Service AD FS Agent

Microsoft SQL Server Integration Guide

Configuration Guide. SafeNet Authentication Service. Remote Logging Agent

CA Nimsoft Unified Management Portal

Integration Guide. SafeNet Authentication Service. Using SAS with Web Application Proxy. Technical Manual Template

Integration Guide. SafeNet Authentication Client. Using SAC with Putty-CAC

Synchronization Agent Configuration Guide

Entrust Certificate Services. Java Code Signing. User Guide. Date of Issue: December Document issue: 2.0

Preface. Microsoft Office Sharepoint Server 2007 Integration Guide SafeNet, Inc. All rights reserved. Part Number: (Rev A, 06/2009)

Agent Configuration Guide

Integration Guide. SafeNet Authentication Service. Integrating Active Directory Lightweight Services

Integration Guide. SafeNet Authentication Client. Using SAC CBA for Check Point Security Gateway

Configuration Guide. SafeNet Authentication Service. SAS Agent for Microsoft Internet Information Services (IIS)

SafeNet MobilePASS Version 8.2.0, Revision B

Integration Guide. SafeNet Authentication Service. VMWare View 5.1

Configuration Guide. SafeNet Authentication Service. Token Validator Proxy Agent

Cisco Prime Central Managing Certificates

Integration Guide. SafeNet Authentication Service. Using SAS as an Identity Provider for Salesforce

Integration Guide. SafeNet Authentication Service. SAS Using RADIUS Protocol with Apache HTTP Server

Sentinel Cloud V.3.5 Installation Guide

Integration Guide. SafeNet Authentication Service. Oracle Secure Desktop Using SAS RADIUS OTP Authentication

Configuration Guide. SafeNet Authentication Service. SAS Agent for Microsoft Outlook Web Access 1.06

SSL Configuration on WebSphere Oracle FLEXCUBE Universal Banking Release [September] [2013] Part No. E

Configuring TLS Security for Cloudera Manager

Version 9. Generating SSL Certificates for Progeny Web

Universal Content Management Version 10gR3. Security Providers Component Administration Guide

Installing Digital Certificates for Server Authentication SSL on. BEA WebLogic 8.1

Junio SSL WebLogic Oracle. Guía de Instalación. Junio, SSL WebLogic Oracle Guía de Instalación CONFIDENCIAL Página 1 de 19

Integration Guide. SafeNet Authentication Service. SAS Using RADIUS Protocol with Microsoft DirectAccess

Director and Certificate Authority Issuance

Security Guide vcenter Operations Manager for Horizon View 1.5 TECHNICAL WHITE PAPER

Configuring HTTPS support. Overview. Certificates

Gemalto SafeNet Minidriver 9.0

Integration Guide. SafeNet Authentication Service. Using SAS as an Identity Provider for Drupal

Configuring Secure Socket Layer and Client-Certificate Authentication on SAS 9.3 Enterprise BI Server Systems That Use Oracle WebLogic 10.

DISTRIBUTED CONTENT SSL CONFIGURATION AND TROUBLESHOOTING GUIDE

SSL Certificate Generation

Chapter 1: How to Configure Certificate-Based Authentication

Configuration Guide. SafeNet Authentication Service. SAS Agent for Microsoft Outlook Web App. Technical Manual Template

SolarWinds Technical Reference

Enterprise Content Management System Monitor 5.1 Security Considerations Revision CENIT AG Brandner, Marc

Creating an authorized SSL certificate

KeySecure CUSTOMER RELEASE NOTES. Contents. Version: Issue Date: 2 February 2015 Document Part Number: , Rev A.

PowerChute TM Network Shutdown Security Features & Deployment

Generating an Apple Push Notification Service Certificate

C O N F I G U R I N G O P E N L D A P F O R S S L / T L S C O M M U N I C A T I O N

User Guide. SafeNet MobilePASS for Windows Phone

VMware vrealize Operations for Horizon Security

Copyright 2013 EMC Corporation. All Rights Reserved.

VMware vrealize Operations for Horizon Security

Enabling SSL and Client Certificates on the SAP J2EE Engine

CHAPTER 7 SSL CONFIGURATION AND TESTING

Configure Managed File Transfer Endpoints

How to Implement Transport Layer Security in PowerCenter Web Services

DOCUMENTUM CONTENT SERVER CERTIFICATE BASED SSL CONFIGURATION WITH CLIENTS

Adeptia Suite 6.2. Application Services Guide. Release Date October 16, 2014

Certificate technology on Pulse Secure Access

DIGIPASS KEY series and smart card series for Juniper SSL VPN Authentication

Apache HTTP Server Integration Guide

Certificate technology on Junos Pulse Secure Access

To install and configure SSL support on Tomcat 6, you need to follow these simple steps. For more information, read the rest of this HOW-TO.

Quick and Easy Solutions With Free Java Libraries Part II

RHEV 2.2: REST API INSTALLATION

Server Installation ZENworks Mobile Management 2.7.x August 2013

A Practical Guide to creating, compiling and signing an Android Application using Processing for Android.

HTTPS Configuration for SAP Connector

How to Implement Two-Way SSL Authentication in a Web Service

DIGIPASS CertiID. Getting Started 3.1.0

Configuring SSL in OBIEE 11g

Customer Tips. Xerox Network Scanning HTTP/HTTPS Configuration using Microsoft IIS. for the user. Purpose. Background

Lotus Sametime. FIPS Support for IBM Lotus Sametime 8.0. Version 8.0 SC

TIBCO Spotfire Automation Services 6.5. Installation and Deployment Manual

Jobs Guide Identity Manager February 10, 2012

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

Copyright 2014, SafeNet, Inc. All rights reserved.

LDAP User Guide PowerSchool Premier 5.1 Student Information System

SSL Management Reference

Shavlik Patch for Microsoft System Center

SDK Code Examples Version 2.4.2

WebSphere Application Server security auditing

Server Installation Guide ZENworks Patch Management 6.4 SP2

X.509 Certificate Generator User Manual

IUCLID 5 Guidance and Support

How to Order and Install Odette Certificates. Odette CA Help File and User Manual

How to Order and Install Odette Certificates. Odette CA Help File and User Manual

Customizing SSL in CA WCC r11.3 This document contains guidelines for customizing SSL access to CA Workload Control Center (CA WCC) r11.3.

Transcription:

SafeNet KMIP and Amazon S3 Integration Guide

Documentation Version: 20130524 2013 SafeNet, Inc. All rights reserved Preface All intellectual property is protected by copyright. All trademarks and product names used or referred to are the copyright of their respective owners. No part of this document may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, chemical, photocopy, recording or otherwise without the prior written permission of SafeNet. SafeNet makes no representations or warranties with respect to the contents of this document and specifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Furthermore, SafeNet reserves the right to revise this publication and to make changes from time to time in the content hereof without the obligation upon SafeNet to notify any person of organization of any such revisions or changes. SafeNet invites constructive comments on the contents of this document. These comments, together with your personal and/or company details, should be sent to the address below. 4690 Millennium Drive Belcamp, Maryland 21017 USA Disclaimers The foregoing integration was performed and tested only with specific versions of equipment and software and only in the configuration indicated. If your setup matches exactly, you should expect no trouble, and Customer Support can assist with any missteps. If your setup differs, then the foregoing is merely a template and you will need to adjust the instructions to fit your situation. Customer Support will attempt to assist, but cannot guarantee success in setups that we have not tested. This product contains software that is subject to various public licenses. The source code form of such software and all derivative forms thereof can be copied from the following website: http://c3.safenet-inc.com/ We have attempted to make these documents complete, accurate, and useful, but we cannot guarantee them to be perfect. When we discover errors or omissions, or they are brought to our attention, we endeavor to correct them in succeeding releases of the product. Technical Support If you encounter a problem while installing, registering or operating this product, please make sure that you have read the documentation. If you cannot resolve the issue, please contact your supplier or SafeNet support. SafeNet support operates 24 hours a day, 7 days a week. Your level of access to this service is governed by the support plan arrangements made between SafeNet and your organization. Please consult this support plan for further information about your entitlements, including the hours when telephone support is available to you. Technical Support Contact Information: Phone: 800-545-6608, 410-931-7520 Email: support@safenet-inc.com

Table of Contents CHAPTER 1 AMAZON SIMPLE STORAGE SERVICE......................... 3 Introduction............................................................... 3 Current Scenario.......................................................... 3 Encryption......................................................... 3 Decryption......................................................... 4 SafeNet Solution........................................................... 5 Configuring SafeNet Integration........................................ 5 Encryption with SafeNet Integration..................................... 5 Decryption with SafeNet Integration..................................... 6 Implementation..................................................... 6 CHAPTER 2 SETTING UP SSL........................................ 8 SSL Configuration Procedures................................................ 8 Creating a Local CA................................................. 8 Creating a Server Certificate Request on the Management Console............ 9 Signing a Server Certificate Request with a Local CA....................... 9 Downloading the Local CA Certificate................................... 10 Adding the CA Certificate to the Java Keystore........................... 10 SSL with Client Certificate Authentication Procedures............................. 10 Generating a Client Certificate Request with Keytool....................... 11 Signing a Certificate Request and Downloading the Certificate............... 12 Adding the CA and Client Certificates to the Java Keystore.................. 13 Updating the Properties File................................................. 13 CHAPTER 3 SAMPLE APPLICATION................................... 14 Extracting the SafeNet Solution.............................................. 14 Using the Sample Application................................................ 14 Using SafeNetAWSS3..................................................... 15 Uploading Data Using Amazon S3 Encryption Client 15 Downloading Data Using Amazon S3 Encryption Client 15 Uploading Data to Amazon S3 Using KeySecure 15 Downloading Data from Amazon S3 Using KeySecure 16 Creating Symmetric Keys on KeySecure 16 Importing Symmetric Keys to KeySecure 16 Exporting Symmetric Keys from KeySecure 17 Use Cases.............................................................. 17 Use Case 1....................................................... 17 SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 1

1. Uploading Data Using Amazon S3 Encryption Client 17 2. Downloading Data Using Amazon S3 Encryption Client 17 Use Case 2....................................................... 18 1. Creating Symmetric Key on KeySecure 18 2. Uploading Data on Amazon S3 Using KeySecure 18 3. Downloading Data from Amazon S3 Using KeySecure 19 Use Case 3....................................................... 19 1. Uploading Data Using Amazon S3 Encryption Client 19 2. Importing Symmetric Key to KeySecure 19 3. Downloading Data from Amazon S3 Using KeySecure 20 Use Case 4....................................................... 20 1. Uploading Data to Amazon S3 Using KeySecure 20 2. Exporting Symmetric Key from KeySecure 20 3. Downloading Data Using Amazon S3 Encryption Client 21 SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 2

Chapter 1 Amazon Simple Storage Service This chapter presents an overview of Amazon Simple Storage Service (Amazon S3), how user data is protected currently, and how SafeNet solution is implemented. Introduction Amazon Simple Storage Service (Amazon S3) is storage for the Internet. It is designed to make web-scale computing easier for developers. Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, secure, fast, inexpensive infrastructure that Amazon uses to run its own global network of web sites. The service aims to maximize benefits of scale and to pass those benefits on to developers. Current Scenario Amazon S3 allows its users to protect their data using either server-side encryption or client-side encryption. Using Amazon S3 client-side encryption, the data is encrypted before it is sent to Amazon S3. The AWS SDK for Java uses envelope encryption. In envelope encryption, the encryption key is provided to the Amazon S3 encryption client and the client handles the rest of the process. Encryption SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 3

The encryption process is as follows: 1 User attempts to upload data to Amazon S3. 2 AmazonS3EncryptionClient generates a one-time-use symmetric key. This key is called the envelope symmetric key. 3 AmazonS3EncryptionClient encrypts the data using the envelope symmetric key. 4 AmazonS3EncryptionClient encrypts the envelope symmetric key using the user s private encryption key. The private encryption key is created and managed by the user. WARNING: If the private encryption key is lost, the encrypted data can t be decrypted. 5 AmazonS3EncryptionClient uploads the encrypted envelope key and the encrypted data to Amazon S3 under a specified bucket. Decryption The decryption process is as follows: 1 User attempts to download the data from the specified bucket on Amazon S3. 2 AmazonS3EncryptionClient retrieves the encrypted data and the encrypted envelope key from Amazon S3. 3 AmazonS3EncryptionClient decrypts the encrypted envelope key using the user s private encryption key. 4 AmazonS3EncryptionClient decrypts the encrypted data using the envelope key. 5 AmazonS3EncryptionClient sends the decrypted data to the user. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 4

SafeNet Solution SafeNet solution integrates Amazon s AmazonS3EncryptionClient with the KeySecure server for key management services. With SafeNet solution, users can manage encryption keys on a KeySecure server. Master encryption keys can be generated, managed, and stored on the KeySecure server. Configuring SafeNet Integration There are some configuration steps needed before using the SafeNet solution. Certain parameters in the IngrianNAE.properties (also known as properties file) file need to be modified to define how the provider interacts with KeySecure. SSL setup is also needed for secure communication with KeySecure. For details on SSL setup, refer to Chapter 2, Setting up SSL. Encryption with SafeNet Integration With the SafeNet solution, the encryption process is as follows: 1 User provides the key name, data, and AWS login credentials to the SafeNet solution. 2 SafeNet solution connects to KeySecure, locates the key name on KeySecure, fetches the key, and prepares the encryption material. 3 SafeNet solution initializes the Amazon S3 encryption client object with the encryption material. 4 Sends the data and the encryption material to the Amazon S3 encryption client. 5 Amazon S3 encryption client generates a one-time-use symmetric key. This key is called the envelope symmetric key. 6 Amazon S3 encryption client encrypts the data using the envelope symmetric key. 7 Amazon S3 encryption client encrypts the envelope symmetric key using the encryption material. 8 Amazon S3 encryption client uploads the encrypted envelope key and the encrypted data to Amazon S3 under a specified bucket. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 5

Decryption with SafeNet Integration With the SafeNet solution, the decryption process is as follows: 1 User provides the key name, data, and Amazon S3 login credentials to the SafeNet solution. 2 SafeNet solution connects to KeySecure, locates the key name on KeySecure, fetches the key, and prepares the encryption material. 3 SafeNet solution initializes the Amazon S3 encryption client object with the encryption material. 4 Amazon S3 encryption client requests the data from Amazon S3. 5 Amazon S3 encryption client extracts the metadata and decrypts the encrypted envelope key by using the master encryption key provided by the user. 6 Amazon S3 encryption client decrypts the encrypted data using the envelope key. 7 Amazon S3 encryption client sends the decrypted data to the user. Implementation The Amazon S3 SDK for encryption client allows users to use any strategy to generate or maintain the key material. This is achieved by initializing the encryption client with an instance of an encryption provider. This encryption provider dynamically supplies the key material to the client on demand. The object-oriented design of Amazon S3 encryption client provides an interface (EncryptionMaterialsProvider) and a suitable constructor for AmazonS3EncryptionClient which initializes the client with the instance of the encryption provider. Methods of EncryptionMaterialsProvider are invoked when the encryption actually happens. The SafenetEncryptionMaterialsProvider class implements EncryptionMaterialsProvider. The provider SafenetEncryptionMaterialsProvider is an integration with SafeNet key management that stores the key on a key server. The SafenetEncryptionMaterialsProvider class fetches the key from the key server with specified key name and initializes the encryption material as appropriate. The encryption material is supplied to SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 6

AmazonS3EncryptionClient through the getencryptionmaterials() method, which is a part of the interface EncryptionMaterialsProvider. To use this approach: 1 Create an instance of SafenetEncryptionMaterialsProvider by passing the key name as an argument. 2 Create an instance of credentials AWSCredentials by passing appropriate values for accesskey and secretkey. 3 Create an instance of AmazonS3EncryptionClient by passing the objects created in step 1 and 2 as arguments. This instance of client contains SafeNet provider for encryption materials. 4 Call getobject()/putobject() on this client. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 7

Chapter 2 Setting up SSL This chapter provides an overview of SafeNet s SSL and SSL with Client Certificate Authentication features. SSL Configuration Procedures This section describes the procedures you will follow when configuring SSL. It explains the following processes: 1 Creating a Local CA 2 Creating a Server Certificate Request on the Management Console 3 Signing a Server Certificate Request with a Local CA 4 Downloading the Local CA Certificate 5 Adding the CA Certificate to the Java Keystore Creating a Local CA To create a local CA: 1 Log on to the Management Console as an administrator with Certificate Authorities access control. 2 Navigate to the Create Local Certificate Authority section on the Certificate and CA Configuration page (Security, Local CAs). 3 Modify the fields as needed. 4 Select either Self-signed Root CA or Intermediate CA Request as the Certificate Authority Type. 5 Click Create. Note: Only a local CA can sign certificate requests on KeySecure. If you are using a CA that does not reside on KeySecure, you cannot use the Management Console to sign certificate requests. Important! Local CA certificates must be added to a trusted CA list to be recognized by the Cryptographic Key Server. Local CA certificates should be backed up for protection. To add a local CA to a trusted CA list: 1 Navigate to the Certificate and CA Configuration page. (Security, Trusted CA Lists). 2 Select Default under Profile Name. 3 Click Edit under the Trusted Certificate Authority List section. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 8

4 Select the local CA in the Available CAs list. 5 Click Add. The local CA now appears in the Trusted CAs list. 6 Click Save. Creating a Server Certificate Request on the Management Console To create a server certificate request on the Management Console: 1 Log on to the Management Console as an administrator with Certificates access control. 2 Navigate to the Create Certificate Request section of the Certificate and CA Configuration page (Security, SSL Certificates) and modify the fields as needed. 3 Click Create Certificate Request. This creates the certificate request and places it in the Certificate List section of the Certificate and CA Configuration page. The new entry shows that the Certificate Purpose is Certificate Request and that the Certificate Status is Request Pending. Signing a Server Certificate Request with a Local CA To sign a server certificate request with a local CA: 1 Log on to the Management Console as an administrator with Certificates and Certificate Authorities access control. 2 Navigate to the Certificate List section on the Certificate and CA Configuration page (Security, SSL Certificates). 3 Select the certificate request and click Properties. 4 Copy the text of the certificate request. The copied text must include the header (-----BEGIN CERTIFICATE REQUEST-----) and footer (-----END CERTIFICATE REQUEST-----). 5 Navigate to the Local Certificate Authority List (Security, Local CAs). Select the local CA and click Sign Request to access the Sign Certificate Request section. 6 Modify the fields as shown: - Sign with Certificate Authority - Select the CA that signs the request. - Certificate Purpose - Select Server. - Certificate Duration (days) - Enter the life span of the certificate. - Certificate Request - Paste all text from the certificate request, including the header and footer. 7 Click Sign Request. This will take you to the CA Certificate Information section. 8 Copy the actual certificate. The copied text must include the header (-----BEGIN CERTIFICATE-----) and footer (-----END CERTIFICATE-----). 9 Navigate back to the Certificate List section (Security, SSL Certificates). Select your certificate request and click Properties. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 9

10 Click Install Certificate. 11 Paste the actual certificate in the Certificate Response text box. Click Save. The Management Console returns you to the Certificate List section. The section will now show that the Certificate Purpose is Server and that the Certificate Status is Active. The certificate can now be used as the server certificate for the NAE Server. Downloading the Local CA Certificate To download a local CA certificate from KeySecure: 1 Log on to the Management Console as an administrator with Certificate Authorities access control. 2 Navigate to the Local Certificate Authority List section of the Certificates and CA Configuration page (Security, Local CAs). 3 Select the Local CA and click the Download button to download the file to your client. Adding the CA Certificate to the Java Keystore To add the CA certificate to the keystore: 1 Open a command prompt window on the client and navigate to the Java security directory. This is typically <JRE-Home>/lib/security. 2 Use the keytool utility to import the CA certificate by issuing the command below. This statement selects cacerts as the keystore. You create an alias for the CA at this time. keytool -import -keystore cacerts -alias <CAAlias> -file <CertFileName.crt> Here, <CertFileName.crt> represents the name of the certificate file with the path. 3 Enter the keystore password when prompted. By default, the password is changeit. 4 Indicate that the CA is trusted, when prompted. The utility will then issue a message confirming that the certificate has been added to the keystore. For information about the keytool utility, please refer to Sun s documentation at: http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html SSL with Client Certificate Authentication Procedures This section describes the procedures you will follow when configuring SSL with Client Certificate Authentication. It explains the following processes: 1 Generating a Client Certificate Request with Keytool 2 Signing a Certificate Request and Downloading the Certificate 3 Adding the CA and Client Certificates to the Java Keystore SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 10

Generating a Client Certificate Request with Keytool Note: You cannot authenticate the client IP address if you use keytool to generate the client certificate request. To generate a client certificate request: 1 Open a command prompt window on your client and navigate to the Java security directory (<Java_Home>\lib\security). 2 Generate a public/private key pair by issuing the command below. You create an alias for the key pair at this time. keytool -keystore <KeystoreName> -genkey -alias <KeyPairAlias> -keyalg RSA The key generation process will then request the following data: - A keystore password. - The distinguished name. This is a series of fields whose values are incorporated into the certificate request. These fields include country name, state or province name, city or locality name, organization name, organizational unit name, and the users first and last name. Important! The user name specified here must exist on KeySecure. If the user does not exist, create it on the User & Group Configuration page. (Security, Local Authentication, Local Users & Groups) - The key password. The certificate password must be the same as the keystore password. You can simply press Return to set the password. You need not retype the keystore password. The sample output looks similar to the following: C:\Program Files\Java\jdk1.7.0_07\jre\lib\security>keytool -keystore cacerts -genkey -alias KeyPairAlias1 -keyalg RSA Enter keystore password: What is your first and last name? [Unknown]: AB What is the name of your organizational unit? [Unknown]: ENGG What is the name of your organization? [Unknown]: SFNT What is the name of your City or Locality? [Unknown]: NOIDA What is the name of your State or Province? [Unknown]: UP SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 11

What is the two-letter country code for this unit? [Unknown]: IN Is CN=AB, OU=ENGG, O=SFNT, L=NOIDA, ST=UP, C=IN correct? [no]: yes Enter key password for <KeyPairAlias1> (RETURN if same as keystore password): Important! The user name, AB, specified above must exist on KeySecure. If the user does not exist, create it on the User & Group Configuration page. (Security, Local Authentication, Local Users & Groups) 3 Create the certificate request by issuing the command below. Reference the Key Pair Alias you created above. keytool -certreq -alias <KeyPairAlias> -file <CertReqFileName> -keystore <KeystoreName> You will now have a certificate request in the <CertReqFileName> file. Signing a Certificate Request and Downloading the Certificate This section describes how to sign a certificate request with a local CA and then download the certificate. You must download the certificate immediately after it is signed by the CA. To sign a certificate request with a local CA: 1 Open the certificate request in a text editor. 2 Copy the text of the certificate request. The copied text must include the header (-----BEGIN CERTIFICATE REQUEST-----) and the footer (-----END CERTIFICATE REQUEST-----). 3 Log on to KeySecure as an administrator with Certificate Authorities access control. 4 Navigate to the Local Certificate Authority List (Security, Local CAs). Select the local CA and click Sign Request to access the Sign Certificate Request section. 5 Modify the fields as shown: - Sign with Certificate Authority - Select the CA that signs the request. - Certificate Purpose - Select Client. - Certificate Duration (days) - Enter the life span of the certificate. - Certificate Request - Paste all text from the request, including the header and footer. 6 Click Sign Request. This will take you to the CA Certificate Information section. 7 Click the Download button to save the certificate on your local machine. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 12

Adding the CA and Client Certificates to the Java Keystore To add the client certificate to the Java keystore: 1 Open a command prompt window on your client and navigate to the Java security directory (<Java_Home>\lib\security). 2 Import the CA certificate that signed the client certificate using the command below. You create an alias for the CA at this time. When prompted, enter the keystore password and indicate that the CA is trusted. keytool -keystore <KeystoreName> -import -alias <CAAlias> -file <CertFileName.crt> The above step is required if a CA other than the Local CA is to be used. 3 Import the signed client certificate using the following command. Use the key pair alias you used to create the certificate request. When prompted, enter the keystore password. keytool -keystore <KeystoreName> -alias <KeyPairAlias> -import -file <CertFileName.crt> 4 Verify that the client certificate was properly imported by executing the following command. Reference the key pair alias you used above. The system should display the certificate. keytool -keystore <KeystoreName> -alias <KeyPairAlias> -list -v Important! To enable Client Certificate Authentication, your keystore must have a copy of the CA certificate that signed the server certificate. Updating the Properties File After setting up the SSL, the SSL-related parameters must be updated in the properties file. The following parameters in the IngrianNAE.properties file need to be updated as follows: NAE_IP.1=<IP address of the server.> KMIP_Port=<KMIP SSL port on the server.> Protocol=ssl Key_Store_Location=<path and name of keystore that contains a copy of the server s local CA, the client certificate, and the CA that signed the client certificate.> Key_Store_Password=<keystore password> Client_Cert_Alias=<client certificate alias> Client_Cert_Passphrase=<client certificate password, if used> For detailed description of the properties file, see Configuring the Properties File on page 8. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 13

Chapter 3 Sample Application A sample application, SafeNetAWSS3, is included to demonstrate the data upload/download with and without SafeNet key management. Extracting the SafeNet Solution Extracting the SafeNetKMIP-AWS-S3-Integration.zip file creates a SafeNetKMIP-AWS-S3- Integration folder. This folder contains the following items: src - Source files for the samples and SafeNet integration. bin - Package and class files generated by compiling the source files. html - JavaDoc html and resource files for SafeNet integration classes. lib - Library (jar) dependencies, Amazon API, SafeNet JCE library (jar), and the properties file. UserGuide - SafeNet KMIP and Amazon S3 Integration Guide. readme.txt - Instructions to use the SafeNet solution. Using the Sample Application 1 Add the lib and bin folder to the CLASSPATH environment variable. For example, set CLASSPATH=%CLASSPATH%;"D:\SafeNetKMIP-AWS-S3 Integration\lib\*;D:SafeNetKMIP-AWS-S3 Integration\bin"; 2 Set the properties file IngrianNAE.properties. For details, refer to Updating the Properties File on page 13. 3 Use the sample SafeNetAWSS3 with the -kmip parameter to run Amazon S3 encryption client with KeySecure. 4 Use the sample SafeNetAWSS3 with the -keyfile parameter to run Amazon S3 encryption client without KeySecure. 5 Use the sample SafeNetAWSS3 with the -cipherdownload parameter to download cipher object from Amazon S3. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 14

Using SafeNetAWSS3 Use SafeNetAWSS3 to upload and download data from Amazon S3 using Amazon S3 encryption client or SafeNet KeySecure. Symmetric keys can also be created on and imported to KeySecure using SafeNetAWSS3. Uploading Data Using Amazon S3 Encryption Client To upload data to Amazon S3, execute the following command: java SafeNetAWSS3 -keyfile <keyfilename> -upload <bucketname> <bucketkey> <uploadfilename> <keyfilename>: Name and path of the file containing the encryption material. <bucketkey>: Key of an existing bucket on Amazon S3. <uploadfilename>: Name and path for the file to be uploaded. Downloading Data Using Amazon S3 Encryption Client To download data from Amazon S3, execute the following command: java SafeNetAWSS3 -keyfile <keyfilename> -download <bucketname> <bucketkey> <downloadfilename> <keyfilename>: Name and path of the file containing the encryption material. <bucketkey>: Key of an existing bucket on Amazon S3. <downloadfilename>: Name and path for the file to be downloaded. Uploading Data to Amazon S3 Using KeySecure To upload data to Amazon S3, execute the following command: java SafeNetAWSS3 -kmip <keyname> -upload <bucketname> <bucketkey> <uploadfilename> <keyname>: Key name present on KeySecure. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 15

<bucketkey>: Key of an existing bucket on Amazon S3. <uploadfilename>: Name and path for the file to be uploaded. Downloading Data from Amazon S3 Using KeySecure To download data from Amazon S3, execute the following command: java SafeNetAWSS3 -kmip <keyname> -download <bucketname> <bucketkey> <downloadfilename> <keyname>: Key name present on KeySecure. <bucketkey>: Key of an existing bucket on Amazon S3. <downloadfilename>: Name and path for the file to be downloaded. Creating Symmetric Keys on KeySecure To create a symmetric key, execute the following command: java SafeNetAWSS3 -kmip -createsymkey <keyname> <keysize> <keyname>: Name for the symmetric key to be created. <keysize>: Size for the key. Importing Symmetric Keys to KeySecure To import a symmetric key, execute the following command: java SafeNetAWSS3 -kmip -importsymkey <keyname> <keysize> <filename> <keyname>: Name of the symmetric key to be imported. <keysize>: Size of the key. <filename>: Path to the file containing the symmetric key to be imported. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 16

Exporting Symmetric Keys from KeySecure To export a symmetric key, execute the following command: java SafeNetAWSS3 -kmip -exportsymkey <keyname> <filename> <keyname>: Name of the symmetric key to be exported. <filename>: Path to the file containing the symmetric key to be exported. Use Cases This section describes how data is uploaded to and downloaded from Amazon S3 in various real life scenarios. Use Case 1 This use case describes how data is uploaded to and downloaded from Amazon S3 using Amazon S3 encryption client without using SafeNet integration. 1. Uploading Data Using Amazon S3 Encryption Client This use case describes how the data is uploaded to Amazon S3 without using SafeNet solution. To upload data to Amazon S3, execute the following command: java SafeNetAWSS3 -keyfile -<keyfilename> -upload <bucketname> <bucketkey> <uploadfilename> <keyfilename>: Name and path of the file containing the encryption material. <bucketkey>: Key of an existing bucket on Amazon S3. <uploadfilename>: Name and path of the file to be uploaded. 2. Downloading Data Using Amazon S3 Encryption Client This use case describes how the data is downloaded from Amazon S3 without using SafeNet solution. To download data from Amazon S3, execute the following command: java SafeNetAWSS3 -keyfile <keyfilename> -download <bucketname> <bucketkey> <downloadfilename> SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 17

<keyfilename>: Name and path of the file containing the encryption material. <bucketkey>: Key of an existing bucket on Amazon S3. <downloadfilename>: Name and path of the file to be downloaded. Use Case 2 This use case describes how data is uploaded to and downloaded from Amazon S3 using SafeNet solution when the key is created on KeySecure. 1. Creating Symmetric Key on KeySecure To create a symmetric key on KeySecure using SafeNet solution, execute the following command: java SafeNetAWSS3 -kmip -createsymkey <keyname> <keysize> <keyname>: Name for the symmetric key to be created. <keysize>: Size for the key. 2. Uploading Data on Amazon S3 Using KeySecure This use case describes how the data is uploaded to Amazon S3 using SafeNet solution. To upload data to Amazon S3, execute the following command: java SafeNetAWSS3 -kmip <keyname> -upload <bucketname> <bucketkey> <uploadfilename> <bucketkey>: Key of an existing bucket on Amazon S3. <uploadfilename>: Name and path for the file to be uploaded. <keyname>: Key name present on KeySecure. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 18

3. Downloading Data from Amazon S3 Using KeySecure This use case describes how the data is downloaded from Amazon S3 using SafeNet solution. To download data from Amazon S3, execute the following command: java SafeNetAWSS3 -kmip <keyname> -download <bucketname> <bucketid> <downloadfilename> <keyname>: Key name present on KeySecure. <bucketkey>: Key of an existing bucket on Amazon S3. <downloadfilename>: Name and path for the file to be downloaded. Use Case 3 This use case describes how the data is uploaded to amazon S3 using Amazon S3 encryption client and downloaded from Amazon S3 using SafeNet s solution. 1. Uploading Data Using Amazon S3 Encryption Client This use case describes how the data is uploaded to Amazon S3 without using SafeNet solution. To upload data to Amazon S3, execute the following command: java SafeNetAWSS3 -keyfile <keyfilename> -upload <bucketname> <bucketkey> <uploadfilename> <keyfilename>: Name and path of the file containing the encryption material. <bucketkey>: Key of an existing bucket on Amazon S3. <uploadfilename>: Name and path of the file to be uploaded. 2. Importing Symmetric Key to KeySecure To import a symmetric key to KeySecure, execute the following command: java SafeNetAWSS3 -kmip -importsymkey <keyname> <keysize> <filename> <keyname>: Name of the symmetric key to be imported. <keysize>: Size of the key. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 19

<filename>: Path to the file containing the symmetric key to be imported. 3. Downloading Data from Amazon S3 Using KeySecure This use case describes how the data is downloaded from Amazon S3 using SafeNet solution. To download data from Amazon S3 using SafeNet solution, execute the following command: java SafeNetAWSS3 -kmip <keyname> -download <bucketname> <bucketkey> <downloadfilename> <keyname>: Key name present on KeySecure. <bucketkey>: Key of an existing bucket on Amazon S3. <downloadfilename>: Name and path for the file to be downloaded. Use Case 4 This use case describes how the data is uploaded to Amazon S3 using SafeNet solution and downloaded from Amazon S3 using Amazon S3 encryption client. 1. Uploading Data to Amazon S3 Using KeySecure This use case describes how the data is uploaded to Amazon S3 using SafeNet solution. To upload data to Amazon S3 using SafeNet solution, execute the following command: java SafeNetAWSS3 -kmip <keyname> -upload <bucketname> <bucketkey> <uploadfilename> <keyname>: Key name present on KeySecure. <bucketkey>: Key of an existing bucket on Amazon S3. <uploadfilename>: Name and path for the file to be uploaded. 2. Exporting Symmetric Key from KeySecure To export symmetric key from KeySecure, execute the following command: java SafeNetAWSS3 -exportsymkey <keyname> <filename> SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 20

<keyname>: Name of the symmetric key to be exported. <filename>: Path to the file containing the symmetric key to be exported. 3. Downloading Data Using Amazon S3 Encryption Client This use case describes how the data is downloaded from Amazon S3 without using SafeNet solution. To download data from Amazon S3, execute the following command: java SafeNetAWSS3 -keyfile <keyfilename> -download <bucketname> <bucketkey> <downloadfilename> <keyfilename>: Name and path of the file containing the encryption material. <bucketkey>: Key of an existing bucket on Amazon S3. <downloadfilename>: Name and path of the file to be downloaded. SAFENET KMIP AND AMAZON S3 INTEGRATION GUIDE 21