Fråga:
Är "lösenordsslag" en bra idé?
gronostaj
2015-02-19 13:39:58 UTC
view on stackexchange narkive permalink

Med portknackning måste du "knacka" på specifika portar i definierad ordning för att exponera en port där tjänsten körs.

Vad sägs om lösenordsslåning ? Du har till exempel tre lösenord: A , B och C . Ingen av dem stämmer av sig själv, men angav en efter en i den här ordningen de ger dig åtkomst.

Några scenarier för att göra denna idé tydligare:

Scenario 1.

  • Du: Lösenord A .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord B .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord C .
    • Server: Lösenord accepteras .

Scenario 2. stark >

  • Du: Lösenord A .
    • Server: Ogiltigt lösenord.
  • Du : Lösenord C .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord B .
    • Server: Ogiltigt lösenord.

Scenario 3.

  • Du : Lösenord A .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord B .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord B .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord C .
    • Server: Ogiltigt lösenord.

Scenario 4.

  • Du: Lösenord A .
    • Server: Ogiltig lösenord.
  • Du: Lösenord A .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord B .
    • Server: Ogiltigt lösenord.
  • Du: Lösenord C .
    • Server: Lösenord accepteras .

Jag kan inte tänka mig några nackdelar av denna metod över vanligt inloggning med enstaka lösenord. Dessutom gör det ordlistaattacker exponentiellt svårare för varje tillagt lösenord.

Jag inser att det är säkerhet genom dunkel och inte avskaffar behovet av starka lösenord. Lösenordsekvensen i sig är lika stark som en sammankoppling av lösenord som används. Extra säkerhet i den här metoden kommer från oväntat komplexa procedurer.

Är det en bra idé? Är det en bättre idé än klassiskt lösenord?

Ur användarnas perspektiv är det väldigt frustrerande. om du säger att du felstavar ett av lösenorden. Det blir svårt att veta vilka som gick fel A, B eller C.
Vad döljer den här metoden som traditionella lösenord inte gör, och varför tror du att den är säkrare? Det verkar för mig att det inte är säkrare än om du bara hade ett enda lösenord som var sammankopplingen av 'A', 'B' och 'C'. Samtidigt förstår jag inte varför det skulle vara mindre säkert.
@Justin såvida inte angriparen vet att jag använder denna typ av ytterligare skydd han kommer att försöka varje lösenord bara en gång och kommer sannolikt aldrig att hitta rätt lösenordssekvens.
kommentarer är inte för utökad kommunikation.
@RoryAlsop Jag är en vanlig användare på StackOverflow, men ny på den här webbplatsen. Jag är förvirrad över ditt svar och undrar om det är tillämpligt på alla SE-webbplatser eller bara den här. Enligt vad jag kan se följde din kommentar exakt tre kommentarer som (för mig) verkar vara ämnen och bidrar till diskussionen. Det verkar annorlunda än vad som förväntas på SO. Har jag missat något? (Obs: inte alls en sarkastisk fråga.)
@mbm29414 Jag är också förvirrad och en normal användare av SA. Det bästa jag kan räkna med är att vissa kommentarer har tagits bort, och Rory Alsop lämnade en kommentar om varför. Om det här är en bra idé med ett klassiskt lösenord eller inte, beror det förmodligen på ditt "knackande" system. Är det ackumulerande tills det passerar, eller återställs det varje gång? I grund och botten släpper det inte in förrän du har A, B och C i den ordningen, och A, B, B, C borde inte fungera. Jag är inte säker på hur du skulle implementera det, men om du ska göra det verkar det som den säkraste vägen.
@gronostaj bör man inte lita på [säkerhet genom dunkelhet] (https://en.wikipedia.org/wiki/Security_through_obscurity)
Om ditt mål är att förhindra ordlistaattacker vad är fel med en lösenordspolicy - http://security.stackexchange.com/questions/3248/recommended-policy-on-password-complexity Om du redan * har * en korrekt lösenordspolicy som är motståndskraftig mot ordlistaattacker (det är hela poängen med policyn) varför behovet av att lägga till detta extra obskyra "lösenordsslag" -förfarande.
Som @tar överskred, bör du inte lita på säkerhet genom dunkelhet. Och förresten, det skulle inte vara mycket dolt; hur kommer din användare att veta att fortsätta infoga lösenord? För att du berättar för dem. Nu verkar det inte som en mycket svår information att få! :)
Ett vanligt lösenord är bara "karaktär knackar". Du måste placera några tecken i rätt ordning ...
mbm - många, många kommentarer raderades.
Om du letar efter förbättrad säkerhet är det bättre att använda en tvåstegs autentiseringsmetod, t.ex. skicka en auktoriseringskod till en användares mobila enhet eller e-postadress.
Möjlig duplikat av [Port Knocking är det en bra idé?] (Https://security.stackexchange.com/questions/1194/port-knocking-is-it-a-good-idea)
Sjutton svar:
Mark
2015-02-20 06:41:23 UTC
view on stackexchange narkive permalink

Systemet som beskrivs i frågan är faktiskt svagare än att bara kräva ett enda lösenord med längden A + B + C, eftersom det tillåter en klass av attacker som inte kan användas mot enstaka lösenord:

Säg att din kombination av tre lösenord är EFG . En angripare kan skicka lösenorden ABCDEFG , vilket gör fem attacker ( ABC , BCD , CDE , DEF och EFG ) till priset av två. Den allmänna termen för detta är en de Bruijn-sekvens, och den låter dig attackera alla statliga system (som ett digitalt lås) med mycket färre försök än det finns möjliga kombinationer.

+1, inget av de andra svaren betonar att detta schema är svagare än ett normalt lösenord med samma (totala) längd.
OP: s system har per definition inget säkerhetshål eftersom de inte nämnde implementering, även om jag slår vad om att de flesta skulle förbise detta. +1 för att notera detta. Men om du implementerar det för att återställa variablerna för de tre senaste lösenorden var tredje lösenord (så lösenord1, lösenord2, lösenord3, utvärdera, rensa, upprepa), kan det vara säkrare (ur ett dunkelperspektiv).
Inlägget nämner att `A A B C` fungerar, vilket betyder att det har ett rullande fönster med" tre senaste lösenord "snarare än att återställa efter en grupp på tre. Detta är tillräckligt för att göra det sårbart för sekvensbaserad gissning.
Jag håller inte med om att systemet är svagare. De Bruijn-sekvensen ger 3x snabbhet, men att lägga till två delar i lösenordet ger oss `(| A + B + C | över 2)` avmattning. (Vilket är 28 för 6 lösenord)
tylerl
2015-02-19 14:31:24 UTC
view on stackexchange narkive permalink

Ur ett rått säkerhetsperspektiv är ditt lösenord helt enkelt "A B C", och lösenordets relativa styrka beräknas därefter.

Ur ett användarperspektiv är det förmodligen för svårt att vara användbart. Servern ger ingen indikation på det aktuella läget (letar det efter det andra lösenordet än?) Och därför kan användaren inte säga vilket lösenord som ska tillhandahållas.

Ur ett försvarsperspektiv finns det lite värde här. Lösenordsattacker blir lite mer komplicerade att genomföra och befintligt attackverktyg måste skrivas om för att tillgodose detta konstiga system. Det kan vara tillräckligt för att övertyga en angripare att gå vidare, men om du är ett viktigt mål så hjälper det inte alls.

Jag instämmer. Säkerhet måste balanseras med användbarhet. Din idé kan frustrera legitima användare (de personer du vill skydda), eftersom det gör det svårare för dem att komma åt tjänsterna bakom lösenordet.
Observera också att om servern GÖR en mellanstatus "rätt hittills", så är lösenorden faktiskt svagare än bara "A B C". Är det inte detta som hände med WPS, eller var det något annat protokoll?
'Ur ett rått säkerhetsperspektiv är ditt lösenord helt enkelt "A B C" "-> Jag håller inte starkt med. Eftersom du inte har någon aning om vilken du misslyckades, och om du gjorde det, kan du behöva 10yottabytes för att lagra det första lösenordet. Och du når inte punkten att hitta den. Om du begränsar det till 30 tecken kan lösenordet vara 31 tecken långt. Och du slösade bort din tid. Eller en kan vara 10, nästa 50 och nästa 1. Men du vet inte.
@kutschkem som är exakt korrekt.
@IsmaelMiguel Vilket är exakt samma situation som att försöka gissa ett enda lösenord "ABC" och inte veta vilken enskild karaktär i det som var fel, eller om alla var fel, eller .. Det är frestande att tro att detta hjälper, men det gör det inte 't.
@IsmaelMiguel Nej, angriparen försöker bara ["A", "A", "A"], ["A", "A", "B"] etc. tills han kommer till ["A", "B "," C "]. Han behöver inte prova alla kombinationer i det första fältet innan han går vidare till den andra. Om jag sa till mig att mitt lösenord hade tre mellanslag skulle du inte bli förlamad och försöka lista ut vad som kom före det första utrymmet. Du skulle bara försöka med de kortaste möjligheterna först.
Det är sant, men du vet inte det. Lösenordet "A" kan mycket väl vara "häftklammer majsstekt potatis", vilket skulle ta dig ** MYCKET ** lång tid att gissa.
@IsmaelMiguel med andra ord, långa lösenord tar längre tid att gissa.
Egentligen motsvarar det ungefär något som A + "[ENTER] + B +" [ENTER] "+ C, eftersom det helt enkelt inte går att skriva ABC i den första prompten. Antalet möjliga gissningar skulle vara detsamma som ABC * (LengthOfABC-1) * (LengthOfABC-2) om schemat förbjuder lösenord utan längd i något steg.
Ändå har du några tecken före `A` (65, om jag inte misstas). Något av dessa kan vara en del av lösenordet.
@IsmaelMiguel Du kan fortsätta att vara oense om allt du gillar, men eftersom medlemmar i samhället har försökt att förklara för dig genom * flera * olika tillvägagångssätt, är styrkan i det föreslagna systemet praktiskt taget oskiljbar från att sammanfoga de enskilda lösenorden.
@StephenTouset Jag accepterar det. För mig, enligt min mening, sett från en annan punkt, är detta starkare än att sammanfoga lösenorden och försöka hitta bara ett. I själva verket skulle jag säga att det är nästan omöjligt att hitta de tre lösenorden, beroende på deras säkerhet individuellt.
Men det motsvarar exakt matematiskt att ha dessa tre lösenord sammankopplade. Om ditt "första" lösenord är "123", ditt andra lösenord är "456" och ditt "tredje" lösenord är "789", måste en angripare spendera samma ansträngning som om de försökte gissa * singeln * lösenord "123456789". Med argumentet att de kanske inte vet att detta är ditt schema, så gäller det för lösenordet i sig. angriparen vet inte att det är ett lösenord med nio tecken (eller motsvarande tre lösenord med tre tecken). De måste prova alla kombinationer tills de hittar rätt.
För att vara tydligare, om du funderar på att skriva detta lösenord är ditt effektiva lösenord * bokstavligen * `123 456 789`. Du kan argumentera för att en angripare inte vet att slå enter på de exakta platserna, men det argumentet kan göras för * alla * karaktärer som kan skrivas där. Detta skulle inte vara annorlunda än om ditt lösenord istället var `123 | 456 | 789`. Fråga dig själv, när du överväger den bokstavliga handlingen att sitta vid ett tangentbord och skriva in detta lösenord, vad som på något sätt ger Enter-tangenten ytterligare säkerhet över `|` -tangenten.
@StephenTouset Jag håller delvis med dig, i teorin `123 456 789` motsvarar` 123 | 456 | 789`, men i praktiken kräver det första schemat 3 förfrågningar till servern, medan den andra bara en, även om allt är supersnabbt tar det första alternativet mer tid, vilket ger lite extra säkerhet (naturligtvis skulle jag inte heller använda det här)
Något som "bcrypt" är ett mycket bättre sätt att sakta ner en angripare, eftersom det också hjälper även om angriparen har dina hashade lösenord. Oavsett, kan latensen för två extra förfrågningar till servern trivialt simuleras genom att kalla "sömn".
@StephenTouset Jag uppgav också att detta inte var ett bra tillvägagångssätt, säger bara att du inte kan jämföra ett förfrågan / valideringssteg med en karaktär i lösenordet, var också "sömnen"?
Justin
2015-02-19 14:55:49 UTC
view on stackexchange narkive permalink

Jag kommer att ta upp några punkter här.

För det första, antar att angriparen inte vet att lösenordsschemat är ett dåligt antagande, och du ' korrekta att det är säkerhet genom dunkelhet. Om varje användare kan lära sig detta inloggningsschema kan angriparen också. På grund av detta är banan inte bättre än om det bara fanns ett enda lösenord ABC.

Du kanske tänker, "Om du inte har fler lösenord ökar antalet brute force gissningar exponentiellt? " Svaret är nej. Tänk på ett alfabet med längden z och tre lösenord längden a , b och c . Antalet möjliga lösenord för var och en är za , zb och z c . Om du ska prova alla möjliga värden för varje lösenord i alla möjliga ordningar, behöver du z en * z b * zc gissningar, vilket är lika med z (a + b + c) . Det händer precis att längden på det enskilda lösenordet ABC är a + b + c , så antalet gissningar krävs också z (a + b + c) .

Det finns också designproblemet att användarna kommer att förvirras och / eller frustreras av detta system, särskilt om de har problem med att komma ihåg sina lösenord. Människor har tillräckligt med problem med att komma ihåg ett lösenord för varje webbplats de besöker (och det är därför många återanvänder lösenord). Tre lösenord skulle vara ännu svårare att komma ihåg, och jag skulle inte bli förvånad om några av dina användare använde samma sträng för alla tre.

Kräver tre formulärinlämningar för att logga in kommer säkert att sakta ner en brute force-attack, men du kan lika enkelt uppnå det genom att lägga till en fördröjning i verifiering av lösenord på serversidan.

Håller med dina andra punkter förutom att det är mer troligt att angriparen missar sekvensen med brute-force om han inte känner till schemat.
En normal ordbokattack kommer sannolikt aldrig in i A B C. Anledningen är att om A eller B eller C prövas en gång utan framgång, kommer de aldrig att prövas igen!
Du är okej att jag hade fel när det gäller scenariot där angriparen inte känner till systemet. Jag har tagit bort den meningen.
Jag håller med din uppdatering, men jag är ganska säker på att på grund av komplexiteten kommer du att behöva gå från '!' till '~' (ASCII-tecken) åtminstone hitta en möjlig kombination. Misslyckas ett lösenord återgår till lösenordet "A". Och du kommer att misslyckas för ofta och du vet inte exakt vilken som misslyckades. För varje röding måste du gå igenom '!' till '~' en miljard gånger. Fördubblats för varje lösenord. Du har 3 ingångspunkter, var och en kan vara annorlunda och kommer att återgå om du misslyckas med en. Antingen känner du till lösenorden eller låses för alltid. Fram till fyra kvadrillioner år har gått (eller mycket mer).
Jag känner inte för att göra matte för att räkna ut _ exakt_ hur många försök eller hur mycket tid det skulle ta, det kan jag inte för att jag inte har faktiskt siffror att spela med, och det är ändå inte relevant. Jag lämnar denna övning i hopp om att övertyga dig om att det inte är så svårt som du tror: av alla möjliga värden för _ABC_, hur många av dem har rätt värde för _A_ som prefix?
Du behöver inte övertyga mig. Jag håller hela tiden på att försöka hitta en genväg, men allt jag kunde hitta var en stor huvudvärk. Jag tror att du träffar rätt träd. Jag håller inte med dig eftersom det inte finns något att hålla med, förutom svårigheten att gissa lösenorden.
Du kan tänka dig att ha lösenordssträngarna från ett alfabet med längden `z`, och det" sammanhängande "lösenordet är från en överuppsättning av det alfabetet, specifikt hela alfabetet plus en enda avgränsare (som representerar att skicka understrängen).
@corsiKa: Plus den ytterligare begränsningen att det "sammanlänkade" lösenordet måste ha exakt två instanser av avgränsaren, plus eventuellt begränsningar i linje med "varje dellösenord måste innehålla minst ett specialtecken". . . slutresultatet kan vara att du faktiskt får * färre * möjliga trio av lösenord än om det bara var ett långt lösenord.
Mike Scott
2015-02-19 14:02:30 UTC
view on stackexchange narkive permalink

Det är säkerhet genom dunkelhet - om allmänt antagen kommer angripare bara att försöka tre gånger. Vid vilken tidpunkt kan du lika gärna ha ett enda lösenord men ställa in en längre minimilösenordslängd för att säkerställa att det är så länge som tre separata lösenord sammanfogas.

+1 även om OP säger "Jag inser att det är säkerhet genom dunkelhet". Det är värt att lägga till att det här är _bara_ säkerhet genom dunkelhet, utan fördelar över någon annan metod. Du kan byta användarnamn och lösenordsfält och hålla etiketterna desamma eller byta namn på lösenordsfältet "födelsedag", det finns en miljon alternativ som kommer att förvirra användarna i namnet "säkerhet". Uppenbarligen förstår OP, samtidigt som den förstår att denna _ är_ säkerhet genom dunkel, inte varför det är dåligt.
När det gäller _ varför_ är det dåligt. Om jag tvingades använda ett sådant system är det första jag skulle göra att skriva ett lösenordsinmatningsskript för att automatisera det irriterande gränssnittet. Då skulle jag antagligen kontrollera skriptet i mitt offentliga github-arkiv.
Stephen Touset
2015-02-19 14:09:41 UTC
view on stackexchange narkive permalink

Det går inte att skilja från ditt lösenord genom att helt enkelt vara A || B || C .

Om angriparen inte vet att jag använder "trippel lösenord" kommer han att försöka varje lösenord bara en gång och kommer troligen aldrig att hitta rätt sekvens. Detta är inte fallet för `A || B || C`.
Om en angripare inte vet att ditt lösenord är `A || B || C`, han / hon måste försöka varje lösenord en gång och kommer troligen aldrig att hitta rätt sekvens. Så ja, så är det. Om en angripare har 'A', 'B' och 'C' har du förlorat oavsett.
@Stephen ditt svar är inte så tydligt för dem som inte redan vet det, kan du snälla utarbeta lite för att göra det till ett ordentligt svar?
Även om angriparna känner till systemet måste han testa alla möjliga lösenord tre gånger. Om lösenordet "A" är "123", lösenordet "B" är "123" och lösenordet "C" är "1234", för att nå det lösenordet måste du prova "0 | 0 | 0", "0 | 0 | 1`, `0 | 0 | 2`. Och detta görs värst eftersom servern inte berättar vilken som är fel! Lösenordet kan vara `0 | 1 | 0` och du skulle ta en dum gigantisk tid att hitta det.
@IsmaelMiguel Den del du hävdar blir värre är helt enkelt densamma som att använda en mycket längre sträng. Exempel: antag att A, B, C var och en kan vara ett ensiffrigt tal, 0-9. Då finns det 1000 möjligheter för A, B, C. Samma som för ett tresiffrigt lösenord.
@Jean-BernardPellerin Det finns också tillägg av avgränsningstecken. Det är A B C . Så strängt taget injicerar två separator-tecken i sekvensen. Sammankoppling simulerar inte * slutet * av A och * start * av B etc.
@AviD Jag tycker att detta resultat måste vara uppenbart uppenbart. Ditt lösenord är * bokstavligen * nu `A B C`. De sammanfogas nu helt enkelt med hjälp av Retur-tangenten.
@StephenTouset Jag håller inte med, men det faktum att det frågas - och några kommentarer - bevisar annars ... FWIW Jag hade redan +1: a dig ... :-)
Om jag har lösenorden 3 lösenord "AB" "BC" "CD" är det sammanlänkade lösenordet ABBCCD. Detta är bevisligen inte likvärdigt, därför är svaret felaktigt. "A" då "BBCC" och sedan "D" är ett annat fel lösenord i detta schema till exempel men sammankopplingen är densamma. Separatorerna är den avgörande skillnaden som gör ekvivalensen falsk.
Det är inte i det A \ n || B \ n || C \ n kan faktiskt särskiljas från A || B || C
Arc
2015-02-20 04:34:50 UTC
view on stackexchange narkive permalink

Tvåfaktorsautentisering är mer användarvänlig men ändå säkrare.

Utan, en lösenordet är fortfarande knappast mindre säkert än lösenordsslag.

En angripare som kan hitta ditt lösenord kommer sannolikt också att ta reda på ditt knackningsschema.

Att välja att knacka är som att välja en algoritm. Tänk på det som offentligt .

Även om lösenord är säkerhet av dunkel kan de mycket enkelt ersättas av helt andra.

Som sagt, det finns scheman som liknar din knackning, men lite mer användbar:

  • Slumpmässigt begär en av flera hemligheter (lösenord, fraser, iTANs...).
    Det här är mycket snabbare än att ange alla hemligheterna, och är säkrare eftersom angriparen bara lär känna en hemlighet i taget (som kan ogiltigförklaras efter användning).
    Chanserna för angriparen kan autentisera korrelerar med det relativa antalet hemligheter de känner. Ändå kräver det att användaren känner till alla hemligheter och deras ordning .
  • Ingångstiming , dvs analysera tiderna mellan och för alla lösenord tecken medan användaren skriver.
    Det här är svårare att ta reda på och förfalska än att knacka och har undersökts några gånger IIRC. Nackdelar:

    • Timing varierar något varje gång en användare anger lösenordet, även om det fortfarande kan räcka för att särskilja användare
    • Tidpunkten kan till och med ändras helt när användaren väljer att ange den annorlunda, t.ex. under inledningsfasen efter att ha valt lösenordet (användaren lär sig fortfarande att ange lösenordet), eller när de inte kan ange det som de brukar göra (skador, hålla en smörgås i ena handen ...)

Säkerhet genom dunkelhet är bra när du snabbt kan ändra ditt dunkelschema , dvs " ändra labyrinten "med liten ansträngning , snarare än betongen som dess väggar är gjorda av (se till att labyrinten inte kan kringgås ).

Dude, överanvändning av fetstil gör detta nästan oläsligt.
Jag skulle inte säga att lösenord är säkerhet efter dunkel. Varje säkert system behöver någon "sak" som du behöver för att få entré - antingen något som du vet, du har eller är. För att klassificera något som säkerhet efter dunkel måste du titta på algorythm och inte på "nyckeln".
Jag definierar inte orden. Från [Wiktionary] (https://en.wiktionary.org/wiki/obscurity): 2. _ Tillståndet att vara okänt; en sak som är okänd._ 3. _Kvaliteten att vara svår att förstå; en sak som är svår att förstå._ Det senare är vad människor vanligtvis hänvisar till på ett nedsättande sätt när man talar om "säkerhet genom dunkelhet", men allt som är svårt att "förstå" kan betraktas som dunkelt.
fooot
2015-02-19 21:39:39 UTC
view on stackexchange narkive permalink

Begreppet hamnbankning gäller egentligen inte direkt för inloggning på webbplatser. Åtminstone inte i den mening som du har föreslagit. Med portknackning ansluter du till olika portar i en viss ordning för att öppna önskad port. I ditt exempel lägger du in alla lösenord på en webbplats. Som andra har påpekat skiljer sig detta egentligen inte från att sätta ihop alla lösenord. Om inte alla lösenord du använder är mycket långa, kan du lika gärna sammanfoga dem och använda ett lösenord. Oklarheten i denna metod är inte heller så användbar, eftersom någon måste bygga den och någon måste veta hur man använder den, vilket räcker för att en angripare ska få reda på hur den fungerar. Du förklarade det precis för världen.

I stället kan du kanske använda olika webbplatser för att representera olika portar. Låt oss säga att du försöker logga in på webbplats D. När du ansluter till webbplats D kommer den inte ens att visa en sida om den inte ser att du har loggat in på webbplatserna A, B och C, korrekt och i den ordningen. På det här sättet skulle angriparen inte bara behöva knäcka de olika lösenorden utan de måste göras på tre olika webbplatser och användas i rätt ordning för att till och med komma åt webbplats D, där ett annat lösenord skulle krävas.

Detta förlitar sig fortfarande på en viss oklarhet, men det skiljer sig mer från att bara dela upp ett lösenord på en webbplats.

+1 för att ta itu med kärnan i problemet: det föreslagna systemet för lösenordsslag * replikerar inte det system som används för portknackning, så de förmodade fördelarna överförs inte.
PiTheNumber
2015-02-19 18:12:47 UTC
view on stackexchange narkive permalink

Positiva>

  • Det skulle lura vanliga brute-force-attacker. Automatiserade attacker från botnät eller enkla verktyg fungerar inte direkt.
  • Det kan vara möjligt att lura en keylogger på det här sättet. I loggarna skulle det se ut som om användaren kom ihåg lösenordet vid tredje försöket. Om angriparen använder det här lösenordet fungerar det inte. Men bara om han inte vet eller gissar vad som händer. Men han äger dig ändå i det här fallet.
  • Användaren tvingas använda flera ord => längre lösenord.

Negativ

  • För komplicerat för en normal användare.
  • Liksom portknackning är det delvis säkerhet genom dunkelhet. Om angriparen vet att han kan anpassa attacken.

Totalt

Som att slå på porten tillför det bara en liten fördel mot enkla attacker. Den största fördelen skulle vara längre lösenord och som lättare kan genomföras är lösenordsregler.

Hur som helst, om dina användare inte har något emot det är det något du kan göra. I slutändan räknas varje säkerhetsfunktion. Men jag skulle inte råd att göra det.

Tja, brute force attacker att det skulle lura är ändå lite meningslöst. Med tanke på en rimlig inloggningshastighetsgräns (som 1 per sekund) är brute force ganska meningslöst. En offlineattack på en stulen databas, å andra sidan, kommer inte att hållas tillbaka eftersom det är uppenbart att tre lösenord måste användas, och vad deras hash är, så skillnaden är försumbar.
Ogre Psalm33
2015-02-19 22:26:42 UTC
view on stackexchange narkive permalink

Bara en anmärkning: denna metod används redan i lösenordåterställning -scheman i vissa delar av branschen. Om du glömmer ditt lösenord kan du använda din e-postadress för att starta en sekvens av personliga frågor för att återställa ditt lösenord (men många gånger är det bara en fråga). Det görs mer välsmakande för användaren genom att vanligtvis begränsa sammanhanget till en sekvens av väl valda frågor som ger användaren en möjlighet att använda (förhoppningsvis) hemliga men välkända svar.

Också några av de bättre bankerna ger ytterligare en uppsättning säkerhetsfrågor om de inte känner igen den dator du loggar in från (i samma riktning som det ovan nämnda schemat för lösenordsåterställning).

Till exempel:

  Ange ditt lösenord: ***** Din dator känns inte igen, svara på följande ytterligare frågor: Vilken stad växte din mamma upp i? *********Vilken är din favoritfilm? *************  

Detta kan göra det möjligt för smarta användare att ge ganska obskyra svar på en rad frågor som de väljer, samtidigt som det gör det enkelt att komma ihåg sekvensen av "lösenord". Naturligtvis kan vanliga användare fortfarande använda enkla att gissa svar på frågorna "okänd dator", men det har alltid varit användaren att tillhandahålla bra lösenord.

enter image description here

Att lägga till säkerhetsfrågor, vars svar i huvudsak är lösenord vars hela syfte är att lätt kunna gissas av användaren, gör naturligtvis hela ditt system svagare än om du bara hade ett lösenord. (Förutsatt att en typisk användare följer anvisningarna i användargränssnittet och inte väljer slumpmässiga svar.) Börden delas mellan användaren och designern - om ditt system bara är säkert med ett bra säkerhetskopieringslösenord, åtminstone instruera användaren att välja en!
Alla banker som fortfarande använder säkerhetsfrågor som enda säkerhetskopia kan vara "bättre" än någon annan bank, men säkerhetsmässigt är det hemskt. Gruvan imponerade mig faktiskt genom att gradvis övergå till att kräva autentiserare och röstfingeravtryck för telefonsupport.
Multifaktorautentisering är definitivt ett bättre alternativ, men tyvärr är majoriteten av bankerna inte där ännu, åtminstone så långt jag har samplat. Men även min fru, som inte är en teknisk person på något sätt, visste tillräckligt (utan att jag ens berättade för henne) att när hon valde säkerhetsfrågan "Favorit husdjur?", Att hon * INTE * skulle sätta vår hund Fido som svaret (hon använder ett annat svårare att gissa, icke-husdjursrelaterat svar som hon lätt kan komma ihåg). Många människor är smartare än vi ger dem kredit för, men tyvärr måste jag medge att många inte gör det.
Jag måste också påpeka, en subtil skillnad i "säkerhetskopieringslösenorden", så att säga. Deras syfte är att göra svaren lätt gissningsbara av en * särskild * användare, men svåra att gissa av andra (tyvärr inte alla implementerar dem på det sättet: "Favoritfärg?" * SANNA ??? *)
Jag hatar personligen den typen av system, först och främst kommer jag aldrig ihåg vilken fråga jag har valt. Om jag inte skriver ner dem eller väljer dem alltid samma. Till slut lägger jag slumpmässiga data, och detta ökar bara attackvektorn.
@OgrePsalm33 Nåväl, när du justerar designen för att vara säkrare, pratar du inte riktigt om den rätt skadade säkerhetsfrågan. (Det vill säga den typen som aktivt ber om information som troligen kan hittas genom att titta på deras Facebook-sida.) Och min poäng var att utformningen av en säkerhetsfunktion inte borde innebära att användaren måste göra motsatsen till vad de får veta. (Till exempel din fru.) Min personliga favorit hittills är OS X-lösenordstips, där jag använder synonymer till orden i min lösenfras, vilket borde vara tillräckligt för att jaga mitt minne; men det kanske inte är lämpligt för en bank
Dewi Morgan
2015-02-21 10:33:20 UTC
view on stackexchange narkive permalink

PROS : Detta system delar vissa fördelar med tvåfaktorautentisering.

1) De flesta webbläsare och lösenordsbesparingssystem stöder inte det , så kommer bara att komma ihåg ett av lösenorden högst. Så det kommer åtminstone inte att lagras i klartext någonstans.

