Download The Design and Implementation of a SSL Proxy

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
The Design and Implementation of a SSL Proxy
For Content Switch
Thesis Proposal
by
Ganesh Kumar Godavari
Computer Science Department
University of Colorado at Colorado Springs
Approved by:
Dr. Edward Chow
(Advisor)
Dr. Charles Shub
Dr. Jugal Kalitha
1.Introduction
This Thesis deals with the design and implementation of SSL PROXY for content
switch. SSL Proxy communicates using Secure Socket Layer, HTTPS (Secure
HyperText Transport Protocol) with the client and uses HyperText Transport
Protocol (HTTP) to communicate with the server. It converts the HTTPS request
to HTTP and sends the request to the real server and the response from the real
server is encrypted using SSL.
Figure 1
How SSL Proxy works
The SSL protocol is a session layer protocol that runs above TCP/IP and below
higher-level protocols such as HTTP or IMAP. It uses TCP/IP on behalf of the
higher-level protocols, and in the process allows an SSL-enabled server to
authenticate itself to an SSL-enabled client, allows the client to authenticate itself
to the server, and allows both machines to establish an encrypted connection.
The Transmission Control Protocol/Internet Protocol (TCP/IP) provides the
transport and routing of data over the Internet. Application protocols such as the
HyperText Transport Protocol (HTTP), Lightweight Directory Access Protocol
(LDAP), or Internet Messaging Access Protocol (IMAP), run either directly or
indirectly through SSL "on top of" TCP/IP.
Figure 2
SSL runs above TCP/IP and below high-level application protocols
SSL provides for secure communication between client and server by allowing
mutual authentication, the use of digital signatures for integrity, and encryption
for privacy. The protocol is designed to support a range of choices for specific
algorithms used for cryptography, digests, and signatures. This allows algorithm
selection 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 negotiated between client and server at the start of establishing a
protocol session.
SSL is used to protect many different types of sensitive data. The most familiar is
the online store (amazon.com, ebay.com), which uses SSL to protect their
customers' credit-card numbers. On-line banks, bill-payment services and
stockbrokers use SSL to protect their customer's account passwords and trading
information. SSL is also used to protect data in B2B networks, secure ftp and
telnet, and many other uses.
1.1 IXP1200
The Intel® IXP1200 Network Processor [6] is the cornerstone of the Intel®
Internet Exchange Architecture (Intel® IXA) [7]. It combines the best attributes of
a network ASIC with the flexibility, performance, and scalability of a
programmable embedded processor to accelerate development of nextgeneration Internet products. The IXP1200 Network Processor is specifically
designed for network control tasks, such as wire-speed switching and routing of
packets or cells in real time.
1.2 IXP12EB
The IXP12EB Ethernet Evaluation Kit is a powerful tool for developing and
verifying hardware and software for the IXP1200 Network Processor. The kit
supports the IXP12DE software development environment for programming the
Network Processor’s microengines and integrated Intel StrongARM* processor
core. The IXP12EB is already set up in our lab. The configuration is shown in
Figure 3.
Figure 3. IXP12EB set up
1.3 Introduction to WindRiver VxWorks and Tornado IDE
Tornado[8] is an integrated environment for software cross-development. It
provides an efficient way to develop real-time and embedded applications with
minimal intrusion on the target system. Tornado comprises the following
elements [8,9]:



VxWorks [10], a high-performance real-time operating systems
Application-building tools (compilers and associated programs)
An integrated development environment (IDE) that facilitates managing
and building projects, establishing and managing host-target
communication, and running, debugging, and monitoring VxWorks
applications
The Tornado environment is designed to provide this full range of features
regardless of whether the target is resource-rich or resource-constrained.
Tornado facilities execute primarily on a host system, with shared access to a
host-based dynamic linker and symbol table for a remote target system. The
target server and target agent mediates communication between the host tools
and VxWorks.
The development environment is already set up in our lab as shown in Figure 4.
Figure 4. Development Environment set up
2.Goal
The goal of this thesis work is to design and implement an efficient SSL PROXY,
which can load balance the web requests on the Application level. The incoming
packets will be routed based on IP address, TCP port number, URL, HTTP Meta
header, and the value of XML tags. The tasks include:
Design Efficient SSL Proxy that can
 Handle Multiple SSL Requests
 Handle session reusability
 Handle Keep-Alive sessions
3.Thesis Plan
The thesis will include the following activities
Work done Till-Date
 Designing a concurrent SSL Proxy (dynamic forking) in Linux that can
handle multiple SSL Requests
 Study and analyze how session reusability can be achieved
Next 2 week
 Study and analyze how Keep-Alive sessions can be maintained
 Study and analyze how to achieve preforking.
 Compare the performance of preforking and dynamic forking versions
Next 2 weeks
 Port OpenSSL to VxWorks
 Compare networking support between Linux and VxWorks
Next 3 weeks
 Port the SSL Proxy to IXP network Processor and compare performance
with Linux based SSL Proxy
 Compare the performance of SSL Proxy on Linux and IXP-12EB
4. Implementation
HTTPS is very slow compared to HTTP, so designing and implementing an
efficient proxy will be challenging. The proxy will be making routing decisions
based on IP address, TCP port number, URL, HTTP Meta header, and value of
XML tags
5.Testing
The implementation will be tested on the advanced content switch test-bed in our
computer science lab. The network configuration will include one content switch,
3/4 real servers.
6.Deliverables
The deliverables will include:
 Design documentation for the SSL Proxy.
 Source code for implementing the SSL Proxy on Linux and IXP 12EB
 Testing documentation
7.References
[1] OpenSSL: The Open Source toolkit for SSL/TLS (http://www.openssl.org)
[2] SSL and TLS, by Eric Rescorla
[3] SSL and TLS Essentials, by Stephen Thomas
[4] mod_ssl: The Apache Interface to OpenSSL (http://www.modssl.org)
[5] HTTP Over TLS
ftp://ftp.ietf.org/internet-drafts/draft-ietf-tls-https-02.txt
The specification on how to run HTTP over SSL/TLS
[6] Tunneling TCP based protocols through Web proxy servers
http://www.www.alternic.org/drafts/drafts-l-m/draft-luotonen-web-proxy-tunneling-01.txt
The specification for the HTTP CONNECT method
[7] Analysis of SSL 3.0 Protocol
http://www.counterpane.com/ssl.html
D. Wagner and B. Schneier's USENIX analysis of SSLv3
[8] HyperText Transfer Protocol (HTTP), Version 1.1 (Internet Draft)
http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-rev-06.txt
The application layer protocol Apache+mod_ssl uses over SSL/TLS
[9] HyperText Transfer Protocol (HTTP), Version 1.0 (RFC 1945)
http://www.ietf.org/rfc/rfc1945.txt
The application layer protocol Apache + mod_ssl uses over SSL/TLS
[10] Intel® IXA (Internet Exchange Architecture),
http://developer.intel.com/design/ixa/index.htm
[11] WindRiver Tornado Development Tools,
http://www.windriver.com/products/html/tornado2.html
[12] Tornado User’s Guide (Windows Version) 2.0
[13] WindRiver VxWorks, http://www.windriver.com/products/html/vxwks54.html
Intel®, IXP-1200, IXP-12EB is the registered Trademarks of Intel Corporation
Tornado, VxWorks is the registered Trademarks of Wind River Systems, Inc
Linux, Apache, Openssl protected under the GNU General Public License