Java Web Start - podepisování aplikací

Arthur

  • ***
  • 171
    • Zobrazit profil
    • E-mail
Java Web Start - podepisování aplikací
« kdy: 04. 03. 2016, 17:14:37 »
Ahojte,

potřeboval bych vysvětlit jistě jednoduchou věc:

1)
Java Web Start vyžaduje důvěryhodně podepsané aplikace nebo explicitní uvedení na Exception Site List. Ale přitom to nedělá nic jiného, než že to tu aplikaci stáhne a spustí, což můžu udělat ručně taky a o žádný bezpečnostní prvek nezavadím

2)
v případě, že aplikace má mít all-privileges tak musí být podepsaná vždy. Přitom stačí vlastní self-signed certifikát, který navíc ani nemusí být nainstalován mezi důvěryhodné certifkáty. Na druhou stranu, i když si ten certifkát nainstaluju, tak to stejně musím mít na Exception listu - nefunguje to s High security nastavením.

Kde je ten bezpečnostní přínos oproti nepodepsané aplikaci?

Díky
« Poslední změna: 07. 03. 2016, 11:58:41 od Petr Krčmář »


perceptron

Re:javaws - podepisování aplikací
« Odpověď #1 kdy: 04. 03. 2016, 17:47:37 »
unsigned aplikacie maju obmedzene pravomoci

Re:javaws - podepisování aplikací
« Odpověď #2 kdy: 04. 03. 2016, 18:28:27 »
Ono se především předpokládá, že ta aplikace bude podepsaná certifikátem od důvěryhodné autority, a pak nemusíte nic přidávat na whitelisty, jenom odsouhlasíte oprávnění pro aplikaci.

Jinak podepisování aplikací má pořád stejný smysl, ať je to Java WebStart, podpis distribučních balíčků nebo podpis EXE ve Windows. Uživatel důvěřuje autorovi nějaké aplikace. Takže je potřeba zajistit, abyste spouštěl právě to, co vytvořil autor, a ne něco, co podrvhl nějaký útočník – a k tomu právě slouží ten podpis.

Arthur

  • ***
  • 171
    • Zobrazit profil
    • E-mail
Re:javaws - podepisování aplikací
« Odpověď #3 kdy: 05. 03. 2016, 09:37:41 »
Ono se především předpokládá, že ta aplikace bude podepsaná certifikátem od důvěryhodné autority, a pak nemusíte nic přidávat na whitelisty, jenom odsouhlasíte oprávnění pro aplikaci.

Dobře, a jak se tedy pozná "důvěryhodná autorita" ? Měl jsem za to, že k tomu slouží seznam důvěryhodných certifikátů v systému ... ? A proč můj vlastní certifikát, který zařadím do Trusted Certificates není dostatečně důvěryhodný a musím to mít stále na whitelistu ? 

Jinak podepisování aplikací má pořád stejný smysl, ať je to Java WebStart, podpis distribučních balíčků nebo podpis EXE ve Windows. Uživatel důvěřuje autorovi nějaké aplikace. Takže je potřeba zajistit, abyste spouštěl právě to, co vytvořil autor, a ne něco, co podrvhl nějaký útočník – a k tomu právě slouží ten podpis.

Tohle je mi jasné. Ale při použití neověřeného cerfitikátu to vyhodí dialog o bezpečnostním riziku (a aplikaci spustí), a totéž by to mohlo vyhodit i při nepodepsané aplikaci (kterou spustit odmítne). Jaký je rozdíl mezi
1) Nepodepsaná aplikace -> pozor bezpečnostní riziko
2) Certifikát nelze ověřit  -> pozor bezpečnostní riziko
?

Re:javaws - podepisování aplikací
« Odpověď #4 kdy: 05. 03. 2016, 10:05:38 »
Důvěryhodná autorita pro Java WebStart je taková autorita, kterou máte uvedenu v úložišti důvěryhodných autorit v JRE, kterým tu aplikaci spouštíte. V Oracle Java jsou to autority v souboru lib/security/cacerts v adresáři JRE.

Proč váš vlastní certifikát není dostatečně důvěryhodný netuším, ale v popisu obou dostupných nastavení bezpečnosti se píše jen o certifikátech důvěryhodných autorit.

Rozdíl mezi aplikací podepsanou neověřeným certifikátem a nepodepsanou aplikací je v tom, že neověřený certifikát můžete ověřit, a pak spouštíte to, co autor podepsal. U nepodepsané aplikace nemáte žádnou možnost, jak ji ověřit, tam byste vždy spouštěl nějaký náhodný kód, který vám poslal bůhvíkdo. I kdybyste řekl „téhle aplikaci důvěřuji“, není žádná možnost, jak rozlišit, co je „tahle aplikace“ a co je něco jiného. Bylo by to ekvivalentní, jako kdybyste odsouhlasil „od této chvíle spouštět úplně cokoli“.