123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- v 0.1 gpk@onramp.net 3/27/99
- I Intro
- This document covers the use of the modified "chat" program and its
- adjunct "chatchat" to login using the Security Dynamics SecurID card
- on a linux system.
- This set of files comprises a modified version of the chat program
- (the one distributed with ppp-2.3.5) and a new program called chatchat
- that allows you to supply data from the keyboard to the chat program.
- The SecurID card generates passwords that have a lifetime of one
- minute and are used as a first layer in dial up security. The only
- software I know of for this card is for windows, so I wrote my own.
- This software allows you to type in the time-sensitive password right
- when your chat script is asked to supply the passcode by the remote
- system.
- II How It Works
- This version of chat his an additional command that can be put into
- its options that says "Don't reply with this string. Open this pipe,
- read the contents, and reply with that instead." Chatchat creates a
- pipe and lets you type your passcode into it, then chat picks that up
- and sends it out just as though the passcode was hardcoded into the
- options.
- III Installation
- I've provided intel binaries and source code the the modified chat
- program and the chatchat program. I'll recommend that you copy the
- chat.c program into your ppp-2.3.5/chat directory (save your original
- chat.c program first!) and re-make it using the Makefile that comes
- with chat. Copy the new chat somewhere into your path. (On my system
- chat lives in /usr/sbin/chat, so I've copied the modified one into
- /usr/sbin/chat.new and changed my dial in script to call chat.new
- instead of chat.
- Second, compile chatchat.c and install it somewhere in your path:
- gcc -g -o chatchat chatchat.c
- cp chatchat /usr/sbin
- Third, modify your chat script to use the chatchat program. Mine
- looks something like this:
- --------------------
- #!/bin/sh
- #
- # This is part 2 of the ppp-on script. It will perform the connection
- # protocol for the desired connection.
- # use atm0 to turn down the speaker volume on my sportster x2 voice modem
- # gpk 11/2/97
- exec /usr/sbin/chat.new -V -v \
- ABORT "BUSY" \
- ABORT "NO DIAL TONE" \
- ABORT "NO ANSWER" \
- TIMEOUT 50 \
- "" "atm0" \
- OK ATDT$TELEPHONE \
- CONNECT '' \
- name: \\da0xxxxxx \
- word: @/var/tmp/p \
- compress. ''
- -----------------------
- This is a standard chat script:
- * abort if the modem is busy, you don't get a dial tone, no one
- answers, or 50 seconds elapses.
- * use atm0 to mute the modem
- * dial the modem, when it connects, wait to be asked for account name
- * when we see "name:" prompt, delay briefly then respond with your
- account name (fill in your account name)
- Now we get to the new stuff:
- * when we see "word:" in the password prompt, instead of responding
- with "@/var/tmp/p", the modified chat program will open the pipe
- /var/tmp/p, read the passcode out of there, and send it
- * when we see "compress." (the last word before ppp starts), reply
- with nothing. The script ends and we start ppp.
- Note:
- * Make sure there is some whitespace between the filename and the \.
- IV Usage
- To use this install the modified chat and chatchat programs, and
- modify your chat script similar to the above. Before you dial in,
- start that chatchat program giving it the same pipe as in your config
- file. In the above case:
- chatchat /var/tmp/p
- Wait until you have one or two tick marks left on your card's
- current number, then start your dial up process that eventually calls
- chat. When chat goes to open and read the pipe, chatchat will prompt:
- type PIN into SecurID card and
- enter resulting passcode:
- At that point, type your PIN number into your Securid card, press
- the diamond, and type the resulting numbers in as your passcode. If
- you've left the -V -v options on your chat command you'll see
- everything so out, otherwise it works silently.
- If you type the number wrong or run out of time, the server will
- respond with an authentication failure. In that case you will have to
- hang up and start again. I don't know how to build a conditional script
- that says either expect "compress" next, but if you see "name:" again,
- do this instead.
- V Additional Information
- You can obtain additional information about chat and ppp from the
- man pages for chat and pppd, as well as the PPP-HOWTO.
|