Encryption in SAS 9.3, Second Edition - CiteSeerX

98
Encryption in SAS ® 9.3 Second Edition SAS ® Documentation

Transcript of Encryption in SAS 9.3, Second Edition - CiteSeerX

Encryption in SAS® 9.3Second Edition

SAS® Documentation

The correct bibliographic citation for this manual is as follows: SAS Institute Inc 2012. Encryption in SAS® 9.3, Second Edition. Cary, NC: SASInstitute Inc.

Encryption in SAS® 9.3, Second Edition

Copyright © 2012, SAS Institute Inc., Cary, NC, USA

All rights reserved. Produced in the United States of America.

For a hardcopy book: No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means,electronic, mechanical, photocopying, or otherwise, without the prior written permission of the publisher, SAS Institute Inc.

For a Web download or e-book: Your use of this publication shall be governed by the terms established by the vendor at the time you acquire thispublication.

The scanning, uploading, and distribution of this book via the Internet or any other means without the permission of the publisher is illegal andpunishable by law. Please purchase only authorized electronic editions and do not participate in or encourage electronic piracy of copyrightedmaterials. Your support of others' rights is appreciated.

U.S. Government Restricted Rights Notice: Use, duplication, or disclosure of this software and related documentation by the U.S. government issubject to the Agreement with SAS Institute and the restrictions set forth in FAR 52.227–19, Commercial Computer Software-Restricted Rights(June 1987).

SAS Institute Inc., SAS Campus Drive, Cary, North Carolina 27513.

1st electronic book, August 2012

SAS® Publishing provides a complete selection of books and electronic products to help customers use SAS software to its fullest potential. Formore information about our e-books, e-learning products, CDs, and hard-copy books, visit the SAS Publishing Web site atsupport.sas.com/publishing or call 1-800-727-3228.

SAS® and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and othercountries. ® indicates USA registration.

Other brand and product names are registered trademarks or trademarks of their respective companies.

Contents

About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vWhat's New in Encryption in SAS 9.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixRecommended Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

PART 1 Encryption in SAS 9.3 1

Chapter 1 • Technologies for Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Encryption: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3FIPS 140-2 Standards Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Providers of Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Encryption Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Encryption: Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Encryption: Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Accessibility Features in SAS Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Encrypting ODS Generated PDF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Chapter 2 • SAS System Options for Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Chapter 3 • PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Overview: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Concepts: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Syntax: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Examples: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Chapter 4 • Encryption Technologies: Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41SAS/SECURE for SAS/CONNECT: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42SASProprietary for SAS/SHARE: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42SSL for a SAS/CONNECT UNIX Spawner: Example . . . . . . . . . . . . . . . . . . . . . . . . . 43SSL for a SAS/CONNECT Windows Spawner: Example . . . . . . . . . . . . . . . . . . . . . . . 45SSL for SAS/SHARE under UNIX: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47SSL for SAS/SHARE under Windows: Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48SAS/SECURE for the IOM Bridge: Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50SSH Tunnel for SAS/CONNECT: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51SSH Tunnel for SAS/SHARE: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52SSL on a z/OS Spawner on a SAS/CONNECT Server: Example . . . . . . . . . . . . . . . . . 53SSL for SAS/SHARE under z/OS: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

PART 2 Installing and Configuring SSL 57

Chapter 5 • Installing and Configuring SSL under UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59SSL under UNIX: System and Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 59Building FIPS 140-2 Capable OpenSSL for UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Setting Up Digital Certificates for SSL under UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Converting between PEM and DER File Formats for SSL . . . . . . . . . . . . . . . . . . . . . . 65

Chapter 6 • Installing and Configuring SSL under Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67SSL under Windows: System and Software Requirements . . . . . . . . . . . . . . . . . . . . . . 67FIPS 140-2 Capable SSL for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Setting Up Digital Certificates for SSL under Windows . . . . . . . . . . . . . . . . . . . . . . . . 68Converting between PEM and DER File Formats for SSL . . . . . . . . . . . . . . . . . . . . . . 71

Chapter 7 • Installing and Configuring SSL under z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73SSL under z/OS: System and Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 73Setting Up Digital Certificates for SSL under z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

iv Contents

About This Book

Syntax Conventions for the SAS Language

Overview of Syntax Conventions for the SAS LanguageSAS uses standard conventions in the documentation of syntax for SAS languageelements. These conventions enable you to easily identify the components of SASsyntax. The conventions can be divided into these parts:

• syntax components

• style conventions

• special characters

• references to SAS libraries and external files

Syntax ComponentsThe components of the syntax for most language elements include a keyword andarguments. For some language elements, only a keyword is necessary. For otherlanguage elements, the keyword is followed by an equal sign (=).

keywordspecifies the name of the SAS language element that you use when you write yourprogram. Keyword is a literal that is usually the first word in the syntax. In a CALLroutine, the first two words are keywords.

In the following examples of SAS syntax, the keywords are the first words in thesyntax:

CHAR (string, position)CALL RANBIN (seed, n, p, x);ALTER (alter-password)BEST w.REMOVE <data-set-name>

In the following example, the first two words of the CALL routine are the keywords:

CALL RANBIN(seed, n, p, x)

The syntax of some SAS statements consists of a single keyword without arguments:

DO;... SAS code ...

v

END;

Some system options require that one of two keyword values be specified:

DUPLEX | NODUPLEX

argumentspecifies a numeric or character constant, variable, or expression. Arguments followthe keyword or an equal sign after the keyword. The arguments are used by SAS toprocess the language element. Arguments can be required or optional. In the syntax,optional arguments are enclosed between angle brackets.

In the following example, string and position follow the keyword CHAR. Thesearguments are required arguments for the CHAR function:

CHAR (string, position)

Each argument has a value. In the following example of SAS code, the argumentstring has a value of 'summer', and the argument position has a value of4:x=char('summer', 4);

In the following example, string and substring are required arguments, whilemodifiers and startpos are optional.

