WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Server, programmeringsspråk m.m. (https://www.wn.se/forum/showthread.php?t=24603)

tartareandesire 2007-10-25 10:16

Vad skulle ni rekommendera om säkerhet var en viktigare fråga än normalt i form av programmeringsspråk och serverval? Är PHP / mySQL på en Apacheserver och Windowsburk tillräckligt?

Vad finns för enklare möjligheter att kryptera känslig information? Md5 och liknande fungerar ju bra för lösenord och annat som inte behöver hanteras åt bägge håll men om det är t.ex. telefonnummer och annat som även behöver kunna läsas ut från den krypterade versionen?

Onkelborg 2007-10-25 11:15

Vad som helst fungerar nog bra :) (Jag själv skulle iofs satsa på asp.net på windows, där vet jag att det finns bra bibliotek för sånt här, har ingen pejl på php :P )

Kristoffer G 2007-10-25 11:27

Säkerhetsmässigt får man nog säga att det är lättare att göra säkerhetshål i PHP. Dock så föredrar jag PHP... men det gäller att man vet vad man syslar med.

jonny 2007-10-25 11:52

Ett språk där du vet vad du gör och ser till att göra det som du vet att det ska göras blir säkrare än att sätta sig som nybörjare med ett annat inlägg.

Och under windows kör man inte Apache, man kör IIS. Annars kör man linux. IIS är en mycket trevlig webserver.

tartareandesire 2007-10-25 14:45

Tackar för svaren. Som jag har förstått det så patchas dock inte vanliga ASP längre och snart inte heller PHP4 så det skulle väl i så fall innebära att ASP.NET och PHP5 är de lämpligaste alternativen?

htiawe 2007-10-25 15:04

På vilket sätt är PHP mera öppet för säkerhetshål?
Det är väl isåfall i applikationerna man skriver men det kan väl inte bero på PHP i sig utan hur man lär sig skriva koden?

martine 2007-10-25 15:43

Citat:

Originally posted by tartareandesire@Oct 25 2007, 14:45
Tackar för svaren. Som jag har förstått det så patchas dock inte vanliga ASP längre och snart inte heller PHP4 så det skulle väl i så fall innebära att ASP.NET och PHP5 är de lämpligaste alternativen?
Utan tvekan ska du köra PHP5 och MySQL 5. Tidigare versioner är inte att rekommendera. (Och på linux/unix server om du kör den varianten).

Perl är faktiskt ett underskattat språk som kan vara användbart dessutom.

SimonP 2007-10-25 17:47

Citat:

Originally posted by jonny@Oct 25 2007, 11:52
Och under windows kör man inte Apache, man kör IIS. Annars kör man linux. IIS är en mycket trevlig webserver.
Varför tycker du Apache+Windows är sämre än IIS+Windows??

Robert 2007-10-25 21:34

Citat:

Originally posted by martine@Oct 25 2007, 15:43

Utan tvekan ska du köra PHP5 och MySQL 5.

Jaha. Det finns nog många professionella utvecklare som utan tvekan har valt andra lösningar.

Onkelborg 2007-10-25 21:58

Citat:

Ursprungligen postat av SimonP
Citat:

Ursprungligen postat av jonny
Och under windows kör man inte Apache, man kör IIS. Annars kör man linux. IIS är en mycket trevlig webserver.

Varför tycker du Apache+Windows är sämre än IIS+Windows??

IIS är skrivet för Windows, och är optimerat för Windows. Apache är mer eller mindre skrivet för *nix, en arkitektur som är olik Windows, speciellt när saker ska optimeras och kopplas ihop bra.. Bara en sådan sak som att IIS nuförtiden har delar av webbservern nedstoppad i kärnan ger en bra prestandavinst, eller att IIS kör det här med rättigheter fullt ut, eftersom att det är så starkt kopplat. Har fått en ganska stark känsla av att apache saknar rätt mycket på det här området, i alla fall på Windows. (Skulle nämligen sätta upp en burk med gentoo där jag skulle upplåta utrymme åt en kompis, hittade inget bra sätt att exekvera saker under hans användare på i apache :/ )

Men, men, för Windows är IIS bäst, för *nix är det en annan sak ;)

martine 2007-10-25 22:04

Citat:

Originally posted by Robert@Oct 25 2007, 21:34
Jaha. Det finns nog många professionella utvecklare som utan tvekan har valt andra lösningar.
Jag insåg i efterhand att jag var lite otydlig där. Frågan handlade ju om php4 eller php5 å ena sidan och asp eller .net å andra sidan. Vad jag menade var förstås utan tvekan php5 istället för php4 (och detsamma för mysql). Inget annat.

