Securing Large Applications CSCI 5931 Web Security Rungang Mo, Yingying Sun.

Slides:



Advertisements
Similar presentations
This course is designed for system managers/administrators to better understand the SAAZ Desktop and Server Management components Students will learn.
Advertisements

Module 6: Configuring Windows XP Professional to Operate in a Microsoft Network.
Ordering Stones on the Senior Sidewalk of Kansas State University Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Gurdip Singh Dr. Mitchell.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Gem Cluster Freelancer Network Sosuke Tokunaga CS491b Fall 2004.
SSL Man in the Middle Proxy Srinivas Inguva Dan Boneh Ian Baker Stanford University.
Web Site Security Representation and Management of Data on the Web.
Tomcat Configuration A Very, Very, Very Brief Overview.
Julien Thibault / Phil Brewster / Kristina Doing-Harris
SSL (Secure Socket Layer) and Secure Web Pages Rob Sodders, University of Florida CIS4930 “Advanced Web Design” Spring 2004
Understanding and Managing WebSphere V5
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
11 SUPPORTING INTERNET EXPLORER IN WINDOWS XP Chapter 11.
Course 6421A Module 7: Installing, Configuring, and Troubleshooting the Network Policy Server Role Service Presentation: 60 minutes Lab: 60 minutes Module.
8/19/20151 Securing a Database Based on notes by Fei Li and Hong Li.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
E.halFILE 2.2 New Application Features Session II.
Module 10: Designing an AD RMS Infrastructure in Windows Server 2008.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter Four Configuring Outlook and Outlook Web Access.
Session Session 26 SAIG (Title IV WAN) Connectivity.
Chapter 4: Core Web Technologies
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
1 Guide to Novell NetWare 6.0 Network Administration Chapter 13.
Csci5233 Computer Security1 Bishop: Chapter 27 System Security.
Implementing ISA Server Publishing. Introduction What Are Web Publishing Rules? ISA Server uses Web publishing rules to make Web sites on protected networks.
JavaScript, Fourth Edition
Tomcat Spencer Uresk. Notes This is a training NOT a presentation Please ask questions This is being recorded
Movie Manager by Patrick Wesley and Chris Grey Internet Database Project for CS 8630 – Summer 2004 Dr. Guimaraes.
CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES LECTURE 5_1 George Koutsogiannakis/ Summer
Creating a Web Site to Gather Data and Conduct Research.
Troubleshooting Windows Vista Security Chapter 4.
SUSE Linux Enterprise Desktop Administration Chapter 12 Administer Printing.
20411B 8: Installing, Configuring, and Troubleshooting the Network Policy Server Role Presentation: 60 minutes Lab: 60 minutes After completing this module,
Protecting Internet Communications: Encryption  Encryption: Process of transforming plain text or data into cipher text that cannot be read by anyone.
Shibboleth: Installation and Deployment Scott Cantor July 29, 2002 Scott Cantor July 29, 2002.
TWSd - Security Workshop Part I of III T302 Tuesday, 4/20/2010 TWS Distributed & Mainframe User Education April 18-21, 2010  Carefree Resort  Carefree,
SE-2840 Dr. Mark L. Hornick1 Web Application Security.
Grid Chemistry System Architecture Overview Akylbek Zhumabayev.
Module 5: Configuring Internet Explorer and Supporting Applications.
1 Chapter Overview Performing Configuration Tasks Setting Up Additional Features Performing Maintenance Tasks.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Module 6: Managing Client Access. Overview Implementing Client Access Servers Implementing Client Access Features Implementing Outlook Web Access Introduction.
Guide to MCSE , Second Edition, Enhanced1 The Windows XP Security Model User must logon with: Valid user ID Password User receives access token Access.
Shibboleth: Installation and Deployment Scott Cantor July 29, 2002 Scott Cantor July 29, 2002.
CSCI 6962: Server-side Design and Programming Java Server Faces Scoping and Session Handling.
A Service Oriented Architecture for the Finance Case Study
JSP Server Integrated with Oracle8i Project2, CMSC691X Summer02 Ching-li Peng Ying Zhang.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
CCCognos Connection RSReport Studio ASAnalysis Studio QSQuery Studio ESEvent Studio CSContent Store FWM Framework.
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
WMarket For Adminstrators Manual Installation. Basic Dependencies To install your own WMarket instance, you are required to install the following software:
1 Web Programming with Servlets & JSPs WEB APPLICATIONS – AN OVERVIEW.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
11 SUPPORTING INTERNET EXPLORER IN WINDOWS XP Chapter 11.
CS 562 Advanced Java and Internet Application Computer Warehouse Web Application By Team Alpha :-  Puja Mehta (102163)  Mona Nagpure (102147)
Data Virtualization Tutorial… SSL with CIS Web Data Sources
Module Overview Installing and Configuring a Network Policy Server
Securing the Network Perimeter with ISA 2004
Web Portal Project.
Chapter 8 Building the Transaction Database
Lesson #8 MCTS Cert Guide Microsoft Windows 7, Configuring Chapter 8 Configuring Applications and Internet Explorer.
Unit 27: Network Operating Systems
An N-tier web application
Based on notes by Fei Li and Hong Li
Web-based Console for Controlling a Wireless Sensor Network (WeConWSN)
Chapter 10: Advanced Cisco Adaptive Security Appliance
Designing IIS Security (IIS – Internet Information Service)
Presentation transcript:

