• 1
  • 2
2024-09-18, 08:55
  #1
Medlem
Hej Flashback!

TLDR;
Behöver hjälp med security Audit av min krypteringsapp.

Källkod på GitHub: LÄNK

Behöver hjälp med ett projekt som jag jobbat lite med på fritiden. I en tidigare tråd beskrev jag projektet enligt följande:

Citat:
Syfte
Kringå ChatControl 2.0.

När blir man skannad med stöd av Chat Control 2.0
1. ChatControl 2.0 kommer kräva att alla chatt-appar, både okrypterade och de med end-to-end kryptering skannar filer och meddelande innan de krypteras vilket i praktiken bryter end-to-end krypteringen.

2. En förutsättning för att skanningen ska fungera är att filerna är av vissa format och att checksumman av en fil matchar en checksumma i databasen.

3. ChatControl 2.0 förbjuder INTE kryptering generellt


Min lösning
1. Utveckla två separata appar.

2. App 1: Enkel chat-app som gärna får skicka allt i klartext, med undantag för lösenorden. Tanken är egentligen inte att denna app ska användas ensamt.

3. App 2: Frontend/Middleware-app till app 1 vars funktion är att kryptera både filer och textmeddelanden. Denna app ska kommunicera med den andra appen och automatiskt överföra såväl filer som textmeddelanden mellan de två apparna.

Chat-appen kommer självklart omfattas av ChatControl 2.0 som alla andra chat-appar, men eftersom filerna och meddelanden är krypterade av den andra appen (som inte omfattas av ChatControl 2) innan de överförs till chat-appen kan EU skanna innehållet bäst de vill, och det enda de kommer se är krypterade .bin filer som de omöjligt kan läsa.

Tyvärr har jag inte hunnit jobba så mycket med projektet av olika orsaker, men förhoppningsvis kommer jag ha tid att fortsätta i slutet av veckan. Det skulle vara extremt tacksamt om några här vill hjälpa mig med en security audit av den kod som finns nu för att se om det finns några tydliga sårbarheter som jag missat.

Detta gäller alltså App 2, dvs den app som sköter själva krypteringen.


I dagsläget finns funktioner för
  1. Generering av nyckelpar
  2. Importering av publika nycklar
  3. Profilhantering där varje importerad publik nyckel sparas som en profil/kontakt (exempelvis Pelle/Anders).
  4. Kryptering/dekryptering av filer och textmeddelanden.

Ett par saker återstår dock att implementera i denna app.
  1. Chatt-läget måste sammankopplas med min chatt-app (som fortfarande har en del jobb kvar)
  2. Stöd för större filer
  3. Förbättrat gränssnitt
  4. Möjlighet att ändra språk

Nuvarande implementerade krypteringsmetoder
RSA (4096 bitar) - Asymmetrisk Kryptering
Användning:
Kryptering av symmetriska nycklar för filer och meddelanden.
Kryptering av filnamn för att skydda metadata.

AES-256 GCM - Symmetrisk Kryptering
Användning:
Kryptering av filinnehåll.
Kryptering av textmeddelanden.

OAEP-padding med SHA-256
Användning:
Säker asymmetrisk kryptering med RSA för att motverka kryptografiska attacker.

PBKDF2HMAC
Användning:
Härledning av krypteringsnyckel från användarlösenord för att skydda privata nycklar.

När funktionen med koppling till min chat-app är klar kommer jag sannolikt ta bort text och fil-läget i appen då dessa nu använts främst för att testa funktionaliteten.

Hoppas som sagt att några här har lust att hjälpa till med framförallt säkerhets- och sårbarhetsanalys av koden, och de metoder jag använder.
__________________
Senast redigerad av ThePrivacyProject 2024-09-18 kl. 09:01.
Citera
2024-09-18, 09:23
  #2
Medlem
JohannesSnajdares avatar
Förstår jag rätt att du ska bygga en app som användaren ska använda istället för appen 'XXX'?
Kommer inte _din_ app att betraktas som "ChatApp" då och omfattas av ChatControl??

Om du bygger en app som krypterar text & filer som sen användaren manuellt får klistra in i chatappen kommer du säkert undan men detta att din app automatiskt ska interagera mot chatappen så användaren i princip chattar med din app kommer nog inte tillåtas.

Dessutom, projektet består alltså av _en enda_ lång källkodsfil (main.py)?!?

Du bör nog systemera detta lite bättre om någon ska uppbåda ork att göra en seriös analys.
Citera
2024-09-18, 09:42
  #3
Medlem
Citat:
Ursprungligen postat av JohannesSnajdare
Förstår jag rätt att du ska bygga en app som användaren ska använda istället för appen 'XXX'?
Kommer inte _din_ app att betraktas som "ChatApp" då och omfattas av ChatControl??

Om du bygger en app som krypterar text & filer som sen användaren manuellt får klistra in i chatappen kommer du säkert undan men detta att din app automatiskt ska interagera mot chatappen så användaren i princip chattar med din app kommer nog inte tillåtas.