Vad det gäller val av .net eller php så är det nog snarast en smakfråga.

Fördelar med php skulle dock kunna vara:
1. rakt igenom gratis
2. mycket enkelt att börja med
3. små saker kan göras mycket enkelt - enradsutskrifter av cookies etc utan funktioner eller objekt
(Nackdelar är väl eventuellt att det är rätt lätt att själv förorsaka säkerhetsbrister)

Fördelar med .net kan vara
1. Man är invand på en windowsmiljö och vill undvika linux/unix av någon anledning
2. Striktare struktur på språket
(Nackdelen är väl kostnaden)

Som sagt fritt val efter behov. Jag gillar Perl.

stakes 2007-10-25 22:08

Citat:

Originally posted by tartareandesire@Oct 25 2007, 10:16
Vad finns för enklare möjligheter att kryptera känslig information? Md5 och liknande fungerar ju bra för lösenord och annat som inte behöver hanteras åt bägge håll men om det är t.ex. telefonnummer och annat som även behöver kunna läsas ut från den krypterade versionen?
Till att börja med så ska du inte använda endast md5 om säkerheten är viktigare än "normalt". SHA1 + lite salt och peppar är MINST att rekomendera.

LAMP (linux, apache, mysql, php) plattformen går utmärkt att bygga säkra lösningar på dock kräver det en del insyn i vad man håller på med. För övrigt så är PHP enkelt att komma igång med och det finns en bred användarcommunity vilket gör att det är lätt att få hjälp, feedback, ris och ros m.m på det man gör.

Sen vilket som är "bäst" finns det ingen svar på, välj efter ditt eget behag.

tartareandesire 2007-10-25 23:01

Citat:

Ursprungligen postat av stakes
Citat:

Ursprungligen postat av tartareandesire
Vad finns för enklare möjligheter att kryptera känslig information? Md5 och liknande fungerar ju bra för lösenord och annat som inte behöver hanteras åt bägge håll men om det är t.ex. telefonnummer och annat som även behöver kunna läsas ut från den krypterade versionen?

Till att börja med så ska du inte använda endast md5 om säkerheten är viktigare än normalt. SHA1 + lite salt och peppar är MINST att rekomendera.
LAMP (linux, apache, mysql, php) plattformen går utmärkt att bygga säkra lösningar på dock kräver det en del insyn i vad man håller på med. För övrigt så är PHP enkelt att komma igång med och det finns en bred användarcommunity vilket gör att det är lätt att få hjälp, feedback, ris och ros m.m på det man gör.
Sen vilket som är bäst finns det ingen svar på, välj efter ditt eget behag.

Sha1 är väl inte så värst mycket bättre än md5? Brister har väl påpekats för bägge hash-metoderna och ska det vara "extra" säkert så räcker inte detta som du nämner.

SimonP 2007-10-25 23:04

md5 funkar bra som säker "password-hash", så länge man använder en saltsträng tillsammans med lösenordet.

stakes 2007-10-25 23:15

Citat:

Ursprungligen postat av tartareandesire
Citat:

Originally posted by -stakes@Oct 25 2007, 22:08
Citat:

Ursprungligen postat av tartareandesire
Vad finns för enklare möjligheter att kryptera känslig information? Md5 och liknande fungerar ju bra för lösenord och annat som inte behöver hanteras åt bägge håll men om det är t.ex. telefonnummer och annat som även behöver kunna läsas ut från den krypterade versionen?

Till att börja med så ska du inte använda endast md5 om säkerheten är viktigare än normalt. SHA1 + lite salt och peppar är MINST att rekomendera.
LAMP (linux, apache, mysql, php) plattformen går utmärkt att bygga säkra lösningar på dock kräver det en del insyn i vad man håller på med. För övrigt så är PHP enkelt att komma igång med och det finns en bred användarcommunity vilket gör att det är lätt att få hjälp, feedback, ris och ros m.m på det man gör.
Sen vilket som är bäst finns det ingen svar på, välj efter ditt eget behag.



Sha1 är väl inte så värst mycket bättre än md5? Brister har väl påpekats för bägge hash-metoderna och ska det vara "extra" säkert så räcker inte detta som du nämner.

Den är "bättre" än md5 i den mening att md5 är 128bit medans SHA-1 är 160bit vilket gör den något "svårare" att köra ett kollisionstest (s.k bruteforce) på. Vill man vara riktigt petig så finns det SHA-256 php bibliotek tillgänglig gratis under GPL, och om du inte tycker det är säkert nog, så well.. då kan du börja med att koppla ut datorn ifrån internet.

