Custom Encryption in Siebel & Siebel Web Service Security Test Guide 1.0



Similar documents
CICS Web Service Security. Anthony Papageorgiou IBM CICS Development March 13, 2012 Session: 10282

Onset Computer Corporation

vcommander will use SSL and session-based authentication to secure REST web services.

HOBOlink Web Services V2 Developer s Guide

Chapter 17. Transport-Level Security

Secure Identity Propagation Using WS- Trust, SAML2, and WS-Security 12 Apr 2011 IBM Impact

Securing Web Services From Encryption to a Web Service Security Infrastructure

Transport Layer Security Protocols

Siebel Web UI Dynamic Developer Kit Guide. Siebel Innovation Pack 2013 Version 8.1/8.2 September 2013

e-filing Secure Web Service User Manual

WildFire Cloud File Analysis

Web Services Implementation: The Beta Phase of EPA Network Nodes

Java CPD (I) Frans Coenen Department of Computer Science

An Oracle White Paper Dec Oracle Access Management Security Token Service

This Working Paper provides an introduction to the web services security standards.

Using ilove SharePoint Web Services Workflow Action

Copyright 2013 Consona Corporation. All rights reserved

Authentication and Single Sign On

Java Web Services SDK

Integrating Siebel CRM with Microsoft SharePoint Server

Replacements TECHNICAL REFERENCE. DTCCSOLUTIONS Dec Copyright 2009 Depository Trust Clearing Corporation. All Rights Reserved.

File Transfer Service (Batch SOAP) User Guide. A Guide to Submitting batches through emedny FTS

An Oracle White Paper November Oracle Primavera P6 EPPM Integrations with Web Services and Events

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace

Database Access from a Programming Language: Database Access from a Programming Language

Database Access from a Programming Language:

Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5

WebService Security. A guide to set up highly secured client-server communications using WS-Security extensions to the SOAP protocol

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

Software Requirement Specification Web Services Security

Sage CRM Connector Tool White Paper

Policy Guide Access Manager 3.1 SP5 January 2013

CMP3002 Advanced Web Technology

CHAPTER 10: WEB SERVICES

Mobile Solutions for Data Collection. Sarah Croft and Laura Pierik

Java Access to Oracle CRM On Demand. By: Joerg Wallmueller Melbourne, Australia

User Management Interfaces for Earth Observation Services Abstract Test Suite

Oracle Siebel CRM 8 Developer's Handbook

CS 356 Lecture 28 Internet Authentication. Spring 2013

Oracle WebCenter Content

How To Protect A Web Application From Attack From A Trusted Environment

Cloud Services. Introduction...2 Overview...2 Simple Setup...2

IBM Tivoli Federated Identity Manager V6.2.2 Implementation. Version: Demo. Page <<1/10>>

Web Services API Developer Guide

Siebel CRM Web Services Reference. Version 8.0, Rev C October 2009

Software Design Document Securing Web Service with Proxy

IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide

Webmail Using the Hush Encryption Engine

Get Success in Passing Your Certification Exam at first attempt!

Storing Encrypted Plain Text Files Using Google Android

Software Architecture Document

Digital Signature Web Service Interface

DocuSign Connect Guide

NetBrain Security Guidance

UFTP AUTHENTICATION SERVICE

Web Security Considerations

CrashPlan Security SECURITY CONTEXT TECHNOLOGY

Using SAP Logon Tickets for Single Sign on to Microsoft based web applications

Information Supplement: Requirement 6.6 Code Reviews and Application Firewalls Clarified

Siebel Business Process Framework: Workflow Guide. Siebel Innovation Pack 2013 Version 8.1/8.2 September 2013

MS Enterprise Library 5.0 (Logging Application Block)

Data Collection and Analysis: Get End-to-End Security with Cisco Connected Analytics for Network Deployment

Web Application Report

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

CA Performance Center

PHP Language Binding Guide For The Connection Cloud Web Services

Semantic based Web Application Firewall (SWAF V 1.6) Operations and User Manual. Document Version 1.0

Novell Access Manager

Identifying and Exploiting Padding Oracles. Brian Holyfield Gotham Digital Science

HP Project and Portfolio Management Center

ADFS Integration Guidelines

Demo: Controlling.NET Windows Forms from a Java Application. Version 7.3

(n)code Solutions CA A DIVISION OF GUJARAT NARMADA VALLEY FERTILIZERS COMPANY LIMITED P ROCEDURE F OR D OWNLOADING

WEB SERVICES SECURITY

PowerCenter Real-Time Development

Understanding Slow Start

New York University Computer Science Department Courant Institute of Mathematical Sciences