FIND(string, substring <,modifiers> <,startpos>

Note: In most cases, example code in SAS documentation is written in lowercase with amonospace font. You can use uppercase, lowercase, or mixed case in the code thatyou write.

Style ConventionsThe style conventions that are used in documenting SAS syntax include uppercase bold,uppercase, and italic:

UPPERCASE BOLDidentifies SAS keywords such as the names of functions or statements. In thefollowing example, the keyword ERROR is written in uppercase bold:

ERROR<message>;

UPPERCASEidentifies arguments that are literals.

In the following example of the CMPMODEL= system option, the literals includeBOTH, CATALOG, and XML:

CMPMODEL = BOTH | CATALOG | XML

italicsidentifies arguments or values that you supply. Items in italics represent user-supplied values that are either one of the following:

• nonliteral arguments In the following example of the LINK statement, theargument label is a user-supplied value and is therefore written in italics:

LINK label;

• nonliteral values that are assigned to an argument

In the following example of the FORMAT statement, the argument DEFAULT isassigned the variable default-format:

FORMAT = variable-1 <, ..., variable-nformat><DEFAULT = default-format>;

vi About This Book

Items in italics can also be the generic name for a list of arguments from which youcan choose (for example, attribute-list). If more than one of an item in italics can beused, the items are expressed as item-1, ..., item-n.

Special CharactersThe syntax of SAS language elements can contain the following special characters:

=an equal sign identifies a value for a literal in some language elements such assystem options.

In the following example of the MAPS system option, the equal sign sets the valueof MAPS:

MAPS = location-of-maps

< >angle brackets identify optional arguments. Any argument that is not enclosed inangle brackets is required.

In the following example of the CAT function, at least one item is required:

CAT (item-1 <, ..., item-n>)

|a vertical bar indicates that you can choose one value from a group of values. Valuesthat are separated by the vertical bar are mutually exclusive.

In the following example of the CMPMODEL= system option, you can choose onlyone of the arguments:

CMPMODEL = BOTH | CATALOG | XML

...an ellipsis indicates that the argument or group of arguments following the ellipsiscan be repeated. If the ellipsis and the following argument are enclosed in anglebrackets, then the argument is optional.

In the following example of the CAT function, the ellipsis indicates that you canhave multiple optional items:

CAT (item-1 <, ..., item-n>)

'value' or “value”indicates that an argument enclosed in single or double quotation marks must have avalue that is also enclosed in single or double quotation marks.

In the following example of the FOOTNOTE statement, the argument text isenclosed in quotation marks:

FOOTNOTE <n> <ods-format-options 'text' | “text”>;

;a semicolon indicates the end of a statement or CALL routine.

In the following example each statement ends with a semicolon: data namegame;length color name $8; color = 'black'; name = 'jack'; game =trim(color) || name; run;

Syntax Conventions for the SAS Language vii

References to SAS Libraries and External FilesMany SAS statements and other language elements refer to SAS libraries and externalfiles. You can choose whether to make the reference through a logical name (a libref orfileref) or use the physical filename enclosed in quotation marks. If you use a logicalname, you usually have a choice of using a SAS statement (LIBNAME or FILENAME)or the operating environment's control language to make the association. Severalmethods of referring to SAS libraries and external files are available, and some of thesemethods depend on your operating environment.

In the examples that use external files, SAS documentation uses the italicized phrasefile-specification. In the examples that use SAS libraries, SAS documentation uses theitalicized phrase SAS-library. Note that SAS-library is enclosed in quotation marks:

infile file-specification obs = 100;libname libref 'SAS-library';

viii About This Book

What's New in Encryption in SAS9.3

Overview

FIPS 140-2 is a standard that defines the security requirements that must be satisfied bya cryptographic module used in a security system protecting unclassified informationwithin IT systems. In SAS 9.3, enhancements have been made to support this standard ofsecurity. SAS/SECURE and SSL now comply with the FIPS 140-2 standard. See “FIPS140-2 Standards Compliance” on page 4 for more information.

General Enhancements

• SAS/SECURE now supports FIPS 140-2 encryption. See “FIPS 140-2 StandardsCompliance” on page 4 for details.

• Secure Sockets Layer (SSL) now supports FIPS 140-2 encryption. See “SecureSockets Layer (SSL) ” on page 7 for details.

• New option ENCRYPTFIPS specifies that encryption services will use FIPS 140-2validated algorithms. When specified, a new INFO message is written at server start-up. Refer to “ENCRYPTFIPS System Option” on page 15 for details.

• The process for downloading SSL libraries has changed. See “Secure Sockets Layer(SSL) ” on page 7 for details.

• If using the FIPS 140-2 standard for security, the algorithm used for hashingpasswords will be SHA-256. The MD5 algorithm will continue to be used for allother security technologies.

• Encoded passwords are now supported for SAS data sets.

ix

x Encryption in SAS

Recommended Reading

Here is the recommended reading list for this title:

• SAS/CONNECT User's Guide

• SAS/SHARE User's Guide

• SAS Statements: Reference

• SAS System Options: Reference

• Base SAS Procedures Guide

• SAS Language Reference: Concepts

• Communications Access Methods for SAS/CONNECT and SAS/SHARE

• SAS XML LIBNAME Engine: User's Guide

• SAS Companion that is specific to your operating environment

• Configuration Guide for SAS® 9.3 Foundation for Microsoft® Windows® for x64

• Configuration Guide for SAS® 9.3 Foundation for Microsoft®Windows®

• Configuration Guide for SAS® 9.3 Foundation for z/OS®

• Configuration Guide for SAS® 9.3 Foundation for UNIX® Environments

For a complete list of SAS publications, go to support.sas.com/bookstore. If you havequestions about which titles you need, please contact a SAS Publishing SalesRepresentative:

SAS Publishing SalesSAS Campus DriveCary, NC 27513-2414Phone: 1-800-727-3228Fax: 1-919-677-8166E-mail: [email protected] address: support.sas.com/bookstore

xi

xii Recommended Reading

Part 1

Encryption in SAS 9.3

Chapter 1Technologies for Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Chapter 2SAS System Options for Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Chapter 3PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Chapter 4Encryption Technologies: Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1

2

Chapter 1

Technologies for Encryption

Encryption: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

FIPS 140-2 Standards Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Providers of Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4SASProprietary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4SAS/SECURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Secure Sockets Layer (SSL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7SSH (Secure Shell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Encryption Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Encryption: Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Encryption: Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Accessibility Features in SAS Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Encrypting ODS Generated PDF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Encryption: OverviewThere is a great need to ensure the confidentiality of business transactions over anetwork between an enterprise and its consumers, between enterprises, and within anenterprise. SAS products and third-party strategies for protecting data and credentials(user IDs and passwords) are exchanged in a networked environment. This process ofprotecting data is called encryption. Encryption is the transformation of intelligible data(plaintext) into an unintelligible form (ciphertext) by means of a mathematical process.The ciphertext is translated back to plaintext when the appropriate key that is necessaryfor decrypting (unlocking) the ciphertext is applied.

SAS offers two classes of encryption strength:

• If you don't have SAS/SECURE, only the SASProprietary algorithm is available.SASProprietary uses 32-bit fixed encoding and is appropriate only for preventingaccidental exposure of information. SASProprietary is licensed with Base SASsoftware and is available in all deployments.

• If you have SAS/SECURE, you can use an industry standard encryption algorithminstead of the SASProprietary algorithm. SAS/SECURE is an add-on product that islicensed separately.

Encryption helps to protect information on-disk and in-transit as follows:

3

• Over-the-wire encryption protects data while in transit. Passwords in transit to andfrom SAS servers are encrypted or encoded.

• On-disk encryption protects data at rest. Passwords in configuration files and themetadata are encrypted or encoded. Configuration files and metadata repository datasets are also host protected.

FIPS 140-2 Standards ComplianceIn SAS 9.3, FIPS 140-2 standards are supported for SAS/SECURE and SSL Encryptiontechnologies. FIPS 140-2 is not a technology, but a definition of what securitymechanisms should do. FIPS 140-2 is the current version of the Federal InformationProcessing Standardization 140 (FIPS 140) publication. FIPS 140-2 is a standard thatdescribes US Federal government requirements that IT products should meet forSensitive,but Unclassified (SBU) use. The standard defines the security requirementsthat must be satisfied by a cryptographic module used in a security system protectingunclassified information within IT systems. FIPS 140-2 requires organizations that dobusiness with a government agency or department that requires the exchange of sensitiveinformation, to ensure that they meet the FIPS 140-2 security standards. In addition, thefinancial community increasingly specifies FIPS 140-2 as a procurement requirement.

The National Institute of Standards and Technology (NIST) issued the FIPS 140Publication Series to coordinate the requirements and standards for cryptographymodules that include both hardware and software components. Federal agencies anddepartments can validate that the module in use is covered by an existing FIPS 140-1 orFIPS 140-2 certificate that specifies the exact module name, hardware, software,firmware, and/or applet version numbers. Read more about Security Requirements forCryptographic Modules at http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf.

There are four levels of security: from Level 1 (lowest) to Level 4 (highest).The securityrequirements cover areas related to the secure design and implementation of acryptographic module. These areas include basic design and documentation, moduleinterfaces, authorized roles and services, physical security, software security, operatingsystem security, key management, cryptographic algorithms, electromagneticinterference/electromagnetic compatibility (EMI/EMC), and self-testing.

For installation and configuration details about FIPS 140-2, see “SAS/SECURE FIPS140-2 Compliant Installation and Configuration” on page 6, “SSL Installation andConfiguration” on page 8, and “ENCRYPTFIPS System Option” on page 15.

Providers of Encryption

SASProprietary

SASProprietary OverviewSASProprietary is a fixed encoding algorithm that is included with Base SAS software.It requires no additional SAS product licenses. The SAS proprietary algorithm is strongenough to protect your data from casual viewing. SASProprietary provides a mediumlevel of security. SAS/SECURE and SSL provide a high level of security.

4 Chapter 1 • Technologies for Encryption

SASProprietary System RequirementsSAS supports SASProprietary under these operating environments:

• UNIX

• Windows

• z/OS

SASProprietary Installation and ConfigurationSASProprietary is part of Base SAS. Separate installation is not required.

For an example of configuring and using SASProprietary in your environment, see “SASProprietary for SAS/SHARE: Example ” on page 42.

SAS/SECURE

SAS/SECURE OverviewSAS/SECURE software is an add-on product that provides industry standard encryptioncapabilities in addition to the SASProprietary algorithm. SAS/SECURE requires alicense, and it must be installed on each computer that runs a Foundation SAS client anda server that will use the encryption algorithms.

Note: SAS/SECURE provides encryption of data in transit. It does not provideauthentication or authorization capabilities.

In SAS 9.3, you can instruct SAS/SECURE to use only services that are part of theFederal Information Processing Standard (FIPS) 140-2 standard. When SAS systemoption ENCRYPTFIPS is configured, SAS/SECURE uses only FIPS 140-2 validatedencryption and hashing algorithms. Refer to “FIPS 140-2 Standards Compliance” onpage 4 and “ENCRYPTFIPS System Option” on page 15 for details.

SAS/SECURE supports industry-standard encryption algorithms. This affectscommunications among SAS servers and between SAS servers and SAS desktop clients.On UNIX and z/OS, SAS/SECURE supports AES (Advanced Encryption Standard),AES predecessors (DES and TDES), and the RC4 and RC2 algorithms. On Windows,SAS/SECURE supports algorithms that are included in the Microsoft CryptographicAPI. Refer to “Encryption Algorithms” on page 10 for more information aboutencryption algorithms supported for use with SAS/SECURE.

SAS/SECURE enables you to provide stronger protection for stored login passwordsthan is provided by SASProprietary encoding. This affects passwords that are includedin configuration files. AES is the encryption algorithm used with the FIPS 140-2 enabledSAS/SECURE software. In the PWENCODE procedure, the METHOD option supportsthe SAS003 value (AES) only if you have SAS/SECURE. Refer to the Chapter 3,“PWENCODE Procedure,” on page 33 for details.

SAS/SECURE also provides greater protection for stored internal account passwords.The SHA-256 hashing algorithm is used with FIPS 140-2 enabled software. Otherwise,the MD5 hashing algorithm is used.

CAUTION:In SAS 9.2, the password hash list was created using the MD5 hash algorithm.In SAS 9.3 when you are configuring your system to be FIPS 140-2 compliant,you will need to reset your hash password five times to clear all previouslystored passwords. When you reset the passwords, they will use the SHA-256hashing algorithm.

Providers of Encryption 5

SAS/SECURE System RequirementsSAS supports SAS/SECURE under these operating environments:

• UNIX

• Windows

• z/OS

Export Restrictions for SAS/SECUREFor software licensing and delivery purposes, SAS/SECURE is the product within theSAS System. For U.S. export licensing purposes, SAS designates each product based onthe encryption algorithms and the product's functional capability. SAS/SECURE 9.3 isavailable to most commercial and government users inside and outside the U.S.However, some countries (for example, Russia, China, and France) have importrestrictions on products that contain encryption, and the U.S. prohibits the export ofencryption software to specific embargoed or restricted destinations.

SAS/SECURE for UNIX and z/OS includes the following encryption algorithms:

• RC2 using up to 128-bit keys

• RC4 using up to 128-bit keys

• DES using up to 56-bit keys

• TripleDES using up to 168-bit keys

• AES using 256-bit keys

SAS/SECURE for Windows uses the encryption algorithms that are available inMicrosoft CryptoAPI. The level of the SAS/SECURE encryption algorithms underWindows depends on the level of the encryption support in Microsoft CryptoAPI underWindows.

SAS/SECURE Installation and ConfigurationSAS/SECURE must be installed on the SAS server computer, the client computer, andpossibly other computers, depending on the SAS software that requires encryption. Forinstallation details, see the SAS documentation for the software that uses encryption.

For examples of configuring and using SAS/SECURE in your environment, see “Encryption Technologies: Examples” on page 42.

SAS/SECURE FIPS 140-2 Compliant Installation and ConfigurationTo verify that SAS/SECURE is FIPS 140-2 compliant, configure SAS system optionENCRYPTFIPS at system invocation. Refer to “ENCRYPTFIPS System Option” onpage 15 for details.

In the FIPS 140-2 compliant mode, AES is the only supported encryption algorithm.Refer to “NETENCRYPTALGORITHM System Option” on page 18 for details.

The SHA-256 hashing algorithm is used instead of the MD5 hashing algorithm forpassword protection in the FIPS 140-2 compliant mode. Changing your internal accountpasswords will generate new passwords using the SHA-256 algorithm.

Note: The data transferred between servers and clients prior to SAS 9.3 use hashingpasswords that are not FIPS 140-2 compliant. Therefore, you will only be able toconnect servers and clients that are enabled for FIPS 140-2 and SAS 9.3.

There is a Microsoft issue that needs attention before configuring FIPS on MicrosoftWindows 2003 servers.

6 Chapter 1 • Technologies for Encryption

Services that run on a computer that uses Microsoft Windows Server 2003 mightnot recognize Windows environment variable changes. To resolve this issue,perform these steps:

1. Go to the Microsoft support Web site and apply the fix located at http://support.microsoft.com/kb/887693 and to find detailed information aboutthe Windows 2003 Server issue.

2. Run the configuration file that specifies the ENCRYPTFIPS system option.

For examples of configuring and using SAS/SECURE in your environment, see “Encryption Technologies: Examples” on page 42.

Secure Sockets Layer (SSL)

Secure Sockets Layer (SSL) OverviewSSL is an abbreviation for Secure Sockets Layer, which is a protocol that providesnetwork data privacy, data integrity, and authentication. Developed by NetscapeCommunications, SSL uses encryption algorithms that include RC2, RC4, DES,TripleDES, AES and others.

In addition to providing encryption services, SSL performs client and serverauthentication, and it uses message authentication codes to ensure data integrity. SSL issupported by Internet Explorer and Firefox. Many Web sites use the protocol to protectconfidential user information, such as credit card numbers. The SSL protocol isapplication independent and allows protocols such as HTTP, FTP, and Telnet to betransparently layered above it. SSL is optimized for HTTP. SSL includes software thatwas developed by the OpenSSL Project for use in the OpenSSL Toolkit. For moreinformation see www.OpenSSL.org.

Note: Transport Layer Security (TLS) is the successor to SSL V3.0. The InternetEngineering Task Force (IETF) took SSL V3.0, which was the de facto standard,modified it, renamed it TLS V1.0, and adopted it as a standard.

In SAS 9.3, you can configure SSL to run in FIPS 140-2 compliant mode. For anoverview of FIPS 140-2 compliancy, refer to “FIPS 140-2 Standards Compliance” onpage 4. FIPS 140-2 compliant SSL supports the AES encryption algorithm and theSHA-256 hashing algorithm. Refer to “ENCRYPTFIPS System Option” on page 15and “SSL Installation and Configuration” on page 8 for configuration instructions.

SSL System RequirementsSAS 9 and later releases support SSL V2.0, SSL V3.0 and TLS V1.0.

SAS supports SSL under these operating environments:

• UNIX

• Windows

• z/OS

Note: The SAS/SECURE SSL software is included in the SAS installation softwareonly for countries that allow the importation of encryption software.

Note: The FIPS-2 encryption standard is not supported on z/OS.

SSL ConceptsThe following concepts are fundamental to understanding SSL:

Providers of Encryption 7

Certification Authorities (CAs)Cryptography products provide security services by using digital certificates, public-key cryptography, private-key cryptography, and digital signatures. Certificationauthorities (CAs) create and maintain digital certificates, which also help preserveconfidentiality.

Various commercial CAs, such as VeriSign and Thawte, provide competitiveservices for the e-commerce market. You can also develop your own CA by usingproducts from companies such as RSA Security and Microsoft or from the Open-Source Toolkit OpenSSL.

Note: z/OS provides the PACDCERT command and PKI Services for implementinga CA.

From a trusted CA, members of an enterprise can obtain digital certificates tofacilitate their e-business needs. The CA provides a variety of ongoing services tothe business client that include handling digital certificate requests, issuing digitalcertificates, and revoking digital certificates.

Public and Private KeysPublic-key cryptography uses a public and a private key pair. The public key can beknown by anyone, so anyone can send a confidential message. The private key isconfidential and known only to the owner of the key pair, so only the owner can readthe encrypted message. The public key is used primarily for encryption, but it canalso be used to verify digital signatures. The private key is used primarily fordecryption, but it can also be used to generate a digital signature.

Digital SignaturesA digital signature affixed to an electronic document or to a network data packet islike a personal signature that concludes a hand-written letter or that validates a creditcard transaction. Digital signatures are a safeguard against fraud. A unique digitalsignature results from using a private key to encrypt a message digest. Receipt of adocument that contains a digital signature enables the receiver to verify the source ofthe document. Electronic documents can be verified if you know where thedocument came from, who sent it, and when it was sent. Another form of verificationcomes from Message Authentication Codes (MAC), which ensure that a documenthas not been changed since it was signed. A MAC is attached to a document toindicate the document's authenticity. Receipt of the document that contains a MACenables the receiver (who also has the secret key) to know that the document isauthentic.

Digital CertificatesDigital certificates are electronic documents that ensure the binding of a public keyto an individual or an organization. Digital certificates provide protection from fraud.

Usually, a digital certificate contains a public key, a user's name, and an expirationdate. It also contains the name of the Certification Authority (CA) that issued thedigital certificate and a digital signature that is generated by the CA. The CA'svalidation of an individual or an organization allows that individual or organizationto be accepted at sites that trust the CA.

SSL Installation and ConfigurationThe instructions that you use to install and configure SSL at your site depend on whetheryou use UNIX, Windows, or z/OS. See the appropriate details:

• “Installing and Configuring SSL under UNIX” on page 59

• “Installing and Configuring SSL under Windows” on page 67

• “Installing and Configuring SSL under z/OS” on page 73

8 Chapter 1 • Technologies for Encryption

For examples of configuring and using SSL in your environment, see “EncryptionTechnologies: Examples” on page 42.

SSH (Secure Shell)

SSH (Secure Shell) OverviewSSH is an abbreviation for Secure Shell, which is a protocol that enables users to accessa remote computer via a secure connection. SSH is available through variouscommercial products and as freeware. OpenSSH is a free version of the SSH protocolsuite of network connectivity tools.

Although SAS software does not directly support SSH functionality, you can use thetunneling feature of SSH to enable data to flow between a SAS client and a SAS server.Port forwarding is another term for tunneling. The SSH client and SSH server act asagents between the SAS client and the SAS server, tunneling information via the SASclient's port to the SAS server's port.

SSH System RequirementsOpenSSH supports SSH protocol versions 1.3, 1.5, and 2.0.

SAS supports SSH under these operating environments:

• UNIX

• Windows

• z/OS

For additional resources, see

• www.openssh.com

• www.ssh.com

• ssh(1) UNIX manual page.

Under z/OS, the IBM Ported Tools for z/OS Program Product must be installed forOpenSSH support. Seewww-03.ibm.com/servers/eserver/zseries/zos/unix/port_tools.html.

SSH Tunneling ProcessAn inbound request from a SAS client to a SAS server is shown as follows:

Figure 1.1 SSH Tunneling Process

SAS Client SAS Server

SSH Server

4321

5555

Client Computer Server Computer

SSH Tunnel

SSH Client

1 3

2

1. The SAS client passes its request to the SSH client's port 5555.

Providers of Encryption 9

2. The SSH client forwards the SAS client's request to the SSH server via an encryptedtunnel.

3. The SSH server forwards the SAS client's request to the SAS server via port 4321.

Outbound, the SAS server's reply to the SAS client's request flows from the SAS serverto the SSH server. The SSH server forwards the reply to the SSH client, which passes itto the SAS client.

SSH Tunneling: Process for Installation and SetupSSH software must be installed on the client and server computers. Exact details aboutinstalling SSH software at the client and the server depend on the particular brand andversion of the software that is used. See the installation instructions for your SSHsoftware.

The process for setting up an SSH tunnel consists of the following steps:

• SSH tunneling software is installed on the client and server computers. Details abouttunnel configuration depend on the specific SSH product that is used.

• The SSH client is started as an agent between the SAS client and the SAS server.

• The components of the tunnel are set up. The components are a “listen” port, adestination computer, and a destination port. The SAS client will access the listenport, which gets forwarded to the destination port on the destination computer. SSHestablishes an encrypted tunnel that indirectly connects the SAS client to the SASserver.

For examples of setting up and using a tunnel, see “SSH Tunnel for SAS/CONNECT:Example ” on page 51 and “SSH Tunnel for SAS/SHARE: Example ” on page 52.

Encryption AlgorithmsThe following encryption algorithms are used by SASProprietary and SAS/SECURE:

RC2is a block cipher that encrypts data in blocks of 64 bits. A block cipher is anencryption algorithm that divides a message into blocks and encrypts each block.The RC2 key size ranges from 8 to 256 bits. SAS/SECURE uses a configurable keysize of 40 or 128 bits. (The NETENCRYPTKEYLEN system option is used toconfigure the key length.) The RC2 algorithm expands a single message by amaximum of 8 bytes. RC2 is a proprietary algorithm developed by RSA DataSecurity, Inc.

Note: RC2 is supported in SAS/SECURE and SSL.

RC4is a stream cipher. A stream cipher is an encryption algorithm that encrypts data 1byte at a time. The RC4 key size ranges from 8 to 2048 bits. SAS/SECURE uses aconfigurable key size of 40 or 128 bits. (The NETENCRYPTKEYLEN systemoption is used to configure the key length.) RC4 is a proprietary algorithm developedby RSA Data Security, Inc.

Note: RC4 is supported in SAS/SECURE and SSL.

DES (Data Encryption Standard)is a block cipher that encrypts data in blocks of 64 bits by using a 56-bit key. Thealgorithm expands a single message by a maximum of 8 bytes. DES was originally

10 Chapter 1 • Technologies for Encryption

developed by IBM but is now published as a U.S. Government Federal InformationProcessing Standard (FIPS 46-3).

Note: DES is supported in SAS/SECURE and SSL.

TripleDESis a block cipher that encrypts data in blocks of 64 bits. TripleDES executes the DESalgorithm on a data block three times in succession by using a single, 56-bit key.This has the effect of encrypting the data by using a 168-bit key. TripleDES expandsa single message by a maximum of 8 bytes. TripleDES is defined in the AmericanNational Standards Institute (ANSI) X9.52 specification.

Note: TripleDES is supported in SAS/SECURE and SSL.

SASProprietaryis a cipher that provides basic fixed encoding encryption services under all operatingenvironments that are supported by SAS. Included in Base SAS, SASProprietarydoes not require additional SAS product licenses. The algorithm expands a singlemessage to approximately one-third by using 32-bit encoding.

Note: SASProprietary is supported only by the SASProprietary encryption provider.

AES (Advanced Encryption Standard)is a block cipher that encrypts data in blocks of 128 bits by using a 256-bit key. AESexpands a single message by a maximum of 16 bytes. Based on its DES predecessor,AES has been adopted as the encryption standard by the U.S. Government, and isone of the most popular algorithms that is used in symmetric key cryptography. AESis published as a U.S. Government Federal Information Processing Standard (FIPS197).

Note: AES is supported in SAS/SECURE and SSL. AES is the only algorithm thatmeets the FIPS 140-2 standard.

Here is a summary of the encryption algorithms, by operating environment:

Table 1.1 Encryption Algorithms Supported by Operating Environments

Operating Environments

Encryption Algorithms UNIX Windows z/OS

SASProprietary X X X

RC2 X X X

RC4 X X X

DES X X X

TripleDES X X X

SSL X X X

AES X X X

Encryption Algorithms 11

Encryption: ComparisonThe following table compares the features of the encryption technologies:

Table 1.2 Summary of SASProprietary, SAS/SECURE, SSL, and SSH Features

Features SASProprietary SAS/SECURE SSL SSH

License required No Yes No No

Encryption andauthentication

Encryption only Encryption only Encryptionandauthentication

Encryptiononly

Encryption level Medium High High High

Algorithmssupported

SASProprietaryfixed encoding

RC2, RC4,DES,TripleDES, AES

RC2, RC4,DES,TripleDES,AES

Productdependent

Installation required No (part of BaseSAS)

Yes Yes Yes

Operatingenvironmentssupported

UNIX

Windows

z/OS

UNIX

Windows

z/OS

UNIX

Windows

z/OS

UNIX

Windows

z/OS

SAS version support 8 and later 8 and later 9 and later 8.2 and later

Encryption: ImplementationThe implementation of the installed encryption technology depends on the environmentthat you work in. If you work in a SAS enterprise intelligence infrastructure, encryptionmight be transparent to you because it has already been configured into your site'soverall security plan. After the encryption technology has been installed, the site systemadministrator configures the encryption method (level of encryption) to be used in allclient/server data exchanges. All enterprise activity uses the chosen level of encryption,by default. For an example, see “SAS/SECURE for the IOM Bridge: Examples ” onpage 50.

If you work in a SAS session on a client computer that exchanges data with a SASserver, you will specify SAS system options that implement encryption for the durationof the SAS session. If you connect a SAS/CONNECT client to a spawner, you willspecify encryption options in the spawner start-up command. For details about SASsystem options, see Chapter 2, “SAS System Options for Encryption,” on page 15. Forexamples, see “Encryption Technologies: Examples” on page 42.

12 Chapter 1 • Technologies for Encryption

Accessibility Features in SAS ProductsFor information about accessibility for any of the products mentioned in this book, seethe documentation for that product. If you have questions or concerns about theaccessibility of SAS products, send e-mail to [email protected]

Encrypting ODS Generated PDF FilesYou can use ODS to generate PDF output. When these PDF files are not passwordprotected, any user can use Acrobat to view and edit the PDF files. You can encrypt andpassword-protect your PDF output files by specifying the PDFSECURITY systemoption. Two levels of security are available: 40-bit (low) and 128-bit (high). With eitherof these settings, a password will be required to open a PDF file that has been generatedwith ODS.

You can find information about using the ODS PRINTER and PDF statements in theSAS Output Delivery System: User's Guide. The following table lists the PDF systemoptions that are available to restrict or allow users' ability to access, assemble, copy, ormodify ODS PDF files. Other SAS system options control whether the user can fill informs and set the print resolution. These system options are documented in SAS SystemOptions: Reference.

Table 1.3 PDF System Options

Task System Option

Specifies whether text and graphics from PDFdocuments can be read by screen readers for thevisually impaired

PDFACCESS | NOPDFACCESS

Controls whether PDF documents can beassembled

PDFASSEMBLY | NOPDFASSEMBLY

Controls whether PDF document comments canbe modified

PDFCOMMENT | NOPDFCOMMENT

Controls whether the contents of a PDF documentcan be changed

PDFCONTENT | NOPDFCONTENT

Controls whether text and graphics from a PDFdocument can be copied

PDFCOPY | NOPDFCOPY

Controls whether PDF forms can be filled in PDFFILLIN | NOPDFFILLIN

Specifies the password to use to open a PDFdocument and the password used by a PDFdocument owner

PDFPASSWORD

Controls the resolution used to print the PDFdocument

PDFPRINT

Encrypting ODS Generated PDF Files 13

Task System Option

Controls the printing permissions for PDFdocuments

PDFSECURITY

Note: The SAS/SECURE SSL software is included in the SAS installation softwareonly for countries that allow the importation of encryption software.

14 Chapter 1 • Technologies for Encryption

Chapter 2

SAS System Options forEncryption

Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15ENCRYPTFIPS System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15NETENCRYPT System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17NETENCRYPTALGORITHM System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18NETENCRYPTKEYLEN= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20SSLCALISTLOC= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21SSLCERTISS= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22SSLCERTLOC= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23SSLCERTSERIAL= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24SSLCERTSUBJ= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25SSLCLIENTAUTH System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25SSLCRLCHECK System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26SSLCRLLOC= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27SSLPKCS12LOC= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28SSLPKCS12PASS= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29SSLPVTKEYLOC= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29SSLPVTKEYPASS= System Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Dictionary

ENCRYPTFIPS System OptionSpecifies that the SAS/SECURE and SSL security services use FIPS 140-2 validated algorithms.

Client: optional

Server: optional

Valid in: SAS invocation, configuration file, SAS/CONNECT spawner command line

Categories: Communications: NetworkingSystem Administration: Security

PROC OPTIONSGROUP=

CommunicationsSECURITY

Default: NOENCRYPTFIPS

Restriction: The ENCRYPTFIPS option is not supported on z/OS for SSL

15

Operatingenvironment:

UNIX, Windows, z/OS

See: NETENCRYPTALGORITHM

SyntaxENCRYPTFIPS

Syntax DescriptionENCRYPTFIPS

specifies that SAS/SECURE and SSL services are using FIPS 140-2 compliantencryption algorithms. When this option is specified, a new INFO message is writtenat server start-up to indicate that FIPS encryption is enabled.Restriction: When the ENCRYPTFIPS option is specified, the

NETENCRYPTALGORITHM system option must be set to AES or SSL. If adifferent algorithm is specified, an error message is output.

Notes:When configuring the ENCRYPTFIPS option on a Microsoft Windows 2003server, refer to “SAS/SECURE FIPS 140-2 Compliant Installation andConfiguration” on page 6 for instructions on resolving the environment variableissue.The ENCRYPTFIPS option is configured only at start-up. However, you can seethat the option is configured when you view the OPTIONS statement or the SASSystem Options window.

NOENCRYPTFIPSspecifies that the SAS/SECURE and SSL security services are not limited to FIPS140-2 verified algorithms.

DetailsThe ENCRYPTFIPS option limits the services provided by SAS/SECURE and SSL tothose services that are part of the FIPS 140-2 specification. Read more about SecurityRequirements for Cryptographic Modules at http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf. Also refer to Refer to “FIPS140-2 Standards Compliance” on page 4 for an overview of FIPS 140-2 standards.

There is an interaction between the ENCRYPTFIPS option and theNETENCRYPTALGORITHM option. Only the AES or the SSL algorithm is supportedfor FIPS 140-2 encryption. An error is logged when an unsupported algorithm isspecified.

ERROR: When SAS option ENCRYPTFIPS is ON the option value for SAS option ERROR: NETENCRYPTALGORITHM must be a single value of AES or SSL. ERROR: Invalid option value. NOTE: Unable to initialize the options subsystem.

When the ENCRYPTFIPS option is specified, a message is logged informing the userthat FIPS 140-2 encryption is enabled. This log can be viewed in the log for SASwindow at the DEBUG and or TRACE levels. Refer to “Administering Logging for SASConnect” in SAS/CONNECT User's Guide and “The SAS Log” in SAS LanguageReference: Concepts.

16 Chapter 2 • SAS System Options for Encryption

This is an example of a TRACE log that is generated when ENCRYPTFIPS is enabled.

2010-12-15T08:37:12,725 TRACE [00000008] :App.tk.eam sasiom1 - Attempting FIPS mode init

This is an example of a DEBUG log generated when ENCRYPTFIPS is enabled.

2010-12-15T08:37:12,731 DEBUG [00000008] :App.tk.eam sasiom1 - FIPS 140-2 mode is enabled

Examples

Example 1Here is an example of configuring the ENCRYPTFIPS option on UNIX:

-encryptfips -netencryptalgorithm aes;

Example 2Here is an example of configuring the ENCRYPTFIPS option on z/OS:

encryptfips netecryptalgorithm="aes"

Example 3Here is an example of configuring the ENCRYPTFIPS option on Windows:

-encryptfips-netencralg "AES"

See Also• “NETENCRYPTALGORITHM System Option” on page 18

• “FIPS 140-2 Standards Compliance” on page 4

NETENCRYPT System OptionSpecifies whether client/server data transfers are encrypted.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Default: NONETENCRYPT

Operatingenvironment:

UNIX, Windows, z/OS

See: NETENCRYPTALGORITHM

Example: “SAS/SECURE for SAS/CONNECT: Example ” on page 42

NETENCRYPT System Option 17

SyntaxNETENCRYPT | NONETENCRYPT

Syntax DescriptionNETENCRYPT

specifies that encryption is required.

NONETENCRYPTspecifies that encryption is not required, but is optional.

DetailsThe default for this option specifies that encryption is used if theNETENCRYPTALGORITHM option is set and if both the client and the server arecapable of encryption. If encryption algorithms are specified but either the client or theserver is incapable of encryption, then encryption is not performed.

Encryption might not be supported at the client or at the server in these situations:

• You are using a release of SAS (prior to SAS 8) that does not support encryption.

• Your site (the client or the server) does not have a security software productinstalled.

• You specified encryption algorithms that are incompatible in SAS sessions on theclient and the server.

NETENCRYPTALGORITHM System OptionSpecifies the algorithm or algorithms to be used for encrypted client/server data transfers.

Client: optional

Server: required

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Alias: NETENCRALG

Operatingenvironment:

UNIX, Windows, z/OS

See: “NETENCRYPT System Option” on page 17, “ENCRYPTFIPS System Option” onpage 15

Examples: “SSL for a SAS/CONNECT Windows Spawner: Example ” on page 45“SSL on a z/OS Spawner on a SAS/CONNECT Server: Example” on page 53“SSL for a SAS/CONNECT UNIX Spawner: Example ” on page 43

18 Chapter 2 • SAS System Options for Encryption

SyntaxNETENCRYPTALGORITHM algorithm | (“algorithm-1”... “algorithm-n”)

Syntax Descriptionalgorithm | (“algorithm–1”... “algorithm-n”)

specifies the algorithm or algorithms that can be used for encrypting data that istransferred between a client and a server across a network. When you specify two ormore encryption algorithms, use a space or a comma to separate them, and enclosethe algorithms in parentheses.

The following algorithms can be used:

• RC2

• RC4

• DES

• TripleDES

• SASProprietary

• SSL

• AES

Restrictions:The SSL option is not applicable to the Integrated Object Model (IOM) metadata,OLAP, and table servers.When ENCRYPTFIPS is specified, only the SSL or the AES algorithm can bespecified. Otherwise, an error message is output.

DetailsThe NETENCRYPTALGORITHM option must be specified in the server session.

Use this option to specify one or more encryption algorithms that you want to use toprotect the data that is transferred across the network. If more than one algorithm isspecified, the client session negotiates the first specified algorithm with the serversession. If the client session does not support that algorithm, the second algorithm isnegotiated, and so on.

If either the client or the server session specifies the NETENCRYPT option (whichmakes encryption mandatory) but a common encryption algorithm cannot be negotiated,the client cannot connect to the server.

If the NETENCRYPTALGORITHM option is specified in the server session only, thenthe server's values are used to negotiate the algorithm selection. If the client sessionsupports only one of multiple algorithms that are specified in the server session, theclient can connect to the server.

There is an interaction between either NETENCRYPT or NONETENCRYPT and theNETENCRYPTALGORITHM option.

NETENCRYPTALGORITHM System Option 19

Table 2.1 Client/Server Connection Outcomes

Server Settings Client Settings Connection Outcome

NONETENCRYPT

NETENCRALGalg

No settings If the client is capable ofencryption, the client/serverconnection will be encrypted.Otherwise, the connection willnot be encrypted.

NETENCRYPT

NETENCRALGalg

No settings If the client is capable ofencryption, the client/serverconnection will be encrypted.Otherwise, the client/serverconnection will fail.

No settings NONETENCRYPT

NETENCRALGalg

A client/server connection willnot be encrypted.

No settings NETENCRYPT

NETENCRALGalg

A client/server connection willfail.

NETENCRYPT orNONETENCRYPT

NETENCRALGalg–1

NETENCRALGalg-2 Regardless of whetherNETENCRYPT orNONETENCRYPT isspecified, a client/serverconnection will fail.

ExampleIn the following example, the client and the server specify different values for theNETENCRYPTALGORITHM option.

The client specifies two algorithms in the following OPTIONS statement:

options netencryptalgorithm=(rc2 tripledes);

The server specifies three algorithms and requires encryption in the following OPTIONSstatement:

options netencrypt netencryptalgorithm=(ssl des tripledes);

The client and the server negotiate an algorithm that they share in common, TripleDES,for encrypting data transfers.

NETENCRYPTKEYLEN= System OptionSpecifies the key length that is used by the encryption algorithm for encrypted client/server data transfers.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

20 Chapter 2 • SAS System Options for Encryption

PROC OPTIONSGROUP=

Communications

Alias: NETENCRKEY=

Default: 0

Operatingenvironment:

UNIX, Windows, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE, “Starting the Windows Spawner” in Chapter 9of Communications Access Methods for SAS/CONNECT and SAS/SHARE, and“Options to Start the z/OS Spawner” in Chapter 7 of Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

SyntaxNETENCRYPTKEYLEN= 0 | 40 | 128

Syntax Description0

specifies that the maximum key length that is supported at both the client and theserver is used.

40specifies a key length of 40 bits for the RC2 and RC4 algorithms.

128specifies a key length of 128 bits for the RC2 and RC4 algorithms. If either the clientor the server does not support 128-bit encryption, the client cannot connect to theserver.

DetailsThe NETENCRYPTKEYLEN= option supports only the RC2 and RC4 algorithms. TheSASProprietary, DES, TripleDES, SSL, and AES algorithms are not supported.

By default, if you try to connect a computer that is capable of only a 40-bit key length toa computer that is capable of both a 40-bit and a 128-bit key length, the connection ismade using the lesser key length. If both computers are capable of 128-bit key lengths, a128-bit key length is used.

Using longer keys consumes more CPU cycles. If you do not need a high level ofencryption, set NETENCRYPTKEYLEN=40 to decrease CPU usage.

SSLCALISTLOC= System OptionSpecifies the location of digital certificates for trusted certification authorities (CA).

Client: required

Server: optional

SSLCALISTLOC= System Option 21

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE and “Options to Start the z/OS Spawner” inChapter 7 of Communications Access Methods for SAS/CONNECT andSAS/SHARE.

Examples: “SSL for a SAS/CONNECT UNIX Spawner: Example ” on page 43“SSL on a z/OS Spawner on a SAS/CONNECT Server: Example” on page 53

SyntaxSSLCALISTLOC=“file–path”

Syntax Description“file-path”

specifies the location of a file that contains the digital certificates for the trustedcertification authority (CA).

DetailsThe SSLCALISTLOC= option identifies the certification authority that SSL should trust.This option is required at the client because at least one CA must be trusted in order tovalidate a server's digital certificate. This option is required at the server only if theSSLCLIENTAUTH option is also specified at the server.

The CA list must be PEM-encoded (base64). Under z/OS, the file must be formatted asASCII and must reside in a UNIX file system.

SSLCERTISS= System OptionSpecifies the name of the issuer of the digital certificate that SSL should use.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

Windows

22 Chapter 2 • SAS System Options for Encryption

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the Windows Spawner” in Chapter 9 of Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

Example: “SSL for SAS/SHARE under Windows: Examples ” on page 48

SyntaxSSLCERTISS=“issuer-of-digital-certificate”

Syntax Description“issuer-of-digital-certificate”

specifies the name of the issuer of the digital certificate that should be used by SSL.

DetailsThe SSLCERTISS= option is used with the SSLCERTSERIAL= option to uniquelyidentify a digital certificate from the Microsoft Certificate Store.

Note: You can also use the SSLCERTSUBJ= option to identify a digital certificateinstead of using the SSLCERTISS= and the SSLCERTSERIAL= options.

SSLCERTLOC= System OptionSpecifies the location of the digital certificate that is used for authentication.

Client: optional

Server: required

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE and “Options to Start the z/OS Spawner” inChapter 7 of Communications Access Methods for SAS/CONNECT andSAS/SHARE.

Examples: “SSL for a SAS/CONNECT UNIX Spawner: Example ” on page 43“SSL on a z/OS Spawner on a SAS/CONNECT Server: Example” on page 53“SSL for SAS/SHARE under UNIX: Example ” on page 47

SSLCERTLOC= System Option 23

SyntaxSSLCERTLOC=“file-path”

Syntax Description“file-path”

specifies the location of a file that contains a digital certificate.

DetailsThe SSLCERTLOC= option is required for a server. It is required at the client only if theSSLCLIENTAUTH option is specified at the server.

If you want the spawner to locate the appropriate digital certificate, you must specifyboth the -SSLCERTLOC and -SSLPVTKEYLOC options in the -SASCMD script.

The certificate must be PEM-encoded (base64). Under z/OS, the file must be formattedas ASCII and must reside in a UNIX file system.

SSLCERTSERIAL= System OptionSpecifies the serial number of the digital certificate that SSL should use.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

Windows

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the Windows Spawner” in Chapter 9 of Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

Example: “SSL for SAS/SHARE under Windows: Examples ” on page 48

SyntaxSSLCERTSERIAL=“serial-number”

Syntax Description“serial-number”

specifies the serial number of the digital certificate that should be used by SSL.

24 Chapter 2 • SAS System Options for Encryption

DetailsThe SSLCERTSERIAL= option is used with the SSLCERTISS= option to uniquelyidentify a digital certificate from the Microsoft Certificate Store.

Note: You can also use the SSLCERTSUBJ= option to identify a digital certificateinstead of using the SSLCERTISS= and the SSLCERTSERIAL= options.

SSLCERTSUBJ= System OptionSpecifies the subject name of the digital certificate that SSL should use.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

Windows

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the Windows Spawner” in Chapter 9 of Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

Example: “SSL for a SAS/CONNECT Windows Spawner: Example ” on page 45

SyntaxSSLCERTSUBJ=“subject-name”

Syntax Description“subject-name”

specifies the subject name of the digital certificate that SSL should use.

DetailsThe SSLCERTSUBJ= option is used to search for a digital certificate from the MicrosoftCertificate Store.

Note: You can also use the SSLCERTISS= and the SSLCERTSERIAL= options insteadof the SSLCERTSUBJ= option to identify a digital certificate.

SSLCLIENTAUTH System OptionSpecifies whether a server should perform client authentication.

Server: optional

SSLCLIENTAUTH System Option 25

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, Windows, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE, “Starting the Windows Spawner” in Chapter 9of Communications Access Methods for SAS/CONNECT and SAS/SHARE, and“Options to Start the z/OS Spawner” in Chapter 7 of Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

SyntaxSSLCLIENTAUTH | NOSSLCLIENTAUTH

Syntax DescriptionSSLCLIENTAUTH

specifies that the server should perform client authentication.

NOSSLCLIENTAUTHspecifies that the server should not perform client authentication.

DetailsServer authentication is always performed, but the SSLCLIENTAUTH option enables auser to control client authentication. This option is valid only when used on a server.

SSLCRLCHECK System OptionSpecifies whether a Certificate Revocation List (CRL) is checked when a digital certificate is validated.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, Windows, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methods

26 Chapter 2 • SAS System Options for Encryption

for SAS/CONNECT and SAS/SHARE, “Starting the Windows Spawner” in Chapter 9of Communications Access Methods for SAS/CONNECT and SAS/SHARE, and“Options to Start the z/OS Spawner” in Chapter 7 of Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

SyntaxSSLCRLCHECK | NOSSLCRLCHECK

Syntax DescriptionSSLCRLCHECK

specifies that CRLs are checked when digital certificates are validated.

NOSSLCRLCHECKspecifies that CRLs are not checked when digital certificates are validated.

DetailsA Certificate Revocation List (CRL) is published by a Certification Authority (CA) andcontains a list of revoked digital certificates. The list contains only the revoked digitalcertificates that were issued by a specific CA.

The SSLCRLCHECK option is required at the server only if the SSLCLIENTAUTHoption is also specified at the server. Because clients check server digital certificates, thisoption is relevant for the client.

SSLCRLLOC= System OptionSpecifies the location of a Certificate Revocation List (CRL).

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASconfiguration, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE and “Options to Start the z/OS Spawner” inChapter 7 of Communications Access Methods for SAS/CONNECT andSAS/SHARE.

SyntaxSSLCRLLOC=“file-path”

SSLCRLLOC= System Option 27

Syntax Description“file-path”

specifies the location of a file that contains a Certificate Revocation List (CRL).

DetailsThe SSLCRLLOC= option is required only when the SSLCRLCHECK option isspecified.

SSLPKCS12LOC= System OptionSpecifies the location of the PKCS #12 encoding package file.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE and “Options to Start the z/OS Spawner” inChapter 7 of Communications Access Methods for SAS/CONNECT andSAS/SHARE.

Examples: “SSL on a z/OS Spawner on a SAS/CONNECT Server: Example” on page 53“SSL for SAS/SHARE under z/OS: Example ” on page 55

SyntaxSSLPKCS12LOC=“file-path”

Syntax Description“file-path”

specifies the location of the PKCS #12 DER encoding package file that contains thecertificate and the private key.z/OS specifics: If you run in a z/OS operating environment, this file must be in the

UNIX file system. The OpenSSL library cannot read MVS data sets.

DetailsIf the SSLPKCS12LOC= option is specified, the PKCS #12 DER encoding packagemust contain both the certificate and private key. The SSLCERTLOC= andSSLPVTKEYLOC= options will be ignored.

28 Chapter 2 • SAS System Options for Encryption

You must specify both the -SSLPKCS12LOC and the -SSLPKCS12PASS options in the-SASCMD script if you want the spawner to locate the appropriate digital certificate.

SSLPKCS12PASS= System OptionSpecifies the password that SSL requires for decrypting the private key.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE and “Options to Start the z/OS Spawner” inChapter 7 of Communications Access Methods for SAS/CONNECT andSAS/SHARE.

Examples: “SSL on a z/OS Spawner on a SAS/CONNECT Server: Example” on page 53“SSL for SAS/SHARE under z/OS: Example ” on page 55

SyntaxSSLPKCS12PASS=password

Syntax Descriptionpassword

specifies the password that SSL requires in order to decrypt the PKCS #12 DERencoding package file. The PKCS #12 DER encoding package is stored in the filethat is specified by using the SSLPKCS12LOC= option.

DetailsThe SSLPKCS12PASS= option is required only when the PKCS #12 DER encodingpackage is encrypted. The z/OS RACDCERT EXPORT command always encryptspackage files when exporting the certificate and the private key.

You must specify both the -SSLPKCS12LOC and the -SSLPKCS12PASS options in the-SASCMD script if you want the spawner to locate the appropriate digital certificate.

SSLPVTKEYLOC= System OptionSpecifies the location of the private key that corresponds to the digital certificate.

SSLPVTKEYLOC= System Option 29

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE and “Options to Start the z/OS Spawner” inChapter 7 of Communications Access Methods for SAS/CONNECT andSAS/SHARE.

Examples: “SSL for a SAS/CONNECT UNIX Spawner: Example ” on page 43“SSL for SAS/SHARE under UNIX: Example ” on page 47

SyntaxSSLPVTKEYLOC=“file-path”

Syntax Description“file-path”

specifies the location of the file that contains the private key that corresponds to thedigital certificate that was specified by using the SSLCERTLOC= option.

DetailsThe SSLPVTKEYLOC= option is required at the server only if the SSLCERTLOC=option is also specified at the server.

The key must be PEM-encoded (base64). Under z/OS, the file must be formatted asASCII and must reside in a UNIX file system.

You must specify both the -SSLCERTLOC and the -SSLPVTKEYLOC options in the -SASCMD script if you want the spawner to locate the appropriate digital certificate.

SSLPVTKEYPASS= System OptionSpecifies the password that SSL requires for decrypting the private key.

Client: optional

Server: optional

Valid in: Configuration file, OPTIONS statement, SAS System Options window, SASinvocation, SAS/CONNECT spawner command line

Category: Communications: Networking and Encryption

30 Chapter 2 • SAS System Options for Encryption

PROC OPTIONSGROUP=

Communications

Operatingenvironment:

UNIX, z/OS

Tip: When additional encryption options are specified on the spawner command line, theoptions must be included in the -SASCMD value. The spawner does notautomatically pass the encryption values. For detailed information about -SASCMD,see “Starting the UNIX Spawner” in Chapter 8 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE and “Options to Start the z/OS Spawner” inChapter 7 of Communications Access Methods for SAS/CONNECT andSAS/SHARE.

Examples: “SSL for a SAS/CONNECT UNIX Spawner: Example ” on page 43“SSL for SAS/SHARE under UNIX: Example ” on page 47

SyntaxSSLPVTKEYPASS=“password”

Syntax Description“password”

specifies the password that SSL requires in order to decrypt the private key. Theprivate key is stored in the file that is specified by using the SSLPVTKEYLOC=option.

DetailsThe SSLPVTKEYPASS= option is required only when the private key is encrypted.OpenSSL performs key encryption.

Note: No SAS system option is available to encrypt private keys.

SSLPVTKEYPASS= System Option 31

32 Chapter 2 • SAS System Options for Encryption

Chapter 3

PWENCODE Procedure

Overview: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Concepts: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Using Encoded Passwords in SAS Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Encoding versus Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Syntax: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34PROC PWENCODE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Examples: PWENCODE Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Example 1: Encoding a Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Example 2: Using an Encoded Password in a SAS Program . . . . . . . . . . . . . . . . . . 36Example 3: Saving an Encoded Password to the Paste Buffer . . . . . . . . . . . . . . . . . 38Example 4: Specifying an Encoding Method for a Password . . . . . . . . . . . . . . . . . 39

Overview: PWENCODE ProcedureThe PWENCODE procedure enables you to encode passwords. Encoded passwords canbe used in place of plaintext passwords in SAS programs that access relational databasemanagement systems (RDBMSs) and various servers, such as SAS/CONNECT servers,SAS/SHARE servers, and SAS Integrated Object Model (IOM) servers (such as the SASMetadata Server).

Concepts: PWENCODE Procedure

Using Encoded Passwords in SAS ProgramsWhen a password is encoded with PROC PWENCODE, the output string includes a tagthat identifies the string as having been encoded. An example of a tag is {sas001}. Thetag indicates the encoding method. SAS servers and SAS/ACCESS engines recognizethe tag and decode the string before using it. Encoding a password enables you to writeSAS programs without having to specify a password in plaintext.

Note: PROC PWENCODE passwords can contain up to a maximum of 512 characters,which include alphanumeric characters, spaces, and special characters. Data setpasswords, however, must follow SAS naming rules. For information about SAS

33

naming rules, see “Rules for Most SAS Names” in Chapter 3 of SAS LanguageReference: Concepts.

The encoded password is never written to the SAS log in plain text. Instead, eachcharacter of the password is replaced by an X in the SAS log.

Encoding versus EncryptionPROC PWENCODE uses encoding to disguise passwords. With encoding, one characterset is translated to another character set through some form of table lookup. Encryption,by contrast, involves the transformation of data from one form to another through the useof mathematical operations and, usually, a “key” value. Encryption is generally moredifficult to break than encoding. PROC PWENCODE is intended to prevent casual, non-malicious viewing of passwords. You should not depend on PROC PWENCODE for allyour data security needs; a determined and knowledgeable attacker can decode theencoded passwords.

Syntax: PWENCODE ProcedurePROC PWENCODE IN='password' <OUT=fileref> <METHOD=encoding-method>;

Statement Task Example

“PROCPWENCODEStatement”

Encode a password Ex. 1, Ex. 2,Ex. 3, Ex. 4

PROC PWENCODE StatementEncodes a password.

Examples: “Example 1: Encoding a Password” on page 36“Example 2: Using an Encoded Password in a SAS Program” on page 36“Example 3: Saving an Encoded Password to the Paste Buffer” on page 38“Example 4: Specifying an Encoding Method for a Password” on page 39

SyntaxPROC PWENCODE IN='password' <OUT=fileref> <METHOD=encoding-method>;

Required ArgumentIN='password'

specifies the password to encode. The password can contain up to a maximum of 512characters, which include alphanumeric characters, spaces, and special characters.

Note: Data set passwords must follow SAS naming rules. If the IN=passwordfollows SAS naming rules, it can also be used for SAS data sets. For information

34 Chapter 3 • PWENCODE Procedure

about SAS naming rules, see “Rules for Most SAS Names” in Chapter 3 of SASLanguage Reference: Concepts.

If the password contains embedded single or double quotation marks, use thestandard SAS rules for quoting character constants. These rules can be found in theSAS Constants in Expressions chapter of SAS Language Reference: Concepts.

Note: Each character of the encoded password is replaced by an X when written tothe SAS log.

See:“Example 1: Encoding a Password” on page 36“Example 2: Using an Encoded Password in a SAS Program” on page 36“Example 3: Saving an Encoded Password to the Paste Buffer” on page 38

Optional ArgumentsOUT=fileref

specifies a fileref to which the output string is to be written. If the OUT= option isnot specified, the output string is written to the SAS log.

Note: The global macro variable

_PWENCODE

is set to the value that is written to the OUT= fileref or to the value that isdisplayed in the SAS log.

See: “Example 2: Using an Encoded Password in a SAS Program” on page 36

METHOD=encoding-methodspecifies the encoding method. Here are the supported values for encoding-method:

Table 3.1 Supported Encoding Methods

Encoding Method DescriptionSupported Data EncryptionAlgorithm

sas001 Uses base64 to encodepasswords.

None

sas002, which canalso be specified assasenc

Uses a 32-bit key to encodepasswords. This is thedefault.

SASProprietary, which is includedin SAS software.

sas003 Uses a 256-bit key toencode passwords.

AES (Advanced EncryptionStandard), which is supported inSAS/SECURE.

Note: SAS/SECURE is an add-on product that requires a separate license. Fordetails about SAS/SECURE, the SASProprietary algorithm, and the AESalgorithm, see Encryption in SAS.

If the METHOD= option is omitted, the default encoding method is used. When theFIPS 140-2 compliance option, -encryptfips, is specified, the encoding defaultmethod is sas003. For all other cases, encoding method sas002 is the defaultmethod used.

PROC PWENCODE Statement 35

Examples: PWENCODE Procedure

Example 1: Encoding a PasswordFeatures: IN= argument

Details

This example shows a simple case of encoding a password and writing the encodedpassword to the SAS log.

Program

proc pwencode in='my password';run;

Program Description

Encode the password.

proc pwencode in='my password';run;

Log

Note that each character of the password is replaced by an X in the SAS log.

19 proc pwencode in=XXXXXXXXXXXXX;20 run;

{SAS002}DBCC571245AD0B31433834F80BD2B99E16B3C969

NOTE: PROCEDURE PWENCODE used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

Example 2: Using an Encoded Password in a SAS ProgramFeatures: IN= argument

OUT= option

Details

This example illustrates the following:

36 Chapter 3 • PWENCODE Procedure

• encoding a password and saving it to an external file

• reading the encoded password with a DATA step, storing it in a macro variable, andusing it in a SAS/ACCESS LIBNAME statement

Program 1: Encoding the Password

filename pwfile'external-filename'

proc pwencode in='mypass1' out=pwfile;run;

Program Description

Declare a fileref.

filename pwfile'external-filename'

Encode the password and write it to the external file. The OUT= option specifieswhich external fileref the encoded password will be written to.

proc pwencode in='mypass1' out=pwfile;run;

Program 2: Using the Encoded Password

filename pwfile'external-filename';

options symbolgen;

data _null_;infile pwfile truncover;input line :$50.;call symputx('dbpass',line);run;

libname x odbc dsn=SQLServer user=testuser password="&dbpass";

Program Description

Declare a fileref for the encoded-password file.

filename pwfile'external-filename';

Set the SYMBOLGEN SAS system option. The purpose of this step is to show that theactual password cannot be revealed, even when the macro variable that contains theencoded password is resolved in the SAS log. This step is not required in order for theprogram to work properly.

options symbolgen;

Read the file and store the encoded password in a macro variable. The DATA stepstores the encoded password in the macro variable DBPASS.

Example 2: Using an Encoded Password in a SAS Program 37

data _null_;infile pwfile truncover;input line :$50.;call symputx('dbpass',line);run;

Use the encoded password to access a DBMS. You must use double quotation marks(“ ”) so that the macro variable resolves properly.

libname x odbc dsn=SQLServer user=testuser password="&dbpass";

Log

1 filename pwfile 'external-filename';2 options symbolgen;3 data _null_;4 infile pwfile truncover;5 input line :$50.;6 call symputx('dbpass',line);7 run;

NOTE: The infile PWFILE is: Filename=external-filename RECFM=V,LRECL=256,File Size (bytes)=4, Last Modified=12Apr2012:13:23:49, Create Time=12Apr2012:13:23:39

NOTE: 1 record was read from the infile PWFILE. The minimum record length was 4. The maximum record length was 4.NOTE: DATA statement used (Total process time): real time 0.57 seconds cpu time 0.04 seconds89 libname x odbcSYMBOLGEN: Macro variable DBPASS resolves to {sas002}bXlwYXNzMQ==9 ! dsn=SQLServer user=testuser password="&dbpass";NOTE: Libref X was successfully assigned as follows: Engine: ODBC Physical Name: SQLServer

Example 3: Saving an Encoded Password to the Paste BufferFeatures: IN= argument

OUT= option

Other features: FILENAME statement with CLIPBRD access method

DETAILS

This example saves an encoded password to the paste buffer. You can then paste theencoded password into another SAS program or into the password field of anauthentication dialog box.

38 Chapter 3 • PWENCODE Procedure

Program

filename clip clipbrd;

proc pwencode in='my password' out=clip;run;

Program Description

Declare a fileref with the CLIPBRD access method.

filename clip clipbrd;

Encode the password and save it to the paste buffer. The OUT= option saves theencoded password to the fileref that was declared in the previous statement.

proc pwencode in='my password' out=clip;run;

Log

Note that each character of the password is replaced by an X in the SAS log.

2425 filename clip clipbrd;26 proc pwencode in=XXXXXXXXXXXXX out=clip;27 run;

NOTE: PROCEDURE PWENCODE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

Example 4: Specifying an Encoding Method for a PasswordFeatures: METHOD= argument

Details

This example shows a simple case of encoding a password using the sas003 encodingmethod and writing the encoded password to the SAS log.

Program

proc pwencode in='my password' method=sas003;run;

Program Description

Encode the password.

proc pwencode in='my password' method=sas003;run;

Example 4: Specifying an Encoding Method for a Password 39

Log

Note that each character of the password is replaced by an X in the SAS log.

8 proc pwencode in=XXXXXXXXXXXXX method=sas003;29 run;

{SAS003}08D7B93810D390916F615117D71B2639B4BE

NOTE: PROCEDURE PWENCODE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

40 Chapter 3 • PWENCODE Procedure

Chapter 4

Encryption Technologies:Examples

SAS/SECURE for SAS/CONNECT: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42SAS/CONNECT Client under UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42SAS/CONNECT Server under UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

SASProprietary for SAS/SHARE: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42SAS/SHARE Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42SAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

SSL for a SAS/CONNECT UNIX Spawner: Example . . . . . . . . . . . . . . . . . . . . . . . 43Start-up of a UNIX Spawner on a SAS/CONNECT Server . . . . . . . . . . . . . . . . . . . 43Connection of a SAS/CONNECT Client to a UNIX Spawner . . . . . . . . . . . . . . . . . 44

SSL for a SAS/CONNECT Windows Spawner: Example . . . . . . . . . . . . . . . . . . . . 45Start-up of a Windows Spawner on a Single-User SAS/CONNECT Server . . . . . . 45Connection of a SAS/CONNECT Client to a Windows

Spawner on a SAS/CONNECT Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

SSL for SAS/SHARE under UNIX: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Start-up of a Multi-UserSAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47SAS/SHARE Client Access of a SAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . 48

SSL for SAS/SHARE under Windows: Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Start-up of a Multi-UserSAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48SAS/SHARE Client Access of a SAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . 49

SAS/SECURE for the IOM Bridge: Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50IOM Bridge Encryption Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50IOM Bridge for SAS Clients: Metadata Configuration . . . . . . . . . . . . . . . . . . . . . . 50IOM Bridge for COM: Configuration in Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50IOM Bridge for Java: Configuration in Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

SSH Tunnel for SAS/CONNECT: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Start-up of a UNIX Spawner on a Single-User SAS/CONNECT Server . . . . . . . . . 51Connection of a SAS/CONNECT Client to a UNIX Spawner

on a SAS/CONNECT Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

SSH Tunnel for SAS/SHARE: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Start-up of a Multi-UserSAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52SAS/SHARE Client Access of a SAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . 52

SSL on a z/OS Spawner on a SAS/CONNECT Server: Example . . . . . . . . . . . . . . 53Start-up of a z/OS Spawner on a SAS/CONNECT Server . . . . . . . . . . . . . . . . . . . . 53Connection of a SAS/CONNECT Client to a z/OS Spawner . . . . . . . . . . . . . . . . . . 54

SSL for SAS/SHARE under z/OS: Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Start-up of a Multi-UserSAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

41

SAS/SHARE Client Access of a SAS/SHARE Server . . . . . . . . . . . . . . . . . . . . . . . 56

SAS/SECURE for SAS/CONNECT: Example

SAS/CONNECT Client under UNIXThe following statements configure the client. The NETENCRYPTALGORITHM=option specifies the use of the RC4 algorithm.

options netencryptalgorithm=rc4;options remote=unxnode comamid=tcp;signon;

SAS/CONNECT Server under UNIXThe following command starts a spawner on the computer that runs the server. The -NETENCRYPT option specifies that encryption is required for all clients that connect tothe spawner. The -NETENCRYPTALGORITHM option specifies the use of the RC4algorithm for encrypting all network data. The -SASCMD option specifies the SAS start-up command.

sastcpd -service spawner -netencrypt -netencryptalgorithm rc4 -sascmd mystartup

The spawner executes a UNIX shell script that executes the commands to start SAS.

#!/bin/ksh#________________# mystartup#________________. ~/.profilesas dmr -noterminal -comamid tcp $*

SASProprietary for SAS/SHARE: Example

SAS/SHARE ClientIn this example, the NETENCRYPTALGORITHM= option is set to SASProprietary tospecify the use of the proprietary algorithm to encrypt the data between the client and theserver. The NETENCRYPTALGORITHM= option must be set before the LIBNAMEstatement establishes the connection to the server.

options netencryptalgorithm=sasproprietary;options comamid=tcp;libname sasdata 'edc.prog2.sasdata' server=rmthost.share1;

SAS/SHARE ServerThis example shows how to set the options for encryption services on a SAS/SHAREserver. The NETENCRYPT option specifies that encryption is required by any clientthat accesses this server. The NETENCRYPTALGORITHM= option specifies that the

42 Chapter 4 • Encryption Technologies: Examples

SASProprietary algorithm be used for encryption of all data that is exchanged withconnecting clients.

options netencrypt netencryptalgorithm=sasproprietary;options comamid=tcp;proc server id=share1;run;

SSL for a SAS/CONNECT UNIX Spawner: Example

Start-up of a UNIX Spawner on a SAS/CONNECT ServerAfter digital certificates are generated for the CA, the server, and the client, and a CAtrust list for the client is created, you can start a UNIX spawner program that runs on aserver that SAS/CONNECT clients connect to.

The following example code starts the spawner using SSL encryption and specifies aprivate password that must be provided either through prompting or within a file:

% sastcpd -service unxspawn -netencryptalgorithm ssl -sslcertloc /users/server/certificates/server.pem -sslpvtkeyloc /users/server/certificates/serverkey.pem -sslpvtkeypass starbuck1-sslcalistloc /users/server/certificates/sas.pem-sascmd /users/server/command.ksh

The following table explains the SAS commands that are used to start a spawner on aSAS/CONNECT single-user server.

Table 4.1 SAS Commands and Arguments for Spawner Start-Up Tasks

SAS Commands and Arguments Function

SASTCPD Starts the spawner

-SERVICE unxspawn Specifies the spawner service (configured inthe services file)

-NETENCRYPTALGORITM SSL Specifies the SSL encryption algorithm

-SSLCERTLOC /users/server/certificates/server.pem

Specifies the file path for the location of theserver's certificate

-SSLPVTKEYLOC /users/server/certificates/serverkey.pem

Specifies the file path for the location of theserver's private key

-SSLPVTKEYPASS password Specifies the password to access the server'sprivate key

-SSLCALISTLOC /users/server/certificates/sas.pem

Specifies the CA trust list

SSL for a SAS/CONNECT UNIX Spawner: Example 43

SAS Commands and Arguments Function

-SASCMD /users/server/command.ksh Specifies the name of an executable file thatstarts a SAS session when you sign on withouta script file

In order for the UNIX spawner to locate the appropriate server digital certificate, youmust specify the -SSLCERTLOC and -SSLPVTKEYLOC or the SSLPKCS12LOC andSSLPKCS12PASS system options in the script that is specified by the -SASCMDoption.

For complete information about starting a Windows spawner, see CommunicationsAccess Methods for SAS/CONNECT and SAS/SHARE.

Here is an example of an executable file:

#!/bin/ksh#----------------------------------# mystartup#----------------------------------

. ~/.profilesas -noterminal -sslcertloc /users/server/certificates/server.pem -sslpvtkeyloc /users/server/certificates/serverkey.pem $*#------------------------------

For complete information about starting a UNIX spawner, see Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

Connection of a SAS/CONNECT Client to a UNIX SpawnerAfter a UNIX spawner is started on a SAS/CONNECT server, a SAS/CONNECT clientcan connect to it.

The following example shows how to connect a client to a spawner that is running on aSAS/CONNECT server:

options netencryptalgorithm=ssl;options sslcalistloc="/users/johndoe/certificates/cacerts.pem";%let machine=apex.server.com;signon machine.spawner user=_prompt_;

The following table explains the SAS options that are used to connect to aSAS/CONNECT server.

Table 4.2 SAS Options, Statements, and Arguments for Client Access to a SAS/CONNECTServer

SAS Options, Statements, and Arguments Client Access Tasks

NETENCRYPTALGORITHM=SSL Specifies the encryption algorithm

SSLCALISTLOC=cacerts.pem Specifies the CA trust list

SIGNON=server-ID.service Specifies the server and service to connect to

44 Chapter 4 • Encryption Technologies: Examples

SAS Options, Statements, and Arguments Client Access Tasks

USER=_PROMPT_ Prompts for the user ID and password to beused for authenticating the client to the server

The server-ID and the server's Common Name, which was specified in the server'sdigital certificate, must be identical.

For complete information about connecting to a UNIX spawner, see CommunicationsAccess Methods for SAS/CONNECT and SAS/SHARE.

SSL for a SAS/CONNECT Windows Spawner:Example

Start-up of a Windows Spawner on a Single-User SAS/CONNECTServer

After digital certificates for the CA, the server, and the client have been generated andimported into the appropriate Certificate Store, you can start a spawner program thatruns on a server that SAS/CONNECT clients connect to.

Here is an example of how to start a Windows spawner on a SAS/CONNECT server:

spawner -install -netencryptalgorithm ssl -sslcertsubj "apex.pc.com" -sascmd mysas.bat -servuser userid -servpass password

The following table shows the SAS commands that are used to start a spawner on aSAS/CONNECT single-user server.

Table 4.3 SAS Commands and Arguments for Spawner Start-Up Tasks

SAS Command and Arguments Function

SPAWNER Starts the spawner

-INSTALL Causes an instance of a spawner to beinstalled as a Windows service. Forinformation about the -INSTALL option, see“Options for the Windows Spawner” inChapter 9 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE.

-NETENCRYPTALGORITHM SSL Specifies the SSL encryption algorithm

-SSLCERTSUBJ "apex.pc.com" Specifies the subject name that is used tosearch for a certificate from the MicrosoftCertificate Store

-SASCMD mysas.bat Specifies the name of an executable file thatstarts a SAS session when you sign on withouta script file.

SSL for a SAS/CONNECT Windows Spawner: Example 45

SAS Command and Arguments Function

-SERVUSER user-ID Specifies the user-ID to be used to start thespawner and to obtain a digital certificate. The-SERVUSER and the -SERVPASS optionsare used together and must be specified whenthe spawner is installed as a service (the -INSTALL option is specified). Forinformation about the -SERVUSER option,see “Options for the Windows Spawner” inChapter 9 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE.

-SERVPASS password Specifies the password to be used to start thespawner and to obtain a digital certificate. The-SERVUSER and the -SERVPASS optionsare used together and must be specified whenthe spawner is installed as a service (the -INSTALL option is specified). Forinformation about the -SERVPASS option,see “Options for the Windows Spawner” inChapter 9 of Communications Access Methodsfor SAS/CONNECT and SAS/SHARE.

In order for the Windows spawner to locate the appropriate server digital certificate inthe Microsoft Certificate Store, you must specify the -SSLCERTSUBJ system option inthe script that is specified by the -SASCMD option. -SSLCERTSUBJ specifies thesubject name of the digital certificate that SSL should use. The subject that is assigned tothe -SSLCERTSUBJ option and the computer that is specified in the client signon mustbe identical.

Note: You can also use the SSLCERTISS= and the SSLCERTSERIAL= options insteadof the SSLCERTSUBJ= option to identify a digital certificate.

If the Windows spawner is started as a service, the -SERVPASS and -SERVUSERoptions must also be specified in the Windows spawner start-up command in order forSSL to locate the appropriate CA digital certificate.

For complete information about starting a Windows spawner, see CommunicationsAccess Methods for SAS/CONNECT and SAS/SHARE.

Connection of a SAS/CONNECT Client to a Windows Spawner on aSAS/CONNECT Server

After a spawner has been started on a SAS/CONNECT server, a SAS/CONNECT clientcan connect to it.

Here is an example of how to make a client connection to a Windows spawner that isrunning on a SAS/CONNECT server:

options comamid=tcp netencryptalgorithm=ssl;%let machine=apex.pc.com;signon machine user=_prompt_;

The computer that is specified in the client signon and the subject (the -SSLCERTSUBJoption) that is specified at the server must be identical.

The following table shows the SAS options that are used to connect to a Windowsspawner that runs on a SAS/CONNECT server.

46 Chapter 4 • Encryption Technologies: Examples

Table 4.4 SAS Options, Statements, and Arguments for Client Access to a SAS/CONNECTServer

SAS Options, Statements, and Arguments Function

COMAMID=TCP Specifies the TCP/IP access method

NETENCRYPTALGORITHM=SSL Specifies the encryption algorithm

SIGNON=server-ID Specifies which server to connect to

USER=_PROMPT_ Prompts for the user ID and password to beused for authenticating the client to the server

The server-ID and the server's Common Name, which was specified in the server'sdigital certificate, must be identical.

SSL for SAS/SHARE under UNIX: Example

Start-up of a Multi-UserSAS/SHARE ServerAfter certificates for the CA, the server, and the client have been generated, and a CAtrust list for the client has been created, you can start a SAS/SHARE server.

Here is an example of starting a secured SAS/SHARE server:

%let tcpsec=_secure_;options netencryptalgorithm=ssl;options sslcertloc="/users/johndoe/certificates/server.pem";options sslpvtkeyloc="/users/johndoe/certificates/serverkey.pem";options sslpvtkeypass="password";proc server id=shrserv authenticate=opt; run;

The following table lists the SAS option or statement that is used for each task to start aserver.

Table 4.5 SAS Options and Statements for Server Start-Up Tasks

SAS Options and Statements Server Start-Up Tasks

TCPSEC= _SECURE_ Secures the server

NETENCRALG=SSL Specifies SSL as the encryption algorithm

SSLCERTLOC=server.pem Specifies the filepath for the location of theserver's certificate

SSLPVTKEYLOC=serverkey.pem Specifies the filepath for the location of theserver's private key

SSL for SAS/SHARE under UNIX: Example 47

SAS Options and Statements Server Start-Up Tasks

SSLPVTKEYPASS="password" Specifies the password to access server's privatekey

PROC SERVERID=shrserv Starts the server

AUTHENTICATE=OPT Allow trusted users to access the server withoutauthentication.

Note: As an alternative to using the SSLPVTKEYPASS= option to protect the privatekey, you might prefer that the private key remain unencrypted, and use the filesystem permissions to prevent Read and Write access to the file that contains theprivate key. To store the private key without encrypting it, use the-NODES optionwhen requesting the certificate.

SAS/SHARE Client Access of a SAS/SHARE ServerAfter a SAS/SHARE server has been started, the client can access it.

Here is an example of how to make a client connection to a secured SAS/SHARE server:

options sslcalistloc="/users/johndoe/certificates/cacerts.pem";%let machine=apex.server.com;libname a '.' server=machine.shrserv user=_prompt_;

The following table lists the SAS options that are used to access a SAS/SHARE serverfrom a client.

Table 4.6 SAS Options and Arguments Tasks for Accessing a SAS/SHARE Server from aClient

SAS Options and Arguments Client Access Tasks

SSLCALISTLOC=cacerts.pem Specifies the CA trust list

SERVER=machine.shrserv Specifies the machine and server to connect to

USER=_PROMPT_ Prompts for the user ID and password to beused for authenticating the client to the server

The server-ID and the server's Common Name, which was specified in the server'scertificate, must be identical.

SSL for SAS/SHARE under Windows: Examples

Start-up of a Multi-UserSAS/SHARE ServerAfter certificates for the CA, the server, and the client have been generated, andimported into the appropriate certificate store, you can start a SAS/SHARE server. Hereis an example of how to start a secured SAS/SHARE server:

48 Chapter 4 • Encryption Technologies: Examples

%let tcpsec=_secure_;options comamid=tcp netencryptalgorithm=ssl;options sslcertiss="Glenn's CA";options sslcertserial="0a1dcfa3000000000015";proc server id=shrserv; run;

The following table lists the SAS option or statement that is used for each task to start aserver.

Table 4.7 SAS Options, Statements, and Arguments for Server Start-Up Tasks

SAS Options, Statements, andArguments Server Start-Up Tasks

TCPSEC= _SECURE_ Secures the server

COMAMID=TCP Specifies the TCP/IP access method

NETENCRALG=SSL Specifies SSL as the encryption algorithm

SSLCERTISS="Glenn's CA" Specifies the name of the issuer of the digitalcertificate that SSL should use

SSLCERTSERIAL="0a1dcfa3000000000015"

Specifies the serial number of the digitalcertificate that SSL should use

PROC SERVERID=shrserv; Starts the server

SAS/SHARE Client Access of a SAS/SHARE ServerAfter a SAS/SHARE server has been started, the client can access it.

Here is an example of how to make a client connection to a secured SAS/SHARE server:

options comamid=tcp;%let machine=apex.server.com;libname a '.' server=machine.shrserv user=_prompt_;

The following table lists the SAS options that are used for accessing a server from aclient.

Table 4.8 SAS Options and Arguments for Accessing a SAS/SHARE Server from a Client

SAS Options and Arguments Client Access Tasks

COMAMID=TCP Specifies the TCP/IP access method

SERVER=machine.shrserv Specifies the machine and server to connect to

USER=_PROMPT_ Prompts for the user ID and password to beused for authenticating the client to the server

SSL for SAS/SHARE under Windows: Examples 49

The server-ID and the server's Common Name, which was specified in the server'scertificate, must be identical.

SAS/SECURE for the IOM Bridge: Examples

IOM Bridge Encryption ConfigurationThe IOM Bridge for SAS clients can use SAS/SECURE to encrypt network databetween SAS and its clients.

SAS/SECURE must be installed at the SAS server and at the SAS client. SAS clientsinclude COM clients and Java clients.

You can configure encryption properties in either metadata or in code.

• “IOM Bridge for SAS Clients: Metadata Configuration” on page 50

• “IOM Bridge for COM: Configuration in Code” on page 50

• “IOM Bridge for Java: Configuration in Code” on page 51

IOM Bridge for SAS Clients: Metadata ConfigurationIn order to connect a SAS client to a SAS server, the CreateObjectByLogicalNamefunction must obtain encryption information from metadata that is stored in the metadatarepository. SAS Management Console can be used to configure encryption propertiesinto the metadata repository, as follows:

Required encryption levelIn SAS Management Console, follow this path:

<Connection> ð Options ð Advanced Options ð Encryption ð RequiredEncryption Level

Valid values for required encryption levels are as follows:

NoneNo encryption

CredentialsOnly user credentials (ID and password) are encrypted. This is the default.

EverythingAll client/server transfers, including credentials, are encrypted.

Server encryption algorithmIn SAS Management Console, follow this path:<Connection> ð Options ðAdvanced Options ð Encryption ð Server Encryption Algorithms

Valid values for server encryption algorithms are RC2, RC4, DES, TRIPLEDES,AES, and SASPROPRIETARY (the default). For more information, refer to thechapters on encryption in SAS Intelligence Platform: Security Administration Guide.

IOM Bridge for COM: Configuration in CodeWhen using the CreateObjectByServer function to connect a Windows client to a SASserver, specify the following properties in your client code in the ServerDef object:

50 Chapter 4 • Encryption Technologies: Examples

• BridgeEncryptionLevel

• BridgeEncryptionAlgorithm

Here is an example:

obServerDef.BridgeEncryptionLevel=EncryptAll;obServerDef.BridgeEncryptionAlgorithm="TripleDes";

EncryptAllcauses all data, including credentials (user IDs and passwords), to be encrypted inclient/server transfers.

TripleDesis the specific encryption algorithm to be applied to data transfers.

For a complete list of encryption values, see the SAS Object Manager class reference(sasoman.chm).

IOM Bridge for Java: Configuration in CodeWhen using the BridgeServer object to connect a Java client to a SAS server, use thefollowing functions to specify your encryption settings:

• setEncryptionContent

• setEncryptionAlgorithms

• setEncryptionPolicy

Here is an example:

obBridgeServer.setEncryptionContent(BridgeServer.ENCRYPTION_CONTENT_ALL);obBridgeServer.setEncryptionAlgorithms(BridgeServer.ENCRYPTION_ALGORITHM_TRIPLEDES);obBridgeServer.setEncryptionPolicy(BridgeServer.ENCRYPTION_POLICY_REQUIRED);

ENCRYPTION_CONTENT_ALLcauses all data, including credentials (user ID and password), to be encrypted inclient/server transfers.

ENCRYPTION_ALGORITHM_TRIPLEDESis the specific encryption algorithm to be applied to data transfers.

ENCRYPTION_POLICY_REQUIREDspecifies that encryption is required. If the server does not support encryption, theconnection fails.

See SAS Integration Technologies: Java Client Developer's Guide for information aboutthe IOM Bridge for Java.

SSH Tunnel for SAS/CONNECT: Example

Start-up of a UNIX Spawner on a Single-User SAS/CONNECT ServerHere is an example of code for starting a UNIX spawner program that runs on a serverthat SAS/CONNECT clients connect to:

sastcpd -service 4321

SSH Tunnel for SAS/CONNECT: Example 51

The UNIX spawner is started and is listening on destination port 4321. For completedetails about starting a UNIX spawner, see Communications Access Methods forSAS/CONNECT and SAS/SHARE.

Connection of a SAS/CONNECT Client to a UNIX Spawner on aSAS/CONNECT Server

After the UNIX spawner has been started on a SAS/CONNECT server, aSAS/CONNECT client can connect to it.

Here is an example of code for setting up an SSH tunnel using OpenSSH and making aclient connection to the UNIX spawner that is running on a SAS/CONNECT server:

ssh -N -L5555:SSH-client-computer:4321SSH-server-computer

The SSH command is entered in the command line. The SSH software is started on thecomputer on which the SSH client will run. The SSH client's listen port is defined as5555. The SAS/CONNECT client will access the SSH client's listen port that is tunneledto the UNIX spawner, which runs on destination port 4321.

%let sshhost=SSH-client-computer5555; signon sshhost;

In SAS, the macro variable SSHHOST is assigned to the SSH client computer and itslisten port 5555. A sign-on is specified to a SAS/CONNECT client at listen port 5555.The SSH client forwards the request from port 5555 through an encrypted tunnel to theSSH server, which forwards the request to the UNIX spawner that is listening ondestination port 4321.

SSH Tunnel for SAS/SHARE: Example

Start-up of a Multi-UserSAS/SHARE ServerHere is an example of code for starting a SAS/SHARE server:

proc server id=_4321; run;

A SAS/SHARE server is started and is ready to receive requests on destination port4321.

SAS/SHARE Client Access of a SAS/SHARE ServerHere is an example of code for setting up an SSH tunnel and making a client connectionto a SAS/SHARE server:

ssh -N -L5555:SSH-client-computer:4321SSH-server-computer

The SSH command is entered in the command line. The SSH software is started on thecomputer on which the SSH client will run. The SSH client's listen port is defined as5555. The SAS/SHARE client will access the SSH client's listen port that is tunneled tothe SAS/SHARE server, which runs on destination port 4321.

52 Chapter 4 • Encryption Technologies: Examples

%let sshhost=SSH-client-computer5555; libname orion '.' server=sshhost;

In SAS, the macro variable SSHHOST is assigned to the SSH client computer and itslisten port 5555. A LIBNAME statement is specified to access the library that is locatedon the SAS/SHARE server. The SSH client forwards the request from port 5555 throughan encrypted tunnel to the SSH server, which forwards the request to destination port4321 on the SAS/SHARE server.

SSL on a z/OS Spawner on a SAS/CONNECTServer: Example

Start-up of a z/OS Spawner on a SAS/CONNECT ServerAfter digital certificates are generated for the CA, the server, and the client, and a CAtrust list for the client is created, you can start a z/OS spawner program that runs on aserver that SAS/CONNECT clients connect to.

For example:

//SPAWNER EXEC PGM=SASTCPD,// PARM='-service 4321 =<//DDN:SYSIN'//STEPLIB DD DISP=SHR,DSN=<customer.high.level.pfx>.LIBRARY//STEPLIB DD DISP=SHR,DSN=<customer.high.level.pfx>.LIBE//SYSPRINT DD SYSOUT=*//SYSTERM DD SYSOUT=*//TKMVSJNL DD SYSOUT=*//SYSOUT DD SYSOUT=*//SYSIN DD *-netencryptalgorithm ssl -sslpkcs12loc /users/server/certificates/server.p12 -sslpkcs12pass starbuck1-sslcalistloc /users/server/certificates/sas.pem-sascmd /users/server/command.sh

The following table explains the SAS commands that are used to start a spawner on aSAS/CONNECT server.

Table 4.9 SAS Commands and Arguments for Spawner Start-Up Tasks

SAS Commands and Arguments Function

SASCPD Starts the spawner

-SERVICE 4321 Specifies the spawner service that is listeningon part 4321

- NETENCRYPTALGORITHM SSL Specifies the SSL encryption algorithm

-SSLPKCS12LOC /users/server/certificates/serverkey.p12

Specifies the file path for the location of theserver's PKCS #12 DER encoding package

SSL on a z/OS Spawner on a SAS/CONNECT Server: Example 53

SAS Commands and Arguments Function

-SSLPKCS12PASS password Specifies the password to access the server'sprivate key in the PKCS #12 package

-SSLCALISTLOC /users/server/certificates/sas.pem

Specifies the CA trust list

-SASCMD /users/server/command.sh Specifies the name of an executable file thatstarts a SAS session when you sign on withouta script file

In order for the z/OS spawner to locate the appropriate server digital certificate, youmust specify the -SSLCERTLOC and -SSLPVTKEYLOC or the -SSLPKCS12LOC and-SSLPKCS12PASS system options in the script that is specified by the -SASCMDoption.

Here is an example of an executable file, command.sh:

#!/bin/shargs=$*if [ -n "$INHERIT" ] ; then args="$args -inherit $INHERIT"fiif [ -n "$NETENCRALG" ] ; then args="$args -netencralg $NETENCRALG"fiif [ -n "$SASDAEMONPORT" ] ; then args="$args -sasdaemonport $SASDAEMONPORT"fiif [ -n "$SASCLIENTPORT" ] ; then args="$args -sasclientport $SASCLIENTPORT"fiexport TSOOUT=export SYSPROC=SAS.CLIST/bin/tso -t %sas -dmr -noterminal -sslpkcs12loc /users/server/certificates/serverkey.p12-sslpkcs12pass password $args

For complete information about starting a z/OS spawner, see Communications AccessMethods for SAS/CONNECT and SAS/SHARE.

Connection of a SAS/CONNECT Client to a z/OS SpawnerAfter a z/OS spawner is started on a SAS/CONNECT server, a SAS/CONNECT clientcan connect to it.

The following example shows how to connect a client to a spawner that is running on aSAS/CONNECT server:

options netencryptalgorithm=ssl;options sslcalistloc="/users/johndoe/certificates/cacerts.pem";%let machine=apex.server.com;signon machine.spawner user=_prompt_;

The following table explains the SAS options that are used to connect to aSAS/CONNECT server.

54 Chapter 4 • Encryption Technologies: Examples

Table 4.10 SAS Options and Arguments for Client Access to a SAS/CONNECT Server

SAS Options and Arguments Client Access Tasks

NETENCRYPTALGORITHM=SSL Specifies the encryption algorithm

SSLCALISTLOC=cacerts.pem Specifies the CA trust list

SIGNON=server-ID.service Specifies the server and service to connect to

USER=_PROMPT_ Prompts for the user ID and password to beused for authenticating the client to the server

The server ID and the server's Common Name, which was specified in the server'sdigital certificate, must be identical.

For complete information about connecting to a z/OS spawner, see CommunicationsAccess Methods for SAS/CONNECT and SAS/SHARE.

SSL for SAS/SHARE under z/OS: Example

Start-up of a Multi-UserSAS/SHARE ServerAfter certificates for the CA, the server, and the client have been generated, and a CAtrust list for the client has been created, you can start a SAS/SHARE server.

Here is an example of starting a secured SAS/SHARE server:

%let tcpsec=_secure_;options netencryptalgorithm=ssl;options sslpkcs12loc="/users/johndoe/certificates/server.p12;options sslpkcs12pass="password";proc server id=shrserv authenticate=opt; run;

The following table lists the SAS option or statement that is used for each task to start aserver.

Table 4.11 SAS Options, Statements, and Arguments for Server Start-Up Tasks

SAS Options, Statements, andArguments Server Start-Up Tasks

TCPSEC= _SECURE_ Secures the server

NETENCRALG=SSL Specifies SSL as the encryption algorithm

SSLPKCS12LOC=server.p12 Specifies the filepath for the location of theserver's private key

SSLPKCS12PASS="password" Specifies the password to access server's privatekey

SSL for SAS/SHARE under z/OS: Example 55

SAS Options, Statements, andArguments Server Start-Up Tasks

PROC SERVERID=shrserv Starts the server

AUTHENTICATE=OPT Allows trusted users to access the server withoutauthentication

SAS/SHARE Client Access of a SAS/SHARE ServerAfter a SAS/SHARE server has been started, the client can access it.

Here is an example of how to make a client connection to a secured SAS/SHARE server:

options sslcalistloc="/users/johndoe/certificates/cacerts.pem";%let machine=apex.server.com;libname a '.' server=machine.shrserv user=_prompt_;

The following table lists the SAS options that are used to access a SAS/SHARE serverfrom a client.

Table 4.12 SAS Options and Arguments for Accessing a SAS/SHARE Server from a Client

SAS Options and Arguments Client Access Tasks

SSLCALISTLOC=cacerts.pem Specifies the CA trust list

SERVER=machine.shrserv Specifies the machine and server to connect to

USER=_PROMPT_ Prompts for the user ID and password to beused for authenticating the client to the server

The server-ID and the server's Common Name, which was specified in the server'scertificate, must be identical.

56 Chapter 4 • Encryption Technologies: Examples

Part 2

Installing and Configuring SSL

Chapter 5Installing and Configuring SSL under UNIX . . . . . . . . . . . . . . . . . . . . . . . 59

Chapter 6Installing and Configuring SSL under Windows . . . . . . . . . . . . . . . . . . 67

Chapter 7Installing and Configuring SSL under z/OS . . . . . . . . . . . . . . . . . . . . . . . 73

57

58

Chapter 5

Installing and Configuring SSLunder UNIX

SSL under UNIX: System and Software Requirements . . . . . . . . . . . . . . . . . . . . . . 59

Building FIPS 140-2 Capable OpenSSL for UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Setting Up Digital Certificates for SSL under UNIX . . . . . . . . . . . . . . . . . . . . . . . . 60Step 1. Download and Build SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Step 2. Create a Digital Certificate Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Step 3. Generate a Digital Certificate from the Request . . . . . . . . . . . . . . . . . . . . . 62Step 4. View Digital Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Step 5. End OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Step 6. Create a CA Trust List for the SSL Client Application . . . . . . . . . . . . . . . . 64

Converting between PEM and DER File Formats for SSL . . . . . . . . . . . . . . . . . . . 65

SSL under UNIX: System and SoftwareRequirements

The system and software requirements for using SSL under UNIX operatingenvironments are as follows:

• a computer that runs UNIX.

• Internet access and a Web browser such Mozilla Firefoxr.

• the TCP/IP communications access method.

• access to the OpenSSL utility at www.openssl.org/source if you plan to usethe OpenSSL CA or if you plan to build FIPS 140-2 capable OpenSSL.

• knowledge of your site's security policy, practices, and technology. The properties ofthe digital certificates that you request are based on the security policies that havebeen adopted at your site.

Note: The 9.3 version of OpenSSL provided by SAS is not FIPS compliant. Refer to“Building FIPS 140-2 Capable OpenSSL for UNIX” on page 60 for details.

59

Building FIPS 140-2 Capable OpenSSL for UNIXFollow the instructions for downloading and building the FIPS 140-2 object module andFIPS 140-2 capable OpenSSL that are given at www.openssl.org/source. Forcomplete documentation, see the following documents at http://www.openssl.org/docs/fips/:

• OpenSSL FIPS 140-2 Security Policy Version 1.2

• OpenSSL FIPS 140-2 User Guide

If you are using your own OpenSSL libraries or FIPS 140-2 compliant SSL, your systemadministrator will need to set the environment path variables to pick up this software.Prepend the customized library path in the script that is run before invoking SAS.Depending on your operating system, set the LD_LIBRARY_PATH and theSHLIB_PATH to be the same, and set LIBPATH on AIX. Refer to the configurationguides for SAS 9.3 Foundation for your operating system for detailed information.

Setting Up Digital Certificates for SSL under UNIXPerform the following tasks to set up and use SSL:

Step 1. Download and Build SSLIf you want to use OpenSSL as your trusted Certification Authority (CA), follow theinstructions for downloading and building OpenSSL that are given atwww.openssl.org/source. For complete documentation about the OpenSSL utility,visit www.openssl.org/docs/apps/openssl.html.

The following sites provide information about alternative CA:

• For VeriSign, see www.verisign.com

• For Thawte, see www.thawte.com

Step 2. Create a Digital Certificate RequestThe tasks that you perform to request a digital certificate for the CA, the server, and theclient are similar; however, the values that you specify are different.

In this example, Proton, Inc. is the organization that is applying to become a CA byusing OpenSSL. After Proton, Inc. becomes a CA, it can serve as a CA for issuingdigital certificates to clients (users) and servers on its network.

Perform the following tasks:

1. Select the apps subdirectory of the directory where OpenSSL was built.

2. Initialize OpenSSL.

$ openssl

3. Issue the appropriate command to request a digital certificate.

60 Chapter 5 • Installing and Configuring SSL under UNIX

Table 5.1 Open SSL Commands for Requesting a Digital Certificate

Request Certificatefor OpenSSL Command

CA req -config ./openssl.cnf -new -out sas.req -keyout saskey.pem -nodes -sha1

Server req -config ./openssl.cnf -new -out server.req -keyoutserverkey.pem -sha1

Client req -config ./openssl.cnf -new -out client.req -keyoutclientkey.pem -sha1

Note: The -sha1 command is specified only when using FIPS 140-2 compliant SSL.

Table 5.2 Arguments and Values Used in OpenSSL Commands

OpenSSL Arguments andValues Functions

req Requests a certificate

-config ./openssl.cnf Specifies the storage location for the configurationdetails for the OpenSSL program

-new Identifies the request as new

-out sas.req Specifies the storage location for the certificate request

-keyout saskey.pem Specifies the storage location for the private key

-nodes Prevents the private key from being encrypted

-sha1 Specifies that the FIPS 140-2 compliant hashalgorithm, SHA-256, will be used

4. Informational messages are displayed and prompts for additional information appearaccording to the specific request.

To accept a default value, press the ENTER key. To change a default value, type theappropriate information and press the ENTER key.

Note: Unless the -NODES option is used in the OpenSSL command when creating adigital certificate request, OpenSSL will prompt you for a password beforeallowing access to the private key.

The following is an example of a request for a digital certificate:

OpenSSL> req -config ./openssl.cnf -new -out sas.req -keyout saskey.pem -nodesUsing configuration from ./openssl.cnfGenerating a 1024 bit RSA private key............................++++++..........................................++++++writing new private key to 'saskey.pem'

Setting Up Digital Certificates for SSL under UNIX 61

-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [US]:State or Province Name (full name) [North Carolina]:Locality Name (city) [Cary]:Organization Name (company) [Proton Inc.]:Organizational Unit Name (department) [IDB]:Common Name (YOUR name) []: proton.comEmail Address []:[email protected] enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:An optional company name []:OpenSSL>

The request for a digital certificate is complete.

Note: For the server, the Common Name must be the name of the computer that theserver runs on; for example, apex.serv.com.

Step 3. Generate a Digital Certificate from the RequestPerform the following tasks to generate a digital certificate for a CA, a server, and aclient.

1. Issue the appropriate command to generate a digital certificate from the digitalcertificate request.

Table 5.3 OpenSSL Commands for Generating Digital Certificates under UNIX

Generate Certificate for OpenSSL Command

CA x509 -req -in sas.req -signkey saskey.pem -out sas.pem -sha1

Server ca -config ./openssl.cnf -in server.req -out server.pem -sha1

Client ca -config ./openssl.cnf -in client.req -out client.pem -sha1

Note: The -sha1 command is specified only when using FIPS 140-2 compliant SSL.

Table 5.4 Arguments and Values Used in OpenSSL Commands under UNIX

OpenSSL Arguments and Values Functions

x509 Identifies the certificate display and signingutility

62 Chapter 5 • Installing and Configuring SSL under UNIX

OpenSSL Arguments and Values Functions

-req Specifies that a certificate be generated fromthe request

ca Identifies the Certification Authority utility

-config ./openssl.cnf Specifies the storage location for theconfiguration details for the OpenSSLutility

-in filename.req Specifies the storage location for the inputfor the certificate request

-out filename.pem Specifies the storage location for thecertificate

-signkey saskey.pem Specifies the private key that will be used tosign the certificate that is generated by thecertificate request

-sha1 Specifies that the FIPS 140-2 complianthash algorithm, SHA-256, will be used

2. Informational messages are displayed and prompts for additional information appearaccording to the specific request.

To accept a default value, press the ENTER key. To change a default value, type theappropriate information, and press the ENTER key.

Here is a sample of the messaging for creating a server digital certificate:

Note: The password is for the CA's private key.

Using configuration from ./openssl.cnf Enter PEM pass phrase: password Check that the request matches the signature Signature ok The Subjects Distinguished Name is as follows countryName :PRINTABLE:'US' stateOrProvinceName :PRINTABLE:'NC' localityName :PRINTABLE:'Cary' organizationName :PRINTABLE:'Proton, Inc.' organizationalUnitName:PRINTABLE:'IDB' commonName :PRINTABLE:'proton.com' Certificate is to be certified until Oct 16 17:48:27 2003 GMT (365 days)Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated

The subject's Distinguished Name is obtained from the digital certificate request.

A root CA digital certificate is self-signed, which means that the digital certificate issigned with the private key that corresponds to the public key that is in the digitalcertificate. Except for root CAs, digital certificates are usually signed with a privatekey that corresponds to a public key that belongs to someone else, usually the CA.

The generation of a digital certificate is complete.

Setting Up Digital Certificates for SSL under UNIX 63

Step 4. View Digital CertificatesTo view a digital certificate, issue the following command:

openssl> x509 -text -in filename.pem

A digital certificate contains data that was collected to generate the digital certificatetimestamps, a digital signature, and other information. However, because the generateddigital certificate is encoded (usually in PEM format), it is unreadable.

Step 5. End OpenSSLTo end OpenSSL, type quit at the prompt.

Step 6. Create a CA Trust List for the SSL Client ApplicationAfter generating a digital certificate for the CA, the server, and the client (optional), youmust identify for the OpenSSL client application one or more CAs that are to be trusted.This list is called a trust list.

If there is only one CA to trust, in the client application, specify the name of the file thatcontains the OpenSSL CA digital certificate.

If multiple CAs are to be trusted, create a new file and copy-and-paste into it thecontents of all the digital certificates for CAs to be trusted by the client application.

Use the following template to create a CA trust list:

Certificate for OpenSSL CA

-----BEGIN CERTIFICATE-----

<PEM encoded certificate>

-----END CERTIFICATE-----

Certificate for Keon CA

-----BEGIN CERTIFICATE-----

<PEM encoded certificate>

-----END CERTIFICATE-----

Certificate for Microsoft CA

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

Because the digital certificate is encoded, it is unreadable. Therefore, the content of thedigital certificate in this example is represented as <PEM encoded certificate> .The content of each digital certificate is delimited with a -----BEGINCERTIFICATE----- and -----END CERTIFICATE----- pair. All text outside the

64 Chapter 5 • Installing and Configuring SSL under UNIX

delimiters is ignored. Therefore, you might not want to use delimited lines fordescriptive comments. In the preceding template, the file that is used contains thecontent of digital certificates for the CAs: OpenSSL, Keon, and Microsoft.

Note: If you are including a digital certificate that is stored in DER format, you mustfirst convert it to PEM format. For more information, see “Converting between PEMand DER File Formats for SSL” on page 71.

Converting between PEM and DER File Formatsfor SSL

By default, OpenSSL files are created in PEM (Privacy Enhanced Mail) format. SSLfiles that are created in Windows operating environments are created in DER(Distinguished Encoding Rules) format.

Under Windows, you can import a file that is created in either PEM or DER format.However, a digital certificate that is created in DER format must be converted to PEMformat before it can be included in a trust list under UNIX.

Here is an example of converting a server digital certificate from PEM input format toDER output format:

OpenSSL> x509 -inform PEM -outform DER -in server.pem -outserver.der

Here is an example of converting a server digital certificate from DER input format toPEM output format:

OpenSSL> x509 -inform DER -outform PEM -in server.der -out server.pem

Converting between PEM and DER File Formats for SSL 65

66 Chapter 5 • Installing and Configuring SSL under UNIX

Chapter 6

Installing and Configuring SSLunder Windows

SSL under Windows: System and Software Requirements . . . . . . . . . . . . . . . . . . . 67

FIPS 140-2 Capable SSL for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Setting Up Digital Certificates for SSL under Windows . . . . . . . . . . . . . . . . . . . . . 68Step 1. Configure SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Step 2. Request a Digital Certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Converting between PEM and DER File Formats for SSL . . . . . . . . . . . . . . . . . . . 71

SSL under Windows: System and SoftwareRequirements

The system and software requirements for using SSL under the Windows operatingenvironment are as follows:

• a computer that runs Windows 2000 (or later).

• depending on your configuration, access to the Internet and a Web browser such asInternet Explorer or Mozilla Firefox.

• the TCP/IP communications access method.

• Microsoft Certificate Services add-on software.

• if you will run your own CA, the Microsoft Certification Authority application(which is accessible from your Web browser).

• for SAS/CONNECT, a client session that runs on a computer that has a Trusted CACertificate. This is necessary in order for a SAS/CONNECT client session to connectto a SAS/CONNECT server session via a Windows spawner using SSL encryption.

The Windows spawner must run on a computer that has a Trusted CA Certificate anda Personal Certificate.

• knowledge of your site's security policy, practices, and technology. The properties ofthe digital certificates that you request will depend on the security policies that havebeen adopted at your site.

There is a Microsoft issue that needs attention before configuring ENCRYPTFIPS onMicrosoft Windows 2003 servers.

67

Services that run on a computer that uses Microsoft Windows Server 2003 mightnot recognize Windows environment variable changes. To resolve this issue,perform these steps:

Go to the Microsoft support Web site http://support.microsoft.com/kb/887693 to find out how to resolve the Windows 2003 Server environment variableissue.

FIPS 140-2 Capable SSL for WindowsIn Windows XP and in later versions of Windows, you need to enable the Systemcryptography: Use FIPS compliant algorithms for encryption, hashing, and signingsetting under your Local Security Policy or as part of Group Policy. This setting informsapplications that they should only use cryptographic algorithms that are FIPS 140-2compliant and in compliance with FIPS approved modes of operation.

Setting Up Digital Certificates for SSL underWindows

Perform the following tasks to set up digital certificates for SSL:

Step 1. Configure SSLComplete information about configuring your Windows operating environment for SSLis contained in the Windows installation documentation and at www.microsoft.com.

The following keywords might be helpful when searching the Microsoft Web site:

• digital certificate services

• digital certificate authority

• digital certificate request

• site security planning

Step 2. Request a Digital Certificate

Methods of Requesting a Digital CertificateThe method of requesting a digital certificate depends on the CA that you use:

• “Request a Digital Certificate from the Microsoft Certification Authority” on page68

• “Request a Digital Certificate from a Certification Authority That Is Not Microsoft”on page 69

Request a Digital Certificate from the Microsoft CertificationAuthorityPerform the following tasks to request digital certificates that are issued by the MicrosoftCertification Authority:

68 Chapter 6 • Installing and Configuring SSL under Windows

1. System administrator: If you are running your own CA, use Microsoft CertificateServices to create an active Certification Authority (CA).

2. User:

a. Use the Certificate Request wizard to request a digital certificate from an activeenterprise CA. The Certificate Request wizard lists all digital certificate typesthat the user can install.

b. Select a digital certificate type.

c. Select security options.

d. Submit the request to an active CA that is configured to issue the digitalcertificate.

After the CA issues the requested digital certificate, the digital certificate isautomatically installed in the Certificate Store. The installed digital certificate ishighlighted, as shown in the following window:

Display 6.1 Digital Certificate Installation in the Certificate Store

Request a Digital Certificate from a Certification Authority That IsNot MicrosoftUsers should perform the following tasks to request digital certificates that are not issuedby the Microsoft CA:

1. Request a digital certificate from a CA.

2. Import the digital certificate to a Certificate Store by using the Certificate ManagerImport wizard application from a Web browser.

A digital certificate can be generated by using the Certificate Request wizard or anythird-party application that generates digital certificates.

Note: The Windows operating environment can import digital certificates that weregenerated in the UNIX operating environment. To convert from UNIX (PEMformat) to Windows (DER format) before importing, see “Converting betweenPEM and DER File Formats for SSL” on page 71.

For details about importing existing digital certificates, see “Import a Digital Certificateto a Certificate Store” on page 70.

Setting Up Digital Certificates for SSL under Windows 69

Import a Digital Certificate to a Certificate StoreDigital certificates that were issued by a Certification Authority that is not Microsoft canbe imported to an appropriate Certificate Store as follows:

Certificate Type Certificate Storage Location

Client Personal Certificate Store

Server Personal Certificate Store

CA (self-signed) Trusted Root Certification Authorities

Perform the following tasks to import a digital certificate to a Certificate Store:

1. Access the Certificate Manager Import wizard application from your Web browser.From the Tools drop-down menu, select Internet Options.

Then select the Content tab, and click Certificates.

Specify the digital certificate to import to a Certificate Store by selecting thePersonal tab in the Certificates window, as shown in the following window:

Display 6.2 Digital Certificate Selections for a Personal Certificate Store

2. Click Import and follow the instructions to import digital certificates.

Repeat this task in order to import the necessary digital certificates for the CA, theserver, and the client, as appropriate.

3. After you have completed the selections for your personal Certificate Store, selectthe appropriate tab to view your selections.

4. To view the details about a digital certificate, select the digital certificate and clickView. Typical results are shown in the following window:

70 Chapter 6 • Installing and Configuring SSL under Windows

Display 6.3 Digital Certificate Details Tab

Converting between PEM and DER File Formatsfor SSL

By default, OpenSSL files are created in Privacy Enhanced Mail (PEM) format. SSLfiles that are created in Windows operating environments are created in DistinguishedEncoding Rules (DER) format.

Under Windows, you can import a file that is created in either PEM or DER format.However, a digital certificate that is created in DER format must be converted to PEMformat before it can be included in a trust list under UNIX.

Here is an example of converting a server digital certificate from PEM input format toDER output format:

OpenSSL> x509 -inform PEM -outform DER -in server.pem -outserver.der

Here is an example of converting a server digital certificate from DER input format toPEM output format :

OpenSSL> x509 -inform DER -outform PEM -in server.der -out server.pem

Converting between PEM and DER File Formats for SSL 71

72 Chapter 6 • Installing and Configuring SSL under Windows

Chapter 7

Installing and Configuring SSLunder z/OS

SSL under z/OS: System and Software Requirements . . . . . . . . . . . . . . . . . . . . . . . 73

Setting Up Digital Certificates for SSL under z/OS . . . . . . . . . . . . . . . . . . . . . . . . . 73Step 1. Authorize Access to the RACDCERT Command . . . . . . . . . . . . . . . . . . . . 73Step 2. Create the Digital Certificate for the CA . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Step 3. Create the Server and Client Digital Certificates . . . . . . . . . . . . . . . . . . . . . 75Step 4. View Digital Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Step 5. Create a CA Trust List for the SSL Client Application . . . . . . . . . . . . . . . . 76

SSL under z/OS: System and SoftwareRequirements

The system and software requirements for using SSL under z/OS operatingenvironments are as follows:

• a computer that runs z/OS.

• the TCP/IP communications access method.

• if you are planning to use a computer that runs z/OS as the CA, access to theRACDCERT command on z/OS.

• knowledge of your site's security policy, practices, and technology. The properties ofthe digital certificates that you request are based on the security policies that havebeen adopted at your site.

Note: The z/OS version of SSL is not FIPS 140-2 compliant.

Setting Up Digital Certificates for SSL under z/OSPerform these tasks to set up and use SSL:

Step 1. Authorize Access to the RACDCERT CommandTo use z/OS as your trusted Certification Authority (CA), you must authorize access tothe RACDCERT command in order to set up the CA and to create and sign certificates.Authorize the trusted administrator using CONTROL access to these profiles in theFACILITY class:

73

• IRR.DIGTCERT.ADD

• IRR.DIGTCERT.DELETE

• IRR.DIGTCERT.EXPORT

• IRR.DIGTCERT.GENCERT

• IRR.DIGTCERT.LIST

The following sites provide information about alternative CAs:

• For VeriSign, see www.verisign.com

• For Thawte, see www.thawte.com

Step 2. Create the Digital Certificate for the CAThe tasks that you perform to generate a digital certificate for the CA, the server, and theclient are similar; however, the values that you specify are different.

In this example, Proton, Inc. is the organization that is applying to become a CA byusing RACDCERT. After Proton, Inc. becomes a CA, it can serve as a CA for issuingdigital certificates to clients (users) and servers on its network.

Perform these tasks:

1. Request a digital CA certificate. Here is an example of a request:

RACDCERT GENCERT CERTAUTH +SUBJECTSDN( + CN('proton.com') + C('US') + SP('North Carolina') + L('Cary') + O('Proton Inc.') + OU('IDB') +) +ALTNAME( + EMAIL('[email protected]') +) +WITHLABEL('Proton CA')

2. Export the CA certificate in PEM format:

RACDCERT CERTAUTH EXPORT(LABEL('Proton CA')) +DSN(CA.CERT)

3. Copy the certificate to the UNIX file system. Use the TSO OPUT and OCOPYcommands to copy the files to your UNIX file system.

Note: SSL certificate and key files must reside in the z/OS UNIX file system. TheOpenSSL library cannot read MVS data sets.

cp //ca.cert ca.cert

4. Convert the certificate file to ASCII format

Note: SSL PEM format certificate files must be converted to ASCII format. TheOpenSSL library code in SAS cannot read EBCDIC text.

iconv -f ibm-1047 -t iso8859-1 ca.cert >ca.cert.ascii

The creation of the CA digital certificate is complete.

74 Chapter 7 • Installing and Configuring SSL under z/OS

A root CA digital certificate is self-signed, which means that the digital certificate issigned using the private key that corresponds to the public key that is in the digitalcertificate. Except for root CAs, digital certificates are usually signed using a private keythat corresponds to a public key that belongs to someone else, usually the CA.

You will specify the CA digital certificate using the SSLCALISTLOC= system option.

Step 3. Create the Server and Client Digital CertificatesPerform these tasks to create a digital certificate for a server and a client. The steps areidentical for the server and the client. This example shows the tasks for the server.

1. Request a signed server certificate.

Here is an example of a request for a signed server certificate for user SERVER thatruns on proton.zos.com.

RACDCERT GENCERT ID(SERVER) +SUBJECTSDN( + CN('proton.zos.com') + C('US') + SP('North Carolina') + L('Cary') + O('Proton Inc.') + OU('IDB') +) +ALTNAME( + EMAIL('[email protected]') +) +WITHLABEL('Proton Server') +SIGNWITH(CERTAUTH LABEL('Proton CA'))

2. Export the server certificate and key that are specified in PKCS #12 DER encodingpackage format.

Note: The PKCS #12 DER encoding package is the format used by the RACDCERTutility to encode the exported certificate and private key for an entity, such as aserver. It is a binary format.

RACDCERT ID(SERVER) EXPORT(LABEL('Proton Server')) +DSN(SERVER.P12) +PASSWORD('abcd')

3. Copy the certificate to the UNIX file system.

Note: The PKCS #12 DER encoding package file must reside in the z/OS UNIX filesystem. The OpenSSL library cannot read MVS data sets. Because the file isalready in binary format, its conversion to ASCII is unnecessary.

cp //server.p12 server.p12

The creation of the server digital certificate and key is complete.

A PKCS #12 DER encoding package is the format that RACDCERT uses to export acertificate and a key for an entity. The exported package file contains both the certificateand the key. The content of the package file is secure by using the password that isspecified in the RACDCERT EXPORT command.

Specify a server or client PKCS #12 package using the SSLPKCS12LOC= systemoption. Specify the password for the package using the SSLPKCS12PASS= option.

Setting Up Digital Certificates for SSL under z/OS 75

Note: For the server, the Common Name must be the name of the computer that theserver runs on (for example, proton.zos.com.)

Step 4. View Digital CertificatesTo view a digital certificate, issue these commands:

RACDCERT CERTAUTH LIST(LABEL('Proton CA'))RACDCERT ID(SERVER) LIST(LABEL('Proton Server'))

A digital certificate contains data that was collected to generate the digital certificatetimestamps, a digital signature, and other information. However, because the generateddigital certificate is encoded (usually in PEM format), it is unreadable.

To read the certificate files, issue these commands:

RACDCERT CHECKCERT(CA.CERT)RACDCERT CHECKCERT(SERVER.P12) PASS('abcd')

Step 5. Create a CA Trust List for the SSL Client ApplicationAfter generating a digital certificate for the CA, the server, and the client (optional), youmust identify for the OpenSSL client application one or more CAs that are to be trusted.This list is called a trust list.

If there is only one CA to trust (for example, Proton CA), in the client application, usethe SSLCALISTLOC= option to specify the name of the file that contains the CA digitalcertificate, which was created in Step 2.

If multiple CAs are to be trusted by the client application, use the UNIX cat commandto concatenate the contents of all the digital certificates for CAs. All the certificates mustbe encoded in PEM format and in ASCII format.

As an alternative method for creating a CA trust list, use this template to copy and pastethe digital certificates into one file:

Certificate for Proton CA

-----BEGIN CERTIFICATE-----

<PEM encoded certificate>

-----END CERTIFICATE-----

Certificate for Keon CA

-----BEGIN CERTIFICATE-----

<PEM encoded certificate>

-----END CERTIFICATE-----

Certificate for Microsoft CA

-----BEGIN CERTIFICATE-----

76 Chapter 7 • Installing and Configuring SSL under z/OS

-----END CERTIFICATE-----

Because the digital certificate is encoded, it is unreadable. Therefore, the content of thedigital certificate in this example is represented as <PEM encoded certificate> .The content of each digital certificate is delimited using a -----BEGINCERTIFICATE----- and -----END CERTIFICATE----- pair. All text outside thedelimiters is ignored. Therefore, you might not want to use delimited lines fordescriptive comments. In the preceding template, the file that is used contains thecontent of digital certificates for the CAs: Proton, Keon, and Microsoft.

Setting Up Digital Certificates for SSL under z/OS 77

78 Chapter 7 • Installing and Configuring SSL under z/OS

Glossary

block ciphera type of encryption algorithm that divides a message into blocks and encrypts eachblock.

Certificate Revocation Lista list of revoked digital certificates. CRLs are published by Certification Authorities(CAs), and a CRL contains only the revoked digital certificates that were issued by aspecific CA. Short form: CRL.

Certification Authoritya commercial or private organization that provides security services to the e-commerce market. A Certification Authority creates and maintains digitalcertificates, which help to preserve the confidentiality of an identity. Microsoft,VeriSign, and Thawte are examples of commercial Certification Authorities.

ciphertextunintelligible data.

CRLSee Certificate Revocation List.

cryptographythe science of encoding and decoding information to protect its confidentiality.

data security technologiessoftware features that protect data that is exchanged in client/server data transfersacross a network.

DERSee Distinguished Encoding Rules.

digital certificatean electronic document that binds a public key to an individual or an organization. Adigital certificate usually contains a public key, a user's name, an expiration date, andthe name of a Certification Authority.

digital signaturea digital code that is appended to a message. The digital signature is used to verify toa recipient that the message was sent by a particular business, organization, orindividual, and that the message has not been changed en route. The message can beany kind of file that is transmitted electronically.

79

Distinguished Encoding Rulesa format that is used for creating SSL files in Windows operating environments.Short form: DER.

PEMSee Privacy Enhanced Mail.

PKCS #12See Public Key Cryptography Standard #12.

plaintextintelligible data.

port forwardingSee SSH tunnel.

Privacy Enhanced Maila format that is used for creating OpenSSL files. Short form: PEM.

public keya number that is associated with a specific entity such as an individual or anorganization. A public key can be known by everyone who needs to have trustedinteractions with that entity. A public key is always associated with a single privatekey, and can be used to verify digital signatures that were generated using thatprivate key.

Public Key Cryptography Standard #12a personal information exchange syntax standard. It defines a file format that is usedto store private keys with accompanying public-key certificates. Short form: PKCS#12.

public-key cryptographythe science that uses public and private key pairs to protect confidential information.The public key can be known by anyone. The private key is known only to the ownerof the key pair. The public key is used primarily for encryption, but it can also beused to verify digital signatures. The private key is used primarily for decryption, butit can also be used to generate a digital signature.

SAS/SECUREan add-on product that uses the RC2, RC4, DES, and TripleDES encryptionalgorithms. SAS/SECURE requires a license, and it must be installed on eachcomputer that runs a client and a server that will use the encryption algorithms.SAS/SECURE provides a high level of security.

SASProprietary algorithma fixed encoding algorithm that is included with Base SAS software. TheSASProprietary algorithm requires no additional SAS product licenses. It provides amedium level of security.

Secure ShellSee SSH.

Secure Sockets Layeran encryption protocol for securely communicating across the Internet. SSL usesencryption algorithms RC2, RC4, DES, TripleDES, and AES.

80 Glossary

SSHa protocol that enables users to access a remote computer via a secure connection.SSH is available through various commercial products and as freeware. OpenSSH isa free version of the SSH protocol suite of network connectivity tools. Short form:SSH.

SSH tunnela secure, encrypted connection between the SSH client, which runs on the samecomputer as a SAS client, and an SSH server, which runs on the same computer as aSAS server. The SSH client and server act as agents between the SAS client and theSAS server, tunneling information via the SAS client's port to the SAS server's port.Port forwarding is another term for tunneling.

SSLSee Secure Sockets Layer.

SSL (Secure Sockets Layer)a protocol that provides network security and privacy. SSL uses encryptionalgorithms RC2, RC4, DES, TripleDES, and AES. SSL provides a high level ofsecurity. It was developed by Netscape Communications.

stream ciphera type of encryption algorithm that encrypts data one byte at a time.

TLSthe successor to Secure Sockets Layer (SSL) V3.0. The Internet Engineering TaskForce (IETF) adopted SSL V3.0 as the de facto standard, made some modifications,and renamed it TLS. TLS is virtually SSLV3.1. Short form: TLS.

Transport Layer SecuritySee TLS.

trust lista file created by a user that contains the digital certificates for CertificationAuthorities, if more than one Certification Authority is used.

Glossary 81

82 Glossary

Index

Aaccessibility features 13AES (Advanced Encryption Standard) 11AES algorithm 6algorithms 10

for client/server data transfers 18key length for data transfers 20SAS/SECURE 6, 10SASProprietary 10summary of 11

authenticationclient authentication by server 25location of digital certificate for 23

Bblock cipher 10

CCertificate Revocation List (CRL)

checking when digital certificate isvalidated 26

location of 27Certificate Store

importing digital certificate to 70certification authorities (CAs) 8

digital certificate location 21trust lists 64, 76

client authenticationby server 25

client/server connection outcomes 19client/server data transfers

algorithm for 18encrypting 17key length for algorithm 20

COMSAS/SECURE for IOM Bridge example

50configuration

metadata configuration 50

SAS/SECURE 6SASProprietary 5SSL 8

DData Encryption Standard (DES) 10data transfers

algorithm for 18encrypting 17key length for algorithm 20

decrypting private keys 29, 30DER format 65

Windows 71DES (Data Encryption Standard) 10DES algorithm 6digital certificates 8

checking Certificate Revocation Listwhen validating 26

converting between PEM and DERformats 65, 71

importing to Certificate Store 70location for authentication 23location for trusted certification

authorities 21name of issuer 22OpenSSL under UNIX 60OpenSSL under z/OS 74private key location 29requesting from Microsoft Certification

Authority 68serial number of 24subject name of 25viewing 64, 76

digital signatures 8

Eencoded passwords 33, 36

encoding methods 35, 39in SAS programs 33, 36

83

saving to paste buffer 38encoding

versus encryption 34encoding methods 35, 39ENCRYPTFIPS= system option 15encryption 3

classes of encryption strength 3comparison of technologies 12data transfers 17over-disk 4over-the-wire 4SAS/CONNECT client under UNIX

example 42SAS/SECURE for IOM Bridge example

50SAS/SHARE client example 42versus encoding 34

export restrictions for SAS/SECURE 6

FFIPS 60, 68

SAS/SECURE 4FIPS 140-2 configuration

SAS/SECURE 6FIPS 140-2 installation

SAS/SECURE 6FIPS 140–2

algorithims 15

Iimplementation 12importing digital certificates to Certificate

Store 70installation

SAS/SECURE 6SASProprietary 5SSL 8tunneling 10

IOM BridgeSAS/SECURE examples 50

JJava

SAS/SECURE for IOM Bridge example51

Kkey length

for data transfer algorithm 20keys

private 8, 29, 30public 8

Mmetadata configuration

SAS/SECURE for IOM Bridge example50

METHOD= optionPROC PWENCODE statement 35

Microsoft Certification Authorityrequesting digital certificate from 68

Microsoft CryptoAPI 6

NNETENCRYPT system option 17NETENCRYPTALGORITHM system

option 18NETENCRYPTKEYLEN= system option

20

OODS generated PDF files 13OpenSSL 60, 68

arguments and values 61, 62converting between PEM and DER

formats 65, 71creating digital certificates 74digital certificates 60ending 64SSL under z/OS 73

OUT= optionPROC PWENCODE statement 35

over-disk encryption 4over-the-wire encryption 4

Ppasswords

encoding 33, 36encoding methods 39for decrypting private keys 29, 30

paste buffersaving encoded passwords to 38

PDF files 13PDF system options 13PEM format 65PKCS #12 DER encoding package file

password for decrypting private keys29

PKCS #12 encoding package filelocation of 28

port forwarding 9private keys 8

location of 29password for decrypting 29, 30

PROC PWENCODE statement 34providers

84 Index

SAS/SECURE 5SASProprietary 4SSH 9SSL 7

public keys 8PWENCODE procedure 33

concepts 33encoded passwords in SAS programs

36encoding methods 39encoding passwords 36encoding versus encryption 34saving encoded passwords to paste

buffer 38syntax 34

RRC2 algorithm 6, 10

key length for data transfer algorithm21

RC4 algorithm 6, 10key length for data transfer algorithm

21

SSAS programs

encoded passwords in 33, 36SAS/CONNECT

client under UNIX example 42SAS/SECURE example 42server under UNIX example 42SSH tunnel example 51SSL UNIX spawner example 43SSL Windows spawner example 45SSL z/OS spawner example 53

SAS/Secureencryption 15

SAS/SECURE 5algorithms 6, 10comparison of technologies 12configuration 6export restrictions 6FIPS 4FIPS 140-2 configuration 6FIPS 140-2 installation 6installation 6IOM Bridge examples 50SAS/CONNECT example 42system requirements 6Windows and 6

SAS/SHAREclient example 42SASProprietary example 42server example 42

SSH tunnel example 52SSL under UNIX example 47SSL under Windows examples 48SSL under z/OS example 55

SASProprietary 4algorithms 10comparison of technologies 12configuration 5installation 5SAS/SHARE example 42system requirements 5

SASProprietary algorithm 11Secure Shell

See SSH (Secure Shell)Secure Sockets Layer

See SSL (Secure Sockets Layer)serial number of digital certificate 24servers

client authentication by 25SAS/CONNECT under UNIX example

42SAS/SHARE server example 42

software requirementsSSL under UNIX 59SSL under Windows 67SSL under z/OS 73

spawnersSSL SAS/CONNECT UNIX example

43SSL SAS/CONNECT Windows

example 45SSL SAS/CONNECT z/OS example 53

SSH (Secure Shell) 9comparison of technologies 12system requirements 9tunnel for SAS/CONNECT example 51tunnel for SAS/SHARE example 52tunneling 9tunneling installation and setup 10

SSL (Secure Sockets Layer) 7See also OpenSSLcomparison of technologies 12concepts 7configuration 8installation 8name of issuer of digital certificate 22overview 7password for decrypting private key 29,

30SAS/CONNECT UNIX spawner

example 43SAS/CONNECT Windows spawner

example 45SAS/CONNECT z/OS spawner

example 53SAS/SHARE under UNIX example 47

Index 85

SAS/SHARE under Windows examples48

SAS/SHARE under z/OS example 55serial number of digital certificate 24subject name of digital certificate 25system and software requirements under

UNIX 59system and software requirements under

Windows 67system and software requirements under

z/OS 73system requirements 7trusted certification authorities 21

SSLCALISTLOC= system option 21SSLCERTISS= system option 22SSLCERTLOC= system option 23SSLCERTSERIAL= system option 24SSLCERTSUBJ= system option 25SSLCLIENTAUTH system option 25SSLCRLCHECK system option 26SSLCRLLOC= system option 27SSLPKCS12LOC= system option 28SSLPKCS12PASS= system option 29SSLPVTKEYLOC= system option 29SSLPVTKEYPASS= system option 30stream cipher 10subject name of digital certificate 25system options

PDF 13system requirements

SAS/SECURE 6SASProprietary 5SSH 9SSL 7SSL under UNIX 59SSL under Windows 67SSL under z/OS 73

TTLS (Transport Layer Security) 7TripleDES algorithm 6, 11trust lists 64, 76trusted certification authorities (CAs)

digital certificate location 21tunneling 9

installation and setup 10SSH for SAS/CONNECT example 51SSH for SAS/SHARE example 52

UUNIX

converting between PEM and DERformats 65

creating a digital certificate request 60OpenSSL under 60SAS/CONNECT client example 42SAS/CONNECT server example 42SSL SAS/CONNECT spawner example

43SSL SAS/SHARE example 47SSL system and software requirements

59SSL under 59

WWindows

converting between PEM and DERformats 71

SAS/SECURE and 6SSL SAS/CONNECT spawner example

45SSL SAS/SHARE examples 48SSL system and software requirements

67

Zz/OS

creating digital certificates 74SSL SAS/CONNECT spawner example

53SSL SAS/SHARE example 55SSL system and software requirements

73SSL under 73

86 Index