In
computer networking, the 'Name/Finger protocol' and the 'Finger user information protocol' are simple
network protocols for the exchange of human-oriented status and user information.
Name/Finger protocol
The Name/Finger protocol, written by David Zimmerman, is based on
Request for comments document 742 (December 1977) as an interface to the '
name' and '
finger' programs that provide status reports on a particular computer system or a particular person at network sites. The finger program was written in 1971 by
Les Earnest who created the program to solve the need of users who wanted information on other users of the network. Information on who is logged-in was useful to check the availability of a person to meet. This was probably the earliest form of
Presence information technology that worked for remote users over a network.
Prior to the finger program, the only way to get this information was with a '
who' program that showed IDs and terminal line numbers for logged-in users, and people used to run their
fingers down the
who list. Earnest named his program after this concept.
Finger user information protocol
Finger is based on the Transmission Control Protocol, using TCP port 79 decimal. The local host opens a TCP connection to a remote host on the Finger port. An RUIP (Remote User Information Program) becomes available on the remote end of the connection to process the request. The local host sends the RUIP a one line query based upon the Finger query specification, and waits for the RUIP to respond. The RUIP receives and processes the query, returns an answer, then initiates the close of the connection. The local host receives the answer and the close signal, then proceeds closing its end of the connection.
The Finger user information protocol is based on 'RFC 1288' (''The Finger User Information Protocol'', December 1991). Typically the
server side of the protocol is implemented by a program '
fingerd' (for finger
daemon), while the
client side is implemented by the
name and
finger programs which are supposed to return a friendly, human-oriented
status report on either the system at the moment or a particular person in depth. There is no required format, and the protocol consists mostly of specifying a single
command line. It is most often implemented on
Unix or Unix-like systems.
The program would supply information such as whether a user is currently logged-on,
e-mail address, full name etc. As well as standard user information, finger displays the contents of the '
.project' and '
.plan' files in the user's
home directory. Often this file (maintained by the user) contains either useful information about the user's current activities, or alternatively all manner of
humor.
Security concerns
Supplying such detailed information as e-mail addresses and full names was considered acceptable and convenient in the early days of the Internet, but later was considered questionable for privacy and security reasons. Finger information has been frequently used by
crackers as a way to initiate a
social engineering attack on a company's computer security system. By using a finger client to get a list of a company's employee names, email addresses, phone numbers, and so on, a cracker can telephone or email someone at a company requesting information while posing as another employee. The finger
daemon has also had several exploitable security holes which crackers have used to break into systems. The
Morris worm exploited an overflow vulnerability in
fingerd (among others) to spread.
For these reasons, while finger was widely used during the early days of
Internet, by the
1990s the vast majority of sites on the internet no longer offered the service. Notable exceptions include
John Carmack and
Justin Frankel, who until recently still updated their status information occasionally. In late 2005, John Carmack switched to using a
blog, instead of his old
.plan site.
External links
★ RFC 742
★ RFC 1288
★
Mail from Les Earnest explaining the origin of finger
★
History of the Finger protocol by Rajiv Shah
★
A Report On The Internet Worm