Frage

Ich schreibe eine Client / Server, die Kundendaten können zwischen unserem Hauptsitz geteilt werden und on-the-move Verkäufen Leuten innerhalb des Unternehmens.

Die Server-Downloads und schreiben die Kundendaten in XML-Dateien, sondern halten auch die Daten im Speicher, so dass er als lokaler Client fungieren kann, wie sie waren.

Ich plane die Arraylist serialisiert, so dass die Kundendaten können problemlos über das Internet gesendet werden. Wie sicher ist das? Sollte ich irgendeine Form Verschlüsselung schauen Sie in, bevor ich das serialisierte Objekt übertragen?

War es hilfreich?

Lösung

Ich würde das die Verschlüsselung als Teil der Serialisierung nicht ausführen.

Es gibt zwei Probleme hier:

  1. Setzen Sie das Objekt in Form, die übertragen werden kann, das heißt die Serialisierung.
  2. Sicherstellen, dass die Übertragung sicher.

1 und 2 sind verschiedene Probleme und sie in einer einzigen Lösung kombiniert wird nur Probleme für sich selbst in Zukunft.

würde ich die Box Serialisierung verwenden und dann einen sicheren Übertragungskanal verwenden, wie TLS .

Andere Tipps

Meine Vermutung, schauen Sie in HTTPS.

Sie sollten über die Serialisierung Teil nicht denken. Am Ende des Serialisierungsprozeß, erhalten Sie Daten (entweder binär oder XML), und Sie sollen die als unsicheres behandeln.

Wenn Ihr Plan ist sicher sie über das Internet zu übertragen, sollten Sie in HTTPS aussehen, aber wenn Sie es über andere Mittel wie E-Mail oder File-Transfer zu übertragen oder Sie müssen sicher speichern oder archivieren, sollten Sie wahrscheinlich schauen Sie in PKCS # 7 und verwandten Standards .

  

Ich plane die Arraylist serialisiert, so dass die Kundendaten können problemlos über das Internet gesendet werden. Wie sicher ist das?

So sicher wie es auf Postkarten drucken und es in der Mail setzen. Alles, was in der Kette zwischen Ihnen und dem Empfänger kann den Inhalt sehen.

  

Soll ich schauen in irgendeiner Form Verschlüsselung, bevor ich das serialisierte Objekt übertragen?

Das ist die übliche Vorgehensweise. Entweder Transportebene Sicherheit, wie Secure Sockets, wo die Verbindung zwischen Client und Server verschlüsselt, aber die Meldung erscheint in ‚Klartext‘ an jedem Ende, oder Sie können die Nachricht selbst, verschlüsseln und dann im Client entschlüsseln. Verschlüsseln der Nachricht, anstatt den Transport ist komplizierter, da es mehr Schichten bewirkt, sondern ermöglicht es Ihnen, Nachrichten zu speichern oder von einem Client-Server zu etwas, das Caching erlaubt ändern. Wenn Sie sind besorgt über die Information verloren immer, wenn die on-the-move Leute einen Laptop verlieren, dann die Nachrichten verschlüsselt und nur auf die Verwendung Entschlüsseln kann besser sein. (Die andere Alternative ist das Laufwerk ein Kunde Nachricht verschlüsseln wird gespeichert auf, die alles schützt, sondern auch alles, was Auswirkungen auf den Computer so eine Änderung der Firma IT-Richtlinie erfordert).

Sie können natürlich alle drei auf einmal.

  

Ich plane die Serialize   Arraylist, so dass die Kundendaten   kann leicht über die gesendeten   Internet. Wie sicher ist das? Sollte ich   schauen Sie in irgendeiner Form Verschlüsselung vor   Ich übertrage das serialisierte Objekt?

Verschlüsselung sollte nicht an der Serialisierung Schritt geschehen. Um klar zu sein: Serialisierung wird, um das Objekt zu nehmen und es in eine Folge von Bytes drehen. Alle Ihre Serialisierung in-the-clear ohne unnötigen munging dort getan werden soll, um die Dinge zu komplizieren.

Verschlüsselung sollte das Paket von Bits passiert einmal bereit ist, ausgeführt werden kann. Wenn du mit dem Ziel „live“ sind in Verbindung steht - wie über das Netzwerk, dann sollten Sie SSL verwenden, um die Linie zu sichern. Zum Glück, das so einfach ist, Anbringen eines SslStream (MSDN) Ihre TcpClient. Beachten Sie, dass nur ein kleines Paket von Bits innerhalb eines größeren (unverschlüsselte) Stream verschlüsselt ist im Allgemeinen falsch-Sicherheit. Um sicher zu sein, sollte das ganze Gespräch sicher sein.

Wenn auf der anderen Seite, sind Sie die Bits zu speichern (das heißt in einer Datei), dann sollten Sie eine Art Offline-Verschlüsselung verwenden. Auch hier übernimmt das .NET-Framework für Sie alle Details; nur anschließen Crypto Objekt in dem FileStream und du bist fertig.

Serialize, gzip, dann senden über HTTPS. Es ist wichtig, diese Schritte in der richtigen Reihenfolge zu halten. verschlüsselte Datenkomprimierungs funktioniert nicht. unkomprimierte Daten nimmt mehr Zeit in Encrypting, und in der Theorie reduziert Sicherheit.

Verwenden Sie HTTPS oder TCP über SSL, hängt von Ihrem Kommunikationskanal. Wenn es sicher Ihre Zertifikate in jeder Seite und alles bereitstellen erfordert wird es sicher sein.

Auch, wie Sie Verschlüsseln der vor den Trick Serialisierung tun, Sie einen geheimen Schlüssel in beiden Seiten verwenden können, müssen Sie die Schlüssel sicher speichern und nicht gewährleisten können sie erreichen. Dies ist jedoch nicht groß, weil man sie vielleicht will später ersetzen und Schlüssel-Management kann ein wenig Schmerzen. Ich würde sagen, Stick mit HTTPS / TCP + SSL

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top