The Aerospace Clinic 2002 Team Members Nick Hertl (Project Manager) Will Berriel Richard Fujiyama Chip Bradford Faculty Advisor Professor Michael Erlinger Aerospace Liaisons Joseph Betser, PhD Rayford Sims
Overview: Background Information Alternatives to Tunnel Technical Approach –Completed work –Future work Questions
Background TCP/IP Firewalls Security BEEP IDXP Tunnel
TCP/IP Main protocols used over the Internet Provides reliable, full-duplex, peer-to-peer communication Most current application protocols use this directly: HTTP (web), SMTP ( ), etc. Multiple connections to the same machine are handled using ports
Firewalls Set of rules to restrict TCP/IP traffic Can filter by any combination of source and destination IP address and port Rule sets are usually static—not easy to handle "only allow Joe's messages through" if Joe doesn't always connect from the same computer
Security Firewalls attempt to ensure this To allow Joe access, he must first prove he is who he claims to be (login/authenticate) SSH Tunnel is a common solution—handles authentication SSH not without drawbacks, however (discussed later) Tunnel is a better solution, but first...
BEEP General framework for rapidly creating application-level protocols Requires an underlying transport protocol (TCP) Provides a message framing mechanism and many common service "profiles" Profiles provide transparent addition of properties to a connection (i.e. security)
IDXP Intrusion Detection eXchange Protocol BEEP profile used to transfer intrusion detection alert information from various sensors within a large network to a central repository where an administrator or correlation program can take actions against an attack if needed Firewall must not block messages
Tunnel General purpose proxy routing BEEP profile Our focus is Tunnel for IDXP message
Tunnel Uses XML messages to establish a tunnel: Example...
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect Usually TCP
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Advertise services (Tunnel, maybe others)
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Start Tunnel
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Start Tunnel Transport Connect Usually TCP
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Start Tunnel Transport Connect BEEP Greeting Advertise services (Tunnel, maybe others)
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Start Tunnel Transport Connect BEEP Greeting Start Tunnel
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Start Tunnel Transport Connect BEEP Greeting Start Tunnel OK
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Start Tunnel OK Transport Connect BEEP Greeting Start Tunnel OK proxy now transparently forwards messages
Tunnel host1.example.com proxy.example.com host2.example.com Transport Connect BEEP Greeting Start Tunnel OK Transport Connect BEEP Greeting Start Tunnel OK BEEP Greeting Advertise services (proxy now invisible)
Alternatives to Tunnel SSL/TLS SASL SSH VPN IPsec
SSH (Secure Shell) Tunnelling Client/Server applications Provides encryption, client authentication Mass adoption leaves port 22 open Commonly used to tunnel through firewalls Application dependency on SSH Explicit endpoint connections Lacks host authentication Tunnel offers auth/encry details, address anonymity, doesn't require explicit endpoint
SSL v3 / TLS v1(RFC 2246) HTTPS, NNTP, IMAP, POP Lives between TCP and application API is similar to BSD socket API Encryption Server authentication and optional host Simple client configuration – no AC Certificate spoofing, man-in-the-middle attacks
SASL (RFC 2222) (Simple Authentication and Security Layer) SSL with an A? Framework for adding auth/encry/integrity Allows network admin to configure proper security levels for the environment BEEP makes use of SASL
VPN (Virtual Private Network) Secure, private, transparent network Encryption, strong authentication Intrusive on the client Tunnel is easier to deploy and administer, allows more policy flexibility
IPsec (IP Security) Protects everything running on top of IP, including TCP and UDP Requires kernel modification No recompiling necessary to get benefit IPsec does not work with NAT Tunnel is easier to deploy, works with NAT, and configurable
Completed Work Proposal Submitted Tunnel Evaluated Beep Implementations Chosen No – Hop Tunnel Implementation
Tunnel Issues: No IPv6 support in the DTD or a standard way to extend the DTD. Possibility for loops with misconfigured servers. No way to specify a Time-To-Live when using a dynamic route, ie: connecting to a service rather than a host.
Beep Implementations: JAVA: –PermaBEEP 0.8 –Beepcore–java C –Roadrunner 0.9 –Beepcore–C 0.2
No-Hop Tunnel Profile and application can successfully open a tunnel to a host with no firewall in between.
Future Work One–Hop Tunnel Firewall Proxy–Hopping Multi–Hop Proxying Interoperability between C and JAVA implementations
Schedule
Questions?