![]() |
Som Sveriges största Webmaster forum tycker jag det är på sin tid att vi tar upp diskussionen om förvaring av lösenord och säkra webbplatser. Inte minst med tanke på den senaste tiden hack mot Sveriges största webbplatser.
Det jag syftar på är inte enskilda kodsnuttar för enskilda individer utan snarare generella tips och idéer som kan göra det säkrare för användare och webmasters. Som säkert många räknat ut finns det en stor skara som tycker detta med hacking är enormt roligt och spännande. Inte minst bland vissa medlemmar på WN. Detta beteende uppmuntrar till fler attacker vilket är väldigt olyckligt. En ren spontan tanke är att folk som uppmuntras kommer testa sin knepp på mindre välbesökta webbplatser för att se om det fungerar. Därför tror jag egentligen inte någon webmaster går säker när det gäller hacking. Vi som webmasters har ett visst ansvar då det är vi som kan bestämma hur pass säkert ett lösenord blir. Är det på tiden att man reglerar lösenord för användare? Vad kan vi som webmasters göra för att minimera skada för enskilda användare och oss själva? |
Jag har en usb disk där det ligger en fil som är en partition som är krypterad med AES-Twofish-Serpent, och i den ligger det en KeePass fil, där jag sparar lösenord till allt, och den genererar alltid längre än 20 tecken...
Det kan väll anses lite överdrivet kanske... (Tar självklart backup på filen lite då och då) |
Lite snabba tips:
-Administratörer & Moderatorer behöver lära sig använda bättre lösenord -Spara aldrig lösenord i klartext, använd alltid envägsfunktioner som t.ex MD5/SHA1 + en slumpmässig salt, där salten är olika för varje användare. -Sessioner bör vara IP-kontrollerade, ifall en ny IP-adress plötsligt använder ett befintligt sessionsid skall användaren tvingas logga in igen, för Administratörs-konton är detta mkt viktigt. -Uppdatera alltid webmiljön med dom senaste säkerhetspatcharna Sen finns det naturligtvis en massa annat som man också bör tänka på, men ovanstående hade förhindrat flera av dom attacker som varit. När man skyddar datorer, hemsidor etc. tycker jag att man bör utgå ifrån värsta scenariot, dvs att attackeraren har stulit hela datorn/databasen, sen börja jobba därifrån. |
Bra ide! Om vi hjälps åt blir det den nyttigaste tråden på länge!
Mina 25 öre: Olika mysql-användare för drift respektive administration med olika rättigheter. Var extremt noga med att tvätta formulär-input. Bort med alla tecken som inte har där att göra. Se över alla include-satser så att inget inputtat material kan dyka upp där. |
* Gör det som ett krav vid registreringen att kräva sex tecken med minst två siffror.
* Vid förfrågan om glömt lösenord så ska man inte få sitt gamla lösenord skickat till mailadressen utan man ska först få svara på en fråga såsom var man föddes eller vad husdjuret heter. * Admins och supportpersonal måste skärpa sig och kräva en rejäl motprestation innan man ger ut persondetaljer, det ska inte räcka med ett samtal till supporten med "eeeh, jag pajjade datan på fyllan" för att få ut lösenordet till mailkonton/spelkonton/osv |
Har en lösenordspolicy mot mina användare och utförlig information
om att använda bra och UNIKA lösenord. Även en liten indikator som kontrollerar vid skapande av lösenord om det är ett "svagt" eller "starkt" lösenord. Detta i kombination med sha256 + salt och peppar får mig iallfall att sova något bättre om nätterna :P |
Det uppkommer alltid ett litet problem med saltet eller algoritm. Det gäller ju att förvara algoritm säker. Kan någon hacka hela min webbplats och databas, ja då lär ju även algoritm bli grädden på kakan.
Har ni någon bra lösning på det? |
Så som jag ser på det så är sha1+salt eller liknande aldrig en fullständig lösning, utan mer ett störande moment och tidsåtång för en hackare. Förhoppningsvis hinner man upptäcka intrånget och byta ut alla lösenord och funktionen för skapandet av lösenorden innan dem lyckats få ut något i klartext.
Kombinera det med lite hårdare krav på lösenorden som användare anger (minst 1 stor bokstav och en siffra/specialtecken) så har du en "relativt" säker miljö. |
Nja, säkerheten ska inte bygga på att algoritmen hålls hemlig.
Bara att hasha och salta tillräckligt, upprepa gärna proceduren många gånger, så blir det väldigt svårt att få fram lösenorden, även om man har tillgång till algoritmen. Världens, i mitt tycke, bästa säkerhetssystem, OpenPGP, hashar varje lösenord, upp tilll 65536 gånger. |
En sha1 hash av lösenordet+salt (unikt ännu bättre) räcker långt. Testar man sedan användarnas lösenord vid registreringen med exempelvis libcrack och ger tillbaka detta till användaren brukar de välja säkrare lösenord.
Ännu bättre är om man kollar användarens lösenord mot någon lista av ord som 'hejsan', '123456' osv. Vidare är det smart att kolla så att användarens lösenord inte är exempelvis användarens telefonnummer. Den värsta utgången av ett hack som jag ser det är att medlemsdatabasen slinker ut. En deface eller liknande går alltid att reparera. Medlemsdatabasen slinker ofta ut tack vare RFI/LFI/SQL Injection osv - håller man koll på vad man inkluderar och kör med magic_quotes_gpc är man ganska säker. Att hålla servern uppdaterad och inte köra en massa onödiga tjänster är ett annat bra knep men de flesta attacker med den värsta utgången sker på andra sätt. Så mer krut på bra kodning helt enkelt. Att hasha lösenord 65000 gånger tycker jag låter ganska onödigt. Om användaren väljer ett lösenord som inte finns i någon vanlig ordlista och om man använder en bra hash som sha1 på ett bra salt så tar det helt enkelt för lång tid för de som hänger på FB . MVH |
Citat:
Jag nämde bara hur ett av världens bästa krypteringssystem gör, vill man ha extremt hög säkerhet måste man göra på liknande sätt för att förhindra bruteforce attacker, KDF som metoden kallas. Men visst, för hyffsad säkerhet räcker det med en hashfunktion+salt, utan iterering. |
Den här tråden är svaret på varför webbsajter är sopigt gjorda - idioterna är överlägsna i antal mot dom som faktiskt har koll. Webbutvecklare är ofta bottenskrapet av programmerare och dom som faktiskt är kompetenta hänger inte på sajter/forum där 99% av alla är sopor sitter och gissar och spånar fram dåliga idéer hela dagarna. T.ex. var det någon som nämde att "magic_quotes_gpc" är nån form av lösning på SQL-injectionspromblematiken i den här tråden. Ingen kommer nog ens orka kommentera det uttalandet och istället kommer 10-tals kanske 100-tals osäkra skälar få bekräftat för sig att den dåliga idéen faktiskt är en bra idée. SQL-injections är ett näst intill ett låtsasproblem. Det är bara dom som inte använder sig av ett ramverk för att garantera att SQL-injections inte kan ske som har problem med det. Med andra ord, det finns inga *programmerare* som brottas med just SQL-injections. Och trots det så snackas det om det hej vilt...
Jag är ledsen att jag sprider tråkiga vibbar (som vanligt). |
Vill förtydliga poängen i mitt förra inlägg. Att starta en diskussion för att få fram bra konkreta tips kommer man inte långt med. Dåliga idéer och lösninger kommer fortsätta dyka upp. Mötesplatser på webben där folk sitter och gissar kommer nog också alltid att finnas. Så länge de ansvariga utgivarna inte axlar sitt ansvar ordentligt föder det mer okunskap.
Det måste vara svårt att börja arbeta som webbutvecklare nuförtiden. Det är så mainstream att programmerarna försvinner i mängden. Ta MySQL som exempel. Finns det någon mjukvara med fler gissa-experter än MySQL? Lätt hänt att blir lurad. Ett tips till folk som bryr sig är att lära sig av erkänt bra källor och inte lyssna på vad folk slänger ur sig på nätet. Det finns massor av bra litteratur! Diskussionsforum på webben skulle kunna möjliggöra användarna att framhäva bra inlägg och hissa varningsflagg för dåliga, något som jag tror skulle kunna hjälpa mycket på lång sikt. Det är bara ett par enkla idéer. Btw, menade "själar" och inte "skälar" i förra inlägget. |
Citat:
|
Citat:
En hobbyfix skapad för att undelätta för nybörjarmisstag (magic quotes) är bättre än ingen fix, kan knappast begära att alla som någonsin kommer skapa en websida ska vara en av världseliten inom programering utan några som helst brister. Det finns en anledning till varför det lades till som en funktion och varför intrång med injections har dalat... WN består både av erfarna gamla rävar och av unga hungriga nybörare, tips till alla uppskattas säkert. I en utopi där endast felfri kod skapas hade vi inte behövt brandväggar och antivirus, alla hade surfat nakna och människan hade fötts perfekt med ett minne som kan skapa 40-teckenlösenord till alla sidor. För att skydda ett system måste man tänka på varenda hål som existerar i världen, litet som stort, inkräktaren behöver bara hitta en enda lucka. Varenda åtgärd är ett steg i rätt riktning och det positiva i allt det här skitet som hänt är att plötsligt så sitter alla och säkrar sina system och kod. Hotet har blivit verkligt... |
För mig som driver en webbplats med användarinformation, vad är det jag ska tänka på för att databasen inte ska slippa ut?
Vi förutsätter att jag har hash+salt och att min databas har olika konton för administration/webbgränssnitt |
Citat:
Min poäng är att det är som en start onödigt att hasha lösenord till en webbapplikation 65k ggr, eller att lusläsa koden till alla webbapplikationer som man kör. Det finns enkla fixar som tar hand om de största problemen. Sedan att du kallar 90% av WNs medlemmar för idioter för att de inte kör med ett ramverk till PHP tycker jag är lite mysigt ;) |
Citat:
Enkla fixar tycker inte jag att det finns, säkerhetstänkandet bör finnas från start, annars kan man tvingas att gå igenom och lusläsa koden i efterhand. |
Citat:
Realiteten är att säkerhetstänkandet tydligen inte finns från start - då är det bättre med enkla fixar än ingenting alls. |
Alla tider är GMT +2. Klockan är nu 19:18. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson