Ohjelmointi

Java-suojausarkkitehtuuri

Tämän kuun Under The Hood -sarake on ensimmäinen Java-tietoturvamallia käsittelevästä neliosaisesta sarjasta. Neljä artikkelia keskittyy Java-virtuaalikoneeseen (JVM) ja java.lang-kirjastoon rakennettuun turvallisuusinfrastruktuuriin. Tämä ensimmäinen artikkeli antaa yleiskuvan suojausmallista ja kuvaa JVM: n turvallisuusominaisuudet.

Miksi turvallisuus?

Java-suojausmalli on yksi kielen tärkeimmistä arkkitehtonisista ominaisuuksista, mikä tekee siitä sopivan tekniikan verkkoympäristöihin. Turvallisuus on tärkeää, koska verkot tarjoavat mahdollisen hyökkäystavan mihin tahansa tietokoneeseen, joka on kytketty heihin. Tämä huoli tulee erityisen voimakkaaksi ympäristössä, jossa ohjelmistoja ladataan verkon kautta ja suoritetaan paikallisesti, kuten tehdään esimerkiksi Java-sovelmien kanssa. Koska sovelman luokkatiedostot ladataan automaattisesti, kun käyttäjä siirtyy sisältävälle verkkosivulle selaimessa, on todennäköistä, että käyttäjä törmää epäluotettavista lähteistä tuleviin sovelmiin. Ilman tietoturvaa tämä olisi kätevä tapa levittää viruksia. Siten Java-suojausmekanismit auttavat tekemään Java-sovelluksista sopivia verkkoihin, koska ne luovat tarvittavan luottamuksen verkko-mobiilikoodin turvallisuuteen.

Javan suojausmalli on keskittynyt käyttäjien suojaamiseen vihamielisiltä ohjelmilta, jotka on ladattu epäluotettavista lähteistä verkon kautta. Tämän tavoitteen saavuttamiseksi Java tarjoaa mukautettavan "hiekkalaatikon", jossa Java-ohjelmat toimivat. Java-ohjelman täytyy pelata vain hiekkalaatikkonsa sisällä. Se voi tehdä mitä tahansa hiekkalaatikkonsa rajoissa, mutta se ei voi tehdä mitään näiden rajojen ulkopuolella. Esimerkiksi epäluotettavien Java-sovelmien hiekkalaatikko kieltää monia toimintoja, kuten:

  • Lukeminen tai kirjoittaminen paikalliselle levylle
  • Verkkoyhteyden luominen mihin tahansa isäntään, paitsi isäntään, josta sovelma tuli
  • Uuden prosessin luominen
  • Uuden dynaamisen kirjaston lataaminen ja natiivimenetelmän soittaminen suoraan

Tekemällä mahdottomaksi ladatun koodin suorittamisen tietyille toimille Java-suojausmalli suojaa käyttäjää vihamielisen koodin uhalta.

Hiekkalaatikko määritelty

Perinteisesti joudut luottamaan ohjelmistoihin ennen kuin suoritat sen. Saavutit turvallisuuden käyttämällä vain varovaisia ​​ohjelmistoja luotetuista lähteistä ja etsimällä säännöllisesti viruksia varmistaaksesi, että asiat ovat turvallisia. Kun jotkut ohjelmistot saivat pääsyn järjestelmääsi, sillä oli täysi hallinto. Jos se oli haitallista, se voisi vahingoittaa järjestelmääsi paljon, koska tietokoneesi ajonaikaiset ympäristöt eivät asettaneet ohjelmistolle rajoituksia. Joten perinteisessä turvajärjestelmässä yritit estää haitallista koodia pääsemästä koskaan tietokoneellesi.

Hiekkalaatikkoturvamalli helpottaa työskentelyä sellaisten ohjelmistojen kanssa, jotka tulevat lähteistä, joihin et täysin luota. Sen sijaan, että tietoturva vahvistettaisiin vaatimalla, että estät kaikki koodit, joihin et luota, ei koskaan pääse tietokoneellesi, hiekkalaatikkomallin avulla voit ottaa vastaan ​​koodin mistä tahansa lähteestä. Mutta käynnissä ollessaan hiekkalaatikko estää epäluotettavista lähteistä tulevaa koodia tekemästä toimia, jotka voivat vahingoittaa järjestelmääsi. Etuna on, että sinun ei tarvitse selvittää, mihin koodiin voit luottaa ja mihin et, eikä sinun tarvitse etsiä viruksia. Itse hiekkalaatikko estää tietokoneellesi kutsuttavia viruksia tai muita haitallisia koodeja vahingoittumasta.

Hiekkalaatikko on levinnyt

Jos mielesi on skeptinen, sinun on oltava vakuuttunut siitä, että hiekkalaatikossa ei ole vuotoja, ennen kuin luotat sen suojaavan sinua. Varmistaaksesi, että hiekkalaatikossa ei ole vuotoja, Java-suojausmalli sisältää sen arkkitehtuurin kaikki näkökohdat. Jos Java-arkkitehtuurissa oli alueita, joissa turvallisuus oli heikkoa, haitallinen ohjelmoija ("cracker") voisi mahdollisesti hyödyntää näitä alueita "kiertämään" hiekkalaatikkoa. Hiekkalaatikon ymmärtämiseksi sinun on siis tarkasteltava useita eri Java-arkkitehtuurin osia ja ymmärrettävä, miten ne toimivat yhdessä.

Java-hiekkalaatikosta vastaavat peruskomponentit ovat:

  • Java-virtuaalikoneen (ja kielen) sisäänrakennetut turvaominaisuudet
  • Luokan latausarkkitehtuuri
  • Luokkatiedoston todentaja
  • Suojauspäällikkö ja Java-sovellusliittymä
$config[zx-auto] not found$config[zx-overlay] not found