throbber
The following paper was originally published in the
`Proceedings of the USENIX Symposium on Internet Technologies and Systems
`Monterey, California, December 1997
`
`Secure Public Internet Access Handler
`(SPINACH)
`
`Elliot Poger, Mary G. Baker
`Computer Science Department, Stanford University
`
`For more information about USENIX Association contact:
`1. Phone:
`510 528-8649
`2. FAX:
`510 548-5738
`3. Email:
`office@usenix.org
`4. WWW URL:http://www.usenix.org/
`
`GUEST TEK EXHIBIT 1013
`Guest Tek v. Nomadix, IPR2019-01191
`
`Page 1 of 12
`
`

`

`Secure Public Internet Access Handler
`(SPINACH)
`
`Elliot Poger, Mary G. Baker
`Computer Science Department, Stanford University
`{elliot,mgbaker}@mosquitonet.stanford.edu
`
`Abstract: This paper describes a system that controls
`access to computer networks through publicly accessi-
`ble LANs, enabling network administrators to authorize
`users either on a permanent or occasional basis. The
`system has been designed with minimal assumptions
`about the software and hardware required of users, and
`requires very little specialized equipment within the net-
`work infrastructure. We enumerate the requirements for
`such a system, describe the design and implementation
`of the system, and note tradeoffs between security and
`efficiency.
`
`1. Motivation
`
`In early 1996, Stanford University completed a new
`building to house its Computer Science Department.
`The new building includes Ethernet ports in every
`office, as well as in various public spaces: meeting
`rooms, lobbies, and lounges. Unfortunately, 18 months
`after the building opened, concerns about unauthorized
`users tapping into the department network have pre-
`vented the activation of network connections in publicly
`accessible areas (“public ports”). Similar problems
`plague many other buildings, especially on college cam-
`puses, where the desire for mobile connectivity is high
`but physical security is lax. Even though building
`designers had the foresight to include network connec-
`tions in many parts of these buildings, political and
`security considerations have led to a frustrating waste of
`potential network connectivity. Those who desire net-
`work connectivity in public parts of the building are
`forced to use wireless network connections, which are
`often slow and expensive.
`
`There are several reasons Stanford University, and the
`Computer Science Department in particular, do not want
`to allow unknown users access to the building network.
`Most importantly, we do not want to allow rogue users
`to attack other computers connected to the building net-
`work in offices and labs. Although hackers can already
`attack department computers over the Internet, we do
`not want to make these attacks, as well as eavesdropping
`on network traffic, any easier by allowing them access
`within our network. Also, some network services out-
`
`side our department use the source IP address of trans-
`missions to grant access. For example, some Internet
`services have been licensed for use at Stanford Univer-
`sity and are made available to any host with a Stanford
`IP address, and we are obligated to prevent abuse of
`these licenses. In general, we want to minimize the
`chances that someone will misuse the Internet from a
`Stanford IP address, and if this misuse does occur, we
`want to identify the perpetrator so that we can hold him
`accountable. Perhaps less of a concern is that of band-
`width—we don’t want to allow unauthorized users to
`degrade everyone else’s service in the building by using
`network bandwidth to which they are not entitled. Since
`physical security in the building is minimal, as it is in
`many universities, libraries, and public institutions, we
`need a mechanism for restricting access through public
`network ports if these ports are to be activated.
`
`Once we have an access control mechanism in place, we
`can allow specifically authorized users to connect to the
`high-bandwidth wired network in the building from
`public ports without compromising network security.
`To provide this access control, we have constructed the
`Secure Public Internet Access Handler (SPINACH). In
`SPINACH, a self-configuring router controls per-user
`access from a public subnet to a private one, using Ker-
`beros or a similar mechanism to authenticate users and
`provide an audit path before users are granted access.
`With the exception of one custom software component
`on the router, SPINACH uses only standard protocols
`and software and requires only minimal software (telnet
`or web clients) on users’ machines.
`
`The SPINACH system establishes a “prisonwall,” con-
`trolling the flow of packets between those hosts con-
`nected to public ports and the rest of the building
`network. As opposed to a firewall, which protects
`machines inside a particular network from malicious
`users outside the network [2][4], the prisonwall protects
`machines outside one portion of a network by refusing
`to forward packets that come from unauthorized hosts
`within. As users within the prisonwall authenticate
`themselves and thus activate network access for their
`hosts, SPINACH maintains an audit trail so that the
`
`Page 2 of 12
`
`

`

`users can be held accountable for traffic they generate
`on the network.
`
`SPINACH has been designed with minimal assumptions
`regarding the network hardware available as well as the
`software installed on users’ machines, so that it can be
`installed in a wide variety of institutions and require lit-
`tle ongoing oversight from network administrators. As
`such, it does not provide as high a level of security as
`some access control systems; however, it provides a
`useful level of security without requiring expensive net-
`work equipment or custom client software, and thus
`may be the most appropriate method of access control
`for some networks.
`
`In this paper, we describe the design and implementa-
`tion of the SPINACH system. Section 2 outlines the
`system requirements and policies. In Section 3, we
`describe the interfaces through which network users and
`administrators interact with SPINACH. Section 4 dis-
`closes the details of how we implement these policies
`and interfaces. The remainder of the paper describes the
`security tradeoffs in SPINACH, other systems with aims
`similar to ours, some possible future improvements to
`SPINACH, and conclusions we have drawn through this
`research.
`
`2. System Requirements, Policies, and
`Definitions
`
`The SPINACH system has two major functions: it con-
`trols the passage of network communications between
`public ports and the rest of the building network, and it
`provides a mechanism for unknown users to prove
`themselves as authorized so that they can have full net-
`work access. Both functions are implemented on the
`same network host, the SPINACH router. This section
`describes the requirements that the SPINACH router
`must fulfill, and the facilities that must be present within
`the network infrastructure and on hosts connected to
`public ports in order to implement both functions.
`SPINACH has been designed to require no special soft-
`ware on computers that users connect to public ports,
`and to require as little as possible of the network infra-
`structure, so that it can be deployed in any network
`installation with minimal expenditure of time and
`money.
`
`2.1 Network Arrangement
`
`The SPINACH system consists of a collection of public
`network ports on one or more LANs. These LANs are
`connected to the surrounding network infrastructure
`
`Kerberos Server
`
`Internet
`
`Campus
`Backbone
`
`Department Router
`
`OUTSIDE
`
`INSIDE
`
`SPINACH Router
`
`Public Subnet
`
`DNS Server
`
`guest1
`
`guest2
`
`FIGURE 1. Network and security arrangement of
`the SPINACH system. The gray line running
`through
`the SPINACH router
`illustrates
`the
`prisonwall boundary, which separates the public
`subnet (inside) from the network as a whole
`(outside).
`
`through a SPINACH router. The SPINACH router, an
`IP-routing Unix host (fully described in Section 4.1),
`forwards data packets between hosts on these public
`LANs and the outside networks. For routing purposes,
`hosts connected to the public ports are grouped into one
`or more IP subnets.
`
`In our deployed SPINACH prototype (see Figure 1), the
`public ports are Ethernet ports located in publicly acces-
`sible areas of our building. These Ethernet ports are
`connected by a VLAN switch, so that data flows
`between them as if they were on the same LAN seg-
`ment. Hosts connected to the public ports (labeled as
`“guest1” and “guest2” in Figure 1) are assigned
`addresses from one subnet, which we refer to as the
`“public subnet.” The SPINACH router is connected to
`the same VLAN so it can route packets between the
`public subnet and the rest of the building network. In
`other SPINACH installations, some type of LAN other
`than Ethernet could be used, more than one LAN could
`be used to connect the public ports, and hosts could be
`arranged into more than one IP subnet, but for the pur-
`poses of this paper we assume the arrangement of our
`prototype system. Changing these parameters would
`require slight modifications to the routing and filtering
`
`Page 3 of 12
`
`

`

`software on the SPINACH router, but the system would
`function in basically the same way. For example, even a
`wireless LAN such as WaveLAN could be used for the
`public subnet, so long as the SPINACH system software
`were modified to accept WaveLAN, rather than Ether-
`net, link-layer addresses.
`
`Figure 1 also shows the department Domain Name Ser-
`vice (DNS) server and campus Kerberos server. The
`Kerberos server provides authentication services for
`users affiliated with the University. Some other authen-
`tication service could work as well, with modifications
`to the user-authorization software on the SPINACH
`router; in this paper, we assume the use of Kerberos.
`The DNS server is needed for hosts on the public subnet
`to find the IP address of the campus Kerberos server.
`
`Because all packets that travel between hosts on the
`public network ports (“inside the prisonwall”) and hosts
`elsewhere (“outside the prisonwall”) must be forwarded
`through the SPINACH router, the SPINACH router can
`filter out all packets that are deemed dangerous. The
`SPINACH router creates a security boundary between
`the public Ethernet ports and all other networks.
`
`2.2 Security Policy
`
`Being a research institution, we do not want to squelch
`the development or use of new network applications by
`instituting overly specific rules regarding exactly what
`traffic is allowed on the public subnet [5]. Thus, rather
`than taking the typical firewall approach by allowing
`only the use of certain prescribed protocols through
`proxies running at the security boundary, we filter traffic
`on a per-user basis. We restrict use of the network
`through public ports to those people whom we can hold
`accountable for their actions. The SPINACH router
`allows these trusted users unrestricted access to the net-
`work and prevents untrusted users from accessing the
`network at all.
`
`Traffic to and from hosts within the public subnet can be
`divided into three types. Outgoing traffic travels from
`within the public subnet to hosts outside. Incoming traf-
`fic comes from hosts outside the public subnet and is
`destined for hosts within.
`Internal traffic moves
`between two hosts on the public subnet. The SPINACH
`router uses different packet-filtering policies for incom-
`ing and outgoing traffic, following a particular set of
`rules to determine whether a given packet will be for-
`warded towards its destination or dropped. Internal traf-
`fic is not affected by the SPINACH router at all.
`
`The SPINACH router forwards all outgoing traffic from
`those hosts on the public subnet which a user has autho-
`rized using the procedure described in Section 3.2. All
`outgoing packets from unauthorized hosts are dropped,
`except packets addressed to the trusted DNS or Ker-
`beros server; this traffic is necessary for hosts within the
`public subnet to authorize themselves. Once a user has
`authorized a host on the public subnet, the SPINACH
`router forwards all outgoing traffic from that particular
`host. An audit trail which records the identity of the
`user who authorized this host enables network adminis-
`trators to hold the user accountable for any malicious
`traffic that originates from this host.
`
`incoming traffic,
`The SPINACH router forwards all
`because we are solely concerned with hosts inside the
`prisonwall wreaking havoc upon the rest of the network,
`rather than the reverse. Information coming into the
`prisonwall from outside is not considered a security
`threat, because it is assumed that any hosts inside the
`prisonwall that are trying to extract secret information
`from outside machines would have to initiate such trans-
`actions from within the prisonwall, and unauthorized
`hosts are not allowed to send outgoing traffic in the first
`place.
`
`The SPINACH router exerts no control whatsoever over
`internal traffic; these packets are carried directly from
`one public port to another through the LAN which con-
`nects them. Thus, any hosts that are connected inside
`the prisonwall must tolerate a hostile network environ-
`ment.
`
`In addition to policies regarding the awarding of net-
`work access to users, there must be policies regarding
`the removal of network access. At present, the SPIN-
`ACH router authorizes network access for four hours at
`a time; the length of this timeout is a parameter we plan
`to experiment with, as described in Section 7. If a user
`wants to remain connected to the network for longer
`than this period, he must re-authorize his connection
`using the procedure described in Section 3.2.
`
`2.3 Types of Users
`
`In many SPINACH installations, it will be appropriate
`to group users according to the access permissions that
`should be granted to them, as well as the resources that
`are available to authenticate them. In our prototype
`installation here
`in Stanford’s Computer Science
`Department, we have identified three such types of
`users: “Department Users,” “University Users,” and
`“Guests.”
`
`Page 4 of 12
`
`

`

`Department Users already have access to the building
`network in private offices and labs, but desire to connect
`temporarily in another part of the building, for example,
`to check e-mail while sitting in a conference room or
`lounge. Since they already have access to the building
`network, but simply want to connect in a different phys-
`ical location for convenience, we should have no secu-
`rity concerns about allowing them to connect through
`public ports. Also, Department Users already have
`authentication records in the campuswide SUID (Stan-
`ford University Identification) database.
`
`University Users already have access to Stanford’s com-
`puter network in the public computer labs, and perhaps
`in the residence halls, but do not presently have the abil-
`ity to connect to the network within the Computer Sci-
`ence building. System administrators within the CS
`Department are rightfully concerned about allowing
`them unrestricted access to networks within our build-
`ing that they have not been able to use in the past. Like
`Department Users, University Users already have
`entries in the SUID database.
`
`Guests are not in the SUID database and thus do not cur-
`rently have the ability to access Stanford’s network at
`all. Typically this group contains visitors from industry
`and other universities who are in the CS Department to
`meet with professors and students or attend symposia.
`Quite often these visitors bring their own laptop com-
`puters and would like to connect to their home networks
`through the Internet to access their e-mail or retrieve
`files. Before the implementation of the SPINACH sys-
`tem, there was no established mechanism for allowing
`these short-term visitors network resources, so guests
`have been forced to use low-bandwidth, high-cost wire-
`less connections or informally borrow the use of a desk-
`top machine in some willing person’s office. Because
`relationships with these outsiders are important to Stan-
`ford, we should provide a mechanism for them to utilize
`our network resources in some reasonable way while
`they are visiting.
`
`In general, different types of users may be extended dif-
`ferent access rights on the network, at the discretion of
`the network administrator. In our case, due to the con-
`cerns of department network administrators, University
`Users are currently denied network access; Department
`and authorized Guest users are allowed unrestricted net-
`work access.
`
`2.4 Hardware and Software Requirements
`of the Client
`
`Especially because we have the various classes of users
`described above, it is important that we support many
`different configurations of hosts with minimal assump-
`tions about the software present on these machines.
`Even University and Department users have a variety of
`platforms: DOS, Windows 3.1, Windows 95, Macin-
`tosh, and various flavors of Unix. We cannot foresee all
`platforms visitors from off-campus will use. Thus, writ-
`ing and maintaining special network access software for
`such a large and growing number of platforms would be
`a burden on our network administrators. Also, visiting
`users would need to install this custom software on their
`computers to use our system, and that could be a hassle
`for them. We would thus like to rely solely on client
`software that most users will already have installed on
`their networked computers, or can easily obtain from
`other sources.
`
`We can assume that the user’s computer has some basic
`network software on it, since the user presumably has
`been using it to connect to some other network. Almost
`all networked computers will have either a telnet client
`or a web browser; if a visitor’s computer has neither of
`these, they can most likely obtain one easily from a
`number of sources. (Our prototype system requires
`users to run a telnet client; an alternative web interface
`is currently under construction.) In addition, an increas-
`ing number of networked computers have Dynamic
`Host Configuration Protocol [3] (DHCP) and/or Ker-
`beros [8] clients—for example, the widely-used Win-
`dows 95 operating system includes DHCP client
`software. In the design of our access restriction system,
`we require only a telnet client on the visitor’s computer;
`if a DHCP or Kerberos client is present, we use it to
`simplify the configuration and authorization processes.
`
`2.5 Requirements of the Network
`Infrastructure
`
`Although it is less of a concern than the minimal soft-
`ware requirements on the client end, we also want to
`minimize the amount of maintenance overhead on the
`SPINACH router and elsewhere in the network. The
`less of a burden we place on network administrators, the
`less resistance we will encounter in deploying our sys-
`tem both within our department and in other institutions.
`
`We take advantage of the existing campuswide Kerberos
`authentication service, as well as the departmental DNS
`server, to simplify some users’ connection process as
`
`Page 5 of 12
`
`

`

`described in Section 3.2. No modifications to these
`servers are required. The only modification required of
`the network infrastructure beyond the SPINACH router
`itself is that the Department Router (see Figure 1) must
`be configured to forward all packets destined for the
`public subnet through the SPINACH router.
`
`3. User Interfaces
`
`Most users only see the client interface to SPINACH,
`through which they enable network access across the
`SPINACH router. Both this interface, and the interface
`used by network administrators to maintain the SPIN-
`ACH system, are described in this section.
`
`3.1 Authentication Mechanisms
`
`To limit use of the public ports to those who are autho-
`rized, SPINACH must provide mechanisms for users to
`authenticate themselves when connecting their hosts to
`the public subnet. Once the user’s identity has been
`proven, the SPINACH router can enforce the security
`policies listed in Section 2. Until the user authenticates
`himself, he must be treated as an unauthorized user.
`
`Department and University users have permanent
`entries in the campuswide Kerberos authentication data-
`base. By installing Kerberos client software on their
`laptops, these users may authenticate themselves with
`the SPINACH router by presenting a Kerberos ticket
`that has been obtained from the campus server. Depart-
`ment and University users who do not install Kerberos
`software on their laptops may obtain one or more guest
`passwords and connect using the same method as
`Guests (described below).
`
`To become an authorized Guest user, a visitor must
`obtain clearance to use our network facilities. This is
`provided in the form of a guest (userID, password) pair
`which is generated at the request of some authorized
`person such as a faculty member or network adminis-
`trator (see Section 3.3). The userID and password are
`both human-readable strings which can be given to the
`Guest and which the Guest enters using a telnet or
`HTTP connection to the SPINACH router. Since this
`transmission goes across the public subnet in cleartext,
`it must be a single-use password so that replay attacks
`are fruitless [6]. The userID need not be unique; it
`simply makes the system more robust in the face of
`password-guessing attacks, by increasing the number of
`combinations that must be attempted by miscreants.
`
`3.2 Connection Procedures
`
`A user who is connecting his laptop to a public network
`port within a SPINACH installation follows these steps:
`
`1. The user connects his laptop to one of the public
`Ethernet ports.
`
`2. If the user’s laptop has DHCP client software, it
`automatically retrieves network configuration infor-
`mation from a DHCP server running on the SPIN-
`ACH router and configures the laptop accordingly.
`Since this exchange occurs between the laptop and
`the SPINACH router—entirely within the public
`subnet, rather than through the prisonwall—packets
`from the as-yet unauthorized laptop are not blocked.
`If the user’s laptop does not have DHCP client soft-
`ware, the user must configure the laptop’s network
`software manually, entering the IP address and IP
`routing information marked on the Ethernet port so
`that packets are properly routed through the SPIN-
`ACH router.
`
`3. If the user is permanently authorized—that is, a
`Department or University User—and has Kerberos
`client software on his laptop, he enters his personal
`password into his Kerberos client software to obtain
`a ticket from the trusted campus Kerberos server (see
`Figure 1). A special IP packet filter rule on the
`SPINACH router allows unauthorized machines to
`communicate with only the trusted campus Kerberos
`server and the department’s DNS server through the
`prisonwall. If a permanently authorized user wants
`to access the network from a laptop without Ker-
`beros client software, he must obtain a one-time
`guest password and log in in the same way visitors
`do (described in the following step).
`
`4. The user initiates a telnet connection to the SPIN-
`ACH router using the telnet client on his laptop. As
`in step 2, since this communication is to rather than
`through the prisonwall, it is not blocked. If the telnet
`server sees that the user has obtained an appropriate
`ticket from the trusted campus Kerberos server, the
`IP address and hardware (Ethernet) address of the
`laptop are recorded and the laptop is authorized to
`use the network facilities. Otherwise, the modified
`telnet server on the SPINACH router prompts the
`user to enter a userID and single-use guest password.
`If the user enters a valid (userID, password) pair,
`network access is granted.
`
`Once the SPINACH router’s modified telnet server has
`granted network access, a filtering rule (as described in
`Section 4.3) is added that allows all traffic coming from
`this host to be forwarded out of the prisonwall as neces-
`
`Page 6 of 12
`
`

`

