Programmēšana

Java drošības arhitektūra

Šomēnes sleja “Under The Hood” ir pirmā no četrdaļīgajām sērijām par Java drošības modeli. Četri raksti būs vērsti uz Java virtuālajā mašīnā (JVM) iebūvēto drošības infrastruktūru un bibliotēku java.lang. Šis pirmais raksts sniedz drošības modeļa pārskatu un apraksta JVM drošības funkcijas.

Kāpēc drošība?

Java drošības modelis ir viena no galvenajām valodas arhitektūras iezīmēm, kas padara to par piemērotu tehnoloģiju tīkla vidēs. Drošība ir svarīga, jo tīkli nodrošina iespējamu uzbrukuma iespēju jebkuram datoram, kas pie tā ir piesaistīts. Šīs bažas kļūst īpaši spēcīgas vidē, kurā programmatūra tiek lejupielādēta visā tīklā un izpildīta lokāli, kā tas tiek darīts, piemēram, ar Java sīklietotnēm. Tā kā sīklietotnes klases faili tiek automātiski lejupielādēti, kad lietotājs pārlūkprogrammā dodas uz saturošo Web lapu, iespējams, ka lietotājs sastaps sīklietotnes no neuzticamiem avotiem. Bez jebkādas drošības tas būtu ērts vīrusu izplatīšanas veids. Tādējādi Java drošības mehānismi palīdz padarīt Java piemērotu tīkliem, jo ​​tie rada vajadzīgo uzticību tīkla-mobilā koda drošībai.

Java drošības modelis ir vērsts uz lietotāju aizsardzību no naidīgām programmām, kas tīklā lejupielādētas no neuzticamiem avotiem. Lai sasniegtu šo mērķi, Java nodrošina pielāgojamu "smilškasti", kurā darbojas Java programmas. Java programmai ir jāspēlē tikai tās smilšu kastē. Tas var visu izdarīt savas smilšu kastes robežās, bet ārpus šīm robežām nevar veikt nekādas darbības. Piemēram, neuzticamu Java sīklietu smilškaste aizliedz daudzas darbības, tostarp:

  • Vietējā diska lasīšana vai rakstīšana
  • Tīkla savienojuma izveide ar jebkuru resursdatoru, izņemot resursdatoru, no kura nāk sīklietotne
  • Jauna procesa veidošana
  • Tiek ielādēta jauna dinamiska bibliotēka un tieši izsaukta vietējā metode

Padarot neiespējamu lejupielādēta koda noteiktu darbību veikšanu, Java drošības modelis aizsargā lietotāju no naidīga koda draudiem.

Definēta smilšu kaste

Tradicionāli pirms programmatūras palaišanas jums bija jāuzticas programmatūrai. Jūs sasniedzāt drošību, uzmanīgi lietojot tikai programmatūru no uzticamiem avotiem un regulāri skenējot vīrusus, lai pārliecinātos, ka viss ir drošībā. Kad kāda programmatūra ieguva piekļuvi jūsu sistēmai, tai bija pilnas iespējas. Ja tas bija ļaunprātīgs, tas varētu nodarīt lielu kaitējumu jūsu sistēmai, jo datora izpildlaika vide programmatūrai nebija ierobežojumu. Tātad tradicionālajā drošības shēmā jūs vispirms mēģinājāt novērst ļaunprātīga koda jebkādu piekļuvi jūsu datoram.

Smilškastes drošības modelis atvieglo darbu ar programmatūru, kas nāk no avotiem, kuriem pilnībā neuzticaties. Tā vietā, lai tiktu izveidota drošība, pieprasot, lai jebkurš neuzticamais kods nekad nenonāktu jūsu datorā, smilškastes modelis ļauj sveikt kodu no jebkura avota. Bet darbojoties, smilšu kaste neuzticamiem avotiem paredzēto kodu neļauj veikt darbības, kas varētu kaitēt jūsu sistēmai. Priekšrocība ir tāda, ka jums nav jāizprot, kādam kodam jūs varat uzticēties un kam ne, un jums nav jāmeklē vīrusi. Pats smilškaste neļauj jebkādiem vīrusiem vai citiem ļaunprātīgiem kodiem, kurus varat uzaicināt savā datorā, nodarīt jebkādu kaitējumu.

Smilšu kaste ir visaptveroša

Ja jums ir pareizi skeptisks prāts, jums būs jāpārliecinās, ka smilšu kastē nav noplūdes, pirms uzticaties, ka tā jūs aizsargā. Lai pārliecinātos, ka smilškastē nav noplūdes, Java drošības modelis ietver visus tās arhitektūras aspektus. Ja Java arhitektūrā būtu vietas, kurās drošība būtu vāja, ļaunprātīgs programmētājs ("krekeris") potenciāli varētu izmantot šīs zonas, lai "apietu" smilšu kasti. Lai saprastu smilšu kasti, jums jāaplūko vairākas dažādas Java arhitektūras daļas un jāsaprot, kā tās darbojas kopā.

Galvenie komponenti, kas ir atbildīgi par Java smilškasti, ir:

  • Java virtuālajā mašīnā (un valodā) iebūvētie drošības līdzekļi
  • Klases iekrāvēja arhitektūra
  • Klases failu verificētājs
  • Drošības pārvaldnieks un Java API
$config[zx-auto] not found$config[zx-overlay] not found