AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sichere Abfrage Passwort Client -> Server

Ein Thema von Martin W · begonnen am 19. Sep 2015 · letzter Beitrag vom 21. Sep 2015
Antwort Antwort
Seite 1 von 2  1 2      
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#1

Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 12:40
Hi,

ich möchte für den Login mit Hilfe eines Benutzernamens + Passwort einer Client/ Serveranwendung ein möglichst hohes Maß an Sicherheit erreichen. Alternative Methoden, z.B. mit Zertifikaten, seien hier außen vor gelassen.

Als Idee habe ich folgende Möglichkeit ermittelt:

Passwort speichern
  • Password wird durch den Nutzer auf dem Client eingegeben
  • Password wird auf dem Client mit Hilfe von BCrypt + Random Salt [Salt-1] in "Hash" umgewandelt
  • Hash wird durch den Client an den Server übertragen.
  • Server führt erneut BCrypt aus, jedoch mit dem gleichen Salt [Salt-1] und speichert das Pwd in Datenbank

User authentifizieren
  • Password wird durch den Nutzer auf dem Client eingegeben
  • Client fragt beim Server nach dem Salt [Salt-1] des Users sowie einem Zufallswert
  • Password wird zweifach auf dem Client mit Hilfe von BCrypt + Salt [Salt-1] umgewandelt (= ergibt selben Wert wie in Server-DB)
  • Ergebnis wird mit Zufallswert kombiniert und erneut mit BCrypt + zufälligem Salt [Salt-2] umgewandelt
  • Hash wird durch den Client an den Server übertragen.
  • Server führt erneut BCrypt mit neuem Salt [Salt-2] mit dem Wert seiner Datenbank + Zufallswert aus, vergleicht Ergebnis mit Anfrage durch Client.

Habe ich etwas übersehen?

Viele Grüße

Geändert von Martin W (19. Sep 2015 um 12:50 Uhr)
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 12:55
Vorteile:
  • Passwort liegt nie im Klartext auf dem Server
  • Passwort wird nie im Klartext übertragen
  • Durch den Zufallswert Schutz vor Replay-Attacken
  • Wird die Datenbank öffentlich, verhindert die Tatsache, dass das Passwort auf dem Server nochmals mit BCrypt behandelt wurde, ein Nutzen der Anmeldedaten

Mögliche Schwachstellen:
  • Gelingt es einem Angreifer, sowohl den Datenverkehr der initialen Speicherung als auch einer Authentifizierung abzuhören, kann ein Angreifer daraus ein gültiges Anmeldepasswort errechnen (Kennt jemand dafür einen Lösungsansatz, außer DH oder Transportverschlüsselung?)

Geändert von Martin W (19. Sep 2015 um 12:58 Uhr)
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 12:59
Wenn du sowieso mit "Hashes" arbeitest, warum nicht gleich einfach MD5 oder SHA1 nehmen? So überträgst du auch nie das Passwort im Klartext und es liegt auch nie im Klartext auf dem Server.
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 13:05
Wenn du sowieso mit "Hashes" arbeitest, warum nicht gleich einfach MD5 oder SHA1 nehmen? So überträgst du auch nie das Passwort im Klartext und es liegt auch nie im Klartext auf dem Server.
Da Bcrypt mir einen höheren Sicherheitsstandard bietet.

https://de.wikipedia.org/wiki/Bcrypt

Sicher, es wäre möglich das ganze vorher noch mal mit Sha256 / Sha512 zu hashen, aber daraus ergibt sich imho kein wirklicher Gewinn.

(Zumal: Bitte heutzutage nicht mehr Passwörter einfach nur als MD5 speichern.. Wenn es etwas aus der SHA Familie sein soll, dann bitte Salted SHA256+)

Geändert von Martin W (19. Sep 2015 um 13:08 Uhr)
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 13:17
MD5 und SHA1 sind AFAIK immernoch ungeknackt. Daher ist "höherer Sicherheitsstandard" in dem Fall relativ. Ob du nun was sicheres mit was sicherem vergleichst, es kommt aufs selbe raus.
Ob das aber den erhöhten Mehraufwand (und damit auch wieder Fehleranfälligkeit) einer komplexeren Implementation rechtfertigt, sollte man abklären.

Wenn du Attacken durch Trafficmitschnitte befürchtest, dann hilft dir meiner Meinung nach auch kein noch so ausgeklügelter Algorithmus. Dann ist im Vorfeld schon was schiefgelaufen, wenn der Angreifer an eine Stelle kommt, wo er deinen (oder den Server-)Traffic loggen kann.
MD5 / SHA1 bieten zwar keinen Schutz gegen simple Replay-Attacken, aber wenn du vorher einen Salt beim Server abfragst, wird das ein findiger Angreifer auch rausfinden.

Vielleicht kann man hier auch was mit RSA machen?
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#6

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 14:36
Mal was zum Nachdenken: http://www.christian-rehn.de/2012/06...machen-sollte/

Verwende SSL. Alles andere ist Spielkram. Und den Vorschlag md5 für Passwörter zu verwenden, hab ich mal geflissentlich überhört.
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 16:59
Und den Vorschlag md5 für Passwörter zu verwenden, hab ich mal geflissentlich überhört.
Weil ...?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 17:49
man im Jahre 2015 den Term MD5 am besten vergisst. ERST RECHT, wenn es um Sicherheit geht. Oder klarer: Die Verwendung von MD5 und das Ziel "hohes Maß an Sicherheit" sind quasi gegenteilig.
Einziger Verwendungszweck (mit gutem Gewissen) ist m.E. sowas wie Datei-Duplikate finden bzw. in ner Datenbank speichern. Für Passwörter ist von SHA-1 inzwischen auch abzuraten.

Das BSI sagt zu Hashfunktionen::
Zitat:
Für einen Einsatzzeitraum nach Ende 2015 wird empfohlen, SHA-256, SHA-384, SHA-512 oder SHA-512/256 zu verwenden.
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 19:27
Die einzig mir bekannte Möglichkeit, um MD5 (oder ähnliches) zu "knacken", ist über Dictionaries oder Bruteforce. Das Problem hat aber jedes System.

Ich will hier keine Diskussion anfangen und zu konservativ klingen. Aber wenn man sagt, MD5 / SHA1 wäre unsicherer als SHA-256 oder ähnliches, impliziert das doch, dass es praktische und zeitnahe Wege und Möglichkeiten gibt, es zu knacken. Oder nicht? Was ist an MD5 unsicherer als an SHA-256, wenn es bis dato (selbst 2015) noch keinem gelungen ist, MD5 (ohne Dictionary) zu reversen?
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#10

AW: Sichere Abfrage Passwort Client -> Server

  Alt 19. Sep 2015, 19:34
[...] Was ist an MD5 unsicherer als an SHA-256, wenn es bis dato (selbst 2015) noch keinem gelungen ist, MD5 (ohne Dictionary) zu reversen?
Weil es in üblichen Angriffsszenarien wie Anmeldung normalerweise ausreicht, in endlicher Zeit eine Kollision zu finden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz