FAQ |
Kalender |
![]() |
#21 | ||||
|
|||||
Mycket flitig postare
|
Citat:
Citat:
Citat:
Citat:
Jag tror det är dags att förklara förslaget lite bättre, åtminstone det protokoll som jag tänkt mig: Serverns databas innehåller: -UserID = en vanlig unik counter -userkey = en lång slumpmässigt genererad "nyckel" Klienten skickar detta: GET domain?UserID=1234&requestKey=BBBBBBBBBBBBBBBBBBBB &timezone=4 "requestKey" skapas genom SHA1(userkey+datumstämpel) på klientsidan. Här får inte datumstämplarna vara för hårt satta, klientens klocka kan diffa med många minuter, kanske en stämpel som innehåller YYYYMMDDHH eller ännu mer noggrannt, men allt beror på klienterna och vilka krav man har. Serverns klocka synkas enkelt med NTP, så den går alltid rätt. Servern verifierar med denna pseudokod: $time=time(YYYYMMDDHH)(+-timezone); $userkey = hämtas ifrån databasen, UserID används för att söka if (requestKey == SHA1($userkey+$time) process_client_request(); else die("Wrong passhash or wrong timestamp!"); Summering: -Userkey skickas aldrig i klartext -Det går ej att modifiera keys som blivit sniffade -Sniffade nycklar fungerar bara under en kort period -Genom att lägga på SSL försvårar man avlyssning (men det är knappt värt det eftersom man ändå använder tidsbegränsade nycklar) -SQL injections är egentligen det enda farliga hotet utifrån, men det är mkt enkelt att skydda sig mot genom att filtrera indata -Säkerheten går som sagt att förbättra ytterligare genom att lägga på en IP-nr koll, men det beror på hur systemet skall användas om det fungerar eller ej |
||||
![]() |
![]() |
![]() |
#22 | ||
|
|||
Mycket flitig postare
|
Citat:
Här har man problemet att man kan få "false negative" om t.ex. klientens tid är 20090901055959 och serverns tid är 20090901060000. I mitt exempel löste jag det genom att även kolla tiden +/-1 om den första hashen inte matchar. |
||
![]() |
![]() |
![]() |
#23 | |||
|
||||
Mycket flitig postare
|
Citat:
Citat:
Senast redigerad av SimonP den 2009-09-01 klockan 08:13 |
|||
![]() |
![]() |
![]() |
#24 | ||
|
|||
Flitig postare
|
Nje, det där köper jag inte. Du har inget skydd mot MITM-attacker med ditt förslag. Och jag tycker inte att det är en bra idé att ha nyckeln fullt läslig i serverns databas, vid ev. intrång (även om det kanske bara blir en dumpning av databasen) så blir skadan lätt stor iom. fullt läsliga nycklar, som då även fungerar till api:t.
För att få ofarliga url:er i loggen är det ju bara att lägga auth i någon header istället för i url:en. Att börja knöla med tidsbegränsade hash skulle väl möjligtvis vara om man saknar ssl, men då tycker jag iofs. att man kanske borde börja fundera på en lösning med public/private key istället.. RSA? |
||
![]() |
![]() |
![]() |
#25 | |||
|
||||
Mycket flitig postare
|
Citat:
Citat:
Citat:
http://www.computerworld.com/s/artic...urity_protocol Det är väldigt många som gör misstaget att enbart förlita sig på SSL, bättre att först bygga säkerhet så långt det går utan SSL, och sen kan man lägga på SSL som ett ytterligare skydd. |
|||
![]() |
![]() |
![]() |
#26 | ||
|
|||
Flitig postare
|
Nej, MITM kommer inte sniffa nycklar som gäller ett bra tag, det vet jag, men nycklarna gäller _nu_. Om man som MITM vet exakt vad man vill uträtta så är det bara att hänga på låset.. När nyckeln kommer så kör man.
|
||
![]() |
![]() |
![]() |
#27 | |||
|
||||
Mycket flitig postare
|
Det är stor skillnad på att få tag på en nyckel/lösenord som fungerar permanent och få tag på en som bara fungerar en kort period. Varje gång som MITM kopplar in sig ökar risken för upptäckt.
|
|||
![]() |
![]() |
![]() |
#28 | ||
|
|||
Flitig postare
|
Klart risken ökar, men det är fortfarande inte säkert. Vem man vad man vill göra så spelar det ingen roll om man får tag på en nyckel som fungerar 30 sekunder till eller en som fungerar i all evighet.
Vill man skippa ssl så föreslår jag rsa eller något liknande |
||
![]() |
![]() |
![]() |
#29 | |||
|
||||
Mycket flitig postare
|
Det finns inget som är 100% säkert. Men vi har olika syn på säkerhet, själv föredrar jag när man gjort så mkt som man kan för att för att försvåra för en eventuell attack.
|
|||
![]() |
![]() |
![]() |
#30 | ||
|
|||
Flitig postare
|
Jag har iofs samma åsikt, därav att jag inte skulle nöja mig med att hasha ihop nyckel och tid..
|
||
![]() |
![]() |
Svara |
|
|