Tietojärjestelmien laitteistosuojaus

Tietojärjestelmien  laitteistosuojaus - laitteistotasolla toteutettu tiedon ja tietojärjestelmien suojaus. Nämä työkalut ovat välttämätön osa tietojärjestelmän turvallisuutta , vaikka laitteistokehittäjät jättävätkin yleensä tietoturvaongelmien ratkaisun ohjelmoijien tehtäväksi.

Tämä ongelma on herättänyt monien yritysten huomion, kuten Intel . 80-luvulla kehitettiin järjestelmä 432, mutta projekti epäonnistui. Ehkä "suuren" epäonnistumisen jälkeen muut yritykset hylkäsivät tämän idean.

Neuvostoliiton kehittäjät ratkaisivat laskelmien laitteistosuojauksen luomalla Elbrus 1 -laskentakompleksin . Se perustuu ajatukseen tyypin hallinnasta kaikilla järjestelmän tasoilla, mukaan lukien laitteisto. Ja kehittäjien tärkein ansio sen systemaattisessa toteutuksessa.

Yleinen suojatun järjestelmän malli

Elbruksen kehittäjät ehdottivat seuraavaa suojatun tietojärjestelmän mallia [1] .

Yleisesti ottaen tietojärjestelmä voidaan esittää tietotilana ja sitä palvelevana käsittelylaitteena. Laskelmat on jaettu tietoavaruudessa sijaitseviin erillisiin laskentamoduuleihin. Laskelmien toteutuskaavio voidaan esittää seuraavasti: prosessointilaite ohjelman ohjauksessa pääsee käsiksi tähän tilaan, lukee ja muokkaa sitä.

Järjestelmän kuvaamiseksi esittelemme käsitteet

Solmu  on mielivaltaisen kokoinen tietosolu, jossa on linkki siihen käsittelylaitteelta.

Linkki ei ainoastaan ​​kuvaa tietoja, vaan sisältää myös kaikki käyttöoikeudet niihin. Järjestelmän tulee varmistaa, että viittauksia käyttävät toiminnot eivät käytä muuntyyppistä dataa ja että operaatiot muun tyyppisillä argumenteilla eivät voi muuttaa viittausta.

Ohjelman konteksti  on joukko kaikkia tietyn moduulin laskelmia varten käytettävissä olevia tietoja.

Suojatun tietojärjestelmämallin perustoiminnot

Luodaan mielivaltaisen kokoinen solmu tietojen tallennusta varten

Kutemisen jälkeen uuden solmun pitäisi olla

Solmun poistaminen .

Kontekstin muutos tai prosessointilaitteen suorittaman proseduurin muutos.

Uusi konteksti koostuu kolmesta osasta:

Yleiset menetelmät ja vaatimukset kontekstin vaihtamiselle:

Toteutukset voivat olla erilaisia ​​(myös ilman erityisviittauksia), mutta perusperiaatteita tulee noudattaa:

Mallianalyysi

  1. Järjestelmän turvallisuus perustuu seuraaviin periaatteisiin:
    • Vain sen luoneella moduulilla on pääsy solmuun, ellei se vapaaehtoisesti välitä linkkiä jollekin toiselle
    • moduulin kulloinkin käytettävissä oleva data on tiukasti kontekstin hallinnassa
  2. Tuloksena oleva suojaus on erittäin tiukka, mutta se ei rajoita ohjelmoijan mahdollisuuksia. Erilaiset moduulit, jotka eivät ole päällekkäisiä, voivat toimia samassa ohjelmassa soittaen toisilleen ja vaihtaen tietoja. Tätä varten riittää, että jokainen niistä sisältää erityisen linkin kontekstin vaihtamiseksi toiseen.
  3. Rakennettu järjestelmä yksinkertaistaa huomattavasti virheiden etsintää ja korjaamista tiukan tyyppivalvonnan ansiosta. Esimerkiksi linkin vaihtaminen välittömästi johtaa laitteiston keskeytykseen virheen sijainnissa. Sen jälkeen sitä voidaan helposti seurata ja korjata.
  4. Tarjoaa modulaarisen ohjelmoinnin. Ohjelman virheellinen toiminta ei vaikuta muihin millään tavalla. "Vioittunut" moduuli voi tuottaa vain vääriä tuloksia.
  5. Ohjelmoijalta ei vaadita lisäponnistuksia järjestelmän käyttämiseen. Lisäksi, kun kirjoitetaan ohjelmaa tällaiselle mallille, ei tarvitse erikseen määrittää käyttöoikeuksia, tapoja siirtää niitä jne.

