denna Säkerhetsvitbok publicerades tidigare på wickr.com/security av Chris Howell, Wickr CTO
wickr säkerhet bygger på begreppet en opålitlig server. Med andra ord strävar vi efter att tillhandahålla säkerhet även i händelse av ett ”värsta fall” serveröverträdelse, där en allsmäktig angripare har full kontroll över serverresurser, för att inkludera möjligheten att läsa och ändra back-end programkod och data och gå oupptäckt under en tid.
tredjepartsexperter har kontinuerligt granskat vår end-to-end-kryptering och säkerhet från början. Som en del av våra nyligen släppta Kundsäkerhetslöften validerade ett ledande oberoende säkerhetsföretag att meddelandeinnehållet inte kan läsas på våra back-end-serverkomponenter. Denna uppsats undersöker frågan om säkerhet och server kompromiss bredare. Den sammanfattar viktiga delar av Wickr säkerhetsarkitektur som ger motståndskraft mot back-end server kompromiss och diskuterar händelsen i form av faktiska angripare kapacitet, eller verkliga effekter.
angriparens mål
för att förstå vad en angripare kan göra med en Wickr-serverkompromiss måste vi förstå serverns roll i Wickr-arkitekturen och överväga värdet av data som finns i back end-komponenter och databaser. Wickr-servern spelar en nyckelroll i meddelandeleverans till stöd för både synkron och asynkron kommunikation. Det ger också centraliserade användarkatalogtjänster, behörighetsuppsättningar och profil-och inställningssynkronisering.
attacker som försöker utnyttja Wickr-servern kan generellt kategoriseras enligt följande:
- attacker som syftar till meddelandesäkerhet, eller tillgång till klartext meddelandeinnehåll;
- attacker som syftar till information och metadata, eller samla in och weaponizing känslig information om systemet eller dess användare;
- attacker som syftar till tillgänglighet, eller förstörelse av data.
vi diskuterar varje typ av attack i de avsnitt som följer.
meddelandesäkerhet
genom att kompromissa med servern får angriparen tillgång till krypterade meddelanden samt offentliga kortvariga nyckelpooler . Meddelandena är dock krypterade end-to-end och både de krypterade meddelandena och nycklarna i nyckelpoolerna är autentiserade end-to-end. Detta innebär att angripare inte har möjlighet att läsa eller ändra krypterade meddelanden när de passerar genom servern och de kan inte manipulera nyckelpoolerna för att utföra man i mitten attacker.
med dessa skydd på plats måste angripare som hoppas få tillgång till meddelandeinnehåll försöka ta kontroll över en Wickr-identitet. Wickr-identiteter är rotade i asymmetriska nyckelpar som används för att digitalt signera och verifiera data. Förtroende upprättas genom att verifiera signaturkedjan från ett visst objekt eller kryptografisk komponent till rotidentiteten eller användaren (t.ex. meddelande till app, app till användare).
för att skapa en autentisk nyckel (eller ett meddelande) måste en angripare göra något av följande:
1. Skaffa den privata komponenten i en användares identitetsnyckel, som kan användas för att autentisera Wickr-appar som är inloggade på kontot.
2. Skaffa den privata komponenten i en apps identitetsnyckel, som kan användas för att producera autentiska flyktiga meddelandenycklar och autentisera meddelanden som skickas från appen.
3. Lura en användare att acceptera en falsk identitetsnyckel för en målanvändare, vilket skulle ha samma effekt som att få användarens befintliga identitetsnyckel.
de privata komponenterna i appidentitetsnycklar är säkrade i ett krypterat datalager på klientsidan och utom räckhåll för en angripare på serversidan. De offentliga komponenterna lagras på servern, men signeras av användarens (privata) identitetsnyckel, vilket skyddar dem från manipulering. Att lura användare att acceptera falska identitetsnycklar är mer en socialteknisk attack än teknisk attack och har lite att göra med ett serverns fotfäste . Därför kommer attackerens förmåga att kompromissa med en äkthetskälla — och verkligen deras enda tekniska väg för attack för att påverka meddelandesäkerheten-ner till deras förmåga att kompromissa med användarens identitetsnyckel.
av olika skäl relaterade främst till systemets användbarhet lagras användaridentitetsnycklar på Wickr-servern och säkras med stark symmetrisk kryptering. Att skydda dessa data är i slutändan en 256-bitars nyckel som är ett starkt kryptografiskt derivat av användarens lösenord. Den här nyckeln lagras eller skickas aldrig till servern, så en angripare som försöker kompromissa med en användares identitetsnyckel skulle behöva utföra en lösenordsgissningsattack mot den lagrade versionen med en lösenordsderivatgenererande algoritm som är speciellt utformad för att göra processen så resurs och tidskrävande som möjligt. För icke-triviala lösenord kan vi förvänta oss att denna process tar många år till och med många tusen eller miljoner år om användaren helt enkelt väljer ett kvalitetslösenord på så lite som 8 tecken i längd. För att kompromissa med flera konton skulle angriparen behöva spendera samma ansträngning om och om igen. Denna skyddsnivå innebär att attacker på serversidan mot användaridentitetsnycklar är omöjliga mot alla utom de svagaste kontona. Se Wickrs vitbok om lösenordsskydd.
Information och metadata
med kontroll över Wickr-servern har angriparen tillgång till all information som tjänsten har om sina användare. Vid utformningen av detta hot begränsar Wickr mängden användarinformation vi lagrar till det som är minimalt nödvändigt för att tillhandahålla kvalitetsservice. Följande är en lista över användarkontoinformationen som är tillgänglig för Wickr-tjänster vid tidpunkten för detta skrivande:
Wickr Me:
- Datum ett konto skapades
- typ av enhet(er) på vilka ett sådant konto användes (t. ex. iOS, Android)
- Datum för senaste användning
- Totalt antal skickade/mottagna meddelanden
- antal externa ID: er (telefonnummer) som är anslutna till kontot (inte den enhet som används) rentext externa ID: n själva)
- begränsade register över de senaste ändringarna i kontoinställningarna (t. ex. lägga till eller ta bort en enhet; innehåller inte meddelandeinnehåll eller routing och leveransinformation)
- Wickr versionsnummer
Wickr Pro:
- Wickr Pro ID (e-postadress)
- nätverksanslutning
- telefonnummer, om det tillhandahålls av nätverksadministratören som en andra form av autentisering
- Datum ett konto skapades
- typ av enhet(er) där ett konto användes
- Datum för senaste användning
- Totalt antal skickade/mottagna meddelanden
- antal externa ID (telefonnummer) som är anslutna till kontot (inte de rentext externa ID: n själva)
- begränsade register över de senaste ändringarna i kontoinställningarna (t. ex. lägga till eller ta bort en enhet; inkluderar inte meddelandeinnehåll eller routing och leveransinformation)
- Wickr versionsnummer
- Betalningsrelaterad information
- nätverksinställningar inklusive begränsade register över de senaste ändringarna av nätverksinställningarna (t. ex. aktivera eller inaktivera federation)
Wickr Enterprise (kundstyrd distribution):
- Wickr Enterprise ID (handtag)
- nätverksanslutning
- Datum ett konto skapades
- typ av enhet(er) där ett konto användes
- Datum för senaste användning
- Totalt antal skickade/mottagna meddelanden
- begränsade register över de senaste ändringarna i kontoinställningarna (t. ex. lägga till eller ta bort en enhet; inkluderar inte meddelandeinnehåll eller routing-och leveransinformation)
- wickr versionsnummer
- nätverksinställningar inklusive begränsade register över de senaste ändringarna i nätverksinställningarna (t. ex., aktivera eller inaktivera federation)
ovanstående riskerar därför att avslöjas i händelse av en serverkompromiss. Våra juridiska processriktlinjer och Sekretesspolicy innehåller mer detaljerade diskussioner om hur vi begränsar insamling och användning av användarinformation på vår plattform.
kontroll av servern ger också en angripare möjlighet att samla in information och metadata som tjänsten ignorerar. De två bästa exemplen på detta i Wickr är klientens IP-adresser och meddelandespårning.
Wickr som tjänst är helt ointresserad av Wickr-klienternas IP-adress. Vi registrerar dem inte i standardkonfigurationsloggar eller lagrar dem i användarposter. De är dock tillgängliga för vissa komponenter i backend-infrastrukturen, och förutsatt att angriparen kontrollerar rätt komponent och utför rätt trafik-och korrelationsanalys, skulle denna information vara i fara.
Wickr är också ointresserad av vem som kommunicerar med vem i nätverket. Vi registrerar inte denna information i standardkonfigurationsloggar. Förutsatt att angriparen investerar tillräckligt med tid och ansträngning i processen skulle antalet, tiderna, typerna av meddelanden som skickas och tas emot samt källa och mottagare Wickr-ID vara i fara. Klartext Wickr-ID är inte tillgängliga i Wickr Me-datalager, så denna typ av analys skulle vara mycket svårare (men inte omöjligt) att göra i Wickr Me.
tillgänglighet
även om det kanske inte är den mest intressanta formen av attack man kan tänka sig mot en säker meddelandetjänst, har attacker som riktar sig till tillgänglighet av tjänster mycket verkliga sannolikhet och ganska uppenbara effekter. Det finns inte mycket att diskutera om detta ämne i det här dokumentet annat än att erkänna risken, men en angripare med kontroll över Wickr-servrar skulle ha befogenhet att inaktivera tjänster och radera data, oavsett om det bara skulle orsaka kaos eller neka service till legitima användare.
sammanfattning
Vi hoppas att detta dokument var informativ för kunder som vill förstå den verkliga världen effekterna av en Wickr server brott. Sammanfattningsvis skulle en sådan händelse om den utnyttjas av en kapabel motståndare potentiellt riskera följande:
1. Säkerheten för framtida meddelanden av konton med svaga lösenord.
2. Sekretessen för begränsad kontoinformation och metadata.
3. Tillgången till tjänster.
Välj kvalitetslösenord.
om kvalitetslösenord används kan en Wickr-serverkompromiss (känd eller okänd) betraktas som en händelse med låg eller ingen påverkan.
Tänk på periodisk rekeying.att regelbundet skapa ett nytt nyckelpar och verifiera med andra (t.ex. årligen, halvårsvis) kan ytterligare minska risken för en framgångsrik lösenordsgissningsattack för att äventyra en användares identitetsnyckel. Det är också en effektiv metod för att rehabilitera ett användarkonto som du tror redan har äventyrats via lösenordsgissning eller kompromiss på klientsidan. Användare kan ange sitt konto igen genom att fylla i flödet ’Glömt lösenord’ i Wickr Pro och Wickr Enterprise eller skapa ett nytt ID i Wickr Me.