Dessutom, projektet består alltså av _en enda_ lång källkodsfil (main.py)?!?

Du bör nog systemera detta lite bättre om någon ska uppbåda ork att göra en seriös analys.

Håller med till 100 procent om att jag måste dela upp koden i flera filer. Det får blir nästa steg på att-göra-listan, men borde såklart gjorts redan från början.

När det gäller den andra frågeställningen så ska denna app agera frontend/middleware till en chatt-app (som jag också håller på med). Eftersom denna app inte innehåller några som helst chatt-funktioner i sig själv utan endast är frontend träffas den inte av Chat Control 2.0.

Som användare ska man således kunna använda denna app precis som vilken chatt-app som helst, samtidigt som den definitionsmässigt inte är en chatt-app.

Man ska inte behöva klippa/klistra utan den chatt-app som jag utvecklar vid sidan av denna app ska ha en funktion för att automatiskt ladda hem krypterade filer/meddelanden till en katalog som denna app sedan ska skanna i realtid.

Målet är att det för användaren fortfarande ska kännas som han använder vilken chatt-app som helst men i juridisk mening använder han istället en krypterings app, som således inte omfattas av kravet på att skanna allt som skickas enligt Chat Control 2.0.
__________________
Senast redigerad av ThePrivacyProject 2024-09-18 kl. 09:50.
Citera
2024-09-18, 09:50
  #4
Medlem
JohannesSnajdares avatar
Citat:
Ursprungligen postat av ThePrivacyProject
Håller med till 100 procent om att jag måste dela upp koden i flera filer. Det får blir nästa steg på att-göra-listan, men borde såklart gjorts redan från början.

När det gäller den andra frågeställningen så ska denna app agera frontend/middleware till en chatt-app (som jag också håller på med). Eftersom denna app inte innehåller några som helst chatt-funktioner i sig själv utan endast är frontend träffas den inte av Chat Control 2.0.

Som användare ska man således kunna använda denna app precis som vilken chatt-app som helst, samtidigt som den inte definitionsmässigt är en chatt-app.

Man ska inte behöva klippa/klistra utan den chatt-app som jag utvecklar vid sidan av denna app ska ha en funktion för att automatiskt ladda hem att krypterade filer/meddelanden till en katalog som denna app sedan ska skanna i realtid.

Målet är att det för användaren fortfarande ska kännas som han använder vilken chatt-app som helst men i juridisk mening använder han istället en krypterings app, som således inte omfattas av kravet på att skanna allt som skickas enligt Chat Control 2.0.

Det finns mig veterligen ingen exakt definition av vad som är en "chatt-app".

Det kommer alltså bli en definitionsfråga, men om den som du säger, kan "användas som vilken chatt-app som helst" kommer den med största säkerhet också anses vara en chatt-app och således omfattas av direktivet.

Du ska inte stirra dig blind på att en "chatt-app" enbart är den app som direkt kopplar mot chattjänsten - om det blir aktuellt kommer det granskas av jurister & andra som betraktar hela flödet och om din app då fungerar "som vilken chattapp som helst" sitter du illa till.
__________________
Senast redigerad av JohannesSnajdare 2024-09-18 kl. 09:53.
Citera
2024-09-18, 09:56
  #5
Medlem
Citat:
Ursprungligen postat av JohannesSnajdare
Det finns mig veterligen ingen exakt definition av vad som är en "chatt-app".

Det kommer alltså bli en definitionsfråga, men om den, som du säger, kan "användas som vilken chatt-app som helst" kommer den med största säkerhet också anses vara en chatt-app och således omfattas av direktivet.

Du ska inte stirra dig blind på att en "chatt-app" enbart är den app som direkt kopplar mot chattjänsten - om det blir aktuellt kommer det granskas av jurister & andra som betraktar hela flödet och om din app då fungerar "som vilken chattapp som helst" sitter du illa till.

Är förvisso mer en juridisk fråga, men det finns en definition av vad en chatt-app är enligt det utkast till EU-förordning jag läste när jag påbörjade detta projekt, och om detta inte ändras radikalt kommer den typ av app jag jobbar med inte kunna klassificeras som en chatt-app och således inte träffas av ChatControl 2.0
Citera
2024-09-18, 09:57
  #6
Medlem
JohannesSnajdares avatar
Citat:
Ursprungligen postat av ThePrivacyProject
Är förvisso mer en juridisk fråga, men det finns en definition av vad en chatt-app är enligt det utkast till EU-förordning jag läste när jag påbörjade detta projekt, och om detta inte ändras radikalt kommer den typ av app jag jobbar med inte kunna klassificeras som en chatt-app och således inte träffas av ChatControl 2.0

Har du en länk till den texten?
Blev lite nyfiken nu.
Citera
2024-09-18, 10:02
  #7
Medlem
Citat:
Ursprungligen postat av JohannesSnajdare
Har du en länk till den texten?
Blev lite nyfiken nu.

