Hei,
Luin netistä, että Javassa olisi tietoturva-aukkoja. Toisaalta luin, että Java olisi Turing-täydellinen kieli. Käsittääkseni Turing-täydellisyys tarkoittaa sitä, että kaiken, minkä voi tehdä tietokoneella, voi tehdä Turing-täydellisellä koneella. Eli näin ollen käsitykseni mukaan Javalla voi tehdä yhtä turvallista koodia kuin C:llä. Toisaalta C:stä ei ole raportoitu tietoturva-aukkoja. En nyt ihan hahmota, että miten kieli voi olla yhtäaikaa tietoturvallinen ja kuitenkin Turing-täydellinen. Selittäiskö joku?
Luin netistä, että Javassa olisi tietoturva-aukkoja. Toisaalta luin, että Java olisi Turing-täydellinen kieli. Käsittääkseni Turing-täydellisyys tarkoittaa sitä, että kaiken, minkä voi tehdä tietokoneella, voi tehdä Turing-täydellisellä koneella. Eli näin ollen käsitykseni mukaan Javalla voi tehdä yhtä turvallista koodia kuin C:llä. Toisaalta C:stä ei ole raportoitu tietoturva-aukkoja. En nyt ihan hahmota, että miten kieli voi olla yhtäaikaa tietoturvallinen ja kuitenkin Turing-täydellinen. Selittäiskö joku?
Vastaukset 4
Vanhimmat
"En nyt ihan hahmota, että miten kieli voi olla yhtäaikaa tietoturvallinen ja kuitenkin Turing-täydellinen."
Sori. Siis tietoturvaton mutta silti Turing-täydellinen.
Kyllä c:llä saa koneen paljon pahempaan solmuun kun javalla. Siinä mielessä java on turvallisempi.
C:n hyvänä (ja joskus huonona) piirteenä on se, että sillä pystyy tekemään ns.laiteläheistä koodia.
Jos ohjelmoijaan ei voi luottaa niin eihän mikään silloin voi olla turvallista. Tietoturvan puutteet johtunevat bugeista. Periaatteessa kaikki kielet ovat bugittomia, mutta eivät käytännössä.
Ei näillä kahdella asialla ole oikeastaan tekemistä toistensa kanssa. Tietoturva-aukot johtuvat siitä, että käyttöjärjestelmän tai ajoympäristön toteutuksessa on virheitä (joko suunnittelussa tai toteutuksessa), jotka mahdollistavat haittaohjelmien toiminnan.