Privacy@Home
Jump to navigation
Jump to search
Motivation
Mit der zunehmenden Zahl an IoT-Geräten...
viele Features, große Gefahr für Privacy usw.
Setup
Fernseher über Ethernet angeschlossen an Fritzbox 7580, Fritzbox über Ethernet an andere Fritzbox
Erkenntnisse
diese URLs werden aufgerufen, diese Header-Daten übermittelt das passiert, wenn man die Header filtert oder Zugriffe blockiert
Internet
unterteilung nach aktivität vornehmen:
hbbtv für beispielhafte sender
mini app store
webbrowser, https zertifikat verhalten
zuordnung url->funktionalität tabellarisch festhalten
Heimnetz
mediastreamingoptionen dlna
Gegenmaßnahmen
Filterliste verwenden
whitelist blacklist java
import java.util.Scanner;
import java.io.FileWriter;
import java.io.IOException;
// Das Tool generiert je nach Eingabe im selben Verzeichnis eine Black- oder Whitelist fuer einen Telefunken XF32B301 Smart-TV mit Firmware-Version 2.32.4.0.
public class TelefunkenGenerator {
/* Der Scanner liest die Eingaben des Nutzers in der Kommandozeile. Bei einem "j" erfolgt der Eintrag in die Datei und bei einem "n" nicht.
* Sonstige Eingaben zaehlen als unerwartet und sorgen dafuer, dass das Programm beendet wird. */
private final Scanner scanner = new Scanner(System.in);
// Der FileWriter schreibt die Domains in eine Datei, sofern auf die Datei schreibend zugegriffen werden kann.
private FileWriter writer;
/**
* In der Main-Methode wird je nach Wunsch des Nutzers eine Blacklist oder Whitelist generiert, die seinen Beduerfnissen entspricht.
* @param args Zu diesem Zweck irrelevante Kommandozeilenparameter
*/
public static void main(String[] args) {
TelefunkenGenerator generator = new TelefunkenGenerator();
generator.starteTool();
String ersteEingabe = generator.scanner.next();
if (ersteEingabe.equals("j")) {
// Blacklist soll generiert werden
generator.erstelleBlacklist(generator.scanner);
} else if (ersteEingabe.equals("n")) {
// Whitelist soll generiert werden
generator.erstelleWhitelist(generator.scanner);
} else {
generator.beenden("Unerwartete Eingabe. Das Programm wird jetzt beendet", generator.scanner);
}
}
/**
* Informiert den Nutzer ueber den Zweck des Tools und fragt danach, welche Filterliste erstellt werden soll.
*/
private void starteTool() {
System.out.println("Dieses Tool erstellt fuer Ihren Telefunken Smart-TV eine Black- oder Whitelist, die in eine Fritzbox importiert werden kann.");
System.out.println("Soll eine Blacklist (j) oder eine Whitelist (n) erstellt werden? [j/n]");
}
/**
* Diese Methode fuegt der Black-/Whitelist bei der Eingabe "j" die gewuenschten Domains hinzu, sodass diese blockiert/erlaubt werden.
* @param frage An den Nutzer gerichtete Frage, welches Feature verboten (Blacklist) / erlaubt (Whitelist) sein soll
* @param fqdn Domains, die fuer das betrachtete Feature relevant sind
*/
private void hinzufuegen(String frage, String... fqdn) {
System.out.println(frage+" [j/n]");
String eingabe = scanner.next();
if (eingabe.equals("j")) {
// Nutzer hat bestaetigt, dass die Eintraege aus fqdn hinzugefuegt werden sollen
for (String domain : fqdn) {
try {
writer.write(domain+"\n");
} catch (IOException e) {
beenden("Es ist ein Problem beim Schreiben der Datei aufgetreten. Das Programm wird jetzt beendet", scanner);
return;
}
}
} else if (eingabe.equals("n")) {
// Kein Eintrag wird hinzugefuegt
} else {
beenden("Unerwartete Eingabe. Das Programm wird jetzt beendet", writer, scanner);
}
}
/**
* Erstellt im selben Verzeichnis wie dieses Programm eine Blacklist als Textdatei.
* @param scanner Wird verwendet, um die Eingaben des Nutzers zu erfahren und passend darauf zu reagieren
*/
private void erstelleBlacklist(Scanner scanner) {
try {
writer = new FileWriter("Blacklist_" + System.currentTimeMillis() + ".txt");
} catch (IOException e) {
beenden("Es ist ein Problem beim Schreiben der Datei aufgetreten. Das Programm wird jetzt beendet", scanner);
return;
}
hinzufuegen("Soll die Nutzung von Online-Features unterbunden werden?",
"www.portaltv.tv"); // nur wenn beim Anschalten des TVs der Zugriff auf www.portaltv.tv erfolgreich ist, denkt der TV, er sei verbunden mit Internet, ansonsten nicht
hinzufuegen("Soll der Aufruf der App-Liste, die unter Menu -> Internet -> Smart-TV gefunden werden kann, blockiert werden?",
"mb100.portaltv.tv"); // fuer Menu -> Internet -> Smart TV muss www.portal.tv und mb100.portaltv.tv aktiviert sein - es wird nämlich mb100.portaltv.tv aufgerufen
hinzufuegen("Soll die NTP-Zeitsynchronisation verboten werden?",
"europe.pool.ntp.org",
"go.microsoft.com",
"secureclock.playready.microsoft.com");
hinzufuegen("Sollen Tracking-Webseiten blockiert werden?",
"de.ioam.de",
"script.ioam.de",
"logc406.xiti.com",
"logc407.xiti.com",
"www.google-analytics.com",
"www.googletagmanager.com",
"79423.analytics.edgekey.net",
"ma1249-r.analytics.edgesuite.net",
"ma140-r.analytics.edgesuite.net",
"de.sitestat.com",
"tracksrv.zdf.de");
hinzufuegen("Sollen nicht zwingend notwendige Content Delivery Networks blockiert werden?",
"maxcdn.bootstrapcdn.com", // für 1-2-3.tv verwendet, aber im Grunde überflüssig
"cdn-gl.imrworldwide.com");
hinzufuegen("Soll ARD-alpha nicht mehr über das Internet empfangen werden dürfen?",
"brdashdvbt2-i.akamaihd.net");
hinzufuegen("Soll 1-2-3.tv nicht mehr über das Internet empfangen werden dürfen?",
"connect.media-broadcast.com", // die Navigation für freenet connect-Sender
"freenettvcon07-i.akamaihd.net"); // das eigentliche Hosting der Videodateien
hinzufuegen("Sollen die HbbTV-Features für den Fernsehsender Das Erste blockiert werden?",
"itv.ard.de",
"itv2.ard.de",
"hbbtv.daserste.de",
"www.daserste.de",
"ctv-videos.daserste.de");
hinzufuegen("Sollen die HbbTV-Features für den Fernsehsender ZDF blockiert werden?",
"hbbtv.zdf.de",
"www.zdf.de",
"epg-image.zdf.de",
"tvdl.zdf.de");
hinzufuegen("Sollen die HbbTV-Features für den Fernsehsender rbb Berlin blockiert werden?",
"hbbtv.rbb-online.de",
"hbbtv.ardmediathek.de",
"rbbmediapmdp-a.akamaihd.net",
"pd.irt.de");
/*hinzufuegen("Sollen Firmware-Updates nicht mehr gesucht und heruntergeladen werden duerfen?",
"vstlsrv.com"); // Firmware-Update erfolgt ueber FTP, also sinnlos, das zu blockieren in Fritzbox-Filterliste, denn das greift nicht*/
/* Die obige Liste kann bei Bedarf aktualisiert oder hier erweitert werden */
beenden("Die Blacklist wurde erfolgreich generiert. Das Programm wird jetzt beendet", writer, scanner);
}
/**
* Erstellt im selben Verzeichnis wie dieses Programm eine Whitelist als Textdatei.
* @param scanner Wird verwendet, um die Eingaben des Nutzers zu erfahren und passend darauf zu reagieren
*/
private void erstelleWhitelist(Scanner scanner) {
try {
writer = new FileWriter("Whitelist_" + System.currentTimeMillis() + ".txt");
} catch (IOException e) {
beenden("Es ist ein Problem beim Schreiben der Datei aufgetreten. Das Programm wird jetzt beendet", scanner);
return;
}
hinzufuegen("Soll die Nutzung von Online-Features möglich sein?",
"www.portaltv.tv");
hinzufuegen("Soll der Aufruf der App-Liste, die unter Menu -> Internet -> Smart-TV gefunden werden kann, weiterhin funktionieren?",
"mb100.portaltv.tv");
hinzufuegen("Soll die NTP-Zeitsynchronisation erlaubt sein?",
"europe.pool.ntp.org",
"go.microsoft.com",
"secureclock.playready.microsoft.com");
hinzufuegen("Sollen Tracking-Webseiten aufgerufen werden können?",
"de.ioam.de",
"script.ioam.de",
"logc406.xiti.com",
"logc407.xiti.com",
"www.google-analytics.com",
"www.googletagmanager.com",
"79423.analytics.edgekey.net",
"ma1249-r.analytics.edgesuite.net",
"ma140-r.analytics.edgesuite.net",
"de.sitestat.com",
"tracksrv.zdf.de");
hinzufuegen("Sollen nicht zwingend notwendige Content Delivery Networks erlaubt werden?",
"maxcdn.bootstrapcdn.com", // für 1-2-3.tv verwendet, aber im Grunde überflüssig
"cdn-gl.imrworldwide.com");
hinzufuegen("Soll ARD-alpha über das Internet empfangen werden dürfen?",
"brdashdvbt2-i.akamaihd.net");
hinzufuegen("Soll 1-2-3.tv über das Internet empfangen werden dürfen?",
"connect.media-broadcast.com", // die Navigation für freenet connect-Sender
"freenettvcon07-i.akamaihd.net"); // das eigentliche Hosting der Videodateien
hinzufuegen("Sollen die HbbTV-Features für den Fernsehsender Das Erste erlaubt werden?",
"itv.ard.de",
"itv2.ard.de",
"hbbtv.daserste.de",
"www.daserste.de",
"ctv-videos.daserste.de");
hinzufuegen("Sollen die HbbTV-Features für den Fernsehsender ZDF erlaubt werden?",
"hbbtv.zdf.de",
"www.zdf.de",
"epg-image.zdf.de",
"tvdl.zdf.de");
hinzufuegen("Sollen die HbbTV-Features für den Fernsehsender rbb Berlin erlaubt werden?",
"hbbtv.rbb-online.de",
"hbbtv.ardmediathek.de",
"rbbmediapmdp-a.akamaihd.net",
"pd.irt.de");
beenden("Die Whitelist wurde erfolgreich generiert. Das Programm wird jetzt beendet", writer, scanner);
}
/**
* Beendet die Ausfuehrung des Programms mit einer passenden Ausgabe.
* @param ausgabe Text, der dem Nutzer zum Abschluss der Programmausfuehrung mitgeteilt werden soll
* @param writer Objekt, das vorhin in eine Datei geschrieben hat und hier geschlossen wird
* @param scanner Objekt, das vorhin Nutzereingaben erkannt hat und in einer Hilfsmethode geschlossen wird
*/
private void beenden(String ausgabe, FileWriter writer, Scanner scanner) {
try {
writer.close();
} catch (IOException e) {
beenden("Es ist ein Problem beim Schreiben der Datei aufgetreten. Das Programm wird jetzt beendet", scanner);
return;
}
beenden(ausgabe, scanner);
}
/**
* Hilfsmethode fuer das Beenden des Programms, die aufgerufen wird, wenn kein FileWriter vorhanden ist, den man schliessen koennte, oder ein Problem mit diesem aufgetreten ist.
* @param ausgabe Text, der dem Nutzer zum Abschluss der Programmausfuehrung mitgeteilt wird
* @param scanner Objekt, das vorhin Nutzereingaben erkannt hat und hier geschlossen wird
*/
private void beenden(String ausgabe, Scanner scanner) {
System.out.println(ausgabe);
scanner.close();
System.exit(-1);
}
}
Gastzugang aktivieren
separierung, dann funzt aber medienstreaming nicht mehr Intranet-Kommunikation verbieten
Netzwerkanwendungen sperren
ftp; zeigen, wie das geht in fritzbox & dass ports angepasst werden müssen