Apache web server: ConceI avanza0 (Lezione 2, Parte I) Emiliano Casalicchio (C) emiliano.casalicchio@uniroma1.it



Similar documents
mod_ssl Cryptographic Techniques

Overview of CSS SSL. SSL Cryptography Overview CHAPTER

3.2: Transport Layer: SSL/TLS Secure Socket Layer (SSL) Transport Layer Security (TLS) Protocol

The Seven Habits of State-of-the-Art Mobile App Security

Overview. SSL Cryptography Overview CHAPTER 1

How To Understand And Understand The Ssl Protocol ( And Its Security Features (Protocol)

Chapter 17. Transport-Level Security

Web Security: Encryption & Authentication

Security Protocols: SSH. Michael E. Locasto University of Calgary

Security & Privacy on the WWW. Topic Outline. Information Security. Briefing for CS4173

SSL/TLS: The Ugly Truth

SSL Overview for Resellers

SBClient SSL. Ehab AbuShmais

Secure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213

Apache Security with SSL Using Linux

Security. Guevara Noubir Network Security Northeastern University

Understanding Digital Certificates and Secure Sockets Layer (SSL)

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

A tutorial on how you can host mul$ple SSL Cer$ficates on a single IP address without losing any backward compa6bility

Cornerstones of Security

Managing IPv4 scarcity when using SSL Cer7ficates Mul7ple SSL Cer7ficates on a single IP address

GT 6.0 GSI C Security: Key Concepts

Security: Focus of Control. Authentication

Client Server Registration Protocol

VoIP Security How to prevent eavesdropping on VoIP conversa8ons. Dmitry Dessiatnikov

Secure Socket Layer. Introduction Overview of SSL What SSL is Useful For

Using etoken for SSL Web Authentication. SSL V3.0 Overview

Is your data safe out there? -A white Paper on Online Security

Introduction to Cryptography

Implementing Secure Sockets Layer on iseries

Computer System Management: Hosting Servers, Miscellaneous

TLS/SSL in distributed systems. Eugen Babinciuc

Lecture 9: Application of Cryptography

Apache Security with SSL Using Ubuntu

Security Goals Services

Security. Friends and Enemies. Overview Plaintext Cryptography functions. Secret Key (DES) Symmetric Key

CSE/EE 461 Lecture 23

Using EMC Unisphere in a Web Browsing Environment: Browser and Security Settings to Improve the Experience

SSL Protect your users, start with yourself

Security Digital Certificate Manager

Internet Programming. Security

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

Security Digital Certificate Manager

Understanding Digital Certificates and Wireless Transport Layer Security (WTLS)

ENABLING RPC OVER HTTPS CONNECTIONS TO M-FILES SERVER

Network Security [2] Plain text Encryption algorithm Public and private key pair Cipher text Decryption algorithm. See next slide

Network Security Protocols

SSL Guide. (Secure Socket Layer)

Web Payment Security. A discussion of methods providing secure communication on the Internet. Zhao Huang Shahid Kahn

How to configure SSL proxying in Zorp 3 F5

Securing your Online Data Transfer with SSL

Lecture 31 SSL. SSL: Secure Socket Layer. History SSL SSL. Security April 13, 2005

Wireless Networks: Network Protocols/Mobile IP

Secure Sockets Layer (SSL) / Transport Layer Security (TLS)


Network-Enabled Devices, AOS v.5.x.x. Content and Purpose of This Guide...1 User Management...2 Types of user accounts2

CRYPTOGRAPHY IN NETWORK SECURITY

As enterprises conduct more and more

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ MEng. Nguyễn CaoĐạt

Communication Systems SSL

[SMO-SFO-ICO-PE-046-GU-

Savitribai Phule Pune University

WEB Security & SET. Outline. Web Security Considerations. Web Security Considerations. Secure Socket Layer (SSL) and Transport Layer Security (TLS)

Transport Level Security

Cryptosystems. Bob wants to send a message M to Alice. Symmetric ciphers: Bob and Alice both share a secret key, K.

The Secure Sockets Layer (SSL)

Quickstream Connectivity Options

First Semester Examinations 2011/12 INTERNET PRINCIPLES

Security IIS Service Lesson 6

4.1: Securing Applications Remote Login: Secure Shell (SSH) PEM/PGP. Chapter 5: Security Concepts for Networks

Understanding digital certificates

Web Security Considerations

Web Security (SSL) Tecniche di Sicurezza dei Sistemi 1

Communication Systems 16 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2009

How Secure are your Channels? By Morag Hughson

TLS and SRTP for Skype Connect. Technical Datasheet

7 Network Security. 7.1 Introduction 7.2 Improving the Security 7.3 Internet Security Framework. 7.5 Absolute Security?

NIST Security Improvements. William C. Barker and Scott Rose October 22, 2015 M3AAWG 35 th General Meeting

Lektion 2: Web als Graph / Web als System

Common security requirements Basic security tools. Example. Secret-key cryptography Public-key cryptography. Online shopping with Amazon

EE 7376: Introduction to Computer Networks. Homework #3: Network Security, , Web, DNS, and Network Management. Maximum Points: 60

Communication Security for Applications

Introduction. Haroula Zouridaki Mohammed Bin Abdullah Waheed Qureshi

HOST LINKS SSL G&R. Using SSL for security with G&R products.

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

Unifying Information Security. Implementing TLS on the CLEARSWIFT SECURE Gateway

ERserver. iseries. Securing applications with SSL

Secure Socket Layer. Carlo U. Nicola, SGI FHNW With extracts from publications of : William Stallings.

How To Encrypt Data With Encryption

Security. Learning Objectives. This module will help you...

Passwords are for Chumps

Whitepaper : Using Unsniff Network Analyzer to analyze SSL / TLS

The Case For Secure

SSL Configuration Best Practices for SAS Visual Analytics 7.1 Web Applications and SAS LASR Authorization Service

Encrypted Connections

INTERNET SECURITY: FIREWALLS AND BEYOND. Mehernosh H. Amroli

Sync Security and Privacy Brief

How to configure HTTPS proxying in Zorp 5

Understanding Digital Certificates on z/os Vanguard Las Vegas, NV Session AST3 June 26th 2012

ETSF10 Part 3 Lect 2

Transcription:

Corso di Proge+azione di Re0 e Sistemi Informa0ci Apache web server: ConceI avanza0 (Lezione 2, Parte I) Emiliano Casalicchio emiliano.casalicchio@uniroma1.it

Agenda ConceI e pra0ca sul Virtual hos0ng Il supporto SSL/TLS in apache (h+ps) Caching Proxying

Virtual Host h+p://h+pd.apache.org/docs/2.2/vhosts/ The term Virtual Host refers to the prac0ce of running more than one web site (such as www.company1.com and www.company2.com) on a single machine. Virtual hosts can be "IP based", meaning that you have a different IP address for every web site, or "name based", meaning that you have mul0ple names running on each IP address. The fact that they are running on the same physical server is not apparent to the end user. Name based virtual host (h+p://h+pd.apache.org/docs/2.2/vhosts/name based.html) Consiglio: in fase di test per associare più nomi all indirizzo 127.0.0.1 u0lizzare il file / etc/hosts

IP based virtual host h+p://h+pd.apache.org/docs/2.2/vhosts/ip based.html As the term IP based indicates, the server must have a different IP address for each IP based virtual host. This can be achieved by the machine having several physical network connec0ons, or by use of virtual interfaces which are supported by most modern opera0ng systems (see system documenta0on for details, these are frequently called "ip aliases", and the "ifconfig" command is most commonly used to set them up). There are two ways of configuring apache to support mul0ple hosts. Either by running a separate h+pd daemon for each hostname, or by running a single daemon which supports all the virtual hosts. Use mul0ple daemons when: There are security par00oning issues You can afford the memory and file descriptor requirements of listening to every IP alias on the machine. Use a single daemon when: Sharing of the h+pd configura0on between virtual hosts is acceptable. The machine services a large number of requests, and so the performance loss in running separate daemons may be significant.

singolo demone h+pd

Esempi Virtual Hos0ng Running several name based web sites on a single IP address. Name based hosts on more than one IP address. Serving the same content on different IP addresses (such as an internal and external address). Running different sites on different ports. IP based virtual hos0ng Mixed port based and ip based virtual hosts Mixed name based and IP based vhosts http://httpd.apache.org/docs/2.2/vhosts/examples.html Crea0ng virtual host configura0ons on your Apache server does not magically cause DNS entries to be created for those host names. You must have the names in DNS, resolving to your IP address, or nobody else will be able to see your web site. You can put entries in your hosts file for local tes@ng, but that will work only from the machine with those hosts entries.

Esercizio Provare la configurazione di Name base virtual host associando piu si0 allo stesso indirizzo IP associando piu si0 a indirizzi IP e porte diverse. Facolta0vo, provare IP based virtual hosts associando piu IP alla stessa scheda di rete.

Agenda ConceI e pra0ca sul Virtual hos0ng Il supporto SSL/TLS in apache (h+ps) Introduzione Cifratura in Apache Auten0cazione client e controllo d accesso in apache Caching Regole di riscri+ura

Introduzione a SSL/TLS Secure Socket Layer / Transport Layer Security tecniche di cri+ografia Chiave simmetrica (o convenzionale) Chiave pubblica, Diggest, Digital signature Conce+o di cer0ficato Il protocollo SSL

Symmetric cryptography Alice Bank A,B are required to share a key: a secret piece of informa0on that may be used to encrypt or decrypt a message. As long as this key is kept secret, nobody other than the sender or recipient can read the message. The task of sharing a key between sender and recipient before communica0ng, while also keeping it secret from others, can be problema0c.

Public key cryptography Solves the key exchange problem by defining an algorithm which uses two keys, each of which may be used to encrypt a message. If one key is used to encrypt a message then the other must be used to decrypt it. This makes it possible to receive secure messages by simply publishing one key (the public key) and keeping the other secret (the private key). Alice Bank B publish PuK_B A crypt M by using PuK_B A send (M,PuK_B) to B B decrypt (M,PuK_B) by using Pr_B

Problems with Public Key cryptography Integrity viola0on: A M B M might modify her original message or subs0tute it with a different one One way of guaranteeing the integrity of A s message is for her to create a concise summary of her message and send this to the bank as well. Upon receipt of the message, the bank creates its own summary and compares it with the one Alice sent. If the summaries are the same then the message has been received intact. Message summary = Diggest How B can be sure the message M is from A? Digital Signature

Message Disgest, one way func0on or hash func0on A: H(M)=D, A send M,D to B, B: H(M)=D, D =D? Message digests are used to create a short, fixed length representa0on of a longer, variable length message. Digest algorithms are designed to produce a unique digest for each message. Message digests are designed to make it imprac0cally difficult to determine the message from the digest and (in theory) impossible to find two different messages which create the same digest thus elimina0ng the possibility of subs0tu0ng one message for another while maintaining the same digest. Another challenge that A faces is finding a way to send the digest to the bank securely; Only if the digest is sent securely can the integrity of the associated message be determined.

Digital Signature Digital signatures are created by encryp0ng a digest of the message and other informa0on (such as a sequence number) with the sender's private key. Though anyone can decrypt the signature using the public key, only the sender knows the private key. This means that only the sender can have signed the message. Including the digest in the signature means the signature is only good for that message; It also ensures the integrity of the message since no one can change the digest and s0ll sign it. To guard against intercep0on and reuse of the signature by an intruder at a later date, the signature contains a unique sequence number. This protects B from a fraudulent claim from A that she did not send the message only she could have signed it (non repudia0on).

Summarizing 1. A, PuK_A, PrK_A 2. B, PuK_B, PrK_B 3. A produce the dig.sig. of M S_M=f(PrK_A, (H(M),I,sn)) 4. A send f(puk_b, M), S_M to B A s0ll needs to be sure that she is really communica0ng with B. This means that A needs to be sure that the public key she is using is part of the B's key pair, and not an intruder's. B needs to verify that the message signature really was signed by the private key that belongs to A. If each party has a cer0ficate which validates the other's iden0ty, confirms the public key and is signed by a trusted agency, then both can be assured that they are communica0ng with whom they think they are. Such a trusted agency is called a Cer0ficate Authority and cer0ficates are used for authen0ca0on.

Introduzione a SSL/TLS Secure Socket Layer / Transport Layer Security tecniche di cri+ografia Chiave simmetrica (o convenzionale) Chiave pubblica, Diggest, Digital signature Conce+o di cer0ficato Il protocollo SSL

SSL The Secure Sockets Layer protocol is a protocol layer which may be placed between a reliable connec0on oriented network layer protocol (e.g. TCP/IP) and the applica0on protocol layer (e.g. HTTP). SSL provides for secure communica0on between client and server by allowing mutual authen0ca0on, the use of digital signatures for integrity and encryp0on for privacy.

SSL The protocol is designed to support a range of choices for specific algorithms used for cryptography, digests and signatures. This allows algorithm selec0on for specific servers to be made based on legal, export or other concerns and also enables the protocol to take advantage of new algorithms. Choices are nego0ated between client and server when establishing a protocol session.

Versions of SSL protocol

SSL handshake Once an SSL session has been established, it may be reused To do this, the server assigns each SSL session a unique session iden0fier which is cached in the server and which the client can use in future connec0ons to reduce the handshake 0me

SSL handshake The elements of the handshake sequence, as used by the client and server, are listed below: 1. Nego0ate the Cipher Suite to be used during data transfer Key Exchange Method Cipher for Data Transfer Message Digest for crea0ng the Message Authen0ca0on Code (MAC) 2. Establish and share a session key between client and server 3. Op0onally authen0cate the server to the client 4. Op0onally authen0cate the client to the server

SSL Record Protocol

Agenda ConceI e pra0ca sul Virtual hos0ng Il supporto SSL/TLS in apache (h+ps) Introduzione Cifratura in Apache Auten0cazione client e controllo d accesso in apache Caching Regole di riscri+ura

Apache mod_ssl: Cipher Suites and Enforcing Strong Security How can I create a real SSLv2 only server? http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html How can I create an SSL server which accepts strong encryp0on only? How can I create an SSL server which accepts all types of ciphers in general, but requires a strong cipher for access to a par0cular URL?

Apache mod_ssl: Client Authen0ca0on and Access Control http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html How can I force clients to authen0cate using cer0ficates? How can I force clients to authen0cate using cer0ficates for a par0cular URL, but s0ll allow arbitrary clients to access the rest of the server? How can I allow only clients who have cer0ficates to access a par0cular URL, but allow all clients to access the rest of the server? How can I require HTTPS with strong ciphers, and either basic authen0ca0on or client cer0ficates, for access to part of the Intranet website, for clients coming from the Internet?

How can I force clients to authen0cate using cer0ficates? When you know all of your users (eg, as is olen the case on a corporate Intranet), you can require plain cer0ficate authen0ca0on. All you need to do is to create client cer0ficates signed by your own CA cer0ficate (ca.crt) and then verify the clients against this cer0ficate. 1 means the client certificate can be self-signed or has to be signed by a CA which is directly known to the server (i.e. the CA's certificate is under SSLCACertificatePath) How to generate an SSL certificate: http://slacksite.com/apache/certificate.php http://www.tc.umn.edu/~brams006/selfsign.html

How can I force clients to authen0cate using cer0ficates for a par0cular URL, but s0ll allow arbitrary clients to access the rest of the server?

How can I allow only clients who have cer0ficates to access a par0cular URL, but allow all clients to access the rest of the server?

When your clients are all part of a common hierarchy, which is encoded into the DN, you can match them more easily using SSLRequire, as follows: