PKI Security in MapServer using Apache

Slides:



Advertisements
Similar presentations
Chapter 10 Encryption: A Matter of Trust. Awad –Electronic Commerce 1/e © 2002 Prentice Hall 2 OBJECTIVES What is Encryption? Basic Cryptographic Algorithm.
Advertisements

Windows 2000 Security --Kerberos COSC513 Project Sihua Xu June 13, 2014.
Authenticating Users. Objectives Explain why authentication is a critical aspect of network security Explain why firewalls authenticate and how they identify.
Grid Computing, B. Wilkinson, 20045a.1 Security Continued.
1 Lecture 17: SSL/TLS history, architecture basic handshake session initiation/resumption key computation negotiating cipher suites application: SET.
SSL CS772 Fall Secure Socket layer Design Goals: SSLv2) SSL should work well with the main web protocols such as HTTP. Confidentiality is the top.
1 Supplement III: Security Controls What security services should network systems provide? Confidentiality Access Control Integrity Non-repudiation Authentication.
1 Federated Identity and Single-Sign On Prof. Ravi Sandhu Executive Director and Endowed Chair February 15, 2013
Public Key Infrastructure (PKI) Providing secure communications and authentication over an open network.
DESIGNING A PUBLIC KEY INFRASTRUCTURE
A Third Party Service for Providing Trust on the Internet Work done in 2001 at HP Labs by Michael VanHilst and Ski Ilnicki.
Mar 12, 2002Mårten Trolin1 This lecture Diffie-Hellman key agreement Authentication Certificates Certificate Authorities SSL/TLS.
Security Overview Hofstra University University College for Continuing Education - Advanced Java Programming Lecturer: Engin Yalt May 24, 2006.
6/4/2015National Digital Certification Agency1 Security Engineering and PKI Applications in Modern Enterprises Mohamed HAMDI National.
 Key exchange o Kerberos o Digital certificates  Certificate authority structure o PGP, hierarchical model  Recovery from exposed keys o Revocation.
Introduction to PKI Seminar What is PKI? Robert Brentrup July 13, 2004.
CERTIFICATES “a document containing a certified statement, especially as to the truth of something ”
SSL (Secure Socket Layer) and Secure Web Pages Rob Sodders, University of Florida CIS4930 “Advanced Web Design” Spring 2004
INTRODUCTION Why Signatures? A uthenticates who created a document Adds formality and finality In many cases, required by law or rule Digital Signatures.
Digital Certificates Public Key Deception Digital Certificates Certificate Authorities Public Key Infrastructures (PKIs)
Deploying a Certification Authority for Networks Security Prof. Dr. VICTOR-VALERIU PATRICIU Cdor.Prof. Dr. AUREL SERB Computer Engineering Department Military.
Lecture 12 Electronic Business (MGT-485). Recap – Lecture 11 E-Commerce Security Environment Security Threats in E-commerce Technology Solutions.
SYSTEM ADMINISTRATION Chapter 13 Security Protocols.
Masud Hasan Secue VS Hushmail Project 2.
One Corps Serving The Army and the Nation US Army Corps of Engineers Technology Transfer in Support of Agency Strategy 15 Sept 2005 Sharon Borland Office.
SSL / TLS in ITDS Arun Vishwanathan 23 rd Dec 2003.
Protecting Internet Communications: Encryption  Encryption: Process of transforming plain text or data into cipher text that cannot be read by anyone.
E-Commerce Security Professor: Morteza Anvari Student: Xiaoli Li Student ID: March 10, 2001.
Unit 1: Protection and Security for Grid Computing Part 2
12/3/2012ISC329 Isabelle Bichindaritz1 PHP and MySQL Advanced Features.
Certificate-Based Operations. Module Objectives By the end of this module participants will be able to: Define how cryptography is used to secure information.
1 SSL - Secure Sockets Layer The Internet Engineering Task Force (IETF) standard called Transport Layer Security (TLS) is based on SSL.
1 Security Protocols in the Internet Source: Chapter 31 Data Communications & Networking Forouzan Third Edition.
PHP Secure Communications Web Technologies Computing Science Thompson Rivers University.
Security fundamentals Topic 5 Using a Public Key Infrastructure.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
Creating and Managing Digital Certificates Chapter Eleven.
Digital Signatures and Digital Certificates Monil Adhikari.
Apr 1, 2003Mårten Trolin1 Previous lecture Certificates and key management Non-interactive protocols –PGP SSL/TLS –Introduction –Phases –Commands.
SSL: Secure Socket Layer By: Mike Weissert. Overview Definition History & Background SSL Assurances SSL Session Problems Attacks & Defenses.
Chapter 8 E-Commerce Technologies Introduction to Business Information Systems by Mark Huber, Craig Piercy, Patrick McKeown, and James Norrie.
Key management issues in PGP
TOPIC: HTTPS (Security protocol)
Setting and Upload Products
Web Applications Security Cryptography 1
Security Outline Encryption Algorithms Authentication Protocols
Secure Sockets Layer (SSL)
Information Security message M one-way hash fingerprint f = H(M)
Chapter 8 Building the Transaction Database
Cold Regions Research and Engineering Laboratory
IBM Certified WAS 8.5 Administrator
Information Security message M one-way hash fingerprint f = H(M)
Information Security message M one-way hash fingerprint f = H(M)
Using SSL – Secure Socket Layer
کاربرد گواهی الکترونیکی در سیستمهای کاربردی (امضای دیجیتال)
CompTIA Security+ Study Guide (SY0-501)
Security in Web Applications
Pooja programmer,cse department
Network Security – Kerberos
ELECTRONIC MAIL SECURITY
County HIPAA Review All Rights Reserved 2002.
Information Security message M one-way hash fingerprint f = H(M)
ELECTRONIC MAIL SECURITY
Install AD Certificate Services
CS5220 Advanced Topics in Web Programming Secure REST API
Building Security into Your System
September 2002 CSG Meeting Jim Jokl
Operating System Concepts
Electronic Payment Security Technologies
National Trust Platform
Presentation transcript:

PKI Security in MapServer using Apache FOSS4G2006 EPFL-UNIL • Lausanne • Switzerland Michael Smith Engineer Research & Development Center - Remote Sensing/GIS Center US Army Corps of Engineers, Hanover, NH michael.smith@erdc.usace.army.mil

About the Corps of Engineers 34,600 civilian and 650 military personnel USACE provides responsive engineering services to the nation Civil Works: Plan, design, build and operate water resources projects Navigation Flood Control Environmental Protection Disaster Response Design and manage the construction of military facilities for the Army and Air Force. Provide design and construction management support for other Defense and federal agencies.

Army Engineer Research and Development Center Alaska Projects Office European Research Office Anchorage Field Office Field Exposure Station Columbia River Fisheries Research Facility Cold Regions Research Engineering Laboratory The Dalles Research Facility Engineer Research and Development Center Disbursed Command of 7 unique technical laboratories at 4 locations Research facilities and activities around the country and the world Collecting Cosmic Dust in Antarctica Searching for insects in South America Advising NATO in Europe Headquartered in Vicksburg, Mississippi Eau Galle Laboratory Construction Engineering Research Laboratory Topographic Engineering Center Chemistry Quality Assurance Laboratory Field Research Facility Trotters Shoals Limnological Research Facility Big Black Test Facility Lewisville Aquatic Ecosystems Research Facility Coastal and Hydraulics Laboratory Environmental Laboratory Geotechnical and Structures Laboratory Information Technology Laboratory

RS/GIS Center Staff Skills & Background (32 Personnel) Hydraulic engineering Geomorphology Forestry Computer programming Image processing Geography Database management Signal processing Electrical engineering Ecology Economics Hydrology Meteorology Statistics Water resources engineering GIS enterprise applications Geospatial database organization and development GIS business practice applications development Image processing Sensor evaluation Spatial analysis Algorithm development/programming Emergency management Education and training Statistical analysis Watershed management