2) Personer som använder samma lösenord överallt måste använda minst två lösenord som inte delas med andra webbplatser.

Nackdelar : Systemet är dock totalt sett bristfälligt, och jag skulle hävda att det är värre än autentisering av ett lösenord.

1) Eftersom deras föredragna, lösenordsskyddade lösenordsförvaringssystem som de använder för de viktigare lösenorden kan inte användas, oddsen är att de använder något mindre bra för det här lösenordet. Post-it, textfil, vad som helst.

2) Andra har hävdat att detta är lika starkt som lösenordet "ABC". Det är det inte. Jag skulle säga att i värsta fall är det bara lika starkt som lösenordet "A".

Detta beror på att jag (och den typiska användaren) skulle använda lösenorden "lösenord 1", "lösenord2", "password3" Detta lösenordsgenereringssystem ger mig fördelen att jag kan ctrl-c, ctrl-v lösenordet och sedan bara skriva numret.

Om jag inte kan använda liknande lösenord har du minskat räckvidden av möjliga lösenord som jag kan ha: snarare än så säkert som ABC, har du nu bara samma säkerhet som ABD där A! = B! = C: du har gjort crackerjobbet enklare genom att minska deras sökdomän.

Och jag skulle ändå välja vilken förutsägbar sekvens som lösenordsinmatningsskriptet tillät: "Jan", "Feb", "Mar" kanske.

Och eftersom jag skulle använda en naturlig sekvens , det här är troligtvis den ordning som en lösenordssmällare skulle ha i ordboken, så en lösenordssprickningsmaskin kommer naturligtvis att försöka lösenorden i rätt ordning och gå direkt in. Alla smällare som känner till ditt system absolut skulle beställa deras ordlista på detta sätt.

3) Den andra faktorn som minskar säkerheten är att du måste ändra tre olika fält för att ändra lösenordet. Detta skulle avskräcka många från att ändra sina lösenord.

4) Detta är hemskt, hemskt användarupplevelse, som andra har noterat. Om du inte har en intern publik (anställda, studenter osv.) Förlorar du anpassningen genom detta användarvänliga tillvägagångssätt.

fluffy
2015-02-20 03:29:05 UTC
view on stackexchange narkive permalink

Som andra har sagt, motsvarar detta bara att ha ett lösenord som motsvarar A \ nB \ nC eller liknande. Det finns dock en fördel som jag kan tänka mig med detta schema: det hjälper till att minska saker av nätfiske; om ett system accepterar det första lösenordet istället för att acceptera de andra, vet du att systemet är äventyrat och helt enkelt loggar in ditt användarnamn och lösenord.

Men i så fall är det bättre att bara försöka logga in med en slumpmässigt lösenord innan du försöker logga in med ditt faktiska lösenord; annars har du precis äventyrat en hel del av ditt lösenord eftersom nu den första tredjedelen (ungefär) har loggats av det komprometterade systemet.

Peter
2015-02-19 16:34:13 UTC
view on stackexchange narkive permalink

Jag tror inte att det är ens säkerhet genom dunkelhet som vissa har sagt - de tre lösenordsinloggningarna presenteras offentligt, nej? Visst att det tar lite arbete att justera några verktyg, men inget för svårt.

När det gäller brute-force-komplexiteten. Antalet möjligheter är detsamma som att ha ett enda lösenord med längd A + B + C . Så av den anledningen är det enda defensiva du får med detta schema att frustrera angriparen till en början. Dessutom, om systemet blev vanligt, skulle standardverktyg snabbt anpassa sig.

Inloggningen för tre lösenord presenteras inte offentligt. Det ser ut som en standard användar-ID, lösenordsinloggning. Förutom istället för referenser {userid, password}, ​​har du referenser {userid1, password1, userid2, password2, ...}. Du anger userid1, lösenord1 och systemet "avvisar" dig, men i hemlighet registrerar du passerat hinder 1. Du anger userid2, lösenord2 och systemet "avvisar" dig, men i hemlighet registrerar du passerade hinder 2. När du passerar det sista hindret, systemet släpper in dig. Med detta sagt är jag inte entusiastisk.
@emory, säkert, men vad jag menar att säga är att användare av systemet är medvetna om systemet - så kommer också angripare att göra det.
Om användarbasen är liten (t.ex. bara jag) är lösenordsbanken dold men rekommenderas fortfarande inte. Om användarbasen är stor är lösenordsslag hemskt. Jag antog implicit att användarbasen var liten.
Cort Ammon
2015-02-20 01:06:05 UTC
view on stackexchange narkive permalink

Som många har nämnt, för dedikerade attackändamål, är det inget starkare och inte lättare / svårare att komma ihåg än en sammankoppling av lösenord. Det finns dock något operationssäkerhets (OPSEC) -värde som är oberoende av lösenordsstyrka. Inte mycket värde, kom ihåg, men som någon som tillbringar mycket tid på Worldbuilding Stack Exchange-webbplatsen sprang min fantasi vild.

Tänk om du vill att en tjänst inte ska endast begränsas till auktoriserade användare, men du vill förhindra att någon av misstag snubblar på dess existens. Detta är inte längre ett enkelt entropiproblem, utan snarare ett spion-mot-spion-informationsteori-problem. Ditt jobb är nu att minimera signal-brus-förhållandet (SNR) för alla som tittar över din lösenordsinmatning. Detta är nu inte relaterat till lösenordsstyrka.

En metod skulle vara att ställa in ett falskt beteende. Låt det se ut som om det är en inloggning för ett annat system. Endast konton med rätt behörighet omdirigeras till det meningsfulla innehållet. Du kan till och med låta andra anmäla dig till ditt dummyprojekt för att låta folk peka runt och tillfredsställa deras nyfikenhet.

Vi pratar emellertid spion-mot-spion nu. Någon kommer att inse att James Bond verkligen inte är så intresserad av ett forum som diskuterar de senaste trenderna inom gummiandar, och börja prysa. James Bond är bra på att inte avslöja information, men vid något tillfälle, med en pistol som hålls mot hans [senaste] flickväns huvud, kommer det att bli misstänksam om han inte avslöjar sitt gummi-ducky-forum-lösenord för Dr. Dr. NoGood är ingen dåre; han tar reda på det.

Så vi satte upp James med två lösenord. Den ena släpper in honom i sitt vanliga gummiduckforum, det andra in i den topphemliga kärnmissilsimulatorn. Vi kan inte ignorera lösenordssäkerheten i verkligheten här. Hans lösenord för kärnmissilsimulator kommer att behöva vara långt: så länge som sammankopplingen av dina tre lösenord. Hans lösenord är förmodligen kortare. Bra också, för någon har sett honom logga in på sitt ducky-konto tidigare. De vet hur många karaktärer som ska starta brute-forcing. Vi vill inte att de av misstag ska hitta det säkra lösenordet innan vi hittar den där snygga.

Så med tanke på att det fortfarande är hemligt att missilsimulatorn finns, kommer det förhoppningsvis att avskräcka att "ogiltigt lösenord" återlämnas brute-forcers från att fortsätta. Dessutom kan du göra en enorm klimatupplevelse när James "skriver in sitt lösenord fel två gånger" innan väggen bredvid honom plötsligt smyger upp för att avslöja valvet bortom.

FYI, det sena Truecrypt-systemet låter dig skapa dold partition där ett lösenord dekrypterar enheten för att producera viktiga filer som du inte bryr dig om och ett andra lösenord för att dekryptera en dold partition för de data som du verkligen behöver behålla hemlighet. Detta görs så att du kan ha trolig förnekbarhet.
Vynce
2015-02-20 03:58:12 UTC
view on stackexchange narkive permalink

"Ju färre rörliga delar, desto mindre går det att gå fel."

Förutom att inte ge någon anmärkningsvärd fördel är denna idé mer komplex att implementera än ett enda lösenord. Som sådan finns det fler punkter med potentiellt misslyckande. Till exempel ...

Beroende på hur den implementerades kan det tillåta en förnekandeattack där Malcolm skickar lösenord X med jämna mellanrum. Om han gör det rätt så att han avbryter ett legitimt försök, mottar systemet A X B C och nekar dig inresa. På samma sätt, om han gånger skickar lösenord C direkt efter att du har skickat A B, låter systemet honom komma in och inte du.

En svarstimingattack kan kanske räkna ut att A var det rätta första lösenordet i A B C där det inte skulle märka att D var prefixet för enlösenord DEF.

PressingOnAlways
2015-02-21 04:08:42 UTC
view on stackexchange narkive permalink

För att lägga till alla andra fantastiska svar, skulle denna typ av lösenordsskydd inte ge något skydd mot keyloggers eller man i mitten attacker. Eftersom du fortfarande skulle lägga ditt lösenord i en sekvens kan keyloggerna spela upp dina handlingar och ändå få auktorisering. 2-faktor autentisering som föreslås av @Archimedix skulle vara det mest effektiva sättet att mildra detta.

Nyckelloggaren skulle vara förvirrad på grund av inlämnandet av lösenordet. Keyloggern måste veta om systemet för att inte luras av det. Så, så länge som "Obscurity" bibehölls, skulle det fungera.
Kom ihåg att en keylogger som rapporterar samma tripletter av inlämnade lösenord om och om igen skulle fungera för att skingra dunkelheten.
Kinjal Dixit
2015-02-25 16:12:53 UTC
view on stackexchange narkive permalink

Som andra har nämnt, är det funktionellt samma som ett långt lösenord. För att göra implementeringen mindre förvirrande kan den implementeras genom att fråga alla tre lösenorden på samma skärm.

Något i den här riktningen görs av min online-mäklare där den ber om medlemslösenordet och handelslösenordet under inloggningen. Vi måste få båda lösenorden rätt för att logga in. Dessutom måste jag ändra mitt medlemslösenord var tionde dag eller så och det finns regler om att inte upprepa de tre föregående lösenorden etc.

Min bank ( ICICI Bank) som tidigare implementerats två lösenord, ett för visning för att anges för att logga in och få tillgång till information, och ett annat för transaktion för att registreras när som helst en åtgärd som skulle resultera i en finansiell transaktion utfördes. Mitt Visa-betalkort är också säkrat av ett system de kallar 3-D Secure där de, oberoende av betalningsportalen, tar mig till sin egen webbplats för att ange ett lösenord för att slutföra transaktionen. Jag vet att detta är den äkta Visa-webbplatsen, för de låter mig anpassa meddelandet som ska visas.

Så idén är inte utan motstycke, men inte implementerad på exakt samma sätt som du säger. Att lägga till flera lösenord är något som åtminstone bankirer och aktiemäklare verkar övertygade om.

"Flera lösenord" är inte samma sak som "flera lösenord där du inte erkänner riktigheten förrän alla har angetts i rätt ordning". Det är ännu svagare, för en angripare kan följa dem en i taget - styrkan är ungefär densamma som styrkan i det längsta enskilda lösenordet (se: WPS).
F. Hauri
2015-02-28 02:00:34 UTC
view on stackexchange narkive permalink

Stoppa värdelös teknisk komplexitet

Enligt ett tidigare korrekt svar är

  A \ nB \ nC  

ungefär samma som

  ABC  

(eller kanske lättare, angående @ Marks svar, om Bruijn-sekvensen ).

Därifrån, om du verkligen behöver hålla din hemlighet:

  1. Använd standardverktyg som är starkt testade ett tag. (Om du inte är säker, föredrar du att dela och fråga runt istället för att använda någon form av dunkel.)

  2. Håll dem uppdaterade.

  3. Lär dina användare om lösenfraser (se xkcd: Password Strength och diskutera om IS)

  4. Tänk på att social engineering (på Wikipedia) är det första ​​strong> sättet för säkerhetsfel. (En annan känd xkcd: Säkerhet).

  5. Övervaka ditt system och kontrollera dina loggar.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...