![[TNO-logo]](../images/banner.gif)
Het was ook de periode dat overgegaan werd van Pascal 2 naar Pascal 3. Pascal was oorspronkelijk door Niclaus Wirth ontwikkeld en geoptimaliseerd op een CDC 6400. Met enige achtergrondkennis werden door ons nieuwe opties aan de Pascal-vertaler toegevoegd. Omstreeks ‘83 werd gepoogd op via een tussenstap (DIANA) een in Pascal geschreven ADA-vertaler aan de praat te krijgen. Forse ingrepen waren nodig om de vertaler aan te passen. Bij gebrek aan tijd werd dit project gestopt.
Schijven bleven volstromen. Dit ondanks de omruil in februari 1983 van drie CDC 844-41 schijfeenheden in twee CDC 885-schijfeenheden, waardoor een verdubbeling van schijfruimte plaats vond. Besloten werd oude files wekelijks van het systeem te verwijderen en op magneetband te zetten. De gebruikers konden via een programma "het INDEX-systeem" aangeven of ze files wilden archiveren, opruimen of terugladen. De gearchiveerde informatie werd twee jaar gegarandeerd ("het INDEX-programma"). Het programma maakte gebruik van de net nieuwe Cyber Control Language-mogelijkheden (CCL; 1982).
Cyber Control Language (CCL) was een - in UNIX-termen - soort shell-taal. Door het Physisch Laboratorium TNO werden vele extra mogelijkheden aan CCL toegevoegd om de operationele en gebruikers "gereedschappen" optimaal te kunnen gebruiken. Zaken als "lege" parameters, niet af te drukken "security" parameters en substrings werden toegevoegd. De meeste opties werden in 1980 ontwikkeld. Hiermee konden de CCL-procedures voor het Micro Development Station (MDS) gehalveerd worden qua lengte, waardoor ook nog een efficiëncy-winst op de CYBER geboekt kon worden tijdens de expansie en verwerking van de CCL-procedures.
Gebruiksvriendelijk was wat anders. Reden om eens het public-domain (ook toen
al) post-mortem dump (PMD) analyse pakket van de Universiteit van Manchester
aan te vragen. Nu was die Universiteit net overgeschakeld op de CYBER 205
supercomputer en was het pakket overgedragen aan de Universiteit van Leicester.
Daar konden we het wel krijgen maar dan moesten wij zelf de aanpassingen verrichten
om het onder NOS ontwikkelde pakket over te zetten naar NOS/BE.
Met enige aanpassingen in de Fortran vertaler en de Loader was dat mogelijk.
Toen wij het pakket
net draaiende hadden, inclusief aanpassingen voor de veel door het
Physisch Laboratorium gebruikte
segmentatie-loader (SEGLOAD), kwam CDC uit met een nieuwe software versie (release).
Daarin was als nieuwigheid "dynamic load" (DLL's!) van modulen opgenomen.
Vooral de
Fortran-bibliotheek was volledig dynamisch gemaakt (o.a. de I/O-modulen). Draaibaar maken
van
een pakket is releatief eenvoudig omdat daar weinig inhoudelijke kennis voor nodig is.
Het aanbrengen van nieuwe zaken is echter minder eenvoudig omdat dat totale
inzage in de programmastructuur vergt.
Nadat het pakket ook de nieuwe dynamische routines kon herkennen in het geheugen, werd het in productie genomen. Dat had grote consequenties voor veel gebruikers omdat vanaf dat moment de loader zo ingesteld werd, dat het gebruik van (nog) niet geïnitialiseerde variabelen automatisch leidde tot het afbreken van het programma. Het had wel een sterke kwaliteitsverbetering en uiteindelijk minder "vreemde" problemen tijdens de uitvoering van het programma tot gevolg.
De volgende fase was het uitbreiden van het standaard NOS/BE-systeem met extra
beveiligingscode. Operators konden geen "gevoelige" delen van het geheugen meer
op het console zien. Een striktere functiescheiding werd doorgevoerd. Alleen
na het intypen van een "wachtwoord" kon het console vrijgegeven worden. Er werd
een kleine, minder dan 100B grote, PP-overlay
geschreven die geheel "relatief" gecodeerd was zodat deze overal geladen en
uitgevoerd kon worden. Dit programma werd opgeslagen als een systeem permanente
file met door het systeem zelf, aan de hand van de microsecondeklok, berekende
lees-, modify-, append- en write passwords. Ieder
password was daardoor anders en voor eenieder, ook voor de systeemprogrammeurs,
absoluut niet te achterhalen. Het vervangen van de code was alleen toegestaan
indien men het speciale wachtwoord "Os0lem1o" (O-solemio) kende.
Slechts één PP-programma was in
staat om de verwijzing naar de file met de beveiligingscode op te pakken, daarna
het permissie-bit "leespermissie" in het systeemgeheugen aan te zetten en vervolgens
de "unlock-code", een soort van pin-code, in te lezen. Indien de overlay niet
geladen was, dan kon het systeem geheel niet UNLOCKed worden. Hierdoor was het
systeem optimaal beveiligd omdat de echte beveiligingscode op geen enkele andere
manier uit te lezen was.
Nog een "truc" moest toegepast worden bij het testen van nieuwe beveiligingscode. Het was namelijk altijd erg lastig om wijzigingen te testen in een systeem dat optimaal (ook tegen de systeemprogrammeurs zelf) beveiligd was en daardoor anders reageerde voor de "gevoelige"-jobs. Om nieuwe code te kunnen testen in een normale omgeving werd de beveiligingscode gewoon ontwikkeld en vertaald. Vervolgens werd de binaire "executable" code achter het console "ingelezen" met behulp van de door systeemprogrammering zelf sterk uitgebreide O26-console editor (ook een PP-programma). Vervolgens werd op het andere consolescherm de oktale geheugeninhoud zichtbaar gemaakt. Het was dan eenvoudig om de speciale beveiligingstesten te "verschuiven" door de geheugenwoorden - en daarmee de PP-code - te wijzigen. Daarna werd weer naar de O26-editor overgeschakeld en werd de gewijzigde code als tijdelijke file weggeschreven. Vervolgens werd de aangepaste PP-code met EDITLIB(SYSTEM) aan het systeem toegevoegd. Daarna kon de nieuwe beveiligingscode probleemloos uitgetest worden. Voldeed de code, dan werd de "echte" versie toegevoegd aan het systeem. Deze manier van werken bespaarde een extra vertaling, die voor verschillende PP-programma’s wel eens meer dan een uur doorlooptijd kon vergen.
Als voorbeeld van de beveiligingen die ingebouwd werden in PP-programma’s, gold het programma ABS waarmee het geheugen van het systeem op papier gedumpt kon worden. Standaard kon iedere gebruiker met ABS de inhoud van het systeemgedeelte van het geheugen en zijn eigen werkgeheugen op papier afdrukken. ABS werd door ons zo gewijzigd dat deze de geheugeninhoud als "nul" rapporteerde tenzij:
In 1981 namen wij het door de Universiteit van Bologna ontwikkelde Tape Security System (TSS) in gebruik nadat dit naar een nieuw "level" geconverteerd was en nadat een aantal fouten opgelost en verbeteringen (met name logging) aangebracht waren. Voor gebruikers werd het onmogelijk om magneetbanden van anderen te lezen en/of te overschrijven, tenzij het bij de tape behorende wachtwoord bekend was.
Van een Amerikaan was, net nadat de Data Encryption Standard (DES) openbaar gemaakt was, een Fortran-implementatie van DES ontvangen. Twee maanden later viel DES ineens onder de Amerikaanse exportverboden. Dat weerhield ons niet om DES te gebruiken om gevoelige gegevens te encrypten.
Begin 1984 werden er extra eisen gesteld aan de te gebruiken wachtwoorden,
hetgeen door ons middels
extra programmacode afgedwongen moest worden.
Het INTERCOM (interactive users) password systeem moest aangepast worden.
Naast de standaard passwordfile kwam er een extra file, die aan iedere accountnaam
een "physical record unit" (PRU) van 64 woorden koppelde. In die PRU werden de laatst gebruikte
tien one-way encrypted wachtwoorden bijgehouden. Dit om het hergebruik van wachtwoorden tegen te
gaan. Om PC’s te weren die een a-b-c-..a schema probeerden uit te voeren om weer
lange tijd van het oude wachtwoord gebruik te kunnen maken, werd de lijst met
eerder gebruikte wachtwoorden pas bij het tweede gebruik van een wachtwoord opgeschoven in de lijst
("countermeasure"). Ook werden in de PRU de tijd/datumgegevens van de laatste vijf login’s
bijgehouden en tellers waarmee een gebruiker gedwongen werd na 250 log-ins of drie maanden
gebruik zijn wachtwoord te wijzigen. In dat geval kon de gebruiker nog enkele malen inloggen
voordat een gehele blokkade optrad (grace-login's).
In het totaal werden zo’n drieduizend regels beveiligingscode ontwikkeld welke ingrepen op
zo’n veertig systeemprogramma’s en PP’s, alsmede op een tiental overlays van deze PP-programma’s.
Ook op hardware-gebied was het Physisch Laboratorium RVO-TNO beveiligingsbewust. In 1978 hadden wij een manier ontwikkeld om defecte schijfpakketten middels zandstralen afdoende veilig te vernietigen volgens NATO-normen. Bij de introductie van de nieuwe 885-schijfeenheden met head-disk assemblies (HDA’s) werd door het Physisch Laboratorium op de wereldwijde gebruikersconferentie in Minneapolis het probleem gesignaleerd dat bij een defect de technici volgens de onderhoudsvoorwaarden de HDA (media plus koppen) mee zouden nemen, iets dat volgens de vigerende beveiligingsrichtlijnen niet toegestaan was. Naar aanleiding van onze reactie is door Control Data een wereldwijd geldende restitutieregeling bedacht voor HDA’s. Het resterende risico kon afgedekt worden door een kleine opslag op de onderhoudstarieven voor de schijven.
MuseumWaalsdorp@tno.nl