`sary for a certain length of time. The user’s telnet client
`displays a message to this effect and then is automati-
`cally disconnected. The user then has unrestricted net-
`work access for a certain length of time (currently four
`hours).
`
`3.3 Generating Guest Passwords
`
`We must provide some mechanism for generating guest
`passwords for visitors. These guest passwords are gen-
`erated on the SPINACH router itself; this avoids trans-
`mitting them in cleartext across the network until they
`are actually used. A small number of users, chosen by
`the network administrators who install the SPINACH
`system, are given user accounts on the SPINACH
`router. When these users initiate a Kerberos-authenti-
`cated and encrypted telnet session with the SPINACH
`router, they are allowed to log in and obtain a shell pro-
`cess on the router (which is running Unix). Then they
`can run a special password-generating program that cre-
`ates human-readable one-time passwords. The (userID,
`password) pairs are entered into a database on the router
`for future comparison and displayed on the user’s telnet
`client. Since the telnet session is known to be
`encrypted, there is no danger of new passwords being
`snooped by other hosts on the network. It is up to
`administrators at sites where SPINACH is deployed to
`develop a mechanism for distributing the one-time pass-
`words to visiting users.
`
`3.4 Long-Term Maintenance
`
`One of the goals of the SPINACH system is to minimize
`the maintenance required for continued operation.
`Besides generating guest passwords, there is usually no
`manual maintenance required. But, should a network
`administrator want to examine the audit trail maintained
`by the SPINACH router or debug a problem on the
`router, he can follow the same procedure as mentioned
`above to log in and execute arbitrary commands on the
`router. The number of users with accounts on the SPIN-
`ACH router should be kept to a minimum so that there is
`less chance of malicious or inept activity on the router
`that opens security holes.
`
`4. System Implementation
`
`4.1 Software on the SPINACH Router
`
`The SPINACH router is an Intel Pentium-based com-
`puter running a Linux 2.0.30 kernel modified to filter IP
`packets based on hardware address as well as IP
`
`address. Since the SPINACH router is connected to a
`network with many untrusted hosts, it is best to run as
`few network servers as possible on the router to reduce
`the possibility of break-ins [2][4]. However, there are a
`few pieces of software that must be running on the
`router to implement prisonwall functionality—that is, to
`forward network traffic into and out of the prisonwall
`(subject to the policies in Section 2.2), and to allow
`hosts within the prisonwall to move from “unautho-
`rized” to “authorized” status as appropriate.
`
`The following pieces of software must be running on the
`SPINACH router:
`
`1. packet filter: routines within the IP forwarding code
`in the kernel that allow packets to be routed or
`dumped selectively, based on source and destination
`port numbers and IP addresses, as well as source
`hardware addresses.
`2. prisonguard: a user-level process that is always run-
`ning on the router, modifying the packet filter param-
`eters in the kernel as necessary and maintaining
`databases of guest passwords and authorized Univer-
`sity/Department users.
`3. modified telnet server: modified so that when most
`users connect to the telnet server on the SPINACH
`router and are properly authenticated, network
`access is enabled but a login shell is not provided.
`4. authorization clients: processes that communicate
`with the prisonguard process to enable and disable
`network access and generate guest passwords.
`5. DHCP server: a standard DHCP server, with no
`authentication extensions, which allows for auto-
`matic configuration of IP and higher-layer protocol
`information on any host with a DHCP client.
`
`4.2 Communication Between Authorization
`Clients and the Prisonguard
`
`The prisonguard process is so named because it main-
`tains control over all security features of the prisonwall
`(SPINACH) router. It keeps a record of all generated
`guest (userID, password) pairs as well as a list of perma-
`nently authorized users, validates entered guest pass-
`words against the list of generated ones, and modifies
`the packet forwarding rules in the kernel as appropriate
`in various cases. While other pieces of the software,
`such as the modified telnet server and the guest pass-
`word management program, are short-lived processes
`and exist only long enough to collect information from
`one particular host as it moves from authorized to unau-
`thorized, the prisonguard process runs constantly and
`
`Page 7 of 12
`
`

`