Edit: Men som överstående skribent skriver; ett md5 med lite salt och peppar räcker långt för de flesta.

Edit 2: För de som är intresserade av SHA-256 i php -> http://code.tatzu.net/sha256/

Robert 2007-10-25 23:33

.Net kommer med MD5, SHA1, SHA256, SHA384 och SHA512 färdigt att använda. Även kryptoklasser såsom DES, RC2, Rijndael (som jag själv brukar använda mig av), TripleDES, samt asymetriska algorithmer såsom DSA och RSA

stakes 2007-10-25 23:48

Det är väl det som är fördelen med .NET att det har mycket "Out of the box" lösningar men det skall väl också påpekas at .net är ett ramverk och inte ett språk i sig. Det finns många PHP ramverk som också har t.ex trevliga sha256 osv. färdiga att använda som Zend Framework.

Onkelborg 2007-10-25 23:50

Citat:

Originally posted by stakes@Oct 25 2007, 23:48
Det är väl det som är fördelen med .NET att det har mycket Out of the box lösningar men det skall väl också påpekas at .net är ett ramverk och inte ett språk i sig. Det finns många PHP ramverk som också har t.ex trevliga sha256 osv. färdiga att använda som Zend Framework.

Det är iofs bara en utav fördelarna med .net :P En annan fördel är att man inte behöver kleta i någon config-fil som man inte får kleta i när man ska ha igång något grafiklib :)

Jake.Nu 2007-10-26 00:40

Mcrypt finns till PHP och där finns bl.a.
Kod:

cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Hashfunktioner som finns i PHP 5.2.4 är
Kod:

md2 md4 md5 sha1 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru gost adler32 crc32 crc32b haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

fors 2007-10-26 18:03

Citat:

Originally posted by stakes@Oct 25 2007, 22:15

Den är "bättre" än md5 i den mening att md5 är 128bit medans SHA-1 är 160bit vilket gör den något "svårare" att köra ett kollisionstest (s.k bruteforce) på. Vill man vara riktigt petig så finns det SHA-256 php bibliotek tillgänglig gratis under GPL, och om du inte tycker det är säkert nog, så well.. då kan du börja med att koppla ut datorn ifrån internet.

Edit: Men som överstående skribent skriver; ett md5 med lite salt och peppar räcker långt för de flesta.

Edit 2: För de som är intresserade av SHA-256 i php ->http://code.tatzu.net/sha256/

Inte för att vara sån. Men bruteforce är väl inte samma sak som kollisionsattack (eller vad det egentligen heter)? Såvitt jag har förstått det så utnyttjar man i det senare fallet att två olika värden genererar samma hashkod. Detta då det inte finns oändligt antal kombinationer, vilket således bidrar till att flera värden har samma hashvärde. Det får också som konsekvens att det framtagna värdet inte alltid behöver vara samma som lösenordet, utan bara att båda värderna har samma hashkod.

På bruteforce däremot så går man igenom alla möjliga olika kombinationer tills man hittar rätt. Det får som följd att det inte tar mer försök för att få fram värdet genom bruteforce om man gör det i stigande ordning, oavsett hur många bitar hashsträngen är på. Även om tiden kanske varierar.

Rätta mig gärna om jag har fel!

htiawe 2007-10-26 20:59

fors: Men hur får man tag på hashen genom en kollisionsattack om man inte går igenom varenda tänkbar möjlighet? Jag har ingen aning för jag visste inte att det var någon skillnad men det känns ju som att det är samma sak. :)

Robert 2007-10-26 21:13

fors / htiawe: om man ska använda tex websidan som interface in mot databasen så är det så att oavsett om man kör en rainbowlist eller en dictionaryattack så är båda metoderna lika dåliga/bra. Om däremot en förövare kommer över de värden som är lagrade i databasen så är det nog lättare att slå upp en MD5 hash mot en rainbowlist än att försöka knäcka ett krypterat password.

SimonP 2007-10-26 23:46

Citat:

Originally posted by Robert@Oct 26 2007, 21:13
Om däremot en förövare kommer över de värden som är lagrade i databasen så är det nog lättare att slå upp en MD5 hash mot en rainbowlist än att försöka knäcka ett krypterat password.
Dock inte om man använder salt, då blir rainbowlistorna ofarliga.


Alla tider är GMT +2. Klockan är nu 13:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson