Benutzer-Passwort mit jquery verschlüsseln und mit C # entschlüsseln

7
  • Ich möchte kein SSL verwenden, um Anmelde- und Anmeldeformulare für eine Website, die ich erstelle, zu verschlüsseln.
    • Ich habe kein Geld, um ein Zertifikat zu bezahlen.
    • Ich muss Encryption mit jQuery und Entschlüsselung mit C # in meiner asp.net-Website verwenden.

Hat jemand ein Beispiel und wie ist es sicher, diese Methode zu übernehmen?

    
amourgh 07.09.2010, 11:34
quelle

7 Antworten

15

Wenn Sie kein SSL verwenden, sind Sie nicht sicher, aber das ist nicht der einzige Grund.

SSL schützt die eigentliche Kommunikation, während die Verschlüsselung die Daten schützt, die Sie kommunizieren. Sie sollten die Kennwörter überhaupt nicht verschlüsseln. Sie sollten einen gehärteten Hash der Informationen erstellen. Ein Hash ist eine Einwegfunktion (kann nicht umgekehrt werden), während encryption ist eine Zwei-Wege-Funktion (kann umgekehrt werden). Hash-Härtung und Verwendung beinhaltet:

  • Iterieren über einen Hash, der für Geschwindigkeit erstellt wurde, wie SHA512 ein paar tausend Mal oder etwas verwenden wie BCRypt .
  • Verwenden Sie ein salt - so etwas wie ein 64-Bit-Array von Durcheinander pro Benutzer, das in der Datenbank gespeichert ist werde es tun
  • Verschlüsseln Sie die Schlüssel und Salze in der Datenbank mit einem Schlüssel in der Anwendungsschicht. Das heißt, wenn Ihre Datenbank erstellt wird, benötigen sie immer noch den Schlüssel aus der Anwendungsschicht, um auf die rohen Hash-Informationen sowie die Salze zuzugreifen.

Sie müssen daran denken, dass Sicherheit in Schichten aufgebaut ist. Wenn Sie SSL überspringen, überspringen Sie einen großen Teil davon. Zumindest können Sie makecert verwenden, um ein selbstsigniertes Zertifikat zu erstellen . Alles was passieren wird ist, dass der Benutzer davor gewarnt wird. Ein gutes SSL-Zertifikat kostet so wenig wie $ 12,99 auf GoDaddy . Ich empfehle, einen zu bekommen und das oben genannte zu implementieren.

    
Kyle Rozendo 07.09.2010 11:37
quelle
6

Sie können SSL verwenden, ohne für ein Zertifikat zu bezahlen, und diese Methode bringt Ihnen nur sicheren Browser Informationen über Ihr Zertifikat erhalten ist nicht qualifiziert.

Lesen Sie dazu Ссылка

    
Svisstack 07.09.2010 11:39
quelle
3

Es ist wahrscheinlich überhaupt nicht sicher. SSL ist wirklich der Weg zu gehen; Wenn Sie sich kein Zertifikat leisten können, können Sie immer Ihr eigenes Zertifikat erstellen. Offensichtlich werden diese nicht an eine der vertrauenswürdigen Root-Autoritäten validiert, aber sie sind genauso sicher - die Identität Ihrer Website wird nicht von einer vertrauenswürdigen dritten Partei bestätigt, aber die Verbindung selbst wird genauso sicher verschlüsselt. p>     

tdammers 07.09.2010 11:42
quelle
0

Wenn Sie kein SSL verwenden, öffnen Sie Ihren Code für Netzwerk-Sniffing-Angriffe. Die Verschlüsselung auf der Client-Seite wird auch nicht gut tun.

Leider gibt es keinen sicheren Weg, ohne ein gültiges Zertifikat zu erhalten. Dieser Ansatz wäre unsicher.

    
Ryan Peters 07.09.2010 11:42
quelle
0

Ich stimme den Sicherheitsbedenken der anderen Personen zu. Wenn Sie auf diese Weise höllisch verbissen sind, können Sie versuchen, eine benutzerdefinierte PKI-Schnittstelle zu verwenden. Sie müssen ein wenig tiefer auf den Code, der notwendig ist, um dies zu erreichen, aber hier ist ein Link, um die öffentliche Schlüssel Struktur zu beschreiben:

Public Key Cryptography

Wenn Sie also in jQuery einen RSA-Algorithmus für einen öffentlichen Schlüssel codieren, sollten Sie die Entschlüsselung des privaten Schlüssels in C # ohne Schwierigkeiten abgleichen können. Dies ist keine Empfehlung, weil dies wirklich nur "Sicherheit durch Verschleierung" ist (was überhaupt keine Sicherheit ist).

    
Joel Etherton 07.09.2010 11:43
quelle
0

Sie können die Formulardaten mit Javascript verschlüsseln. Dies ist möglich, siehe Ссылка . Wenn Daten mit einem Schlüssel verschlüsselt werden, müssen Sie diesen Schlüssel in JavaScript-Code und auch in serverseitigem Code speichern. Da JavaScript-Code clientseitig ist und der Schlüssel öffentlich ist, ist das überhaupt nicht sicher :). Das Gleiche gilt auch für die asymmetrische Verschlüsselung. Unterschiedliche Daten können mit demselben Schlüssel verschlüsselt und an den Server gesendet werden.

SSL wurde entwickelt, um Sicherheitsprobleme im Internet zu überwinden, indem es Kryptografie mit öffentlichen Schlüsseln und symmetrische Verschlüsselungstechniken verwendet. Middle-Man-Angriff wird verhindert. Mit SSL können Sie sicher sein, dass Ihre Daten sicher sind und nicht durch die Art und Weise verändert werden, und es gibt eine Zertifizierungsstelle von Drittanbietern, die besagt, dass Sie die Person sind, für die Sie sich ausgeben.

Wenn Sie sagen, dass ich den Schlüssel oder den Verschlüsselungscode in ein Applet oder ein Active-X- oder Flash-SWF-Objekt einfügen und die Verschleierung verwenden kann, um den Code zu sichern, kann das ein Weg sein. Aber auch dieser Ansatz ist offen für Angriffe und nicht sicher. Verschleierung garantiert nicht, dass Ihr Schlüssel oder Algorithmus sicher ist, härtet nur die Arbeit des Crackers aus, um den Schlüssel zu bekommen.

Ich hoffe, das hilft.

    
Zafer 07.09.2010 11:52
quelle
0

Sie können ein HMAC zur Authentifizierung verwenden. Dies würde zwar keine Privatsphäre bieten, aber ein Sniffer (der in den Netzwerkverkehr schaut) wäre nicht in der Lage, die Passwörter zu erhalten oder sich als authentischer Benutzer anzumelden. Wenn ich keinen Datenschutz anbiete, bedeutet das, dass der Sniffer alle übertragenen Inhalte, aber nicht das Passwort sehen wird.

SSL ist natürlich sehr sicher, aber für viele Anwendungen ein Overkill.

    
fsaint 07.09.2010 12:10
quelle

Tags und Links