Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Verschlüsselung mit AES-256 und Key, wo sind die Risiken? (https://www.delphipraxis.net/206617-verschluesselung-mit-aes-256-und-key-wo-sind-die-risiken.html)

Samuel Kurmann 12. Jan 2021 17:24

Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
Hallo Zusammen

Ich befasse mich seit kurzem mit dem Thema Verschlüsselung, so einiges kapiere ich schon, habe aber einige konkrete Fragen.

Hier ein paar Infos zu meinem SetUp: Ich verwende Delphi Sydney und habe LockBox 3 per GetIt installiert. Damit ist es sehr einfach, die AES-256 Verschlüsselung zu implementieren. Dies hat auch einwandfrei geklappt.

Einfachkeitshalber, aber nicht abschliessend, habe ich den Key für die Verschlüsselung im Programmcode fix hinterlegt. Wie sicher sind nun meine verschlüsselten Werte?
Wie einfach ist es die EXE soweit zu analysieren, um an diesen Key zu kommen?
Ist es sicherer den Key beispielsweise in verschiedenen Ecken im Programmcode als Konstanten zu hinterlegen und nur beim Encrypten/Decrypten den Key zusammenzubauen?

Es geht mir nicht darum, den "perfekten" Weg für eine Passwortverschlüsselung mit Master-Passwort erklärt zu bekommen, damit habe ich mich auseinandergesetzt und soweit verstanden.
Mir ist nur nicht ganz klar worin die Sicherheitsrisiken bei einfacheren Methoden, wie den Key im Programmcode fix zu hinterlegen, liegen?

Daniel 12. Jan 2021 19:01

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
Zwei der Probleme nennen sich "Debugger" und "Disassembler". Für einen Ottonormal-Anwender mag der Key in der EXE halbwegs sicher sein. Nur für technisch versierte Anwender ist es mit (zumeist) überschaubarem Aufwand möglich, ein Programm buchstäblich auseinander zu nehmen. Man kann sich dann Speicherbereiche ansehen und die Aufrufe von Programmteilen verfolgen. Für manche ist das ähnlich spannend wie Netflix.

Idealerweise solltest Du das Passwort nicht in oder neben die EXE legen (wäre ein wenig wie der Schlüssel unter der Fußmatte). Du könntest das Passwort verschlüsselt von einem Server abrufen und beispielsweise nur kurz im Speicher halten, solange es für die Entschlüsselung erforderlich ist. Danach könntest Du den Speicherbereich überschreiben.

Oder aber Du hältst Dich als Software-Entwickler da gänzlich raus und überlässt es dem Anwender, sich ein Passwort auszudenken und sicher aufzubewahren. Er würde dies dann nur eintippen und Du könntest dann damit arbeiten. Mit Blick auf die Sicherheit wäre dies das Beste, da ein Dieb, den wir als "Dritten" betrachten können, sowohl den PC mit den Daten als auch den Anwender bräuchte, um die Daten entschlüsseln zu können. (Stichwort Zwei-Faktor-Authentifizierung).

Andreas13 12. Jan 2021 19:49

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
Hallo Samuel,
schau doch mal hier rein:https://www.delphipraxis.net/200188-...ml#post1428892. Unter #9 findest Du einen Lösungsvorschlag: Dieser ist besser als ein mit abgelegtes Passwort.
Gruß, Andreas

generic 12. Jan 2021 20:52

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
Schlüssel ist natürlich das größte Problem.

Aber auch AES selbst kann Trickreich sein, so ist z.B. der CBC durch die Oracle Padding Attacke anfällig. Die GC sind da besser.

Samuel Kurmann 13. Jan 2021 10:40

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
@Daniel:
Das mit dem Dissasembler und Debugger habe ich mir bereits gedacht, wollte mich nur vergewissern, dass dies auch so möglich ist.

Die Idee mit dem Server ist mir ebenfalls gekommen, ergibt für mich nur das Problem: Ist der Server nicht verfügbar, kann ich die Passwörter nicht entschlüsseln. Hat in der heutigen Zeit wahrscheinlich nicht eine zu grosse Relevanz, da die meisten Anbieter eine Ausfallsicherheit von 99,9% anbieten. Trotzdem kann ja mal lokal ein Netzwerkproblem o.ä. vorkommen.

Diesen Vorschlag ist meines Erachtens ebenfalls am besten, je nachdem aber auch mit mehr Aufwand verbunden.

@Andreas13
Werde ich mir gerne mal anschauen.

@generic
Okee... muss ich demnach auch mal anschauen, habe ich noch nichts davon gehört.

Vielen Dank euch allen für die Antworten. Werde mich definitiv noch mehr damit beschäftigen.
Habe auch diverse bestehende Passwort-Tools angeschaut und deren Verschlüsselung, für mich am verständlichsten dargestellten ist das Verfahren von lastpass (https://www.lastpass.com/de/enterprise/security), was haltet Ihr davon?

dummzeuch 13. Jan 2021 10:50

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
Zitat:

Zitat von Daniel (Beitrag 1480869)
Du könntest das Passwort verschlüsselt von einem Server abrufen und beispielsweise nur kurz im Speicher halten, solange es für die Entschlüsselung erforderlich ist.

In wie fern ist ein Server sicherer als eine lokale Datei? Ein Angreifer könnte doch genauso auf den Server zugreifen wie das Programm.

generic 13. Jan 2021 12:01

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
Du könntest erklären warum du was verschlüsseln willst und was du verschlüsseln willst.
Zweck und Ziel

Samuel Kurmann 13. Jan 2021 13:54

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
@generic

Es geht um eine Passwortverschlüsselungtool, ist aber "nur" als Spielerei für mich gedacht, bzw. um mich mit dem Thema zu befassen, da es mich sehr interessiert.
Mir geht es auch nicht darum hier zu erfahren, was der perfekte "Weg" ist (dafür gibt es bereits genug Forumeinträge und Googleeinträge).
Ich möchte nur besser verstehen wo die Lücken sind und dies verstehen.

Mavarik 13. Jan 2021 13:57

AW: Verschlüsselung mit AES-256 und Key, wo sind die Risiken?
 
Zitat:

Zitat von dummzeuch (Beitrag 1480891)
In wie fern ist ein Server sicherer als eine lokale Datei? Ein Angreifer könnte doch genauso auf den Server zugreifen wie das Programm.

Der Server kann aber für jeden request ein neues PW erzeugen, wenn Du das eine die gerade er-debugged hast, beim nächsten call ist es schon wieder ein anderes...

App hat public Key - Server hat privat Key und erzeugt einen neues Session PW.

Zitat:

Zitat von Andreas13 (Beitrag 1480870)
schau doch mal hier rein:https://www.delphipraxis.net/200188-...ml#post1428892. Unter #9 findest Du einen Lösungsvorschlag: Dieser ist besser als ein mit abgelegtes Passwort.

Sicherlich ist die Speicherung eins Passwortes im Klartext schlecht, aber da die App ja irgendwann mal das PW verwenden muss, ist der Breakpoint genau an dieser Stelle.
Verschleierung ist keine Verschlüsselung - eine gute Verschleierung wieder steht natürlich einem "einfachen in die Exe schauen", aber nicht dem disassemblier Profi.


Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf