1 / 56

Bezpečnosť JAVA aplikácií

Bezpečnosť JAVA aplikácií. Marian Lojka 2003/2004. http :// skola.marloom.net. Obsah. Model zabezpečenia v Jave Sandbox (bezpečnostné prostredie) Správca zabezpečenia Súbory zásad Podpisovanie tried Typy oprávnenia Spätný preklad kódu. Model zabezpečenia v Jave.

aldon
Download Presentation

Bezpečnosť JAVA aplikácií

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bezpečnosť JAVA aplikácií Marian Lojka 2003/2004 http://skola.marloom.net

  2. Obsah Model zabezpečenia v Jave Sandbox (bezpečnostné prostredie) Správca zabezpečenia Súbory zásad Podpisovanie tried Typy oprávnenia Spätný preklad kódu

  3. Model zabezpečenia v Jave História vývoja zabezpečenia v Jave Zabezpečenie v Jave sa vyvíjalo už od jej samotného počiatku. Podstatné rozdiely, ktoré vznikali sa prejavili vo verziách JDK 1.0, JDK 1.1 a Java 2. V prvých počiatkoch vývoja Javy bola jedna z prelomových technológií tvorba Apletov. Keďže Aplet je malá časť kódu, ktorú možno prenášať sieťou a spúšťať na klientských počítačoch prostredníctvom vnorených objektov v dokumentoch formátu WWW, používatelia boli bezprostredne ohrozený pred nebezpečným kódom.

  4. Model zabezpečenia v Jave SANDBOX stručne Výsledkom prvotnej snahy zabezpečenia, ktoré by nepripustilo poškodenie klientského počítača spustením kódu z Internetu je model zabezpečenia nazývaný SANDBOX(krabica z piesku). Model pieskoviska je bezpečnostné prostredie okolo systému alebo aplikácie, ktoré je postavené na zákaze potenciálne nebezpečných činností (prístup k súborom, sieťovým prostriedkom a pod.). Úloha a využitie Sandboxu budú popísané neskôr.

  5. Model zabezpečenia v Jave Zabezpečenia v Java SDK 1.0 Vzdialený kód Apletov, ktoré sa spustili na klientskom počítači nemali možnosť manipulovať s prostriedkami počítača. Mali priradenú iba pamäť a procesor. Prostredie Sandboxu, kde sa kód vykonával striktne zakazoval priradenie iných prostriedkov. Internet Lokálny kód Vzdialený kód Plný prístup k prostriedkom Sandbox Obmedzený prístup Zabezpečovací manažér (Security manager) Systémové prostriedky

  6. Model zabezpečenia v Jave Zabezpečenia v Java SDK 1.1 Po nejakej dobe sa ukázalo že model Sandboxu je veľmi obmedzujúci. Autori jazyka Java pristúpili na možnosť podpisovania vzdialeného kódu. Tento podpis dosvedčuje že kód nebol zmenený od doby jeho podpísania. vzdialený kód z Internetu Podpísanýa prijatý klientom Nepodpísanýalebo odmietnutý Lokálny kód Plný prístup k prostriedkom Sandbox Obmedzený prístup Zabezpečovací manažér (Security manager) Systémové prostriedky

  7. Model zabezpečenia v Jave Zabezpečenia v Java 2 V prostredí Java 2 bol vytvorený dômyselnejší mechanizmus a to spustenie vzdialeného kódu vo vnútri špecifických bezpečnostných domén, založených na súboroch zásad zabezpečenia (security policy file). Vzdialený alebo lokálny kód JVM kód security policy Sandbox Obmedzený prístup Plný prístup dómena dómena Zabezpečovací manažér (Security manager) Systémové prostriedky

  8. Sandbox Bezpečnostné prostredie Java 2 Načítanie triedy Overenie práv a sprístupnenie systémových prostriedkov

  9. Sandbox - Class Loader Požiadavka pre načítanie triedy Priebeh načítania triedy Trieda už je načítaná ? Má program povolenie na vytvorenie tejto triedy ? Má program prístup k triede ? SecurityException ! Vrátenie referencie na objekt Hľadanie triedy v : 1.Java API 2.JVM extension Bola trieda nájdená ? Načítanie triedy vo forme bytov Načítaná a sprístupnená Class File Verifier Trieda je v poriadku ? VerifyError ! Pridanie triedy do bezpečnostnej domény pre neskoršie otestovanie práv triedy. Inicializácia statických premenných Trieda je pripravená na vykonávanie

  10. Sandbox Class File Verifier • Zabezpečuje overenie triedy na základe postupnosti testov vnútornej integrity. Dôraz pri testovaní sa kladie na prítomnosť nasledujúcich (úmyselných)chýb : • Obsah ilegálneho byte codu. • Formát tried (napr.: Triedy musia mať superclass) • Formát a vlastnosti metód. • Formát premenných. • Vytvorenie smerníka na chránenú časť pamäte. • Podtečenie alebo pretečenie programového staku. • Iné cesty k narušeniu integrity JVM.

  11. Sandbox Class File Verifier Príklad požitia neinicializovaného registra Pre názornosť vytvoríme tried ClassVerify /** * Metoda pre spustenie ako Aplikacia */ publicstaticvoid main(String[] args) { System.out.println("3 + 4 = " + add()); } /** * Metoda, ktoru upravime prostrednictvom Hexakodu * (testujeme ByteCode Verifier) */ staticint add(){ int a,b,c; a = 3; b = 4; // use hex editor to change to "a = 4" in class file return (a+b); } /** * Metoda, pre vykreslovanie Textu s vysledkom */ publicvoid paint(Graphics g){ g.drawString("3 + 4 = " + add(), 10, 20); }

  12. Sandbox Class File Verifier Príklad požitia neinicializovaného registra Zmeníme časť bytecodu a spustíme program znovu. JVM ohlási chybu z dôvodu čítania neinicializovania registra. Program sa ukončí. Dôsledok toho že nieje možné pristupovať do chránenej pamäte. *** static int add(); Code: 0: iconst_3 1: istore_0 2: iconst_4 3: istore_1 1->0 4: iload_0 5: iload_1 6: iadd 7: ireturn *** java.lang.VerifyError: (class: ClassVerify, method: add signature: ()I) Accessing value from uninitialized register 1 at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

  13. Správca zabezpečenia Charakteristika • Jadrom celého procesu riadenia prístupu v jazyku Java je trieda SecurityManager. • definovaná v balíčku java.lang • riadi prístup k prostriedkom hostiteľského • operačného systému. • kedykoľvek si program vyžiada prístu k určitemu prostriedku je požiadavka predaná objektu typu SecurityManager

  14. Správca zabezpečenia Preskúmanie zdrojového kódu triedy FileInputStream Konštruktor ešte pred tým ako dovolí vytvorenie inštancie FileInputStream skontroluje či má právo čítať. public FileInputStream(File file) throws FileNotFoundException { String name = (file != null ? file.getPath() : null); SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkRead(name); } if (name == null) { throw new NullPointerException(); } fd = new FileDescriptor(); open(name); }

  15. Správca zabezpečenia Vlastnosti • Za normálnych okolností nieje žiadna inštancia správcu zabezpečenia aktívna. • Výnimkou je spustenie apletu v okne webového prehliadača, kde JVM vytvorí automaticky inštanciu). Tým docieli vytvorenie Sandboxu. • V prebehu spracovania je aktívny len jeden Správca zabezpečenia a to posledne priradený systému prostredníctvom funkcie : • System.setSecurityManager(...);

  16. Správca zabezpečenia Spôsob inštalácie • Správcu zabezpečenia je možné do systému inštalovať dvoma spôsobmi a to: • Explicitne inštaláciou v aplikácií. To je vytvorením inštancie SecurityManager a jej priradeniu Systému. • Aktiváciou virtuálneho stroja pomocou prepínača –D : • java –Djava.security.manager NazovTriedy

  17. Správca zabezpečenia Súbory zásad (policy files) • Súbor zásad je jednoduchý plochý súbor obsahujúci oprávnenia (permissions) . Sú to práva užívateľa alebo kódu k vykonávaniu určitej činnosti. • Ak je daná činnosť povolená volanie metódy checkPermission() správcom zabezpečenia prebehne bez problémov v opačnom prípade je vyvolaná výnimka. V tomto prípade je potrebné vytvoriť nový súbor zásad alebo modifikovať už vytvorený. • Java 2 umožnite definovať oprávnenie nielen na základe danej činnosti ale aj na základe načítania triedy z určitého miesta alebo na základe podpisu vlastníka alebo skupiny vlastníkov.

  18. Správca zabezpečenia Súbory zásad (policy files) • Pri inštalovaní prostredia Java je vytvorený štandardný konfiguračný súbor zabezpečenia. Tento súbor je uložený v podadresári /lib/security domovského adresára inštalácie JRE. • Konfiguračný súbor sa nazýva java.security a obsahuje časť podobnú následnému výpisu : • # The default is to have a single system-wide policy file, • # and a policy file in the user's home directory. • policy.url.1=file:${java.home}/lib/security/java.policy • policy.url.2=file:${user.home}/.java.policy • Súbor .java.policy obsahuje základné povolenia na prístup k prostriedkom, ktoré sú rovnaké aké ma aplet po spustení v okne webového prehliadača.

  19. Správca zabezpečenia Ako vytvoriť vlastný súbor zásad • Súbory zásad možno vytvárať a upravovať pomocou ľubovoľného textového editoru. K uvedenej činnosti môžeme použiť tiež nástroj policytool dodávaný ako súčasť sady JDK (Java Development Kit). Podrobnejší návod nájdete nahttp://java.sun.com/j2se/1.3/docs/tooldocs/win32/policytool.html • Súbor zásad sa ukladá prostredníctvom File -> Save As Miesto uloženia súboru zásad Certifikát Povolenia ktoré sú uložené v danom súbore zásad. Pridať odobrať alebo editovať zásadu.

  20. Správca zabezpečenia Ako vytvoriť vlastný súbor zásad • Pre vytvorenie novej zásady stlačíme v hlavnom okne “Add Policy Entry”.Zobrazí sa ďalší dialóg. Adresa na ktorú sa vzťahuje oprávnenie Alias podpisu užívateľa na ktorý sa vzťahuje oprávnenie Pridať odobrať alebo editovať oprávnenie.

  21. Správca zabezpečenia Ako vytvoriť vlastný súbor zásad • CodeBase Definuje na akú adresu je povolené oprávnenie. • Signed By Alias podpisu používateľa, ktorého kód je podpísaný. Využíva sa verejný kľúč na zistenie pravosti kódu podpísaného privátnym kľúčom. • Add,Remove,Edit Permission • Slúži na pridanie odobratie a zmenu oprávnenia. Toto oprávnenie sa vzťahuje na danné miesto alebo kódu podpísaného Aliasom a identifikovaného verejným kľúčom.

  22. Správca zabezpečenia Ako vytvoriť vlastný súbor zásad

  23. Správca zabezpečenia Využitie súboru zásad Pre názornú ukážku vytvorme triedu WriteFile. import java.io.*; public class WriteFile{ public static void main(String[] args) throws IOException{ FileOutputStream fos = new FileOutputStream(“test.txt”); PrintWriter pw = new PrintWriter(fos); pw.println(“Testujem.”); pw.close(); } } Trieda vykonáva jednoduchý zápis slova “Testujem.” do súboru “test.txt”.

  24. Správca zabezpečenia Využitie súboru zásad Po spustení vytvorenej aplikácie WriteFile s implicitným správcom zabezpečenia spustíme program príkazom: java –Djava.security.manager WriteFile Chyba, ktorá nastala pre zákaz zapisovania do súboru. java.security.AccessControlException: access denied(java.io.FilePermission test.txt write) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkWrite(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at WriteFile.main(WriteFile.java:18) Exception in thread "main"

  25. Správca zabezpečenia Využitie súboru zásad Vytvoríme nový súbor zásad s názvom WriteFile.policy, ktorý povoľuje zápis ľubovoľnej triedy na disk a uložíme ho do rovnakého adresára ako je trieda WriteFile.class. WriteFile.policy /* AUTOMATICALLY GENERATED ON Mon Apr 10 13:00:32 CEST 2004*/ /* DO NOT EDIT */ grant { permission java.io.FilePermission "<<ALL FILES>>", "write"; }; Spustíme program prostredníctvom príkazu : java –Djava.security.manager –Djava.security.policy=WriteFile.policy WriteFile –Djava.security.policy – identifikuje miesto kde sa nachádza súbor povolení. Program sa vykoná bez problémov pretože SecurityManager je na základe oprávnení definovaných v súbore WriteFile.policy povolí zápis súboru na disk.

  26. Správca zabezpečenia Využitie súboru zásad Oprávnenie založené na adresách URL a podpisu užívateľa • WriteFile.policy • grant codeBase "file:/D:/_Projects/Secure1" { • permission java.io.FilePermission "<<ALL FILES>>", "write"; • }; • pre oddeľovanie adresárov sa používa bežné lomítko (/) aj v prípade súborového systému Windows. • WriteFile.policy • grant signedBy "bis", codeBase "file:/D:/_Projects/Secure1" { • permission java.io.FilePermission "<<ALL FILES>>", "write„ • }; • aby bolo možné vytvoriť povolenie na základe podpisu je potrebné aby autor kódu vytvoril pár kľúčov a podpísal kód svojím súkromným kľúčom.

  27. Správca zabezpečenia Využitie súboru zásad Ako svoju triedu podpísať • Osoba, ktorá chce svoj kód podpísať : • Vytvorí dvojicu šifrovacích kľúčov (súkromný a verejný pomocou nástroja keytool). • Vytvorí súbor jar, ktorý obsahuje triedy určené k distribucii (k tomu použije nástroj jar). • Podpíše súbor jar pomocou súkromného kľúča (k tomuto účelu je určený nástroj jarsigner). • Všetkým užívateľom takto zabalených tried poskytne archív jar a verejný kľúč. K tomuto musí vedieť ako nástroj keytool použiť k exportu certifikátu z databázy certifikátov a odoslaniu ich k danným užívateľom.

  28. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov Pre vytvorenie novej dvojice šifrovacích kľúčov je možné použiť nástroj keytool s prepínačom -genkey. Nástroj požadovanú dvojicu vytvorí a uloží ju do databázy certifikátov. Databáza certifikátov (KEYSTORE) Je malá databáza kde su uložené súkromné kľúče a k nim pridružené certifikáty, tiež zoznamy odvolaných certifikátov a dôveryhodných certifikátov. Pokiaľ daný súbor databázy neexistuje, nástroj keytool ho vytvorí.

  29. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov Ak použijeme nástroj keytool s prepínačom –genkey budeme musieť špecifikovať hodnoty: Alias Jednoduchý názov reprezentujúci užívateľa pre ktorého bude pár šifrovacích kľúčov vytvorený. Heslo k zašifrovaným párom kľúčov Heslo, ktoré bude spojené s dvojicou zašifrovaných kľúčov. Adresu URL Umiestnenie databázy certifikátov. Táto adresa môže obsahovať cestu už k existujúcej databáze (súboru) alebo k databáze ktorá sa má vytvoriť. Heslo do databázy certifikátov Ak nebola databáza certifikátov vytvorená použije hodnotu tohto parametru ako heslo pre novú databázu.

  30. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov Nasledujúci príkaz ukazuje ako vytvoriť pár šifrovacích kľúčov : keytool-genkey–alias kosice –keypass tajomstvo –keystore Autor.jks –storepass heslokeystore Po zadaní nasledujúceho príkazu program požiada o zadanie informácií, ktoré slúžia na identifikovanie osoby, ktorá vytvára kľúč. Nakoniec vyzve používateľa k potvrdeniu zadaných údajov.

  31. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov C:\Documents and Settings\Maio>keytool -genkey -alias kosice -keypass heslokeypass -keystore store.jst -storepass heslokeystore What is your first and last name? [Unknown]: Marian Lojka What is the name of your organizational unit? [Unknown]: Student What is the name of your organization? [Unknown]: TU Kosice What is the name of your City or Locality? [Unknown]: Kosice What is the name of your State or Province? [Unknown]: Slovakia What is the two-letter country code for this unit? [Unknown]: SK Is CN=Marian Lojka, OU=Student, O=TU Kosice, L=Kosice, ST=Slovakia, C=SK correct? [no]: yes

  32. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov Na prácu s nástrojom keytool je možné použiť nástroj KeyTool GUI 1.7 vytvorený Wayne Grantom. Ako voľnú verziu ho nájdetetu.

  33. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov Aby sme mohli vytvoriť kľúče musíme vytvoriť novú databázu kľúčov alebo použiť už vytvorenú. • Java KeyStore (Sun's KeyStore format) • Java Cryptography Extension KeyStore(More secure version of JKS) • Public-Key Cryptography Standards #12 KeyStore (RSA's Personal Information Exchange Syntax Standard) • Bouncy Castle KeyStore (Bouncy Castle's version of JKS) • Bouncy Castle UBER KeyStore (More secure version of BKS)

  34. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov pomocou KeyToolGUI Vytvoreniekľúčov Výber metódy šifrovania Nastavenie potrebných údajov Nastavenie Alias mena

  35. Správca zabezpečenia Ako vytvoriť pár šifrovacích kľúčov pomocou KeyToolGUI

  36. Správca zabezpečenia Ako vytvoriť jar súbor Súbor jar, ktorý obsahuje zverejnené triedy vytvoríme prostredníctvom nástroja jar dodávaného štandardne s JDK. Jar súbor z sôr definovanej triedy vytvoríme nasledujúcim príkazom: jar cf WriteFile.jar WriteFile.class Bližšie sa zaoberať nástrojom jar nieje úlohou tejto prezentácie. Stručnú nepovedú získate zadaním príkazu jar – help.

  37. Správca zabezpečenia Ako podpísať súbor jar • Podpísanie súboru jar môžeme vykonať prostredníctvom nástroja jarsigner, ktorý je súčasťou JDK. Pri podpisovaní Vás tento nástroj požiada aby ste zadali rovnaké hodnoty ako pri vytváraní páru šifrovacích kľúčov. Sú to : • Adresa URL databázy certifikátov. • Heslo do databázy certifikátov. • Alias kľúča. • Heslo k rozšifrovaniu kľúča. • Okrem uvedených hodnôt je potrebné zadať aj názov súboru jar, ktorý sa má podpísať aj meno jeho kópie, ktorá bude podpísaná. • jarsigner -keystore keystore.jks -storepass heslokeystore -keypass heslokeypass -signedjar SignedWriteFile.jarWriteFile.jarbrown.

  38. Správca zabezpečenia Štruktúra podpísaného jar súboru SignedWriteFile.jar META-INF BROWN.DSABROWN.SFMANIFEST.MF Zverejnené triedy

  39. Správca zabezpečenia Export a Import verejného kľúča databázy certifikátov Export a Import verejného kľúča databázy je potrebné vykonať ak chcete preniesť kľúč k druhej osobe, ktorá používa vami podpísaný kód a potrebuje si overiť či kód nebol od jeho vytvorenia a podpísania zmenený. Postup exportu aj importu je v programe KeyToolGUI intuitívny avšak tento postup je možné vykonať prostredníctvom už skôr uvedeného nástroja keytool. Export : keytool -export–alias brown –keystore keystore.jks –storepass heslokeystore–file Brown.cer. Import: keytool -import –alias brown –keystore keystore.jks –storepass heslokeystore –file Brown.cer

  40. Správca zabezpečenia Ako upraviť súbor zásad. Overenie identity vo vhodnej databáze certifikátov. Posledným krokom je úprava súboru zásad takým spôsobom aby našiel cestu k databáze certifikátov, kde sú uložené verejné kľúče vrátane ich aliasov. Túto činnosť je možné vykonať prostredníctvom nástroja policytool. URL k databáze certifikátov

  41. Správca zabezpečenia Ako upraviť súbor zásad. Overenie identity vo vhodnej databáze certifikátov. WriteFile.policy keystore "file:/D:/_Projects/Secure1/keystore.jks"; grant signedBy "brown" { permission java.io.FilePermission "<<ALL FILES>>", "write"; }; Spustenie programu : Pre spustenie programu WriteFile uloženého v súbore SignedWriteFile.jar napríklad tento príkaz : java -cp SignedWriteFile.jar -Djava.security.manager -Djava.security.policy=WriteFile.policyWriteFile

  42. Súbory zásad FileWriter.java 1. javac FileWriter.class 3. Keytool -genkey 2. jar Databáza kľúčov Jamesa Browna Keystore.jks FileWriter.jar Alias brown 5. 4. private key Keytool -export jarsigner SignedFileWriter.jar public key certificate JamesBrown.cer

  43. Súbory zásad SignedFileWriter.jar od James Brown 1. java security manager datový súbor Exception Program nemá oprávnenie pre zápis údajov na disk 3. Policy tool 2. JamesBrown.cer od James Brown Policy súbor Jennifer Lopezudeľuje oprávnenie kódu podpísaného aliasom“brown” na zápis údajov na disk Keytool -import Databáza kľúčov Jennifer Lopez 4. Keystore.jks SignedFileWriter.jar security manager java Brownov public key certificate datový súbor

  44. Typy oprávnenia Základná špecifikácia Všetky platné oprávnenia definované v súbore zásad sú v Jave interne reprezentované ako inštancia abstraktnej triedy Permission definovaného v balíku java.security. Ak sa má vykonať špecificky nebezpečná činnosť volá sa metóda checkXXX() a tá vola metódu checkPermission() definovanej v triede AccessControler. FileOutpuStream security.checkWrite(fileName); SecurityManager checkPermission(newFilePermission(file,SecurityConstants.FILE_WRITE_ACTION)); AccessController public static void checkPermission(Permission perm) throws AccessControlException{

  45. Typy oprávnenia Základné rozdelenie typov oprávnení.

  46. Typy oprávnenia Základná charakteristika Určité triedy odvodené od triedy Permission sa používajú pre jeden typ oprávnenia, ako napríklad java.io.FilePermission, ktorej inštancia sa používa k povoleniu prístupu k súboru alebo k skupine súborou. Iné triedy ako napríklad java.lang.RuntimeException sa používajú k popisu viacej typov oprávnenia. Vo všetkých triedach odvodených od triedy Permission je zapuzdrená jedna alebo viacej hodnôt String. Uvedené hodnoty popisujú špecifický typ oprávnenia alebo typ povoleného prístupu. Typy prístupu sa označujú tiež ako zoznam akcií (action list).

  47. Typy oprávnenia BasicPermission • Táto trieda je definovaná v baliču java.security. Je priamym potomkom triedy Permission a rovnako ako jej predok je abstraktnou triedou. Na rozdiel od je bázovej triedy Permission obsahuje metódu implies(Permission per). Metóda umožňuje určiť čí dané oprávnenie zahrnuje v sebe aj iné oprávnenie. • Triedy dedené od BasicPermission • AWTPermission • NetPermission • PropertyPermission • ReflectPermission • RuntimePermission • SecurityPermission • SerializablePermission • SQLPermission • Bližší popis tried nájdete www.java.sun.com.

  48. Typy oprávnenia Oprávnenie FilePermission. Použitím tejto triedy sa určuje prístup k súborom alebo adresárom. Zoznam operácií by mal obsahovať jednu alebo viac nasledujúcich položiek : read, write, execute, delete. Väčšinou bude cieľ oprávnenia zastupovať názov súboru alebo adresára. Následne je uvedených nikoľko príkladov: Oprávnenie k čítaniu adresára temp a k čítaniu súboru readme.txt. grant { permission java.io.FilePermission “C:/temp”,”read”; permission java.io.FilePermission “C:/temp/readme.txt”,”read”; }

  49. Typy oprávnenia Oprávnenie FilePermission. Oprávnenie k čítaniu adresára a všetkých v ňom uložených súborov. grant { permission java.io.FilePermission “C:/temp/*”,”read”; } Oprávnenie k čítaniu všetkých súborov v tomto adresári a jeho podadresároch. grant { permission java.io.FilePermission “C:/temp/-”,”read”; } Oprávnenie k čítaniu a zápisu všetkých súborov a adresárov. grant { permission java.io.FilePermission “<<ALL FILES>>”,”write,read”; }

  50. Typy oprávnenia Oprávnenie SocketPermission. • Schopnosť apletov vytvárať soketové pripojenie je obmedzené. Nepodpísané aplety môžu vytvárať soketové pripojenie iba k serveru z ktorého boli stiahnuté. Samotné oprávnenie sa skladá z dvoch položiek a to : • Názov hostiteľa(názov DNS počítača v sieti alebo jeho IP). • Zoznam akcií, ktoré sú povolené pri operáciách s hostiteľom • Zoznam akcií môže obsahovať jednu alebo viacej nasledujúcich položiek : accept, connect, listen, resolve.

More Related