Business Requirements & Constraints Account/password management for thousands of users Support for PKI Infrastructure (DoD Common Access Card) Strictly Defined Roles and Access Formal Release/Version Control & Reporting Mechanism 24x7 Systems with Fail-Over/Disaster Recovery Replication to Secure Networks Support Data Calls & Data Snapshots Formal Software Development Process Distributed Development Teams

What is PKI - Public Key Infrastructure PKI is a framework that enables secure transactions to be performed on otherwise non-secure platforms (i.e., the Internet, etc.). PKI provides security through the use of a private and public cryptographic key pair. The private key is unique to the individual. This private key is issued by a trusted third party known as the certificate authority (CA). The public key is freely distributed to other users to be matched with the private key to authenticate the transaction.

More on PKI Two factor authentication Something you know Something you have Passphrase not sent over net, just decrypts private key Since private key sent over net, only use string encryption https (TLS, 128-bit ciphers etc)

PKI in the DoD = CAC (Common Access Cards) The CAC will serve as the user's PKI token, which means that the ICC located on the CAC will be used to store the user's private key identity These certificates are used to access PKI on card key generation services and applications

Basic Operation SSL used as the security/transport mechanism Server’s identity is verified browser root certificate User is authenticated by presenting a client certificate to the server Server verifies client by using a Certificate Authority (CA) root certificate

Part of Normal Apache Setup Can be placed in a <Location> tag to only affect specific locations Can be combined with Allow from/Deny from Can be combined with specific client requirements (a single department) SSLRequire Several environment variables can be populated by Client SSLOptions +StdEnvVars

Apache Setup 1) Point Apache to the Root CA SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/ca.crt 2) Set SSLVerifyClient require Set how deep to check for root CA SSLVerifyDepth n

SSL Environment Variables SSL_CLIENT_S_DN_CN The client supplied Common Name SMITH.MICHAEL.D.1140324104 SSL_CLIENT_S_DN_OU The client supplied Organizational Unit DoD SSL_CLIENT_S_V_END When the certificate expires Jul 19 23:59:59 2009 GMT

Additional Access Controls SSLRequire ( %{SSL_CIPHER} !~ m/^(exp | null)-/ \ and %{SSL_CLIENT_S_DN_OU} eq "DoD" )

Additional Access Controls FakeBasicAuth Passes SSL_CLIENT_S_DN_CN as basic authorization user name, sets password to “xxj31ZMTZzkVA” encrypted version of password Use standard .htaccess files to limit to certain subsets of users

If using ReverseProxy Make sure you add the SSL Environment variables explicitly to the headers RequestHeader set SSL_CLIENT_S_DN_CN %{SSL_CLIENT_S_DN_CN}e RequestHeader set SSL_CLIENT_S_DN_OU %{SSL_CLIENT_S_DN_OU}e RequestHeader set SSL_CLIENT_V_END %{SSL_CLIENT_V_END}e

Mapserver Integration Done at Environment or Cookie level for CGI or use Mapscript Only certain MapServer parameters accept variable substitution Available for DATA TILEINDEX CONNECTION FILTER Remember to set DATAPATTERN properly

MapServer Example DATA /data/%SSL_CLIENT_S_DN_OU%/nulldata.shp Status Default Unless Org name passed properly, map won’t draw Add error page to indicate security issue Use FILTER to display subsets of data to different groups

To Summarize: Basic Steps Get a CA certificate Set SSLCertificateFile to point to your CA Set SSLVerifyClient to require Set SSLRequire as necessary to limit access Limit access using FakeBasicAuth and / or Setting SSL Environement Variables and / or Setting Session ID variables Add variables to MapServer (as necessary)

Questions?

Apache Example SSLVerifyClient require SSLVerifyDepth 5 SSLOptions +StdEnvVars RequestHeader set REMOTE_HOST %{REMOTE_HOST}e RequestHeader set SSL_CLIENT_S_DN_CN %{SSL_CLIENT_S_DN_CN}e RequestHeader set SSL_CLIENT_S_DN_OU %{SSL_CLIENT_S_DN_OU}e RequestHeader set SSL_CLIENT_V_END %{SSL_CLIENT_V_END}e SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \ and %{SSL_CLIENT_S_DN_OU} eq "DoD" )