 a4f3488699
			
		
	
	a4f3488699
	
	
	
		
			
			git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4520 ec53bebd-3082-4978-b11e-865c3cabbd6b
		
			
				
	
	
		
			260 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			260 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| .\" 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
 | |
| <draft-ietf-cat-krb5-firewalls.txt>	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
 | |
| <cat-ietf@mit.edu> 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 |