Sophos SafeGuard Native Device Encryption for Mac Administrator help. Product version: 7

Chapter 1: General Introduction What is IIS (Internet Information Server)? IIS Manager: Default Website IIS Website & Application

Using the Monitoring and Report Viewer Web Services

Overview of Web Services API

Microsoft Dynamics CRM Server 2011 software requirements

Dashlane Security Whitepaper

Axway API Gateway. Version 7.4.1

Creating a Secure Web Service In Informatica Data Services

S ven. Tips to Keep Financial Apps Safe & Secure

Security. Contents. S Wireless Personal, Local, Metropolitan, and Wide Area Networks 1

Chapter 7 Transport-Level Security

Web Service Security Vulnerabilities and Threats in the Context of WS-Security

W E B S E RV I C E S D Y N A M I C C L I E N T G U I D E

Oracle Service Bus Examples and Tutorials

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Pervasive Data Integrator. Oracle CRM On Demand Connector Guide

White Paper BMC Remedy Action Request System Security

Enhanced Password Security - Phase I

Apigee Gateway Specifications

CS506 Web Design and Development Solved Online Quiz No. 01

Configuring Nex-Gen Web Load Balancer

Deploying the BIG-IP LTM with. Citrix XenApp. Deployment Guide Version 1.2. What s inside: 2 Prerequisites and configuration notes

PHP Integration Kit. Version User Guide

Transcription:

Custom Encryption in Siebel & Siebel Web Security Test Guide 1.0 Muralidhar Reddy Introduction Siebel (7.5 onwards and upto 8.1) natively supports 2 Types of Inbound web Security 1. WS Security UserName Token Profile Support This requires the UserName and Password to be passed in clear text format in the SOAP Header Message. 2. HTTPS Security This requires a combination of Server and Client Certificates to perform the authentication. The first option is used for basic Security Authentication whereas the second one is used for fool proof Security Implementation where additional licenses are required for the Server and Client Security Certificates. This Guide provides detail technical information on implementation of Custom Encryption of the data for any XML Tags received from External System using the external Encryption algorithm AES-128. This Encryption mode can be used as an additional level of security for Web s along with the UserName Token Profile Support WS Security.

Executive Overview The ubiquity of webservices in a corporate infrastructure has become an order of the day. While this has given great flexibility in managing integration of multiple applications, this also exposes an enterprise to increased data security threats. Hence it is imperative to address the threats arising to sensitive data like accounts, pricing etc. There are multiple ways of enforcing the security on the data exchanged across different systems. The most prominent solution is to implement the WS-Security. WS-Security specification is a standard that builds on W3C s generic XML encryption and signature standards for the purpose of securing SOAP messages. The purpose of WS-Security is to enforce confidentiality, integrity or include authentication information in SOAP messages. Secure Socket Layer (SSL) is a commonly used protocol for providing confidentiality, integrity and authentication for messages transmitted over the network. Siebel endorses the WS-Security standards and provides its own mechanism for implementing the WS-Security using the above mentioned SSL Approach and the UserName Token mechanism. Both the approaches have certain Pros and Cons. - Option 1: Implementation of SSL (using HTTPS) protocol involves importing of installation of Server and Client certificates in Siebel and external System. This mechanism ensures foolproof security by encrypting the complete XML payload along with Server Certificate details passed which can be unlocked only by relevant Client Certificate. This approach requires procurement of additional licenses for the Security certificates and will have impact on the performance - Option 2: UserName Token Profile Support. This requires the UserName and Password to be passed only in clear text format in the SOAP Header Message. This has its own limitation as currently Siebel does not support a way to read the data in the SOAP Header, if passed in some encrypted manner. The advantage of using this option is it does not have any overhead unlike the Option 1, but has its own limitations. The paper discusses another creative approach, beyond the two standard solutions mentioned above. It provides an alternate approach in which an additional level of Security built above the Siebel provided UserName Token Profile Support approach i.e., by passing certain security tag in an encrypted format from an External System to Siebel and then decrypting the tag in Siebel using any standard Encryption algorithm. (like AES 128) The paper elucidates the above approach using Siebel Integrating with Java for providing the Custom Encryption using External Encryption algorithm AES-128. Please note that the configuration steps detailed in this document are illustrative to present the approach. Highlights The document lists steps for Custom Encryption using AES-128 algorithm. The same procedure can be used with other Encryption algorithm as well. This will involve change in the underlying Java File. Since the custom Encryption is done by Integrating Siebel Product with External Java file, hence it can be used with Siebel version higher than 7.5. Getting Started Following are the configuration steps for implementing Custom Encryption: 1. Java File Create/Setup: Step1. Create a Java file <StringEncryption.java> with following code. import com.siebel.data.siebelpropertyset; import com.siebel.eai.siebelexception; import org.apache.commons.codec.binary.base64; import javax.crypto.cipher; import javax.crypto.spec.secretkeyspec; 2 Infosys View Point

