S/key One-Time Passwords

Introduction
Panix supports s/key for one-time passwords (also known as challenge/ response authentication). One-time password (OTP) systems are based on a secret passphrase that the user is careful never to send over a computer network or to type in on an untrusted machine. Instead, when the user wants to log in, the remote computer sends a "challenge" consisting of a seed and a sequence number (see below), and the user runs a "calculator" on a trusted machine that, using the seed and sequence number from the challenge, together with the user's secret passphrase, produce a single-use password that can be safely sent over an untrusted network or typed in on an untrusted machine. The one-time password is only valid for the next login on that host - after that, it is useless.

The one-time password system has several parts -

• prompt - this is made up of two parts:
seed - this is an arbitrary string that will be used as part of the challenge every time you log in. It is set up when you first install OTP on your account.
sequence number - a number that starts high, usually around 9999, and gets decremented every time you log in. This is also used as part of the challenge.
• Secret passphrase -
this is a password that you keep "secret" in that you never send it over a computer network or disclose it to the computer that you are logging in to. You ONLY disclose it to the calculator program that generates the one-time responses, and you should ONLY run the calculator program on a host that you are accessing locally (i.e. not over a network) and that you trust (i.e. your own computer, not some random workstation in an Internet cafe).
• One-time password, or OTP (the output of the calculator program) -
Usually six short words like "MELT FAWN MAST OWN MA TROY" or, in some cases, a hex output like " 567F ECE1 F852 964C"

Each time you use a one-time password, the sequence number decreases by one, so the next time you make the calculation you get a new set of six words.

Using a one-time password means that if someone is sniffing your entries on the user hosts they'll get only the password you're using this time-- and that's not going to work because it's already being used.

Keeping S/key secure
S/key is secure only if you are scrupulous about the following:
  1. You should never enter your passphrase into any of the Panix user hosts-- or, for that matter, into any multi-user machine or even a single-user machine that you cannot completely trust.
    If you are not going to have a secure machine available to calculate your next one-time password (OTP), you can print it (or several of them) out in advance from a trusted machine. Most S/key calculators will let you print out a list of passwords (with their corresponding sequence numbers). You need to keep the list secure, and you should cross off each OTP as you use it so that you will notice if someone else has managed to peek at your list.
  2. You must set up s/key on each of the Panix hosts. If we add a new user host you need to set up s/key on that host. We urge you to start the count at 9999, and to use the default seed that the machine presents. In any case, you absolutely must make sure that the seed is different on each machine (or your one-time passwords won't be "one-time").
    Remember, you still need your regular password for RADIUS (dialup) authentication, for POP, and to authenticate to the news server-- and to initialize your new s/key. Furthermore, your regular password can still be used to log into any of the userhosts, even if you've set up s/key on that host.
  3. You should watch the count. If you are presented with a sequence number that is decremented by more than one since the last time you used s/key on that host, then someone else may have your passphrase.
  4. You should re-initialize your s/key login when the count reaches 8000.
  5. If you like, you can use the same secret pass phrase on all the user hosts, but you must be sure to use a different seed on each and not to repeat a seed. (Using a different pass phrase for each host is more secure, but harder to keep track of.)
Setting up S/key on your Panix shell account
To initialize your Panix account for s/key, you need to do the following:
Using S/key at Panix
Once you're initialized for s/key, you can use your one-time password for telnet, ssh, or ftp.

If you use telnet, it is straightforward, telnetd will now use s/key:

  patty@happyhouse: $ telnet panix2
  Trying 166.84.1.2...
  Connected to panix2.panix.com (166.84.1.2).
  Escape character is '^]'.
  
  NetBSD/i386 (panix2.panix.com) (ttyp9)
  
  login: joeuser
  Password [otp-md4 9998 pani58574]:  BUSH FOOL DICK FLY BOMB HARD
  Last login: Tue Oct 16 15:00:17 2001 from an.example.net
  Copyright (c) 1996, 1997, 1998, 1999, 2000
          The NetBSD Foundation, Inc.  All rights reserved.

If you use ssh, it is a little harder. Your ssh client has to support Version 2 and s/key (openSSH), or Version 1 and "TIS-Auth" (Putty), and you need to set it up properly. Here's how to do it for OpenSSH:

   $ ssh -2 -l joeuser -o "PasswordAuthentication no" -o "ChallengeResponseAuthentication yes" panix2
   otp-md4 9997 pani58574
   S/Key Password: BOMB BIN LOT END SAY JOE
   Last login: Tue Oct 16 15:19:05 2001 from happyhouse.panix
   NetBSD 1.5.1 (PANIX-USER) #0: Fri Jul 20 21:52:41 EDT 2001

With Putty, before you log in, go to the "Settings" menu and look under "SSH", "Auth", and then turn on "Enable TIS Authentication". ("TIS" stands for Trusted Information Systems, an early computer security research and development company that used S/Key access in their products). You may want to save the settings to avoid having to change them every time you want to use S/Key.

Disabling S/key
If you no longer want to use S/key, you can turn it off entirely by running the "skeyinit -z" command on each host that you've set up for S/key. Again, you'll need your normal Unix password.
Important Reminders
References
The one-time password (OTP) standard
www.ietf.org/rfc/rfc2289.txt
Wikipedia articles on S/Key and one-time password schemes
en.wikipedia.org/wiki/One-time_password
en.wikipedia.org/wiki/S/KEY
Unix, PC, and Mac software for generating passwords
for Mac OS X (GUI): www.orange-carb.org/SkeyCalc/
for Unix systems (and Mac OS X command-line): ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/skey-1.1.5.tar.bz2
Perl Crypt::SKey module: search.cpan.org/~kwilliams/Crypt-SKey-0.09/
More software (items below not yet reviewed by Panix staff)
for Python: labix.org/python-otp
for Java-capable mobile phones: otp-j2me.sourceforge.net/
for PalmOS devices: palmkey.sourceforge.net/
Other software that supports S/Key or OTP
Fetch, a well-liked FTP client for Macintosh: fetchsoftworks.com/


Last Modified:Friday, 18-Feb-2022 15:59:21 EST
© Copyright 2006-2021 Public Access Networks Corporation