Wolf29 schrieb:
Es gibt vier Arten von Angriffsmöglichkeiten:
1.) Angriff auf die Vertraulichkeit.
2.) Angriff auf die Integrität.
3.) Angriff auf die Authentizität.
4.) Angriff auf die Verfügbarkeit.
Das ist der beste Teil deines Beitrags, und genau das, was ich mit
Im Übrigen diskutieren wir hier die ganze Zeit über "Sicherheit", was viel zu allgemein ist. Man müsste erstmal Schutzziele definieren.
meinte.
Danach geht es nur noch bergab. Das Szenario mit dem einzig sicheren System stammt von Gene Spafford. Wörtlich schrieb er:
The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards - and even then I have my doubts.
Sinngemäß übersetzt: Es gibt keine absolut sicheren Systeme. Nur relativ sichere Systeme. Und es ergibt sich: Sicherheit ist eine Kosten/Nutzen-Abwägung. Wir müssen deshalb gar nicht drüber reden, Netzwerkanschlüsse wegzulassen, denn die sind nunmal da. Auch fallen dann natürlich Integrität und Verfügbarkeit nicht weg. Auch an einem System ohne Netzwerkanschluss kann ich den Netzstecker ziehen. Dann war's das mit der Verfügbarkeit. Auch die Integrität kann man jenseits von Netzwerkanschlüssen kompromittieren.
Im Folgenden diskutierst du im Wesentlichen die Gefahr der kompromittierten Vertraulichkeit. Du nennst zwar auch Authentizität, aber die ist wird durch die Verschlüsselung von Daten nicht notwendigerweise geschützt, sondern nur in Fällen, bei denen der Angreifer physischen Zugriff hat.
Zu deinen Vorschlägen:
1.) Das Home-Verzeichnis verschlüsseln. Kann man auch nachträglich machen, sofern noch (ich glaube mindestens) die Hälfte der Partition frei ist.
Kann man machen, allerdings kann man auch einfach das komplette System verschlüsseln. Dann muss man sich auch keine Gedanken darüber machen, dass doch irgendetwas jenseits des Homeverzeichnisses unverschlüsselt auf dem Datenträger landet.
2.) Eine separate Partition, bzw. Festplatte für alle persönlichen Daten einrichten. Diese dann mit einem Verschlüsselungsverfahren verschlüsseln. Entweder mit Truecrypt oder Veracrypt. Oder mit anderen Verschlüsselungsmethoden, die nicht automatisch wieder entschlüsseln.
...oder eben LUKS, was ja auch im Zuge der Systemvollverschlüsselung verwendet wird. Jahrelanger Linux-Standard. Auch wird da nix automatisch entschlüsselt, sondern nur nach Eingabe des Passworts - entweder beim Systemstart oder danach. Was du meinst, ist vermutlich, dass du die Partition zur Laufzeit nicht entschlüsseln willst.
3.) Keine weiteren Daten im System speichern, nur Software.
Du suggerierst, Software wären keine Daten. Du meinst vermutlich persönliche Daten. Und dann meinst du vermutlich nicht "im System", sondern "außerhalb der zur Laufzeit verschlüsselten Partition". Das Problem ist, dass sich das nicht sauber trennen lässt. Im Zweifel sind alle Daten persönlich. Das Firefox-Profil enthält höchst persönliche und sensible Daten. Und das liegt im Home-Verzeichnis. Das ist zwar in deinem Szenario verschlüsselt, aber die Verschlüsselung des Home-Verzeichnisses hilft, ebenso wie die Vollverschlüsselung, nur bei einem physischen Angreifer, weil die Daten zur Laufzeit unverschlüsselt zugänglich sind. Nun könntest du sagen: Dann packen wir das Firefox-Profil eben in die extra-verschlüsselte Partition. Dann müsste aber auch die zur Laufzeit unverschlüsselt zugänglich sein - sprich, du musst sie entschlüsseln.
4.) Eventuell noch den swap-Speicher verschlüsseln, ist aber nicht unbedingt notwendig.
Ich darf dich an deine Schutzziele bzw. die entsprechenden Angriffsvektoren erinnern. Datenträgerverschlüsselung ist zur Abwehr von physischen Angriffen. Und da ist es selbstverständlich sehr sinnvoll, die Swap-Partition mit zu verschlüsseln, weil dir sonst unkontrolliert sensible Daten auf die Platte lecken können. Übrigens noch ein Grund für die Vollverschlüsselung und gegen die Home-Verschlüsselung, denn bei ersterer richtet der Installer direkt eine verschlüsselte Swap-Partition mit ein.
Dann wählst du ein sicheres Passwort für deinen Benutzerlogin. Ab jetzt kann der Angreifer nur noch dein Home-Verzeichnis löschen und kopieren. Dort hast du aber deine persönlichen Daten nicht, höchstens Anwendungsdaten.
Ein sicheres Passwort für den Login sollte man ohnehin grundsätzlich wählen. Dein Angreifer ist hier allerdings überhaupt nicht spezifiziert. Physicher (lokaler) Angreifer? Angreifer aus dem Netz? Ich hab' schon - zu rein akademischen Zwecken - Rechner angegriffen und die entsprechenden User-Rechte erlangt. Da umgeht man das Passwort einfach. Und jetzt nehmen wir mal an, ich bin auf deinem System mit deinem Nutzerrechten unterwegs. Dann kann ich schonmal zur Laufzeit das Home-Verzeichnis inkl. Firefox-Profil und ggf. inkl. der dort gespeicherten Passwörter lesen. Vielleicht hast du ja für irgendeine Website dasselbe Passwort verwendet wie das, was zum Entschlüsseln der zusätzlichen Partition dient? Selbst wenn nicht: Ich habe ja die Nutzerrechte. Ich warte einfach, bis du die Partition entschlüsselst, um daraus Daten zu lesen, oder da reinzuschreiben. Wenn du weder das eine, noch das andere machst, kannst du dir die Partition sparen. Und sobald du es tust, lese ich mit.
Ab hier wird es richtig krude:
Dann wählst du ein Masterpasswort für die seperate Partition deiner persönlichen Daten. Auch dieses musst du nochmal verschlüsseln. Am besten bietet sich hier an:
Mit dem Programm "pwgen" den Befehl "pwgen 32" eine Liste von zufälligen Passwörtern generieren. Daraus eins auswählen.
Mal gegeben den Fall, wir wollten eine Partition verschlüsseln, dann wäre das ein guter Weg, ein Passwort zu erzeugen.
pwgen -s 32
wäre sogar noch sicherer, weil pwgen per default mehr oder weniger aussprechbare Passwörter generiert, was natürlich die möglichen Buchstabenkombinationen und damit die Entropie, also im Endeffekt der Informationsgehalt und damit die Komplexität senkt.
Nun gibt es zwei Möglichkeiten es zu verschlüsseln:
1. Möglichkeit: Du schaust dir die ASCII-Tabelle an: https://www.torsten-horn.de/techdocs/ascii.htm . Jetzt nimmst du dein Passwort und schiebst jedes Zeichen z. B. 6 Zeichen zurück. Am besten ist es, ein Java-Programm zu schreiben, dass das automatisch macht. Das ist nicht schwer und eine kleine Herausforderung für Nicht-Programmierer. Du notierst dir das verschlüsselte Passwort und weißt, wieviele Zeichen du wieder umswitchen musst.
Das ist keine Verschlüsselung! Das ist ein alberner Versuch einer Maskierung. Konkret nennt sich das Verfahren Cäsar-Chiffre. Aus dem Artikel:
Als eines der einfachsten und unsichersten Verfahren dient es heute hauptsächlich dazu, Grundprinzipien der Kryptologie anschaulich darzustellen.
Man könnte auch sagen, du fügst deinem Passwort keine weitere Entropie hinzu. Du vergrößerst den Suchraum nicht. Das Verfahren hat nur dann einen begrenzten Nutzen, wenn ein schlechtes Passwort auf einen schlechten Passwortcracker trifft. Dann nämlich, wenn ein Nutzer ein Passwort nutzt, dass in einem (Cracker-)Wörterbuch steht (dann ist es ein schlechtes Passwort) und genau diesen Umstand nun kaschieren möchte. Wenn der Angreifer dann bei seinem Wörterbuchangriff solch übliche Verschiebungen außer Acht lässt, kann das helfen.
Allerdings generierst du in deinem Beispiel ohnehin schon Passwörter (vernünftigerweise) pseudozufällig mit pwgen, musst dieses Theater also gar nicht machen.
2. Möglichkeit: Du machst aus einem "a" ein "g", aus einem "b" ein "i", aus einem "c" ein "p", usw... Das heißt, du verdrehst alle Zeichen. Hierbei nützt es nichts, wenn du dir das Passwort aufschreibst, denn du wirst vergessen, wie die Kombinationen waren.
...für die gilt genau dasselbe wie für die erste. Man denkt sich keine Algorithmen aus, wenn man nicht weiß, was man tut. Das Kerkhoffs'sche Prinzip ist bekannt?
Für die beiden Möglichkeiten sollte man am Besten ein Programm schreiben, dass das automatisch macht. Das Programm kann man dann einfach so umbenennen, dass niemand weiß, was es macht, z. B. "x". Dann kann man mit "java x vaichutaiqu6eiVee9Ohfei6zinaodei" das Passwort entschlüsseln, bzw. verschlüsseln.
Und es bringt genau gar nichts. Kein Entropiegewinn, kein Sicherheitsgewinn, nur sinnloser Komplexitätszuwachs. Im schlimmsten Fall bildest du die Menge der Eingabezeichen auf eine kleinere Menge an Ausgabezeichen ab. Dann sinkt die Entropie sogar.
Und noch was:
Du kannst zum Beispiel zwei Benutzeraccounts erstellen:
1. Benutzeraccount: Um im Internet zu surfen
2. Benutzeraccount: Nur, um lokale Daten abzugreifen, nämlich die seperate Partition/Festplatte, also ohne WLAN und Netzwerk.
Das wiederum kann ein sinvoller Tipp für bestimmte Bedrohungsszenarien sein.
Dann ist eventuell wichtig, einen Virenscanner draufzuspielen. Hierbei ist wohl clamav die beste Wahl unter Linux. Man sagt zwar, Linux kenne keine Viren. Aber ich hab im Thunderbird Ordner durchaus ein Virus mit clamav gefunden, war wahrscheinlich eine Phishingmail.
Und hier geht wieder alles durcheinander:
Für welches Schutzziel?
eventuell?
ist es eben ziemlich strittig, ob Virenscanner was nützen oder eher schaden. Angesichts dessen, dass es noch keine einzige Malware unter Linux gegeben hat, die sich so pandemisch verbreitet, wie das unter Windows üblich ist, sollte man das m.E. dringend sein lassen. Der Virenscanner selbst erhöht die Angriffsfläche, denn i.d.R. laufen die Dinger selbst mit erhöhten Rechten, um die fraglichen Dateien zu scannen. Und wie oft hatten wir schon Buffer Overflows in den Parsern...
Mag sein, dass du ein Virus mit clamAV gefunden hast. Du bekommst ja auch Windows-Spam. Da ist es nicht unwahrscheinlich, dass der anschlägt. Kann man sich aber ein Ei drauf pellen.
Phishing und Viren haben nix miteinander zu tun.
Eventuell ist es auch wichtig, eine Firewall auf deinem Rechner zu installieren. Ja, auch Linux kann Ports öffnen und wieder schließen. Wenn sich zum Beispiel ein Trojaner als Server an deinem Linuxrechner festsetzt, kann er Ports öffnen und dann können Daten ausgetauscht werden.
Kann sinnvoll sein, in der Tat, ist aber in den meisten Fällen nicht nötig.
Wenn du noch sicherer sein willst, dann kannst du sämtliche Internetseiten, die Informationen über dich sammeln, abschalten: https://github.com/StevenBlack/hosts . Einfach den Inhalt der Datei kopieren und als root in /etc/hosts einfügen.
So 'ne Blocklist habe ich auch am Laufen - eine sinnvolle Sache. Aber du springst jetzt schon wieder zwischen den Schutzzielen wild hin und her.
Noch sicherer ist es, dass man das Programm "sudo" entfernt und nur mit "su" arbeitet. Das heißt, dass der Benutzer nicht in der /etc/sudoers Datei ist.
"Noch sicherer"? Noch sicherer als 'ne Blocklist? Das sind wieder zwei Dinge, die nix miteinander zu tun haben. Und sicherer ist das nicht, das ist lediglich ein anderer Ansatz. Es gibt Systeme, die verwenden sudo (Ubuntu), es gibt Systeme, die verwenden es nicht. Für beides gibt es gute Gründe. Aber dazu will ich jetzt nicht auch noch ins Detail gehen.
Noch was: Internetbrowser können Cookies erstellen und auch in JavaScript kann sich Schadcode befinden. Dazu gibt es das Plugin "noscript". https://addons.mozilla.org/de/firefox/addon/noscript/ Und man sollte NIEMALS Passwörter im Browser speichern.
Na jetzt springen wir wirklich durch alles einmal durch. Auch hier: Es ist sicherlich sinnvoll, Javascript im Browser mit Vorsicht zu genießen. Ich habe JS auch per default deaktiviert, allerdings nutze ich umatrix. Aber das ist Geschmackssache. Trotzdem solltest du diffenzieren. Cookies sind ein Datenschutzproblem, Javascript ist in erster Linie auch eines, aber wird auch echter Schadcode, wenn er denn den Browser überlistet, i.d.R. über den Javascript-Interpreter eingeschleust.
Und ich würde auch sämtliche Software von Google, auch sämtliche "Anbieter"-E-Mail-Accounts nicht verwenden (z. B. GMX, Apple, usw...) und auch kein Telegram, Facebook, etc... Denn die NSA hat Befugnisse, auf deine Daten zuzugreifen, falls sie wollen. Das heißt, sie wissen alles über dich, wenn sie nur wollen. Deswegen würde ich mir in Zukunft ein Librem 5 Phone kaufen, wenn es im April 2019 rauskommt. Und einen eigenen Server für deine E-Mails einrichten (z. B. einen vserver).
Prinzipiell sinnvolle Hinweise.
unbuntuS12 schrieb:
Aber anfällig heißt hier nur, dass der Download durchgeführt wird. Das ist ja erstmal nix Wildes. Spannend wird es, wenn Code auch ausgeführt wird. Und da geht es nun einmal wieder darum, dass dieser Schadcode, der dem Download folgt, für ein Zielsystem entworfen sein muss. Natürlich könnte man Schadcode für Mac, Linux und Windows schreiben, aber der Aufwand dürfte sich ungefähr die Waage halten. Wenn ich also mit 1/3 des Aufwands 95% der potenziellen Opfer abdecken kann, dann spare ich mir die anderen.
Nein, nicht unbedingt. Auch JavaScript in Browsern kann vertrauliche Informationen an irgendwelche Server weiterleiten. Und auch PDF-Dateien können weitere Anwendungen ausführen, die einen Einbruch möglich machen.
Ja, das ist das, was ich mit dem Datenschutzproblem meinte. PDF-Dateien können hingegen nicht so einfach weitere Anwendungen ausführen. Aber Lücken in den Viewern könnne u.U. ausgenutzt werden.