Hat jemand ein Beispiel und wie ist es sicher, diese Methode zu übernehmen?
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:
SHA512
ein paar tausend Mal oder etwas verwenden wie BCRypt . 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.
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>
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.
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:
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).
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.
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.