Speichersicherheit für verschlüsselte, sensible Daten

8

ich schreibe einen Server in C ++, der sichere Verbindungen behandelt, wo sensible Daten gesendet werden.

Das Ziel besteht darin, die Daten niemals in unverschlüsselter Form irgendwo außerhalb des Speichers zu speichern und sie auf einem definierten Speicherplatz im Speicher zu belassen (der überschrieben wird, nachdem er nicht mehr benötigt wird)

wird ein großer Teil des Speichers zugeordnet und verwendet, um die sensiblen Daten zu speichern, ausreichend sein und sicherstellen, dass es keine Datenlecks gibt?

    
n00b 20.03.2011, 18:28
quelle

4 Antworten

7

Aus dem Handbuch eines Tools, das Passwörter verarbeitet :

  

Es ist auch fraglich, ob mlock() eine geeignete Methode ist, um sensible Daten zu schützen   Information. Laut POSIX garantiert mlock () - eine Seite dies    ist im Speicher (nützlich für Echtzeitanwendungen), nicht so, dass nicht ist   im Swap (nützlich für Sicherheitsanwendungen). Möglicherweise verschlüsselt   Swap-Partition (oder keine Swap-Partition) ist eine bessere Lösung.

Allerdings garantiert Linux , dass es nicht im Swap enthalten ist und speziell bespricht die Sicherheitsanwendungen. Es erwähnt auch:

  

Aber beachten Sie, dass der Suspend-Modus auf Laptops und einigen Desktop-Computern funktioniert   Speichern Sie eine Kopie des RAM des Systems auf dem Datenträger, unabhängig von den Speichersperren.

    
aaz 20.03.2011, 20:15
quelle
3

Warum benutzt du SELinux nicht? Dann kann kein Prozess auf andere Dinge zugreifen, es sei denn, Sie sagen es.

Ich denke, wenn Sie ein Programm sichern, das mit sensiblen Daten arbeitet, sollten Sie mit einem sicheren Betriebssystem beginnen. Wenn das Betriebssystem nicht sicher genug ist, kann Ihre Anwendung nichts dagegen tun.

Und vielleicht müssen Sie bei der Verwendung von SELinux nichts Besonderes in Ihrer Anwendung tun, um Ihre Anwendung kleiner, einfacher und sicherer zu machen?

    
rve 20.03.2011 20:58
quelle
2

Was Sie wollen, ist das Sperren einer Speicherregion im RAM. Siehe die Hilfeseite für mlock(2) .

    
ninjalj 20.03.2011 19:38
quelle
2

Das Sperren des Speichers (oder, wenn Sie Linux verwenden, die Verwendung großer Seiten, da diese nicht ausgelagert werden können) ist ein guter Anfang. Abgesehen von allen anderen Überlegungen, schreibt das zumindest nicht unvorhersehbar Klartext auf die Festplatte.

Das Überschreiben von Speicher, wenn nicht mehr benötigt, tut nicht weh, ist aber wahrscheinlich nutzlos, weil

  • alle Seiten, die zurückgewonnen und später einem anderen Prozess übergeben werden, werden vom Betriebssystem sowieso auf Null gesetzt (jedes moderne Betriebssystem tut das)
  • Solange sich einige Daten auf einem Computer befinden, müssen Sie davon ausgehen, dass jemand sie auf die eine oder andere Weise stehlen kann
  • Es gibt mehr Exploits im Betriebssystem und in Ihrem eigenen Code als Sie wissen (dies passiert den besten Programmierern, und es passiert immer wieder)

Es gibt unzählige Bedenken, wenn jemand versucht, vertrauliche Daten zu stehlen, und dies ist keineswegs einfach. Daten zu verschlüsseln, keine offensichtlichen Exploits zu haben und die dümmsten Fehler zu vermeiden ist so gut wie möglich. Darüber hinaus ist nichts wirklich sicher, denn für jedes N Ding, das du planst, existiert ein N + 1 Ding.

Nehmen Sie den Laptop meiner Frau als Paradebeispiel mit. Der Praktikant, der die Maschinen in seiner Firma aufstellt (zumindest schätze ich, dass er ein Praktikant ist), ergreift alle möglichen Maßnahmen und konfiguriert alles im Paranoia-Modus, um sicherzustellen, dass Daten auf dem Computer nicht gestohlen werden können und die Arbeit zu einer echten Tortur wird möglich. Was Sie am Ende haben, ist ein Bitlocker-geschützter Computer, der 3 Kennwörter benötigt, um sogar hochzufahren, und auf dem Sie praktisch nichts tun können, und einen Bildschirmschoner, der die Arbeitsstation bei jedem Abheben blockiert und das Schütteln der Maus vergisst. Gleichzeitig verfügt dieser super sichere Computer über einen aktivierten Firewire-Port, über den jeder beliebige Inhalt im Speicher des Computers ohne Passwort lesen und schreiben kann.

    
Damon 20.03.2011 22:35
quelle

Tags und Links