Elbrus-arkkitehtuuri

Elbrus - arkkitehtuurissa tietotyyppien erottamiseksi sen tunniste tallennetaan muistiin jokaisen sanan mukana . Tunnisteen avulla voit määrittää, onko annettu sana linkki vai kuuluuko se johonkin erityiseen tietotyyppiin.

Linkitä ja työskentele niiden kanssa

Linkki sisältää kuvauksen alueesta (kahvasta), johon se viittaa, ja käyttöoikeudet. Kuvaajan tulee sisältää perusosoite ja tietokoko.

Seuraavat kuvausmuodot ovat mahdollisia:

Oliokuvaajaa käytetään olio-ohjelmoinnin tukemiseen ja se sisältää lisäksi kuvauksen yksityisistä ja julkisista alueista. Pääsy julkiselle alueelle on vakio (perusosoitteen ja indeksin lisääminen sekä myöhemmän koon säädön. Jos muistin pääsykomentoissa on merkki yksityisistä tiedoista, niin pääsyn ratkaisemiseksi tarkastetaan prosessorissa oleva erityinen rekisteri, joka tallentaa objektin tyypin, kun tämän tyyppisiä prosessointiohjelmia on käynnissä, jolloin tämän tyyppisten kohteiden yksityiset tiedot tulevat saataville ohjelman sisällä.

Kun käytetään muistisolua, linkin oikeellisuus tarkistetaan.

Tärkeitä toimintoja linkkien kanssa työskennellessä:

Kontekstit ja niiden kanssa työskentelytavat

Moduulikonteksti koostuu RAM-muistiin ja tiedostoista tallennetusta tiedosta, ja se toimii viitteenä prosessorirekistereihin.

Kontekstin vaihto on pohjimmiltaan kutsu proseduuriin tai paluu siitä. Kun toiminto suoritetaan, alkuperäisen moduulin koko konteksti säilyy ja uusi luodaan. Kun prosessi poistuu, sen konteksti tuhoutuu.

Secure Stack Implementation

Toteutettaessa menettelymekanismia Elbrusissa pinomekanismia käytetään lisäämään paikallisen datan muistin allokoinnin tehokkuutta .

Pinotiedot on jaettu kolmeen ryhmään sen toiminnallisten ominaisuuksien ja käyttäjän saavutettavuustason mukaan:

Proseduuripino on tarkoitettu toimintarekistereihin sijoitetuille tiedoille. Kukin toiminto toimii vain omassa ikkunassaan, joka voi mennä päällekkäin edellisen ikkunan kanssa parametrialueella (se on myös palautusarvoalue). Tietojen pyytäminen (käyttäjälle) on mahdollista vain nykyisessä ikkunassa, joka sijaitsee aina toimintarekistereissä.

Käyttäjäpino on datalle, jonka käyttäjä haluaa tallentaa muistiin.

Sidontatietopino on suunniteltu sisältämään tiedot edellisestä (kutsuvasta) menettelystä ja siitä, mitä on käytetty palatessa. Turvallisen ohjelmoinnin avulla käyttäjän ei pitäisi pystyä muuttamaan näitä tietoja, joten sille on varattu erityinen pino, joka on vain käyttöjärjestelmän ja laitteiston käytettävissä. Sitovan tiedon pino on järjestetty samalla tavalla kuin proseduuripino.

Koska virtuaalimuistia käytetään uudelleen pinossa, tietosuojasta tulee ongelma. Siinä on kaksi näkökohtaa:

Ensimmäinen ongelma ratkaistaan ​​puhdistamalla uudelleen käytetyt muistit automaattisesti. Toisen ongelman ratkaisemisen periaate on seuraava. Osoittimet proseduurin nykyiseen kehykseen voidaan tallentaa vain nykyiseen kehykseen tai välittää parametrina kutsutulle proseduurille (syötetty pinosta). Näin ollen osoitinta ei voida kirjoittaa globaaleihin tietoihin, välittää palautusarvona eikä kirjoittaa pinon syvyyteen.

Muistiinpanot

  1. Elbrus-arkkitehtuurin laitteisto- ja järjestelmätukeen perustuvien ohjelmien turvallinen suoritus . Käyttöpäivä: 19. joulukuuta 2010. Arkistoitu alkuperäisestä 15. lokakuuta 2006.

Linkit