
		A N W E N D E R B E R I C H T
		=============================

		Captive Accounts unter RSX
		--------------------------

		oder:

		Was kann man mit "user written CLI's"
		alles anstellen?


			H.-J. May
			c/o SEL AG
			Produktbereich Elektronische Bauelemente
			Abt. Betriebsmittelelektronik
			Nimrodstr.9

			8500 NUERNBERG 70

			Tel. 0911/4230-798


	1. Anwendung und Hintergruende/Historie
	   fuer die Entwicklung von  "user written CLI's"


	   1.1 Endpruef-Projekt fuer 4 gleiche,
	       voneinander unabhaengige Pruefanlagen
	       1983/84

	   1.2 Softwaremaessige Verwaltung ueber 1 PDP 11/73
	       mit Datenerfassung und Online-Auswertung

	   1.3 Problem: Hacker-User geben Mist ein
	       -----------------------------------

	   1.3.1 Loesung 1: Kopie von Ind. Command mit anderem
	                    Tasknamen fragt Kommandoliste ab
	             Vorteil:  sehr leicht zu programmieren
	                        (CMD-File)
	                       genuegender Schutz
	             Nachteil: grosses Programm im Speicher
	                        (verschwindet nicht nach Aufruf)
	                       sehr langsam !!!
	                       hoher Overhead fuer die Applikation
	                        (Rechnerleistung reichte kaum noch)
	                       "attached Terminal" durch Input
	                       -------------------
	                       keine Menuefuehrung


	   1.3.2 Loesung 2: MCE mit Passwortabfrage
	                    und Befehlsvergleich
	                    (Spawn-Direktive verwendet)
	             Vorteil:  leicht zu programmieren
	                        (aus vorhandenem MCE)
	                       genuegender Schutz
	                       schnell
	             Nachteil: grosses Programm im Speicher
	                        (verschwindet nicht nach Aufruf)
	                       "attached Terminal" durch Input
	                       -------------------
	                       Funktionalitaet in MCE,
	                        die aufgepfropft wurde
	                       keine Menuefuehrung


	   1.3.3 Loesung 3: User written CLI
                            mit Passwortumschaltung
	                    (RPOI-Direktive verwendet)
	             Vorteil:  leicht zu programmieren
	                       (aus TMCLI - mit RSX geliefert)
	                       freigegebene Kommandos mit
	                        .ASCIZ /Befehl/ einzufuegen
	                       hervorragender Schutz
	                        (auch fuer nicht eingeloggte User)
	                       schnell
	                       kleines Programm,
	                        verschwindet nach Absetzen des
	                       Kommandos)
	                       Terminal nicht attached
	                       vertraeglich mit MCE
	             Nachteil: zusaetzlicher CLI
	                        (muss bei der RSX-Generierung
	                       beruecksichtigt werden)
	                       Aufwand bei der Passwort-Umschaltung
	                        (kann weggelassen werden)
	                       Installation aufwendiger als bei
	                       normalem Task
	                       pro Befehlsatz ist separater CLI noetig
	                       keine Menuefuehrung


	   1.3.4 Loesung 4: Universelles Menueprogramm mit FMS/Named Data
	                    - zu verwendende FMS-Library ueber CMD-Line
	                    (Spawn-Direktive verwendet)
	             Vorteil:  sehr leicht zu programmieren
	                       Befehlsaeqivalente werden einfach
	                        im Named Data abgelegt und vom Programm
	                        aufgerufen 
	                       nur 1 Menueprogramm pro Rechner
	                        fuer die unterschiedlichsten
	                        Applikationen und Untermenues
	                       genuegender Schutz
	                       schnell
	                       Menuefuehrung
	                        (fuer "Datentouristen" geeignet)
	             Nachteil: grosses Programm im Speicher
	                       (verschwindet nicht nach Aufruf)
	                       "attached Terminal" durch Input
	                       -------------------

	Verwendet werden heute die Loesungen 3 und 4.
	CLI fuer Kommandoeingabe an der Anlage - Masterkonsole (Drucker)
	und Bildschirm.
	Menue fuer den Zugriff von aussen, teilweise fuer den Bildschirm
	an den Anlagen.

	2. Der EPR-CLI

	   2.1 Das Assemblerprogramm
	       (aus TMCLI - mit RSX geliefert)

	       Aenderungen:

	           Einbau einer Kommandoabfrage aus einer Liste
	            (PRVLST). Freigegebene Kommandos sind mit
	            .ASCIZ /Befehl/ einzufuegen.
	            Der Befehl wird bis zum Zero ueberprueft.
	            Soll das gesamte Kommando geprueft werden, muss
	            .ASCIZ /Befehl/<15> eingefuegt werden.
	            Ist das Kommando erlaubt, wird es mit der RPOI-
	            Direktive an den MCR weitergereicht;
	            sonst erhaelt der Benutzer die Nachricht
	            EPR -- Illegal command.

                   Passwortumschaltung geschieht mit Commandfile und
	            einem Sonderzeichen, das vom Terminaltreiber
	            abgefangen wird, aber vom ICP an den CLI geschickt
	            werden kann. Das Passwort wird im Commandfile
	            abgefragt.

	        Aufruf:
	            >MCR
	            [CLI ruft @LB:[1,2]MCR auf]
	            Passwort: ..... (kein Echo)
	            Bei richtigem Passwort wird das Zeichen ^U an den
	            CLI gesendet, was zum Befehl
	            >SET /MCR=TI:   fuehrt.
	            Wenn die Befehle BYE und LOG erlaubt werden, kann
	            die Passwortumschaltung weggelassen werden
	            (es duerfen dann allerdings keine Programme auf
	            dem Terminal aktiv sein).

	           Alle eingegebenen Kommandos werden ausserdem mit
	            Angabe des Terminals zum Device CO: geschickt.
	            Mit
	            >SET /COLOG=ON/NOCOTERM/LOGFILE=filename
	            wird der Ausdruck auf der Masterconsole vermieden
	            und kann gelegentlich auf dem Logfile gelesen
	            werden.

	      2.2 Bilden und Installieren des CLI:

	       >MAC EPR=EPR
	       >TKB EPR=EPR,LB:[1,1]EXELIB/LB

	       >.IFINS ...EPR CLI /ELIM=EPR
	       >.IFINS ...EPR REM ...EPR
	       >INS EPR/CLI=YES/TASK=...EPR/PRI=160.

	       >CLI /INIT=EPR/LGO/TASK=...EPR
	                               /CPR="<15><12>/Applikation>/"

	       >SET /CLI=TTnn:EPR

	      Terminals, die einen solchen "Captive Account" bekommen
	      sollen, koennen bereits beim Einrichten des Accounts auf
	      diesen CLI gestellt werden (ACNT fragt danach).
	      Der Befehl 
	       >CLI /UNOVR
	      muss im SYSLOGIN an letzter Stelle stehen. Sonst ist der
	      User weiterhin auf MCR, obwohl >SHO CLI      EPR zeigt!
	      Alle MCR-Kommandos vor diesem Befehl werden noch ausge-
	      fuehrt.

	     2.3 Beispiel eines Ind. Commands

	         .ENABLE SUBSTITUTION
	         .ENABLE QUIET
	         .SETS CLI <CLI>
	         SET /SLAVE=TI:	   !Dieser Befehl muss erlaubt sein
	         .IF <CLI> = "EPR" ^U
	         .IF <CLI> = "DCL" SET MCR	!fuer Testzwecke
			.
			.          !Hier kommt die Kommandofolge,
			.          !die der Benutzer nicht selb-
	                .          !staendig ausfuehren darf.
			.
	         .IF CLI <> "MCR" SET /CLI=TI:'CLI'
	         SET /NOSLAVE=TI:  !Dieser Befehl muss erlaubt sein


	      2.4 Erfahrungen mit dem CLI

	          G U T E !

	          Der Applikations-CLI EPR wurde von den Benutzern
	          akzeptiert, da er nur Befehle durchlaesst, die zur
	          Steuerung der Anwendung benutzt werden.
	          Weder unabsichtliche noch absichtliche Fehleingaben
	          koennen Daten, Programmen oder der Hardware etwas
	          anhaben.

	          Das Terminal kann sogar privilegiert sein. Damit
	          koennen Befehle wie
	          >ABO Prog     erlaubt werden.


