.\" even if this file is called .ms, it's using the me macros. .\" to format try something like `nroff -me' .\" level 2 heading .de HH .$p "\\$2" "" "\\$1" .$0 "\\$2" .. .\" make sure footnotes produce the right thing with nroff .ie t \ \{\ .ds { \v'-0.4m'\x'\\n(0x=0*-0.2m'\s-3 .ds } \s0\v'0.4m' .\} .el \ \{\ .ds { [ .ds } ] .\} .ds * \\*{\\n($f\\*}\k* .\" page footer .fo 'Westerlund, Danielsson''[Page %]' .\" date .ds RH \*(mo, 19\n(yr .\" left margin .nr lm 6 .\" heading indent per level .nr si 3n .\" footnote indent .nr fi 0 .\" paragraph indent .nr po 0 .\" don't hyphenate .hy 0 .\" left adjustment .ad l .\" indent 0 .in 0 .\" line length 16cm and page length 25cm (~10 inches) .ll 16c .pl 25c .ta \n(.luR .nf Network Working Group Assar Westerlund SICS Internet-Draft Johan Danielsson \*(RH PDC, KTH Expire in six months .fi .\" page header, has to be set here so it won't appear on page 1 .he 'Internet Draft'Kerberos vs firewalls'\*(RH' .ce .b "Kerberos vs firewalls" .HH 1 "Status of this Memo" .lp This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. .lp Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as \*(lqwork in progress.\*(rq .lp To view the entire list of current Internet-Drafts, please check the \*(lq1id-abstracts.txt\*(rq listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). .lp Distribution of this memo is unlimited. Please send comments to the mailing list. .HH 1 "Abstract" .lp Kerberos and firewalls both deal with security, but doesn't get along very well. This memo discusses ways to use Kerberos in a firewalled environment. .HH 1 "Introduction" .lp Kerberos[RFC1510] .(d [RFC1510] Kohl, J. and Neuman, C., \*(lqThe Kerberos Network Authentication Service (V5)\*(rq, RFC 1510, September 1993. .)d is a protocol for authenticating parties communicating over insecure networks. Firewalling is a technique for achieving an illusion of security by putting restrictions on what kinds of packets and how these are sent between the internal (so called \*(lqsecure\*(rq) network and the global (or \*(lqinsecure\*(rq) Internet. The problems with firewalls are many, but to name a few: .np Firewalls usually doesn't allow people to use UDP. The reason for this is that UDP is (by firewall advocates) considered insecure. This belief is probably based on the fact that many \*(lqinsecure\*(rq protocols (like NFS) use UDP. UDP packets are also considered easy to fake. .np Firewalls usually doesn't allow people to connect to arbitrary ports, such as the ports used when talking to the KDC. .np In many non-computer organisations, the computer staff isn't what you'd call \*(lqwizards\*(rq; a typical case is an academic institution, where someone is taking care of the computers part time, and is doing research the rest of the time. Adding a complex device like a firewall to an environment like this, often leads to poorly run systems that is more a hindrance for the legitimate users than to possible crackers. .lp The easiest way to deal with firewalls is to ignore them, however in some cases this just isn't possible. You might have users that are stuck behind a firewall, but also has to access your system, or you might find yourself behind a firewall, for instance when out travelling. .lp To make it possible for people to use Kerberos from behind a firewall, there are several things to consider. .(q .i Add things to do when stuck behind a firewall, like talking about the problem with local staff, making them open some port in the firewall, using some other port, or proxy. .r .)q .HH 1 "Firewalls" .lp A firewall is usually placed between the \*(lqinside\*(rq and the \*(lqoutside\*(rq networks, and is supposed to protect the inside from the evils on the outside. There are different kinds of firewalls. The main differences are in the way they forward (or doesn't) packets. .ip \(bu The most straight forward type is the one that just imposes restrictions on incoming packets. Such a firewall could be described as a router that filters packets that match some criteria. .ip \(bu They may also \*(lqhide\*(rq some or all addresses on the inside of the firewall, replacing the addresses in the outgoing packets with the address of the firewall (aka network address translation, or NAT). NAT can also be used without any packet filtering, for instance when you have more than one host sharing a single address (e.g with a dialed-in PPP connection). .ip There are also firewalls that does NAT both on the inside and the outside (a server on the inside will see this as a connection from the firewall). .ip \(bu A third type is the proxy type firewall, that parses the contents of the packets, basically acting as a server to the client, and as a client to the server (man-in-the-middle). If Kerberos is to be used with this kind of firewall, a protocol module that handles KDC requests has to be written\**. .(f \**Instead of writing a new module for Kerberos, it can be possible to hitch a ride on some other protocol, that's already beeing handled by the proxy. .)f .lp The last type of firewall might also cause extra trouble when used with kerberised versions of protocols that the proxy understands, in addition to the ones mentioned below. This is the case with the FTP Security Extensions [RFC2228], .(d [RFC2228] Horowitz, M. and Lunt, S., \*(lqFTP Security Extensions\*(rq, RFC2228, October 1997. .)d that adds a new set of commands to the FTP protocol [RFC959], .(d [RFC959] Postel, J. and Reynolds, J., \*(lqFile Transfer Protocol (FTP)\*(rq, RFC 969, October 1985 .)d for integrity, confidentiality, and privacy protecting commands, and data. When transferring data, the FTP protocol uses a separate data channel, and an FTP proxy will have to look out for commands that start a data transfer. If all commands are encrypted, this is impossible. A protocol that doesn't suffer from this is the Telnet Authentication Option [RFC1416] .(d [RFC1416] Borman, D., \*(lqTelnet Authentication Option\*(rq, RFC 1416, February 1993. .)d that does all authentication and encryption in-bound. .HH 1 "Scenarios" .lp Here the different scenarios we have considered are described, the problems they introduce and the proposed ways of solving them. Combinations of these can also occur. .HH 2 "Client behind firewall" .lp This is the most typical and common scenario. First of all the client needs some way of communicating with the KDC. This can be done with whatever means and is usually much simpler when the KDC is able to communicate over TCP. .lp Apart from that, the client needs to be sure that the ticket it will acquire from the KDC can be used to authenticate to a server outside its firewall. For this, it needs to add the address(es) of potential firewalls between itself and the KDC/server, to the list of its own addresses when requesting the ticket. We are not aware of any protocol for determining this set of addresses, thus this will have to be manually configured in the client. .lp The client could also request a ticket with no addresses. This is not a recommended way to solve this problem. The address was put into the ticket to make it harder to use a stolen ticket. A ticket without addresses will therefore be less \*(lqsecure.\*(rq RFC1510 also says that the KDC may refuse to issue, and the server may refuse to accept an address-less ticket. .lp With the ticket in possession, communication with the kerberised server will not need to be any different from communicating between a non-kerberised client and server. .HH 2 "Kerberised server behind firewall" .lp The kerberised server does not talk to the KDC at all, so nothing beyond normal firewall-traversal techniques for reaching the server itself needs to be applied. .lp If the firewall rewrites the clients address, the server will have to use some other (possibly firewall specific) protocol to retrieve the original address. If this is not possible, the address field will have to be ignored. This has the same effect as if there were no addresses in the ticket (see the discussion above). .HH 2 "KDC behind firewall" .lp The KDC is in this respect basically just like any other server. .\" .uh "Specification" .HH 1 "Security considerations" .lp Since the whole network behind a NAT-type firewall looks like one computer from the outside, any security added by the addresses in the ticket will be lost. .HH 1 "References" .lp .pd .HH 1 "Authors' Addresses" .lp .nf Assar Westerlund Swedish Institute of Computer Science Box 1263 S-164 29 KISTA .sp Phone: +46-8-7521526 Fax: +46-8-7517230 EMail: assar@sics.se .sp 2 Johan Danielsson Center for Parallel Computers KTH S-100 44 STOCKHOLM .sp Phone: +46-8-7906356 Fax: +46-8-247784 EMail: joda@pdc.kth.se .fi