`Kerberos traffic
`
`s tr a ffi c
`
`e r o
`
`e r b
`
`K
`
`Kerberos server
`
`traffic
`telnet
`
`SPINACH router
`
`telnet server
`
`auth
`
`encrypt
`
`authorization
`clients
`guest
`password
`generator
`
`prisonguard
`com mands
`
`commands
`prisonguard
`
`commands
`prisonguard
`
`prisonguard
`
`commandsu
`prisonguard
`
`nauth
`
`IP packet
`filter rules
`
`Linux kernel
`IP forwarding code
`
`FIGURE 2.
`Inter-Process Communication
`between
`authorization
`clients
`and
`the
`prisonguard, and between the prisonguard and
`kernel IP forwarding code.
`
`a host after some amount of time, so this command is
`not commonly called. However, future security
`improvements to the SPINACH system may require
`this functionality. For example, we may want to pro-
`vide a tool with which network administrators can
`remove users’ network access privileges before they
`would normally expire.
`• guard_getpassword(keyinfo, passwd)
`Asks the prisonguard to generate and return a new
`one-time guest password. The keyinfo field contains
`the guest userID, as well as information about the
`Guest user and/or the Department contact who has
`requested this password, for auditing and/or billing
`purposes.
`
`As shown above, the authorization clients can demand
`that the prisonguard allow or disallow network access to
`a particular host; thus, it is very important that access to
`all processes running with a group id of authclients is
`closely guarded. It is for this reason that only a very
`few users—those who are maintaining the SPINACH
`
`maintains all the state necessary to perform appropri-
`ately. For example, when a host has been authorized for
`a certain amount of time, the prisonguard keeps track of
`how long the host has been operating and when its
`authorization should be revoked and is responsible for
`revoking the authorization at that time. Although the
`prisonguard process maintains this state in main mem-
`ory for efficient operation, it also writes the information
`to disk periodically in case the SPINACH router crashes
`or shuts down.
`
`The short-lived processes that communicate with the
`prisonguard and tell it to authorize and unauthorize
`hosts, as well as generate and check guest passwords,
`are called authorization clients (see Figure 2). They are
`started as a result of a new user attempting to authorize
`his own host, or a SPINACH administrator running code
`on the router itself. Only known authorization clients on
`the SPINACH router have a legitimate need to commu-
`nicate with the prisonguard, which acts as the authoriza-
`tion server, so communication with the prisonguard
`takes place over Inter-Process Communication (IPC) [9]
`that is only accessible to these processes and the supe-
`ruser. To implement this secure IPC, the prisonguard
`uses a Unix domain socket linked to a Unix file that is
`only accessible by the superuser and other members of
`the group authclients. The following functions are
`available for authorization clients to call for communi-
`cation with the prisonguard:
`
`• guard_authorize_nonguest(ipaddr, username)
`The Department or University user by this username
`(already authenticated via Kerberos) has requested
`use of the network. If this username is that of an
`approved user, allow the host with this IP address
`use of the network. Make note of the source Ether-
`net address of the last packet received from this IP
`address so that other hosts cannot mistakenly or
`maliciously assume the same IP address and pass as
`the same host.
`• guard_authorize_guest(ipaddr, userID, passwd)
`A Guest has entered this userID and one-time guest
`password to request use of network facilities. If this
`(userID, password) pair is valid, allow the host using
`this IP address access to the network. Make note of
`the source Ethernet address of the last packet
`received from this IP address so that other hosts can-
`not mistakenly or maliciously assume the same IP
`address and pass as the same host.
`• guard_unauthorize(ipaddr)
`Disallow the host using this IP address access to the
`network. As noted above, the prisonguard process
`takes responsibility for automatically unauthorizing
`
`Page 8 of 12
`
`

`

`system or generating guest passwords—are allowed to
`log in and execute arbitrary code on the SPINACH
`router. The modified telnet server allows other users
`only to enable network access for their hosts.
`
`4.3 Filtering Rules
`
`Packets are filtered during the forwarding process
`within the Linux kernel [10] according to the security
`policies set out in Section 2. All packets leaving
`through the SPINACH router a

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket