Taggat med: SVT

Projekt Särimner

Uppdatering: Källkod till projektet finns delvis på Github https://github.com/SUNET/sarimner-frontend

Särimner är ett pilotprojekt som bedrivs av Sunet (Vetenskapsrådet) tillsammans med Netnod. Projektet har tittat på hur en teknisk lösning kan skydda mot olika typer av hot såsom överbelastningsattacker.

Projektets namn, ”Särimner”, kommer från nordiska mytologin och grisen Särimner som utgjorde föda för de fallna krigarna i Valhall. Särimner åts upp varje kväll och återuppstod dagen efter.

Projektet har genomförts på uppdrag av Post- och telestyrelsen (PTS) och en slutrapport har igår levererats till myndigheten med lärdomar från projektet.

Jag har läst rapporten som är på 27 sidor och tycker att det verkar som en bra lösning som föreslås: Ett antal noder (särimnernoder) placeras ut i nära samarbete med internetoperatörer för att leverera distribuerat webbaserat innehåll. Även så föreslås det att en förvaltningsorganisation upprättas i samband med detta.

Särimner

Problemet som belyses i rapporten är inte noderna i sig utan att operatörerna har en allt för centraliserad infrastruktur där mycket förlitar sig på Stockholm. Rapporten lyfter upp Sunet som ett föredöme när det gäller att bygga ett robust nät:

Genom att delvis definiera om vad en region är utifrån ett infrastrukturperspektiv lyckades man få trippelredundant fiberinfrastruktur till en plats i varje region, dvs knappt 20-talet platser i Sverige

Tanken är även att lokalt utplacerade säriminernoder ska fungera autonomt, så att det alltid finns en nod som svarar, även vid stora mängder anrop. Noderna agerar även proxy till DNS och gör därmed att noden fortsätter att leverera trafik trots att den tappat kontakten med den riktiga servern. I en kris där originalkällan inte finns så ska det finnas en cachad version av senaste informationen (med en tidsangivelse).

Dock kan inte noderna uppdatera mellan varandra i dagsläget utan detta är något som ligger med i en plan för 2019 (peer-to-peer).

Vi fann att koordinering av fiberutbyggnad har varit så usel (om den alls funnits) att det drabbar robusthet gällande kommunikation i Sverige.

Säger Patrik Fältström som varit med i projektet från Netnods sida

Projektet föreslår att Sunet tilldelas medel för att upprätta en förvaltningsorganisation som vidareutvecklar och tar hand om Särimner framöver.

Medverkande i projektet förutom Sunet och Netnod så har Governo AB hjälpt till med processledning samt Assured AB för kryptografiska lösningar. Intervjuer har genomförts med representanter från MSB, SVT, SLL, LUNET, IT-Norrbotten, IIS och Tidningsutgivarna, TU.

Rapporten i sin helhet kan du ladda hem här:

Att motverka överbelastning av
 samhällsviktiga webbplatser
Att motverka överbelastning av
samhällsviktiga webbplatser

Nya lösenordsrekommendationer från NIST: Ju längre desto bättre

Den amerikanska myndigheten NIST släppte nyligen uppdaterade rekommendationer gällande hantering av lösenord. Dessa uppdaterade rekommendationer kommer precis lagom till det att SVT Dold uppdagat att massor av läckta lösenord och användaruppgifter finns på nätet att tanka ner. Många av dessa läckta lösenord är så klart hashade eller krypterade som i fallet med Adobe (läs här hur du knäcker lösenord).

Dessa nya rekommendationer från NIST innehåller bl.a. att användare ska ges möjlighet att välja lösenord upp till 64 tecken. Även ska lösenord tillåtas att innehålla specialtecken såsom unicode, space och emojis.

En annan bra sak är att rekommendationerna från NIST anser att du bör kontrollera de lösenord som användaren anger mot listor med vanligt förekommande lösenord. Samt så bör du ta bort password hints och Knowledge-based authentication (KBA) såsom frågor ”din moders ogifta efternamn”, ”din förstfödde hunds bästa kompis”.

Minst 32 bitar slumpad salt ska användas samt en hashfunktion godkänd av NIST såsom PBKDF2 och med minst 10,000 iterationer.

Dokumentet innehåller även en hel del andra vettiga saker såsom att SMS för 2FA inte bör användas (troligtvis pga SS7 attacker och nummerportabilitet mellan operatörer).

Avsnitt 2 av SVT Dold kan du se här: www.svtplay.se/video/11171365/dold/dold-sasong-2-avsnitt-2

Uppdatering: SVT har av någon anledning tagit bort avsnittet.

Granskning av TV-leaks

För några veckor sedan så startade SVT sajten TV-leaks för att underlätta för visselblåsare (skvallrare) att kontakta journalister krypterat. Teknisk leverantör av tjänsten är Bahnhof tillsammans med Wikileaks (källa).

Vi kommer i denna granskning redovisa ett antal olika brister i tjänsten. Önskar du läsa sammanfattningen kan du gå längst ned.

SVT uppger på sin hemsida följande:

Tjänsten består av ett webbformulär där det går att posta dokument, filmer eller bilder. På SVT finns två mottagardatorer, inlåsta i skåp som endast utvalda medarbetare har tillgång till. Servrarna ligger i ett skyddat bergrum och informationen är hårt krypterad.

Tittar vi mer noggrant så återfinnes tjänsten under domännamnet tvleaks.se och går att nå via http eller https. Vi rekommenderar att enbart https används, för http-versionen öppnar upp för angrepp.

Så här ser det ut med omredigeringen om vi besöker tjänsten okrypterat via http:

TV-LEAKS

Analys av https på tv-leaks

tvleaks https A-

Om vi kör tvleaks.se genom testet som SSL Labs tillhandahåller så får tjänsten betyget A-. Att man ej får fullt betyg (A) är för att tvleaks ej använder sig av PFS (forward secrecy) när det gäller referenswebbläsararen som SSL Labs använder sig av.

Vad betyder detta säkerhetsmässigt då? Jo, om någon kan komma över privata nyckeln genom fysisk tillgång till servern eller via intrång så är det möjligt att återskapa den krypterade informationen i efterhand.

Utfärdare av SSL-certifikatet är thawte och man använder sig av ett s.k. Extended Validation (EV) certifikat vilket kan inbringa mer förtroende.

Servern använder 2048 bitars RSA-nyckel och är giltigt från fredag 13 december 2013 kl. 01:00:00 till måndag 14 december 2015 kl. 00:59:59.

Traceroute

Enligt traceroute så är servern troligtvis placerad i Stockholm:

  • mmo-cr1.sto-cr1.bahnhof.net (85.24.151.155)
  • sto-cr1.thu-dr1.bahnhof.net (85.24.151.207)
  • h-253-14.a139.corp.bahnhof.se (5.150.253.14)

Och IP-adressen tillhör av Bahnhof:

Screen Shot 2014-02-24 at 13.22.47

Domännamnet tvleaks.se

Ägare av domännamnet tvleaks är Thomas P. hos SVT och som registrar används Groth & Co. Tittar vi med .SE DNScheck så ger kontrollen varningar. Namnet registrerades 2013-09-17 och använder sig av tre namnservrar:

  • nserver: ns3.groth.se
  • nserver: ns2.groth.se
  • nserver: ns1.groth.se

Tyvärr har man ej registrerat tv-leaks.se, svtleaks.se eller liknande samt så använder tvleaks ej DNSSEC.

Information som skickas till tvleaks

OpenPGPjsGenom att titta på källkoden på webbsidan så hittar vi en publik PGP-nyckel som skapats med BCPG C# v1.6.1.0. Att just  BCPG använts för att skapa den publika PGP-nyckeln är troligtvis för att SVT utvecklat en egen programmvara i språket C# och som använder programmeringsbiblioteket Bouncy Castle för PGP-dekryptering.

Denna egenutvecklade programmvara används troligtvis på två inlåsta datorer hos SVT (läs ovan).

Den publika PGP-nyckel som används är följande:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG C# v1.6.1.0

mQENBFJgF40BCACo55jBfaiPg9L8YdFTurB1INum85ia/MP2WsCYaPShltM0qKS/
2UNmv/bXp0Nq7SgYvrs4xYRM2A71AONdXnyzMz7zCB5H3i/U3qF7D0eMMyQAhCPK
bMEXxpo96bOhlWyHnjPFVvXUwS/w1xDNRVrYetc9vAPM1kIOOcuABY8LpHLviVTZ
m+RIQ7akOhUmGekdo4vHGAlPJjOE0hJUh34ZG79Vp9vVDMd6O+CAZQMhO/dpp7zg
Y6TsL37q44vX6dyJuRLqPjvWfQLjJXDii/6LHz1+S+ETDC1RXtkJOCOkuvAl7S+T
/Bmu+nrEHDW5KvvlmfS5L8F7hTnVcwYtozkHABEBAAG0AIkBHAQQAQIABgUCUmAX
jQAKCRDQoJAgkU0kul56B/oCDRFETr9GFOi0ur6hsRfzJ9pD6FL+2ZcDFudPLlxH
pG80wbJf6SRkC6xK6KCrph6NBaE4FFMIXtO9fVX9nqrmCENwynv8Um+epXLDZUNU
J9YBzwnQ4l9+KDJ5lpIC0LrzHrZmUvg0/zeqOM9k5fLnHZTGQKSSX7vrEKwi/V49
TerDrPot2uNw+fs7rSyD17egCqIMK/0HVQcR4/IF/W1GWor8MxGnn7J57y+5fBN7
4AlT8TLEpmH4eZdwikUwgIBb9MPVId1v5RRBtf/gA0J5BBZvzFpe8f+ai+Qg6AYS
kbxcu3GCCDepEPj6NMxUeuIMM3Nzt2RMjsmR5x2KJf36
=CwA4
-----END PGP PUBLIC KEY BLOCK-----

Meddeladen som sedan skickas via formuläret på hemsidan ska krypteras med ovan nyckel och OpenPGP.js, exempel på ett krypterat meddelande:

-----BEGIN PGP MESSAGE-----
Version: OpenPGP.js v.1.20130712
Comment: http://openpgpjs.org

wcBMA9CgkCCRTSS6AQf8CyJZUxF+x+VKOW663mIk6ku12kdocg85k/LT2jRa
QoMwOZVVyEQdzT0ihuOM7MMBYoLunlBBgiBbs828fhZP07UN+EkDN8aYudeM
pvMmxOhGdWCjX2xa1THJreHDKw7q+NCAkrR95oXr82JZqkLeghYpOMrJSdD8
AESqKfpljhPMLh+CQT3WIDFZ7l6vuXegcxeaviGUu2cqP2Rl0Acus1HxhPaw
RV1BJfUxZnCvSPdz4A7D/yti1k++Ab4H7A20TjeMzYX4koguzxO85yqXqf3u
cxKGvGOU2r+5WhdK27YwSY1Xb38ehHhd6G9TZRRqEkOgTwjv9m8LtQrrmYqa
3tKOAbfyQnL3Po5uCJQApLRVYTWrKQfC6VF0VvrlQA4OLdo+SvxhHdxAF3jj
2ABSOOQ3XtKANMtJ+7O0M6p2HJCWAAw8LbmIQmpxUzd5gSayNuVw5nQ2BslT
v8TLWBVEukc2r539kXHQRaqXR1aiv6f/Jhg4XFM6FE+rCxFfNO0RPcoUfWx4
ay8UWrxi0RqXTQ==
=JFg1
-----END PGP MESSAGE-----

När informationen sedan skickas vidare från webbläsaren till servern hos Bahnhof så skickas tyvärr informationen ej krypterad med denna PGP-nyckel som SVT uppger på sidan:

”Meddelanderutan samt dina kontaktuppgifter i formuläret krypteras direkt i webbläsaren.”

Men i verkligheten så krypteras ej kontaktuppgifter till uppgiftslämnaren samt ämnet direkt i webbläsaren, se följande skärmdump då vi testar att skicka över ett meddelande med ”Mitt ämne” som ämne samt ”Mitt namn” som namn:

tv-leaks leaks

Hur kan det ha blivit så här fel? Troligtvis för att enctype=”multipart/form-data” används i formuläret då det finns möjlighet att skicka filer. Webbläsaren skickar då med helt formuläret till servern (testat med Mac OS X och Google Chrome version 32).

PGP-nyckel

Skapades Thu Oct 17 16:59:57 UTC 2013 och är 2048 bitar samt ser bra ut i övrigt (exempelvis RSA exponenten är 65537):

Old: Public Key Packet(tag 6)(269 bytes)
        Ver 4 - new
        Public key creation time - Thu Oct 17 16:59:57 UTC 2013
        Pub alg - RSA Encrypt or Sign(pub 1)
        RSA n(2048 bits) - a8 e7 98 c1 7d a8 8f 83 d2 fc 61 d1 53 ba b0 75 20 db a6 f3 98 9a fc c3 f6 5a c0 98 68 f4 a1 96 d3 34 a8 a4 bf d9 43 66 bf f6 d7 a7 43 6a ed 28 18 be bb 38 c5 84 4c d8 0e f5 00 e3 5d 5e 7c b3 33 3e f3 08 1e 47 de 2f d4 de a1 7b 0f 47 8c 33 24 00 84 23 ca 6c c1 17 c6 9a 3d e9 b3 a1 95 6c 87 9e 33 c5 56 f5 d4 c1 2f f0 d7 10 cd 45 5a d8 7a d7 3d bc 03 cc d6 42 0e 39 cb 80 05 8f 0b a4 72 ef 89 54 d9 9b e4 48 43 b6 a4 3a 15 26 19 e9 1d a3 8b c7 18 09 4f 26 33 84 d2 12 54 87 7e 19 1b bf 55 a7 db d5 0c c7 7a 3b e0 80 65 03 21 3b f7 69 a7 bc e0 63 a4 ec 2f 7e ea e3 8b d7 e9 dc 89 b9 12 ea 3e 3b d6 7d 02 e3 25 70 e2 8b fe 8b 1f 3d 7e 4b e1 13 0c 2d 51 5e d9 09 38 23 a4 ba f0 25 ed 2f 93 fc 19 ae fa 7a c4 1c 35 b9 2a fb e5 99 f4 b9 2f c1 7b 85 39 d5 73 06 2d a3 39 07 
        RSA e(17 bits) - 01 00 01 
Old: User ID Packet(tag 13)(0 bytes)
        User ID - 
Old: Signature Packet(tag 2)(284 bytes)
        Ver 4 - new
        Sig type - Generic certification of a User ID and Public Key packet(0x10).
        Pub alg - RSA Encrypt or Sign(pub 1)
        Hash alg - SHA1(hash 2)
        Hashed Sub: signature creation time(sub 2)(4 bytes)
                Time - Thu Oct 17 16:59:57 UTC 2013
        Sub: issuer key ID(sub 16)(8 bytes)
                Key ID - 0xD0A09020914D24BA
        Hash left 2 bytes - 5e 7a 
        RSA m^d mod n(2042 bits) - 02 0d 11 44 4e bf 46 14 e8 b4 ba be a1 b1 17 f3 27 da 43 e8 52 fe d9 97 03 16 e7 4f 2e 5c 47 a4 6f 34 c1 b2 5f e9 24 64 0b ac 4a e8 a0 ab a6 1e 8d 05 a1 38 14 53 08 5e d3 bd 7d 55 fd 9e aa e6 08 43 70 ca 7b fc 52 6f 9e a5 72 c3 65 43 54 27 d6 01 cf 09 d0 e2 5f 7e 28 32 79 96 92 02 d0 ba f3 1e b6 66 52 f8 34 ff 37 aa 38 cf 64 e5 f2 e7 1d 94 c6 40 a4 92 5f bb eb 10 ac 22 fd 5e 3d 4d ea c3 ac fa 2d da e3 70 f9 fb 3b ad 2c 83 d7 b7 a0 0a a2 0c 2b fd 07 55 07 11 e3 f2 05 fd 6d 46 5a 8a fc 33 11 a7 9f b2 79 ef 2f b9 7c 13 7b e0 09 53 f1 32 c4 a6 61 f8 79 97 70 8a 45 30 80 80 5b f4 c3 d5 21 dd 6f e5 14 41 b5 ff e0 03 42 79 04 16 6f cc 5a 5e f1 ff 9a 8b e4 20 e8 06 12 91 bc 5c bb 71 82 08 37 a9 10 f8 fa 34 cc 54 7a e2 0c 33 73 73 b7 64 4c 8e c9 91 e7 1d 8a 25 fd fa 
                -> PKCS-1

Övrigt

Länken för att läsa mer om tjänsten fungerar ej, den länkar till svt.se/tvleaks och ger ett 404-felmeddelande. Även så fungerar ej länken där SVT uppger att man kan läsa mer om vad man ska tänka på när man tipsar SVT.

Och om du inte har läst varför man ej bör använda JavaScript-kryptering så läs denna utmärkta artikel av Matasano.

jQuery version v1.6.1 används samt OpenPGP.js v.1.20130712. Severn uppger att det är opertivsystemet Ubuntu med webbservern Apache/2.2.22 och PHP/5.3.10-1ubuntu3.9.

Bra är att inga externa anrop genom exempelvis javascript genomförs. Detta genomförde bl.a. Poosty som vi testat tidigare. Google Analytics är populärt att använda men äventyrar säkerheten.

Ingen mailpekare hittas och ingen information i archive.org. Även så bör HSTS användas, speciellt med tanke på att http vidarebefodras till https.

Inga cookies identifierades.

Sammanfattning

Säkerheten har en bra nivå men kan bli bättre. En eventuell angripare kan kombinera att PFS ej används samt att all information ej krypteras med hjälp av PGP så kan meddelanden återskapas.

Ingen granskning av tredje part verkar ha genomförts. Detta är så klart något som rekommenderas. Även att genomföra aktiva attacker vilket är något som vi ej genomfört.

Vi har givetvis kontaktat SVT innan publiceringen av denna granskning och problemen som identifierats är åtgärdade eller delvis åtgärdade.