public class StringEncryption extends com.siebel.eai.siebel { public void doinvokemethod(string methodname, SiebelPropertySet input,siebelpropertyset output) throws SiebelException { if (!methodname.equals ( Decrypt )) throw new SiebelException( NO_SUCH_METHOD, No such method ); else { try { String encryptedstr = input.getproperty( Password ); String key = input.getproperty( Key ); SecretKeySpec skeyspec = new SecretKeySpec(Base64.decodeBase64(key), AES ); byte[] encrypted = Base64.decodeBase64(encryptedstr); Cipher cipher = Cipher.getInstance( AES ); } } //end of void } //end of class cipher.init(cipher.decrypt_mode, skeyspec); byte[] original = cipher.dofinal(encrypted); String originalstring = new String(original); output.setproperty( PasswordText, originalstring); } catch (Exception e) { } Step2. Compile this Java code into a class file (StringEncryption.class) using javac command: Command: javac StringEncryption.java Step3. Jar the.class file created above. Command: jar cvf StringEncryption.class 2. Sibel Configuration: Step1. Create reference LOV as shown below. Type Display Value LIC SECURITY_TOKEN Yes Security Req SECURITY_TOKEN Invalid Security Code SECURITY ERROR CODE SECURITY_TOKEN Authentication Failed SECURITY ERROR MSG 3 Infosys View Point

Step 2. Copy vanilla <EAI Java > and name it as EAI2Java BS. Add User Property to this BS with following details: Name: @class Value: StringEncryption Note: The BS User Property value is the name of Java class. This should be given as pacakagename.class. The Java Class created (StringEncryption.java) in step 1 under Java File Create/Setup is not inside any package, hence the Value is mentioned without java package prefix. Step 3. Create another : Test EAI Java BS. This invokes the java class and receives the Security Code Value in cleartext. Then it builds the Response as SUCCESS/FAILURE. Below is the code for this s PreInvoke Method: function _PreInvokeMethod (MethodName, Inputs, Outputs) { if(methodname == ValidateUser ) { var pwd = Inputs.GetProperty( Password ); var key; var result; var result1; //Start of Code to receive Decrypted value for Password var obs = TheApplication().Get( EAI2Java BS ); var inps = TheApplication().NewPropertySet(); var outps = TheApplication().NewPropertySet(); key=theapplication().invokemethod( LookupValue, SECURITY_TOKEN, Token ); inps.setproperty( Password, pwd); inps.setproperty( Key, key); obs.invokemethod( Decrypt, inps, outps); result = outps.getproperty( PasswordText ); var pwd=theapplication().invokemethod( LookupValue, SECURITY_TOKEN, Password ); if(result!= null && result == pwd) result1 = SUCCESS ; else result1 = FAILURE ; Outputs.SetProperty( Result,result1); return(canceloperation); } return (ContinueOperation); } 4 Infosys View Point

Step 4. Create a workflow: Security Check WF. This WF is used to invoke the above. Is req? N Update Result Start Get Security LOV Validate User Error Yes Echo End Error Handling WF Step 1. Get Security LOV Name Type Name Method Sub Process Name Components Operation Get Security LOV Workflow Utilities Echo Output Arguments Property Name Type Value Output Arguments IsSecurityRequired Expression Lookup Value ( SECURITY_TOKEN, Security Req ) Step 2. Decision Step (Is required) Name Type Name Method Sub Process Name Component Operation Is Required If IsSecurityRequired = N, Go to Setp 3 else goto Step 4 5 Infosys View Point

Step 3. Update Result Name Type Name Method Sub Process Name Component Operation Update Result Workflow Utilities Echo Output Arguments Property Name Type Value Output Arguments Result Literal SUCCESS Step 4. Validate User Name Type Name Method Sub Process Name Component Operation Validate User Test EAI Java BS Validate User Input Argument Type Value Property Name Password Process Property Password Output Arguments Property Name Type Value Output Arguments Result Output Argument Result Note: The Output Process Property from Step 4 ie., Result will have value as SUCCESS or FAILURE. 6 Infosys View Point

Step 5. Decision Step Name Type Name Method Sub Process Name Component Operation Error? If Result = SUCCESS, go to Step 6, else go to END Step Step 6. Echo Name Type Name Method Sub Process Name Component Operation Echo Workflow Utilities Echo Output Arguments Property Name Type Value Output Arguments Error Code Expression LookupValue( SECURITY_TOKEN, SECURITY ERROR CODE ) Error Code Expression LookupValue( SECURITY_TOKEN, SECURITY ERROR MSG ) 7 Infosys View Point

3. Siebel Server Setup: Step1. Navigate to SiteMap - Server Configuration> Enterprise Servers> Profile Configuration. Query for the JAVA Subsystem and update the following parameter Parameter: JVM Classpath Value: /usr/local/apps/sba80/siebsrvr/classes/siebel.jar:/usr/local/apps/sba80/siebsrvr/classes/siebelji_enu.jar:/usr/local/apps/ sba80/siebsrvr/classes/stringencryption.jar:/usr/local/apps/sba80/siebsrvr/classes/commons-codec-1.4.jar 4. Process Flow 1. Trigger the Security Check WF with Encrypted String as an Input Parameter 2. The step Validate User of the Workflow will invoke the Test EAI Java BS with the Encrypted String as an input parameter 3. The BS Test EAI Java BS will invoke make a call to the EAI2Java 4. The EAI2Java BS will invoke the method Decrypt of the Java class using its User Property @class. 5. The method Decrypt in the Java class will return the decrypted value of the Encrypted String to the BS Test EAI Java BS 6. The BS Test EAI Java BS will then compare the reurned decrypted string with a value stored in Siebel and will return SUCCESS if the value is matching else FAILURE. 7. The Security Check WF will retrieve the value SUCCESS/FAILURE and if it is FAILURE then this writes the Error Message indicating Invalid Authentication Code. 8 Infosys View Point

5. Unit Testing Unit Testing of the Custom Encryption using the Java File 1. Add the Main Method in the Java file as shown below. public static void main(string[] args) { StringEncryption st = new StringEncryption(); SiebelPropertySet inpset = new SiebelPropertySet(); SiebelPropertySet outset = new SiebelPropertySet(); inpset.setproperty( Password, MoM1rQ2FgwAZ3O9qC/qc9Q== ); try { st.doinvokemethod( Decrypt, inpset, outset); String result = outset.getproperty( PasswordText ); System.out.println( result in response: + result); } catch (Exception e){} } 2. Set the classpath in you local machine as follows set classpath=%classpath%;d:\siebel.jar;d:\commons-codec-1.4.jar;.; 3. Compile the Java file using the command javac StringEncryption.java. 4. Run the Java file using the command java StringEncryption Unit Testing of the Custom Encryption using the BS Simulator in Thin Client 1. Navigate to Simulator and provide the data as shown below 9 Infosys View Point

Unit Testing of the Custom Encryption using the Workflow Simulator using Thick Client Before testing using the Thick Client, update the relevant cfg file with the below section [JAVA] DLL = C:\Progra~1\Java\jdk1.5.0_17\jre\bin\server\jvm.dll CLASSPATH = D:\Siebel\Tools\CLASSES\Siebel.jar;D:\Siebel\Tools\CLASSES\SiebelJI_enu.jar;D:\StringEncryption.jar; D:\commons-codec-1.4.jar;. (Note : Change the above location based on the Installation path and the jar file location) Other Features The Workflow provided in this Document can be used as a Child Process in the Parent Workflow, which is exposed as a Siebel Inbound Web. The First Step in the Parent Workflow will be to invoke this Workflow and retrieve the Encrypted String and pass on this value to the Child Process (Security WF). Based on the response received from the Child Workflow (SUCCESS/FAILURE) the Parent Workflow can continue with Next Operation or terminated (or throw an Error) in case of Invalid Security Code received from External System. Conclusion The document offers a cost effective security implementation mechanism for Siebel interfaces. The decision to utilize the custom security implementation provided in this paper should be based on specific budgetary constraints and the criticality of secure interfaces. While the document illustrates the security implementation solution using AES-128 algorithm, the idea can easily be extended to other encryption routines. 10 Infosys View Point

References Reference 1: Title: Using AES with Java Technology URL: http://java.sun.com/developer/technicalarticles/security/aes/aes_v1.html Reference 2: Siebel Bookshelf: Transports and Interfaces: Siebel Enterprise Application Integration Refer Chapter 5: Java About the Author Muralidhar Reddy Kohir, Technology Architect- Siebel, Oracle Practice, Infosys. Muralidhar has over 10 years IT experience, primarily in the Siebel CRM space. He has worked and successfully delivered multiple end-to-end Siebel implementations for Logistics and eenergy clients. His core skill-set includes Siebel EAI. He is a B.Tech. in Electronics and Communication from JNTU Hyderabad. 11 Infosys View Point