Multics Technical Bulletin                                MTB-680
Operator Login

To:       Distribution

From:     Benson I. Margulies

Date:     11/12/84

Subject:  Identification and Authentication of Operators

1 ABSTRACT

     The B2 criteria require us to identify and authenticate
     system operators.  This MTB describes changes to system
     control  and  the message  coordinator to  provide this
     feature.  Readers should be familiar with MTB694, since
     this design presupposes that one.

Comments should be sent to the author:

via Multics Mail:
   Margulies at either System-M, MIT, or CISL-SERVICE.

via Forum:
   >udd>m>mtgs>B2 on System-M

via telephone:
   (HVN) 261-9333, or
   (617) 492-9333

_________________________________________________________________

Multics  project  internal  working  documentation.   Not  to  be
reproduced or distributed outside the Multics project without the
consent of the author or the author's management.


MTB-680                                Multics Technical Bulletin
                                                   Operator Login

2 INTRODUCTION

This MTB discusses the handling of commands entered by operators:
"system  control"  commands.   As   explained  in  MTB694,  these
commands  are processed  by the  system control  subsystem, which
receives  them from  communications channels  (usually terminals)
under control  of the message coordinator,  the (bootload) system
console, and the send_admin_command interface.

The B2 criteria require that all persons who are connected to the
system be identified and authenticated by user name and password.
It   is  especially   important  to   identify  and  authenticate
operators, since they have access to privileged functions.

send_admin_command  commands  are  sent  by users  who  have been
identified  and  authenticated  by the  normal  Answering Service
mechanisms.  System control, on the  other hand, does not require
any authentication of persons  entering commands via the bootload
console  or  message coordinator  terminals.  This  MTB describes
identification  and authentication  of persons  entering commands
via these devices.

3 IMPORTANT LIMITATIONS

Given the basic initialization architecture of Multics, it is not
practical to guarantee that  the system demand identification and
authentication at all times.

     Multics  will demand  identification and authentication
     of   operators  from   the  successful   completion  of
     Answering   Service   initialization   (the   "multics"
     command)  until  shutdown.   Multics  will  NOT  demand
     authentication in the  Bootload Command environment, in
     the   ring  1   initializer  environment,   or  in  the
     pre-Answering Service ring 4 initializer environment.

This restriction  has a limited  impact on system  assurance.  In
the environments where identifications  and authentication is not
required, all  commands must be  entered via the  single bootload
console, physically  located in the machine  room, where physical
security can be used.

The restriction might  be removed, in part, by  storing some kind
of minimal authentication database in  the hardcore, read in from
the bootload  tape.  This mechanism would  be difficult to secure
and maintain, and is therefore not included at this time.


Multics Technical Bulletin                                MTB-680
Operator Login

4 NAMES AND TERMS

The  identification   and  authentication  of   persons  entering
commands  on  message  coortinator  terminals  and  the  bootload
console is  referred to as "operator  login."  Since the commands
"login"  and  logout"  are  already  in  use  in  the initializer
environment for daemon login and  logout, the terms "sign_on" and
"sign_off" are used in the command names and documentation.

5 DESIGN OVERVIEW

Operator identification and authentication ("operator login" from
here on) will be enabled  by a switch in installation parameters.
If the switch is off, then operators are not required to sign in.

Operators will  login via the initializer  command "sign_on," and
log out via the initializer command "sign_off."

Operators  will  give  a  Multics  personid  and  password.   The
standard  system PNT  will be used  to validate  the personid and
password.

A new PNT attribute, "operator", will be required for a person to
login as an operator.

If  an  operator enters  a  command before  entering  the sign_on
command, the sign_on command will  be run for them, prompting for
name and password.

An  installation  parameter will  specify an  optional inactivity
timeout  for  operators.  If  no  command is  entered  within the
timeout   period,   the   next   command   will   demand   a  new
authentication.

The system  control ready message  will be changed  from a simple
"R" to
 "(Operator_Name) Ready".

6 IMPLEMENTATION DETAILS

As  noted  in MTB694,  the program  sc_execute_command_line_ will
enforce  operator login.   First, it  checks to  see if  login is
required.  Prior to Answering  Service initialization, or after a
cripple   command,   sc_stat_$no_operator_login  will   be  "1"b,
disabling operator login.


MTB-680                                Multics Technical Bulletin
                                                   Operator Login

Once that test  passes, the next question is  whether the site is
requiring             operator             login.              If
installation_parms.operator_login_required is "0"b, then they are
not.

Next, the  command may have  come from a source  that requires no
authentication.      In    that     case    (send_admin_command),
sc_subsystem_info.no_real_tty will be "1"b.

If all these tests have  passed, then operator login is required.
If  mc_ate.signed_on  is  "0"b,  then  noone  is  logged  in.  If
mc_ate.signed_on  is  "1"b,  then  the  last_command_time  in the
mc_ate              is               checked              against
installation_parms.operator_inactivity_limit.  If  the inactivity
limit has passed, then the signed_on bit is cleared.

If noone is signed on,  then ssu_$execute_line is called with the
command  line "sign_on".   The operator may  sign_on by answering
the questions.  If the operator  fails to sign on, then execution
of the original command is aborted.

If the sign_on succeeded, or the  operator was signed on to begin
with, then command execution  proceeds, and the last_command_time
is updated.

7 COMMAND DESCRIPTIONS


Multics Technical Bulletin                                MTB-680
Operator Login

--------------                                    --------------
sign_on                                           sign_on
--------------                                    --------------

Names:  sign_on, signon

Syntax As A Command

   sign_on {User Name}

Use this command  to sign on as the  operator responsable for the
terminal on which  you enter it.  This tells  the system that you
are responsable for all the commands entered until you type enter
or someone else enters sign_on.

Arguments:

User Name
   is the operators  Multics user name.  If you  don't give this,
   you are prompted for it.

Notes:

The  sign_on command  prompts for  the Multics  password.  If you
decide  that  you  don't  want to  sign_on,  enter  "quit"  for a
password.

The sign_on command prints the following message:

    sign_on:   USER_NAME   signed  on  as   operator  on  channel
CHANNEL_NAME.

If someone  else is signed  on when the sign_on  command is give,
the messages are:

    sign_on:  OLD_USER_NAME signed off.
    sign_on:   USER_NAME   signed  on  as   operator  on  channel
CHANNEL_NAME.


MTB-680                                Multics Technical Bulletin
                                                   Operator Login

----------------                        ----------------
sign_off                                sign_off
----------------                        ----------------

Names:  sign_off, signoff

Syntax As A Command

   sign_off

Use this command to sign off  as the operator responsable for the
terminal on which you entry it.  If your site requires signing on
and off, you or someone else will have to use the sign_on command
to  sign  on  as  responsable operator  for  the  terminal before
entering any other commands.