ralphi: verschlüsseln – aber wie?

Hallo Leute,

Es geht um den kleinen Raspi Debian-Server auf SD-Card. Ich möchte die SD-Card gerne vor Veränderung und Kopie schützen. Ist es möglich einzelne Verzeichnisse zu schützen (verschlüsseln)?

Vorgestellt hätte ich mir

  • das Include Verzeichnis, wie in dem im eigenen Verzeichnis liegt.
  • Die MySQL DB’s unter /var/lib/mysql

Ich hab bis jetzt noch nichts bewusst verschlüsselt und hab keine Ahnung wie man vorgeht und

  • ob ein Backup noch fuzt?
  • MySQL noch zugreifen kann?
  • ob ich mit SSH noch zugriff habe?

Kennt jemand ein gutes Tutorial dazu?

Viele Grüße aus LA

--
ralphi
  1. Moin Moin!

    Es geht um den kleinen Raspi Debian-Server auf SD-Card. Ich möchte die SD-Card gerne vor Veränderung

    SD-Karten haben einen Schreibschutzschieber, rein mechanisch wie bei 3,5-Zoll-Floppies. Den KANN bzw SOLLTE der SD-Card-Leser auswerten. Keine Ahnung, ob sich der Raspi darum kümmert.

    und Kopie schützen.

    Wozu?

    Warum packst Du den Raspi nicht einfach in ein Gehäuse und machst ein Schloß davor?

    Ist es möglich einzelne Verzeichnisse zu schützen (verschlüsseln)?

    Das hängt vom Betriebssystem ab. Linux kann z.B. verschlüsselte Container-Dateien in einem Verzeichnis mounten.

    Vorgestellt hätte ich mir

    • das Include Verzeichnis, wie in dem im eigenen Verzeichnis liegt.
    • Die MySQL DB’s unter /var/lib/mysql

    Läuft MySQL Read-only? Wenn nein, ist es sinnfrei, die SD-Karte vor Veränderungen schützen zu wollen, denn MySQL verändert die SD-Karte!

    Ich hab bis jetzt noch nichts bewusst verschlüsselt und hab keine Ahnung wie man vorgeht und

    • ob ein Backup noch fuzt?

    Was ist "fuzen"?

    • MySQL noch zugreifen kann?
    • ob ich mit SSH noch zugriff habe?

    So lange die verschlüsselten Countainer gemounted sind, hat jeder User entsprechend der Rechtestrukturen Zugriff.

    Dir ist bewußt, dass Verschlüsselung massiv Rechenzeit kosten kann? Ich würde das so einem schwachen Rechner wie dem Raspi nicht unbedingt zumuten.

    Kennt jemand ein gutes Tutorial dazu?

    Fang mal damit an, nach truecrypt zu suchen.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Hallo,

      SD-Karten haben einen Schreibschutzschieber, rein mechanisch wie bei 3,5-Zoll-Floppies. Den KANN bzw SOLLTE der SD-Card-Leser auswerten. Keine Ahnung, ob sich der Raspi darum kümmert.

      würde er vielleicht gern, kann er aber nicht. Der Kontakt im SD-Slot, der den Schreibschutzschieber ertasten würde, ist nämlich gar nicht angeschlossen, wie mir der Schaltplan verrät. Also formschön, wetterfest, völlig zweckfrei, und gegen Aufpreis auch entnehmbar.

      Aber ich habe hier noch einen etwas betagten USB-Stick rumliegen. Mit 128MB (ja, MB, nicht GB). Und der hat ebenfalls einen Schreibschutz-Schalter. Wenn der in der Lock-Position ist, verhält sich der Stick tatsächlich wie ein schreibgeschütztes Medium. Schade, dass sich das nicht durchgesetzt hat.

      Ich hab bis jetzt noch nichts bewusst verschlüsselt und hab keine Ahnung wie man vorgeht und

      • ob ein Backup noch fuzt? Was ist "fuzen"?

      Ich vermute, da fehlt ein 'r'. ;-)

      Dir ist bewußt, dass Verschlüsselung massiv Rechenzeit kosten kann? Ich würde das so einem schwachen Rechner wie dem Raspi nicht unbedingt zumuten.

      ACK. Vielleicht als proof of concept, um zu sehen, dass es im Prinzip möglich ist. Aber nicht ernsthaft.

      Ciao,  Martin

      --
      Auf jeden Menschen auf der ganzen Welt entfallen statistisch gesehen etwa 3000 Spinnen, wie Wissenschaftler jetzt festgestellt haben. Wer will meine haben? Denn ich will sie bstimmt nicht. Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Hi ihr zwei :-)

        Es geht um einen typischen Einsatz der Minirechner. Als Heizungssteuerung, Bestellsysteme etc. Hier ist eine DB unabdingbar und auch schützenswerte Daten drauf. Da ich den 'Raspi' (Raspberry Pi) auch außer Hand gebe, wäre es nicht schlecht, auch den php-Quellcode zu schützen, weil doch etwas Arbeitszeit drin steckt :-). Wenn jemand das 'Prog' (Programm) gut findet, sollte er wenigstens fragen und nicht einfach kopieren und anpassen :-|

        Läuft MySQL Read-only? Wenn nein, ist es sinnfrei, die SD-Karte vor Veränderungen schützen zu wollen, denn MySQL verändert die SD-Karte!

        Das ist eine der Fragen. Was muss man tun, dass MySQL und PHP noch schreiben kann?

        Fang mal damit an, nach truecrypt zu suchen.

        Zitat: "Dort erfolgt der Hinweis, dass die Entwicklung von TrueCrypt eingestellt wurde und TrueCrypt Sicherheitslücken enthalten könne. Außerdem wird nur noch die Version 7.2 von Truecrypt zum Download angeboten, welche zwar Daten entschlüsseln, aber nicht mehr verschlüsseln kann und vor ihrer eigenen Unsicherheit warnt."

        Was gibt's den sonst noch bekanntes zum verschlüsseln von Verzeichnissen?

        Viele Grüße aus LA

        --
        ralphi
        1. Hakuna matata!

          Da ich den 'Raspi' (Raspberry Pi) auch außer Hand gebe, wäre es nicht schlecht, auch den php-Quellcode zu schützen, weil doch etwas Arbeitszeit drin steckt :-).

          Schau dir mal den Zend Guard an. Das ist die gebräuchlichste Art PHP-Code vor Urheberrechtsverletzungen zu schützen.

          Wenn jemand das 'Prog' (Programm) gut findet, sollte er wenigstens fragen und nicht einfach kopieren und anpassen :-|

          Das solltest du mit einer entsprechenden Lizenz juristisch abriegeln können.

          --
          “All right, then, I'll go to hell.” – Huck Finn
          1. Hi,

            Schau dir mal den Zend Guard an. Das ist die gebräuchlichste Art PHP-Code vor Urheberrechtsverletzungen zu schützen.

            ..

            Das solltest du mit einer entsprechenden Lizenz juristisch abriegeln können.

            gute Ideen, bei meinen Projekten - zu teuer :-(

            Ich hab jetzt was gefunden . Werd ich morgen mal ausprobieren.

            Viele Grüße aus LA

            --
            ralphi
            1. Hi all,

              hab mir jetzt Luks eingerichtet. Das passt (denk ich) am besten, zu dem was ich bräuchte.

              Dazu hab ich eine 3. /dev/mmcblk0p3 mit parted eingerichtet. Die Partition nach der  Anleitung, bzw, Der verschlüsselt.

              Mir ein Keyfile generiert, was beim booten die Partition entschlüsselt.

              # dd if=/dev/urandom of=/myprogs/pass/key bs=4k count=1
              # cryptsetup luksAddKey /dev/mmcblk0p3 /myprogs/pass/key
              

              die /etc/default/cryptdisks und /etc/crypttab angepasst. Jetzt nur noch einen neuen VHOST für Apache und das MySQL Verzeichnis auf die neue Partition  geändert – fertig. Klappt prima :-)

              Stellt sich nur die Frage: Kann jemand mit dem (verschlüsselten) Key-Datei und der verschlüsselten Partition (ohne das der Raspi läuft), was anfangen?

              Viele Grüße aus LA

              --
              ralphi
              1. Moin Moin!

                Mir ein Keyfile generiert, was beim booten die Partition entschlüsselt.

                # dd if=/dev/urandom of=/myprogs/pass/key bs=4k count=1
                
                > # cryptsetup luksAddKey /dev/mmcblk0p3 /myprogs/pass/key
                
                

                die /etc/default/cryptdisks und /etc/crypttab angepasst. Jetzt nur noch einen neuen VHOST für Apache und das MySQL Verzeichnis auf die neue Partition  geändert – fertig. Klappt prima :-)

                Stellt sich nur die Frage: Kann jemand mit dem (verschlüsselten) Key-Datei und der verschlüsselten Partition (ohne das der Raspi läuft), was anfangen?

                Ich setze also mal den schwarzen Hut auf, klaue die physisch nicht gesicherte SD-Karte und stecke die in de Cardreader meines Linux-Rechners und ziehe mir per dd ein vollständiges Image der Karte. Standard-Partitionierung, Standard-Dateisysteme bis auf eine Partition. Irgendwann nach ca. 30 Sekunden weiß ich, wo das Root-Dateisystem liegt und freue mich, dass in /etc gleich steht,  wie die verschlüsselte Partition zu mounten ist. Keine Passwort-Abfrage hindert mich daran, den Schlüssel zu lesen und die verschlüsselte Partition zu mounten. Ich kann alle Dateien umd Daten so lesen, als stünden sie im Klartext auf der Karte.

                Und weil ich die Karte nur kurz zum Imagen heraus genommen habe, siehst Du im besten Fall nur eine unerwartet niedrige Uptime, wie nach einem kurzen Stromausfall. Die Analyse und ggf. das Einbauen von Malware mache ich in aller Ruhe in meinem Unterschlupf.

                Alexander

                --
                Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                1. Hi Alex,

                  Ich setze also mal den schwarzen Hut auf, klaue die physisch nicht gesicherte SD-Karte und stecke die in de Cardreader meines Linux-Rechners und ziehe mir per dd ein vollständiges Image der Karte. Standard-Partitionierung, Standard-Dateisysteme bis auf eine Partition. Irgendwann nach ca. 30 Sekunden weiß ich, wo das Root-Dateisystem liegt und freue mich, dass in /etc gleich steht,  wie die verschlüsselte Partition zu mounten ist. Keine Passwort-Abfrage hindert mich daran, den Schlüssel zu lesen und die verschlüsselte Partition zu mounten. Ich kann alle Dateien umd Daten so lesen, als stünden sie im Klartext auf der Karte.

                  Bin schon total verblendet. Daran hab ich gar nicht mehr gedacht, dass man den Raspi auch mit Monitor und keyboard starten kann :-| Liegt daran, dass ich nur noch mit SSH arbeite.

                  Denkbar wäre, dass ich den Raspi doch physisch einschließe und mir das Passwort online hole unter senden der MAC-Adresse. Was wäre den noch möglich? Demontieren aller Schnittstellen und einkleben der SD-Card?

                  Viele Grüße aus LA

                  --
                  ralphi
                  1. Moin Moin!

                    Daran hab ich gar nicht mehr gedacht, dass man den Raspi auch mit Monitor und keyboard starten kann :-| Liegt daran, dass ich nur noch mit SSH arbeite.

                    Monitor und Tastatur brauche ich für den schnellen Angriff gar nicht. Ich brauche nicht einmal irgendein Passwort. Netzstecker raus, SD-Karte raus, kopieren, wieder rein, Netzstecker wieder rein. Das dauert je nach SD-Karte schlimmstenfalls ein paar Minuten, und am Raspi muß ich außer Netzstecker und SD-Karte nichts anfassen.

                    Das ist die klassische "evil maid attack". Und wehe, Du stellst Dir jetzt vor, dass ich im Minikleid den Staubwedel schwinge! Im Ernst: Für den Angriff brauche ich gar nicht selbst loszuziehen. Ich bringe jemandem bei, den Raspi stromlos zu machen, die SD-Karte in eine mitgeschleppte magische Kiste (iPhone mit Cardreader, Laptop, Raspi mit Batterie, was auch immer) zu stecken, einen Knopf zu drücken und dann zu warten, bis die magische Kiste "fertig" anzeigt. Danach muß mein Helfer (m/w) in Minikleid oder Hausmeister-Kittel nur noch die SD-Karte wieder zurückstecken und den Raspi wieder mit Strom versorgen. Den Angriff kann ich einem sechsjährigen Kind beibringen.

                    Alles, was Du siehst, ist ein Stromausfall von 5 Minuten.

                    Denkbar wäre, dass ich den Raspi doch physisch einschließe

                    Das solltest Du tun, wenn Du meinst, die Daten auf dem System seien wertvoll. Das ist Schritt 1. Danach folgt der Schutz gegen Angriffe aus dem Netz.

                    und mir das Passwort online hole

                    Wie sicherst Du das ab? Setzt Du verschlüsselte Kommunikation ein oder läßt Du das Passwort im Klartext über die Leitung laufen? Ich rate mal: HTTPS oder SSH, meinetwegen auch ein VPN. Da kommen dann gleich zwei nächste Fragen: Wie stellt der Raspi sicher, dass er mit dem Passwort-Server kommuniziert und nicht mit einem Fake-Server oder einem Proxy unter meiner Kontrolle? Das kann eigentlich nur mit Zertifikaten und Pinning funktionieren. Und wie stellt der Passwort-Server sicher, dass er wirklich mit dem Raspi kommuniziert und nicht mit einem Rechner unter meiner Kontrolle, der nur einen Deiner Raspis simuliert? Ich rate mal: Client-Zertifikate.

                    Und genau an diesem Punkt kommt die Nummer mit der Henne und dem Ei. Die Evil Maid Attack erlaubt mir, die Client-Zertifikate zu kopieren. Du brauchst also einen Passwort-Schutz für die Client-Zertifikate. Wo holst Du das Passwort für die Zertifikate her? Online über eine gesicherte Verbindung? Die braucht wieder ein Passwort ...

                    Was machst Du, wenn der Raspi sich nicht mit dem Passwort-Server verbinden kann? Kein Passwort, keine verschlüsselte Partition. Störungs-LED an und warten, bis der Netzzugang wieder funktioniert. So lange ist der Raspi unbenutzbar.

                    unter senden der MAC-Adresse.

                    Die MAC-Adresse hat 48 Bit, die ersten 24 davon sind durch die OUI für alle Raspis vermutlich gleich bzw. es gibt nur einige wenige OUIs. Bleiben 24 Bit, die den Raspi halbwegs eindeutig identifizieren. Eine aus 16,7 Mio Möglichkeiten. Nicht schlecht, aber auch nicht besonders gut. Die Rate-Chance ist ungefähr so gut wie ein 6er im Lotto. Lotto spielt man 1x in der Woche, Hardcore-Spieler vielleicht 10 Scheine parallel. Und fast jede Woche gibt es einen 6er-Gewinner. Computer können wesentlich öfter als 1x je Woche Zahlen raten, und auch mehrere Zahlen parallel raten.

                    Deswegen ist es auch eher ungeschickt, die MAC-Adresse als Grundlage für das Passwort zu benutzen. Außerdem muß der Algorithmus für das Berechnen eines Passworts aus der MAC-Adresse mehr oder weniger im Klartext (Script, compilierter Code) auf dem nicht verschlüsselten Bereich der SD-Karte liegen. Den kann ich entweder analysieren oder stumpf mit 16,7 Mio möglichen MAC-Adressen füttern und das jeweils berechnete Passwort ausprobieren. Dagegen hilft nur, möglichst aufwendig und schwer parallelisierbar das Passwort zu berechnen, so dass ich auch mit vielen Rechnern wirklich alle Kombinationen aufwendig komplett durchrechnen muß, ohne mathematische Abkürzungen nehmen zu können.

                    Was machst Du, wenn Du einen defekten Raspi tauschst? Verpaßt Du dem zwingend eine neue SD-Karte und einen neuen Zugang zum Passwort-Server? Oder fängst Du an, die MAC-Adresse des neuen Raspis auf die des alten zu ändern? Ja, das geht. Der LAN9512 von Microchip, der auf dem Raspi sitzt, kann die MAC-Adresse wahlweise aus einem daran angeschlossenen EEPROM lesen oder vom Host zugeteilt bekommen. So weit ich das überblicke, hat der LAN9512 auf dem Raspi kein eigenes EEPROM. Also kommt die MAC-Adresse aus der CPU in den LAN9512, z.B. über die config.txt.

                    Das bedeutet auch, dass ich notfalls massenhat Raspis mit identischen MAC-Adressen produzieren kann, damit sie alle die selbe Kennung benutzen - nämlich die von dem Raspi, dessen SD-Karte ich kopiert habe.

                    Klar, pro Netzwerk funktioniert dann immer nur einer der Raspis, aber das könnte schon reichen. Es reicht mir auf jeden Fall, wenn ich einmal das Passwort für die verschlüsselte Partition in die Finger bekomme. Dann stricke ich das kopierte System so um, dass es unverschlüsselt arbeitet oder mit einer Verschlüsselung meiner Wahl, mit meinem Passwort. Und dann kann ich auch wieder kollisionsfreie MAC-Adressen verteilen.

                    Was wäre den noch möglich?

                    Vieles. Angefangen damit, dass Du beim Systemstart das Passwort für den Key der verschlüsselten Partition abfragst. Die Leute von der c't haben das mal durchexerziert, leider ein kostenpflichtiger Artikel. TLDP hat noch das Encrypted-Root-Filesystem-HOWTO, das hat allerdings schon etwas Staub angesetzt.

                    Der Witz an einem verschlüsselten Root-Dateisystem ist, dass es ohne Kenntnis des Schlüssels gar nicht als solches zu erkennen ist. Auch kann ich mir nicht einfach die Schlüssel für andere Dateisysteme so leicht abgreifen wie in Deinem aktuellen Aufbau.

                    Im Disk-Encryption-HOWTO ist außerdem noch eine kurze Übersicht über Angriffsszenarien und Abwehrmaßnahmen, auch schon etwas angestaubt.

                    Demontieren aller Schnittstellen

                    Wie sollte das helfen? Du brauchst I/O-Pins, um die Heizung zu steuern oder was auch immer Du vor hast. Du brauchst einen LAN-Port für Deine Online-Aktivierung. Du brauchst einen USB-Port für eine Standard-Tastatur, um beim Booten das Passwort abzufragen. Alternativ benutzt Du ein paar I/O-Pins für eine Tastaturmatrix.

                    Ausgelötete Pins helfen übrigens nicht gegen Angriffe. Ein paar Prüfspitzen und ich komme wieder an die Anschlüsse heran. Notfalls löte ich einfach neue Pins und Buchsen ein.

                    und einkleben der SD-Card?

                    Was machst Du, wenn Raspi ODER SD-Karte ausfallen? Beides gleichzeitig tauschen? Wie liest Du die noch benötigten Daten auf der funktionierenden SD-Karte von einem defekten Raspi aus? Wenn Du Lösungsmittel einsetzen kannst, um den Kleber loszuwerden, kann ich das auch.

                    Vergießen in Beton könnte helfen. Stahlfaß drum, ab in den Salzstock und schon kommt keiner mehr an Deine SD-Karte ran. Wobei - so ganz funktioniert das denn doch nicht.

                    Die große Frage ist, immer noch mit dem schwarzen Hut auf dem Kopf: LOHNT SICH DAS? Sprich: Was hast Du auf der SD-Karte?

                    Irgendeine selbstgestrickte Ergänzung zu irgendeiner antiken Heizung, die nur für Deine spezielle Heizung und Dein Haus wirklich funktioniert? Kein lohnendes Ziel, sorry.

                    Nacktbilder von ... - ach vergessen wir's. Die sind schon alle im Netz rum, bis auf die, die nun wirklich keiner sehen will.

                    Aktuelle Kreditkartendaten, so ab 1 Mio aufwärts, mit allen Zugangsdaten, Adressen usw.? Oh ja, die sind etwas wert. Oder Konstruktionsdaten für aktuelle, teure, komplexe Technik? Auch gerne genommen. Nur wird man so etwas kaum auf einem Raspi ablegen.

                    Login + Passwort für größere Mengen Benutzer-Accounts, z.B. bei Fratzenbuch, E-Bucht oder anderen großen Plattformen? Auch interessant. Auch sowas liegt selten auf Raspis.

                    Medizinische Befunde? Sagen wir mal, die Ergebnisse der HIV- und Syphilis-Tests von A- und B-Promis? Auch die lassen sich vergolden. Die von Hein Meier aus Hintertupfingen eher nicht. Es sei denn, ich hätte einen wirklich ernstaften Hass auf Hein Meier aus Hintertupfingen UND er wäre bei wenigstens einem der Tests positiv. Oder aber ich hätte ein Interesse daran, das untersuchende Labor bloßzustellen.

                    Alexander

                    --
                    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                    1. Hi Alex,

                      die MAC kann man schon auslesen und müssten Unikate vom Schnittstellenbaustein sein ip link show dev eth0 | grep -oE 'link/ether ([a-f0-9]{2}:){5}[a-f0-9]{2}' | cut -d' ' -f2

                      Nun, bei dem Bestellsystem handelt es sich nur um einen 'intelligenten' Pos-Drucker. Jeder der so einen Drucker ansteuern kann, kann so was programmieren. Hier geht's eigentlich darum, dass man nicht einfach schnell kopiert, statt selber das Handshake mit dem Webserver programmiert. Die Verbindung erfolgt hier über UMTS.

                      Bei der Heizungssteuerung: Mir ist aufgefallen, das keine Fußbodenheizungssteuerung einigermaßen intelligent ist. Die steuern alle nur zu warm -> aus, zu kalt -> ein :-| Keiner misst die Raumdynamik und ermittelt so die Schaltintervalle, um zu einem bestimmten Zeitpunkt eine konstante Temperatur zu haben. Oder gibt Hinweise auf die dazu erforderliche Vorlauftemperatur und Grundschaltzeiten der Heizung. Hier ist es auch wieder so, dass jeder der in Mathe und Physik aufgepasst hat, den Algorithmus selber schreiben kann. Aber auch hier, kopieren ist schneller als selber schreiben.

                      Die Sicherheit, sollte nur so weit gehen, dass Leute die sie knacken können, solche Progs selbst besser und schneller aus dem Ärmel schütteln, als ich. :-)

                      Viele Grüße aus LA

                      --
                      ralphi
                      1. Hallo ralphi,

                        Die Sicherheit, sollte nur so weit gehen, dass Leute die sie knacken können, solche Progs selbst besser und schneller aus dem Ärmel schütteln, als ich. :-)

                        Scripte wirst du nur schwer schützen können. Nimm eine Compilersprache, z.B. C, und koppel die Programme an die MAC-Adresse.

                        Gruß, Jürgen

                        1. Moin Moin!

                          Die Sicherheit, sollte nur so weit gehen, dass Leute die sie knacken können, solche Progs selbst besser und schneller aus dem Ärmel schütteln, als ich. :-)

                          Scripte wirst du nur schwer schützen können.

                          Richtig. Scripte schützt man per Vertrag, nicht mit Technik.

                          Nimm eine Compilersprache, z.B. C,

                          Das hilft nur gegen unmotivierte Angreifer. Für compilierten Code gibt es in aller Regel gute Decompiler. IDA frißt neben x86 und x64 auch ARM-Code in zahlreichen Varianten. Sprachspezifische Decompiler, z.B. für Java oder Python (ja, man kann Python compilieren), erzeugen mittlerweile Quelltext, der fast wie das Original aussieht. Manchmal reicht es sogar schon aus, das Compilat unter strace laufen zu lassen, um die wichtigsten Informationen abzugreifen. Die Kopplung an die MAC-Adresse würde so schon auffallen.

                          und koppel die Programme an die MAC-Adresse.

                          Das hilft gar nicht. Die MAC-Adresse des Raspi ist frei programmierbar und kann im selben Netzsegment problemlos ermittelt werden, entweder mit einem aktiven Scan (z.B. nmap) oder durch Mitschneiden der Kommunikation des angegriffenen Raspi (z.B. Wireshark)

                          Alexander

                          --
                          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                          1. Hallo Alexander,

                            ... Die Kopplung an die MAC-Adresse würde so schon auffallen.

                            die sollte natürlich nicht direkt abgefragt werden, sondern über eine "komplizierte Berechnung".

                            und koppel die Programme an die MAC-Adresse.

                            Das hilft gar nicht. Die MAC-Adresse des Raspi ist frei programmierbar ...

                            das wusste ich nicht. Dann muss irgendetwas anderes Unveränderbares abgefragt werden, wenn es das denn gibt.

                            Gruß, Jürgen

                            1. Moin Moin!

                              Hallo Alexander,

                              ... Die Kopplung an die MAC-Adresse würde so schon auffallen.

                              die sollte natürlich nicht direkt abgefragt werden, sondern über eine "komplizierte Berechnung".

                              Das geht nicht.

                              Nehmen wir mal an, Du wärest richtig fies und würdest den relevanten Programmcode mit der besten zur Verfügung stehenden Verschlüsselung verschlüsseln. Zum Entschlüsseln gibt es eine Funktion int decrypt_and_run(void * key, char * key_password, void * encrypted_code, void * code_arguments), wobei key ein Passwort-geschützter Schlüssel aus einer Datei oder einer eincompilierten Konstante ist. Um aus der MAC-Adresse das Passwort für den Schlüssel zu erzeugen, gibt es eine Funktion int generate_password(char * password, size_t password_size, struct sockaddr mac_addr, void * license_key), die zusammen mit einem Lizenzkey (oder wie auch immer man das nennen möchte) ein Passwort für die Freigabe des Schlüssels erzeugt.

                              Das führt letztlich in etwa zu folgendem Code:

                              
                              struct ifreq ifr;
                              char password[PWSIZE];
                              int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
                              // ...
                              ioctl(sock, SIOCGIFHWADDR, &ifr);
                              generate_password(password,sizeof(password),ifr.ifr_hwaddr.sa_data,license_key);
                              decrypt_and_run(key,password,codeblock,argpointer);
                              
                              

                              Der Aufruf ioctl(sock, SIOCGIFHWADDR, &ifr) liest die MAC-Adresse über den Kernel aus der Hardware aus, und zwar IMMER in einem Stück. Das kannst Du nicht verhindern oder anders machen. Wenn Du externe Tools wie ifconfig aufrufst, endet das auch in exakt diesem ioctl.

                              Und im "echten Leben" sieht das so aus:

                              get-mac-address ist der Code von stackoverflow, ergänzt um ein paar printf-Statements.

                              [code]> strace -o /tmp/trace get-mac-addresses Found interface lo: MAC Address is 00:00:00:00:00:00 Found interface eth0: MAC Address is 38:EA:A7:A1:0F:2A Found interface vboxnet0: MAC Address is 0A:00:27:00:00:00

                              grep SIOCGIFHWADDR /tmp/trace

                              ioctl(3, SIOCGIFHWADDR, {ifr_name="lo", ifr_hwaddr=00:00:00:00:00:00}) = 0 ioctl(3, SIOCGIFHWADDR, {ifr_name="eth0", ifr_hwaddr=38:ea:a7:a1:0f:2a}) = 0 ioctl(3, SIOCGIFHWADDR, {ifr_name="vboxnet0", ifr_hwaddr=0a:00:27:00:00:00}) = 0

                              [/code]

                              und koppel die Programme an die MAC-Adresse.

                              Das hilft gar nicht. Die MAC-Adresse des Raspi ist frei programmierbar ...

                              das wusste ich nicht. Dann muss irgendetwas anderes Unveränderbares abgefragt werden, wenn es das denn gibt.

                              Du brauchst eine individuelle Kennung für jeden einzelnen Raspi, die nicht verändert werden kann. Die CPU hat eine ID, auslesbar über /proc/cpuinfo. Die scheint fest in der CPU einprogrammiert zu sein. Das Problem bleibt aber das selbe: Du mußt die ID auslesen, in einem Stück, und genau das kann ich abfangen und Dir eine andere ID unterschieben.

                              Ob Du DANACH if (get_code()==expected_code) oder hardcorecrypto(get_code(),...) schreibst, ist egal. Da ist das Kind schon in den Brunnen gefallen.

                              Wenn Du Programmcode ernsthaft schützen willst, kommst Du kaum darum herum, einen Hardware-Dongle einzusetzen. Der Dongle berechnet aus einem Stückchen Daten aus Deinem Programm und einem manipulationssicher im Dongle aufbewartem Geheimnis eine Antwort, die wiederum nutzt Dein Programm, um ein benötigtes Stücken Code freizugeben. Schlägt das fehl, bricht das Programm ab bzw. verlangt nach dem Dongle.

                              Auch Dongles sind nicht perfekt und können umgangen werden, aber sie sind eine deutlich größere Hürde als Gebastel mit CPU-ID oder MAC-Adresse. Denn der Dongle gibt das gespeicherte Geheimnis idealerweise gar nicht preis. CPU-ID und insbesondere die MAC-Adresse sind nicht einmal ansatzweise geheim.

                              Alexander

                              --
                              Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                          2. Das hilft gar nicht. Die MAC-Adresse des Raspi ist frei programmierbar und kann im selben Netzsegment problemlos ermittelt werden, entweder mit einem aktiven Scan (z.B. nmap) oder durch Mitschneiden der Kommunikation des angegriffenen Raspi (z.B. Wireshark)

                            Man muss ja nicht ubedingt die MAC hernehmen. Was ist eigentlich die Serialnumber unter: cat /proc/cpuinfo

                            Viele Grüße aus LA

                            --
                            ralphi
                            1. Moin Moin!

                              Man muss ja nicht ubedingt die MAC hernehmen. Was ist eigentlich die Serialnumber unter: cat /proc/cpuinfo

                              Das hab ich in diesem Thread .

                              Alexander

                              --
                              Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                        2. Hi Jürgen,

                          Scripte wirst du nur schwer schützen können. Nimm eine Compilersprache, z.B. C, und koppel die Programme an die MAC-Adresse.

                          Das ist mein Hauptproblem in der Progger-Welt. Ich kann nicht C programmieren. Gibt es einen guten Crashkurs online? Vielleicht einer, der auf PHP, VB6, Turbopascal oder JS aufbaut?

                          Viele Grüße aus LA

                          --
                          ralphi
                          1. Moin Moin!

                            Das ist mein Hauptproblem in der Progger-Welt. Ich kann nicht C programmieren. Gibt es einen guten Crashkurs online?

                            Klar:

                            void main(void)
                            {
                                    int *p=0;
                                    *p=42;
                            }
                            

                            SCNR

                            Hast Du schon mal Google bemüht?

                            Vielleicht einer, der auf PHP, VB6, Turbopascal oder JS aufbaut?

                            Wenig sinnvoll. C tickt deutlich anders als PHP, VB oder JS. Die Syntax kannst Du teilweise von JS übernehmen. Turbo Pascal hat kaum etwas mit C zu tun. Aber Pascal kannst Du auch auf Unixen nutzen. Du kannst ein Tool namens p2c installieren, dass aus lesbarem Pascal-Code verdaubaren Code für den C-Compiler erzeugt. Darüber läßt Du den C-Compiler und den Linker laufen und hast ein in Pascal geschriebenes Executable. Je nach p2c-Version wird sogar Borlands Turbo-Dialekt unterstützt.

                            Alexander

                            --
                            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                            1. Hi,

                              Gibt es einen guten Crashkurs online?

                              Klar:

                              void main(void)
                              
                              > {
                              >         int *p=0;
                              >         *p=42;
                              > }
                              
                              

                              SCNR

                              Hab jetzt ne Seite gefunden "C für Anfänger" jetzt weiß ich wenigsten was das void so macht und was die komischen Funktionen sind. Die Geschichte mit dem void ist gar keine Funktion, sondern eine 'Procedere' :-) (wie bei VB) ohne Rückgabe. und die Funktionen sind Prototypen. Blöd dass man Zeichen nicht einfach mit + oder . zusammensetzen kann. Ständig zu kucken, wo welcher Speicherbereich anfängt ist ja genauso schlimm wie mit Assembler :-| Also mit der Zeigerrumschieberei, gerade bei Arrays (mag ja sehr schnell sein) ist ziemlich umständlich. Gibt's eigentlich so was wie php.net für C?

                              Viele Grüße aus LA

                              --
                              ralphi
                              1. Hallo,

                                Hab jetzt ne Seite gefunden "C für Anfänger"

                                C ist im Grunde genommen sehr einfach, bietet aber viel Flexibilität und teilweise überraschende Möglichkeiten. Genau da liegt vielleicht auch der Knackpunkt: Diese Flexibilität und Vielseitigkeit lässt viel Raum für mögliche Fehler.

                                jetzt weiß ich wenigsten was das void so macht

                                Eigentlich gar nichts, außer den Compiler zu beschwichtigen. ;-)

                                und was die komischen Funktionen sind.

                                Welche komischen Funktionen?

                                Die Geschichte mit dem void ist gar keine Funktion, sondern eine 'Procedere' :-) (wie bei VB) ohne Rückgabe.

                                Formal betrachtet macht C keinen Unterschied zwischen Funktionen und Prozeduren (im Gegensatz z.B. zu Pascal). Jedes Unterprogramm ist eine Funktion. Falls eine Funktion "ausnahmsweise" mal so angelegt sein soll, dass sie keinen Wert zurückliefert, kennzeichnet man den Ergebnistyp der Funktion einfach als void, also "nichts". Das Schlüsselwort void kann auch in der Klammer einer Funktions-Deklaration stehen, die keine Parameter entgegennimmt; im Gegensatz zum Ergebnistyp ist es hier aber optional, die Klammer kann auch einfach leer sein.

                                Und schließlich kann void auch bei einem Zeigertyp verwendet werden, so ist ein void* zwar kein "Zeiger auf nichts", aber ein Zeiger auf "nichts Bestimmtes".

                                und die Funktionen sind Prototypen.

                                Nein. Ein Prototyp ist eine Art Vorab-Deklaration, mit der zunächst nur der Funktionskopf, also die Schnittstelle, bekanntgemacht wird. Der Funktionsrumpf bleibt vorerst weg, die Deklaration wird einfach mit einem Semikolon abgeschlossen, ohne dass eine geschweifte Klammer und der Anweisungsblock der Funktion folgt. Das da wäre ein typischer Prototyp:

                                int strlen(char *);

                                Das sagt dem Compiler vorab: Es gibt irgendwo eine Funktion mit dem Namen strlen, die einen Parameter vom Typ char* entgegennimmt und ein Ergebnis vom Typ int liefert.

                                Sinnvoll ist das vor allem, wenn man Funktionen in einem separaten Modul hat, deren Aufrufschnittstelle aber dem übergeordneten Programmcode bekanntmachen will.

                                Blöd dass man Zeichen nicht einfach mit + oder . zusammensetzen kann. Ständig zu kucken, wo welcher Speicherbereich anfängt ist ja genauso schlimm wie mit Assembler :-| Also mit der Zeigerrumschieberei, gerade bei Arrays (mag ja sehr schnell sein) ist ziemlich umständlich.

                                Ja, Stringverarbeitung in C ist gewöhnungsbedürftig und fehleranfällig. AFAIK ist C++ mit der String-Klasse da wesentlich einfacher zu handhaben ...

                                Gibt's eigentlich so was wie php.net für C?

                                Du meinst so'ne richtig ausführliche Online-Referenz? Bestimmt. Ist mir aber leider keine bekannt.

                                Ciao,  Martin

                                --
                                Vater Staat bringt uns noch alle unter Mutter Erde. Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                      2. Moin Moin!

                        Hi Alex,

                        die MAC kann man schon auslesen

                        Das hat niemand bestritten. Das Problem ist nicht das auslesen, sondern die Eindeutigkeit.

                        und müssten Unikate vom Schnittstellenbaustein sein ip link show dev eth0 | grep -oE 'link/ether ([a-f0-9]{2}:){5}[a-f0-9]{2}' | cut -d' ' -f2

                        Rate mal, was ip macht. Richtig, es fragt den Kernel. Der fragt den Treiber, der diskutiert das mit der Hardware aus. Nur: Woher kommt die MAC-Adresse in der Hardware? In den guten alten Zeiten hat man die tatsächlich in die Hardware gebrannt. Heute kommt die aus einem EEPROM, das ab Werk programmiert wurde, oder aber die Kombination ROM/BIOS + Bootloader + Betriebssystem schreibt eine irgendwo anders(!) gespeicherte MAC-Adresse beim Starten in die Hardware. Genau das passiert beim Raspi. Schreibe ich genau nach Anleitung smsc95xx.macaddr=B8:AA:BC:DE:F0:12 in die config.txt auf der SD-Karte, kopiere die 1000x, und stecke die in 1000 Raspis, haben alle 1000 Raspis die selbe MAC-Adresse.

                        Dein Stückchen Shell-Code bemüht drei verschiedene Programme, nur um die MAC-Adresse zu ermitteln. Schlimmer noch: Du benutzt keine absoluten Pfade für ip, grep und cut. Das macht Angriffe extrem einfach. Dabei reichen ein paar ioctl()-Aufrufe aus, um die MAC-Adresse zu ermitteln, viel schneller, viel weniger Speicherbedarf, und ohne externe, angreifbare Programme. Wenn Du in PHP bastelst, kannst Du Dir minimal grep und cut komplett sparen und die Ausgabe von ip link show dev eth0 in PHP zerlegen.

                        Nur hilft das alles nichts, weil auf dem Raspi die MAC-Adresse - wie bei allen anderen Systemen auch - zwar eindeutig sein soll, aber eben nicht eindeutig ist. Die MAC-Adresse kann nachträglich frei geändert werden. Jeder Schutz, der auf der MAC-Adresse aufbaut, kann so ausgehebelt werden.

                        Alexander

                        --
                        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                        1. .. Heute kommt die aus einem EEPROM, das ab Werk programmiert wurde, oder aber die Kombination ROM/BIOS + Bootloader + Betriebssystem schreibt eine irgendwo anders(!) gespeicherte MAC-Adresse beim Starten in die Hardware. Genau das passiert beim Raspi. Schreibe ich genau nach Anleitung smsc95xx.macaddr=B8:AA:BC:DE:F0:12 in die config.txt auf der SD-Karte, kopiere die 1000x, und stecke die in 1000 Raspis, haben alle 1000 Raspis die selbe MAC-Adresse.

                          ich dachte nicht, dass das so einfach geht :-|. Kannte das eigentlich nur von µC Boards. Bei Bananien ist es wohl die uEnv.txt, die zu ändern ist ?

                          Viele Grüße aus LA

                          --
                          ralphi
                      3. Hallo,

                        mal ganz unabhängig von der Thematik "Programmcode schützen/verbergen" ...

                        Mir ist aufgefallen, das keine Fußbodenheizungssteuerung einigermaßen intelligent ist. Die steuern alle nur zu warm -> aus, zu kalt -> ein :-|

                        So arbeiten sehr viele einfach Systeme, die eine Temperatur halbwegs konstant halten wollen - etwa die Warmhalteplatte einer Kaffeemaschine, eine handelsübliche Herdplatte, eine einfache Lötstation.

                        Raumheizungen sind aber meistens kontinuierlich einstellbar, d.h. nicht nur an/aus, sondern meistens haben sie ein analog arbeitendes Ventil, das auch mal 23% oder 85% Durchflussmenge (d.h. Leistung) einsteuern kann. Auch bei der Fußbodenheizung kenn ich das so.

                        Keiner misst die Raumdynamik und ermittelt so die Schaltintervalle, um zu einem bestimmten Zeitpunkt eine konstante Temperatur zu haben. Oder gibt Hinweise auf die dazu erforderliche Vorlauftemperatur und Grundschaltzeiten der Heizung.

                        Eines der großen Probleme beim komfortablen Beheizen eines Raums ist vor allem auch die Temperaturverteilung. In der Nähe von Fenstern oder Türen ist die Temperatur meist etwas niedriger, weil Wärme nach draußen flöten geht; auch in der Vertikalen hat man mitunter ganz merkwürdige Temperaturprofile. Ein intelligentes Heizsystem müsste also mehrere im Raum verteilte Sensoren und mehrere getrennt steuerbare Wärmequellen haben, um daraus dann auch die optimale räumliche Verteilung der Heizleistung berechnen zu können. Vom Zeitverhalten, das du schon ansprichst, ganz zu schweigen.

                        Und wenn man Wärmequellen hat, die tatsächlich nur an/aus kennen, etwa eine Heizwendel mit einem einfachen Relais, dann kann man sie dennoch quasi-kontinuierlich ansteuern, etwa mit einer PWM mit sehr niedriger Frequenz, weil Wärme meist eine sehr träge Sache ist.

                        Eine gute, wirklich komfortable Lösung braucht also beides: Eine sinnvoll konzipierte Anlage, und eine gut durchdachte und realisierte Steuerung.

                        Dein Heizungs-Raspi ist sicher noch nicht optimal; ich verstehe aber durchaus, dass du die Energie, die du in Form von Hirnschmalz da reingesteckt hast, nicht wahllos verschenken willst.

                        So long,  Martin

                        --
                        Auch mit eckigen Radios kann man Rundfunk hören. Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                    2. Vieles. Angefangen damit, dass Du beim Systemstart das Passwort für den Key der verschlüsselten Partition abfragst.

                      Nachtrag: LUKS-Setup auf dem Raspi, komplett verschlüsselt bis auf die für den Bootloader notwendige Partiton. Passwort muß via SSH in der initrd eingegeben werden. (Via Slashdot)

                      Alexander

                      --
                      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        2. Moin Moin!

          Es geht um einen typischen Einsatz der Minirechner. Als Heizungssteuerung, Bestellsysteme etc. Hier ist eine DB unabdingbar und auch schützenswerte Daten drauf.

          Datenschutz, hmm? Dann fang mal mit der physischen Sicherung an: Gehäuse um den Raspi, Gehäuse gegen unbefugten Zugriff sichern und/oder Raum gegen unbefugten Zugriff sichern.

          Mein letzter Arbeitgeber hat einiges an Daten, die unter das Datenschutzgesetz fallen, entsprechend gesichert ist die Hardware: Eingesperrt in alarmgesicherte Räume, einbruchhemmende Wände und Türen, extra kleine bzw. gar keine Fenster im Raum, immer abgeschlossen, Zutrittskontrolle, Protokoll wer wann warum im Raum war, elektromagnetische Abschirmung, etc etc.

          Da ich den 'Raspi' (Raspberry Pi) auch außer Hand gebe, wäre es nicht schlecht, auch den php-Quellcode zu schützen, weil doch etwas Arbeitszeit drin steckt :-). Wenn jemand das 'Prog' (Programm) gut findet,

          Wenn die Software so aussieht wie Deine Postings, ... - ach, vergessen wir das und tun einfach mal so, als wäre es cool, W000rds zu verstüm udn zoo färvR3mdn. 2 7334 4u?

          sollte er wenigstens fragen

          Lustige Idee. Nicht mal die GPL v3 geht so weit.

          Tip: Beerware, Cardware

          und nicht einfach kopieren und anpassen

          Das ist die Idee hinter Open Source. Ich finde etwas, kopiere es und passe es an meine Bedürfnisse an. Idealerweise gebe ich meine Änderungen zurück an den / die Entwickler, damit andere davon auch profitieren können UND die Änderungen in den nächsten Versionen gleich mit eingebaut sind.

          In wie weit ich veränderte Software weitergeben darf oder muß, regeln die Lizenzen. Die BSD-Leute sind da sehr freigibig, quasi mach was Du willst, so lange im Sourcecode und irgendwo in der Doku steht, dass Du bei uns geklaut hast. Die GPL-Leute zwingen Dich dazu, auch den von dir veränderten Sourcecode weiterzugeben. Oder Du schreibst stumpf "Public Domain" oben drauf und jeder darf kopieren und weiter verkaufen, wie es ihm Spaß macht. Oder Du sagst stumpf: "Meins, Finger weg." Das ist in Deutschland default (Urheberrecht).

          :-|

          Dann benutz eben keine Scripte oder verkauf das Zeug mit passenden Lizenzbedingungen. Dem Raspi ist es egal, welche Software drauf läuft. Bau einen großen binären Blob, den Du auf die SD-Karte schreibst, zu dem niemand außer Dir den Sourcecode hat, und laß den alles erledigen, was Du bislang an Linux, PHP und MySQL delegierst.

          Läuft MySQL Read-only? Wenn nein, ist es sinnfrei, die SD-Karte vor Veränderungen schützen zu wollen, denn MySQL verändert die SD-Karte! Das ist eine der Fragen. Was muss man tun, dass MySQL und PHP noch schreiben kann?

          Die SD-Karte nicht vor Veränderungen schützen.

          Du kannst natürlich auch das Ganze in zwei Teile teilen: Der Raspi bootet von der SD-Karte, mountet die als /, aber schreibgeschützt. Dazu kommt ein USB-Stick, auf dem legst Du die Verzeichnisse /home, /var/log, /var/lib/mysql an und mountest den unter /stick. Im Root-Dateisystem ist /home ein Symlink auf /stick/home, /var/log ein Symlink auf /stick/var/log, /var/lib/mysql ein Symlink auf /stick/var/lib/mysql. Entsprechend für weitere beschreibbare Verzeichnisse. /tmp und /var/tmp müssen schreibbar sein, enthalten aber i.d.R. kaum Daten und können quasi jederzeit weggebügelt werden. Deswegen nutzt man für /tmp und /var/tmp gerne eine RAMdisk, am einfachsten per tmpfs.

          Netter Nebeneffekt: Software-Update geht einfach durch Tausch der SD-Karte.

          USB-Sticks gibt's auch mit Hardware-Verschlüsselung und eigener Tastatur für den Schlüssel (viel Schrott und ein paar ernsthaft gut verschlüsselte), das schont den Raspi, macht den Boot-Vorgang aber etwas umständlich: Das System kann erst dann vollständig booten, wenn der Stick manuell freigeschaltet wurde.

          Linux kann auch mit einem verschlüsselten Root-Dateisystem arbeiten. Du mußt nur irgendwann einen Schlüssel angeben. Der liegt meistens Passwort-geschützt im Bootloader bzw. der initrd, und irgendwie muß das Passwort eingegeben werden, meist per Tastatur oder SSH. Wenn Du dann verhindest, dass man auf irgendeine Art und Weise im laufenden Betrieb an das Dateisystem kommt (kein SSH, kein FTP, kein Telnet, 100% abgedichteter Webserver, 100% abgedichtete Scripte) UND dass man die Karte offline in irgendeiner Linux-Kiste entschlüsselt bekommt, hast Du gewonnen.

          Du kannst Dich ja man an den alten Igel Thin Clients orientieren. Die Kisten booten Linux von einer als Harddisk angeschlossenen CF-Karte mit einem eigenen Bootloader und nutzen ein eigenes, Igel-spezifisches Dateisystem. Das ist nicht perfekt dicht, weil die Igel-Software den Zugriff auf das Dateisystem nicht komplett verhindert (es gibt eine lokale Shell), aber in einen Cardreader gesteckt kann man mit dem Igel-Dateisystem auf der CF-Karte nicht viel anfangen. Hätten die Igel-Leute zwischen ihr Dateisystem und die CF-Karte noch eine Verschlüsselungsebene gelegt und die lokale Shell abgeriegelt, gäbe es kaum eine Chance, irgendetwas vom Igel-Linux auszulesen oder zu verändern, egal ob online oder offline.

          Fang mal damit an, nach truecrypt zu suchen. Zitat: "Dort erfolgt der Hinweis, dass die Entwicklung von TrueCrypt eingestellt wurde und TrueCrypt Sicherheitslücken enthalten könne. Außerdem wird nur noch die Version 7.2 von Truecrypt zum Download angeboten, welche zwar Daten entschlüsseln, aber nicht mehr verschlüsseln kann und vor ihrer eigenen Unsicherheit warnt."

          Was gibt's den sonst noch bekanntes zum verschlüsseln von Verzeichnissen?

          Seufz

          Wikipedia TrueCrypt: "Auf TrueCrypt basierende oder kompatible Projekte: tcplay [...] VeraCrypt [...]" Der Artikel ist aus der  Kategorie:Festplattenverschlüsselung", die folgende weitere Software verlinkt:

          BestCrypt - Windows BoxCryptor - Windows CrossCrypt - Windows + Linux, nutzt Container, externes Programm DiskCryptor - Windows Dm-crypt - Linux, Teil des Kernels seit 2.6 ECryptfs - Linux, Teil des Kernels seit 2.6.19 Encrypting File System - Windows FileVault - MacOS X Free CompuSec - Windows FreeOTFE - Windows, Windows CE SafeGuard Easy - Windows

          Alexander

          --
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
      2. Mahlzeit,

        würde er vielleicht gern, kann er aber nicht. Der Kontakt im SD-Slot, der den Schreibschutzschieber ertasten würde, ist nämlich gar nicht angeschlossen, wie mir der Schaltplan verrät. Also formschön, wetterfest, völlig zweckfrei, und gegen Aufpreis auch entnehmbar.

        Würde auch keinen Sinn machen, bei einer System"festplatte" den Schreibschutz zu aktivieren ;)

        --
        eigentlich ist mir bewusst, dass ich hin und wieder einfach mal die Klappe halten sollte. Doch genau in den unpassendsten Momenten erwische ich mich dabei, wie ich dennoch etwas sage ...
        1. Moin Moin!

          würde er vielleicht gern, kann er aber nicht. Der Kontakt im SD-Slot, der den Schreibschutzschieber ertasten würde, ist nämlich gar nicht angeschlossen, wie mir der Schaltplan verrät. Also formschön, wetterfest, völlig zweckfrei, und gegen Aufpreis auch entnehmbar.

          Würde auch keinen Sinn machen, bei einer System"festplatte" den Schreibschutz zu aktivieren ;)

          Doch, durchaus. Wenn Du nichts dauerhaft auf dem Systemmedium speichern willst oder garantieren willst, das niemand das System verändert, kann das sehr sinnvoll sein. /tmp, /var/tmp und ein paar andere Sachen packt man in Ramdisks, Home- und Datenverzeichnisse kommen, falls nötig, aus dem Netz oder von einem zweiten, beschreibbaren Medium. Typische Anwendungsfälle: Live-CD, Thin Client, Tor-Node, Firewall, Embedded System.

          Alexander

          --
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
          1. Mahlzeit,

            Doch, durchaus. Wenn Du nichts dauerhaft auf dem Systemmedium speichern willst oder garantieren willst, das niemand das System verändert, kann das sehr sinnvoll sein. /tmp, /var/tmp und ein paar andere Sachen packt man in Ramdisks, Home- und Datenverzeichnisse kommen, falls nötig, aus dem Netz oder von einem zweiten, beschreibbaren Medium. Typische Anwendungsfälle: Live-CD, Thin Client, Tor-Node, Firewall, Embedded System.

            Ja, mittlerweile hab ich auch gelernt, dass es grad für den Raspi ein Read-Only System gibt. Da muss ich meine Aussage komplett revidieren.

            --
            eigentlich ist mir bewusst, dass ich hin und wieder einfach mal die Klappe halten sollte. Doch genau in den unpassendsten Momenten erwische ich mich dabei, wie ich dennoch etwas sage ...