Huvuddokumentet finns här: https://eur-lex.europa.eu/resource.h...C_1&format=PDF

Utöver detta finns en lång rad arbetsdokument som går in på en del detaljer. Har tyvärr inte dessa länkar i mobilen.


Har också kommit flera ”läckta” utkast sedan detta dokument såg offentlighetens ljus. Finns en ganska bra svensk sida som håller oss uppdaterade: https://chatcontrol.se/
Citera
2024-09-18, 10:10
  #8
Medlem
Bajskottens avatar
Har jag förstått dig rätt: Du har gjort en chatt-app som inte är en chatt-app?

Kan du rita ett flödesschema? Jag är inte helt med på hur allt sker.
Och kanske en lite arkitektbild.
Citera
2024-09-18, 10:13
  #9
Medlem
JohannesSnajdares avatar
Citat:
Ursprungligen postat av ThePrivacyProject
Huvuddokumentet finns här: https://eur-lex.europa.eu/resource.h...C_1&format=PDF

Utöver detta finns en lång rad arbetsdokument som går in på en del detaljer. Har tyvärr inte dessa länkar i mobilen.


Har också kommit flera ”läckta” utkast sedan detta dokument såg offentlighetens ljus. Finns en ganska bra svensk sida som håller oss uppdaterade: https://chatcontrol.se/

Jo jag läser den svenska PDF:en där, det nämns inte "app" överhuvudtaget i den.

Det som däremot står tydligt i FAQ:en är:

Citat:
Tjänsterna som omfattas av förslaget måste göra en riskbedömning för huruvida tjänsterna kan användas för att sprida barn*övergrepps*material eller för att utföra grooming-attacker. Om risk förekommer är det upp till tjänste*leverantören (till exempel Facebook eller Signal) att vidta åtgärder för att kunna spåra sexuella övergrepp mot barn. Tjänster som använder totalsträcks*kryptering måste därför antingen bygga in bakdörrar eller lämna EU.

Observera det fetade: det är tjänsteleverantörens ansvar att se till att det går att spåra(!)

Om du nu bygger en app som piggybackar på t.ex. FB Messenger och skickar krypterade meddelanden så kommer FB bli ålagda att lösa problemet med att dina meddelanden inte kan övervakas.
Alltså kommer FB se till att din app inte längre fungerar.
Citera
2024-09-18, 10:15
  #10
Medlem
Citat:
Ursprungligen postat av Bajskotten
Har jag förstått dig rätt: Du har gjort en chatt-app som inte är en chatt-app?

Kan du rita ett flödesschema? Jag är inte helt med på hur allt sker.
Och kanske en lite arkitektbild.

Vill såklart vara så tydlig som möjligt, men just nu sitter jag bara på mobilen så har inte möjlighet att fixa någon illustration/flödesschema. Läste du den beskrivning som fanns i trådstarten?

Citat:
Min lösning
1. Utveckla två separata appar.

2. App 1: Enkel chat-app som gärna får skicka allt i klartext, med undantag för lösenorden. Tanken är egentligen inte att denna app ska användas ensamt.

3. App 2: Frontend/Middleware-app till app 1 vars funktion är att kryptera både filer och textmeddelanden. Denna app ska kommunicera med den andra appen och automatiskt överföra såväl filer som textmeddelanden mellan de två apparna.

Denna app som jag hoppas få hjälp med Security Audit för är alltså app 2 ovan.
Citera
2024-09-18, 10:17
  #11
Medlem
Bajskottens avatar
Citat:
Ursprungligen postat av ThePrivacyProject
Vill såklart vara så tydlig som möjligt, men just nu sitter jag bara på mobilen så har inte möjlighet att fixa någon illustration/flödesschema. Läste du den beskrivning som fanns i trådstarten?

Japp, men det gick inte in helt. Är mer fan av illustrationer
Citera
2024-09-18, 10:21
  #12
Medlem
Citat:
Ursprungligen postat av JohannesSnajdare
Jo jag läser den svenska PDF:en där, det nämns inte "app" överhuvudtaget i den.

Det som däremot står tydligt i FAQ:en är:



Observera det fetade: det är tjänsteleverantörens ansvar att se till att det går att spåra(!)

Om du nu bygger en app som piggybackar på t.ex. FB Messenger och skickar krypterade meddelanden så kommer FB bli ålagda att lösa problemet med att dina meddelanden inte kan övervakas.
Alltså kommer FB se till att din app inte längre fungerar.

Förstår hur du tänker, med förslaget är minst sagt omfattande och som det är utformad idag kommer inte den typ av app jag utvecklar träffas av förordningen. Är dock en väldigt intressant diskussion som jag gärna fortsätter, men tror vi bör ta den i juridik-forumet snarare än systemutvecklingsforumet.

Allt väl.
__________________
Senast redigerad av ThePrivacyProject 2024-09-18 kl. 10:33.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in