Securing Large Applications CSCI 5931 Web Security Rungang Mo, Yingying Sun

Content –Designing an online banking application; –Setting up the keys and certificates; –Configuring the database; –Building a database access tier; –Developing a web tier; –Constructing a client application; –Looking at areas for improvements.

Online banking –Main features: Accept credit cards to open accounts; Allow users to view their own account; Allow finance agent to view all credit card data. –Web Interface: Entry Register Balance

Network topology

Network connections –Customer to web server: Most dangerous; Using SSL with authentication. –Web server to middleware: RMI over SSL. –Middleware to database: RMI over SSL. –Credit card viewer to middleware: Using SSL with authentication.

Application security –Database: Encrypt credit card numbers by public key; Run secure JDBC driver on the database. –Middleware (Bank): Only allow connections from web server and credit card client. –Credit card client: Decrypt and view credit cards

Application security (cont.) –Web server: Block access to most ports with a firewall. –Web browser: Using client authentication; The browser protects the private key with password-based encryption;

Setting up the keys -Relationship between Components

Generate the keys –Using default Java keystore to handle trust and authentication; –Create private and public keys for each component; –Create truststores for each component that contain the appropriate public keys; –Get a key from Thawte for web browser; –Using keytool to create the rest of the keys and certificates for credit card client, middleware, and database. (Page 366)

Export/ Import the certificates –In order to establish trust, we need to export all the certificate that need to be trusted: c:\> keytool -export -keystore bankKeyStore - file bank.cer –Set up trust by creating trust store: Web Server: need to trust a number of certificates Certificate Recognition in Internet Explorer: Page 367.

The Database –MySQL: Cross- platform and freely available for non- commercial use; –Tables: Accounts: ID, name, balance, certificate serial number. Credit_card: account_id, session_key, cc_number. –The database driver: secureDriver_config.xml; SecureDriver.policy.

The Middleware - The Bank –Creating an interface for clients to use; –Building data objects to enable items to be stored in the database; –Creating an RMI object to connect the interface to the data objects; –Constructing a way of starting the middleware; –Configuring the middleware.

The Bank Interface –Four methods contained in the Bank class: register(): register a new account given basic user information. getAccount(): find the account for a given client certificate serial number. getCreditCardDBO(): fetch the encrypted credit card information for a given account ID. getAllCreditCardAccountIDs(): get a list of all the account Ids in the database.

Data objects –Account class: Hold information, which is not encrypted; Contains accountID, balance, customer name, certificate serial number; –RegistrationInformation class: Wrap up all of the user-entered information; Contains credit card number, balance, name, certificate serial number; –CreditCardDBO class:

Data objects (cont.) –DatabaseOperations class: Class for performing database operations; Use the JDBC proxy to encrypt the connection using RMI over SSL; Store CreditCardDBO object and Account object in the database separately; Use the BASE64 encoder and decoder classes;

Bank Implementation –Creating an RMI object: BankImpl to connect the interface to the data objects; –Extend UnicastRemoteObject so that it can be used over RMI; –Important methods: BankImpl (); register (); getAccount (); getAllCreditCardAccountIDs (); getCreditCardDBO ();

Starting the Bank –The BankInit class: Construct a BankImpl object with a Properties object that we read off the file system; Commond-line argument indicates the properties file to read; Call Naming.rebind () on it so that it becomes available for RMI client; A bug in JSSE v and earlier.

Configuration –config.properties: define JDBC configuration and the location of the public key; –BankInit.policy: start up the bank; –Collecting the files: SecureDriverClient.jar; Bank.jar; Associated data: keystore/ truststore/ creditcard.cer –Running the Bank:

The Web Server –Main functions: Registration; Account viewing. –Using SSL client authentication to identify users; –Build the servlets and JSPs for the web tier; –Look at packaging the web application and deploying to Tomcat; –Run the application;

Servlets and JSPs Diagram index.html invalidLogin.html register.html alreadyRegistered.html RegisterServlet BalanceServlet balance.jsp

Servlets and JSPs –HTMLs: Register: sends data to RegisterServlet; Login: takes users to the BalanceServlet; –Servlets: RegisterServlet: handles creating account; BalanceServlet: loads account information, and sends it to a JSP for display AbstractEcommerceServlet: –init(); –getCertificate(); –getRedirectURL(); –balance.jsp:

Packaging the web application –Policy file for Tomcat: tomcat.policy –Modifying web.xml; –Build the WAR file; –Copy the WAR file into Tomcat; –Delete other Webapps and Add the BankApp; –Enable SSL; –Enable policy support; –Add support file –Edit web server startup scripts

Start the application –Start the RMI registry on the database server; –Start the database driver; –Start the RMI registry on the bank; –Start the bank; –Start the web server.

Credit Card Client –Allows a user to view all of the credit cards in the database, decrypting them with the private key; –Modifications on Chapter 10 example: The GUI for password instead of setting the keystore password on the command line; Adding support for RMI: CreditCardClient class: –decryptCreditCardDBO(); –main(); –getPassword();

Credit Card Client (Cont.) –Credit card client policy file: CreditCardClient.policy (Page 409); –Packaging the credit card client: create a JAR file, CreditCardClient.jar; create a directory for the credit card client; –Running the credit card client:

Possible Modifications –Logging: –Using SSL: –Web browser authentication: –The database: –Encrypting SSL keys:

Reference –Jess Garms, Daniel Somerfield-- Professional Java Security; – – – – – –