![]() |
Datei verschlüsseln und in einen Stream schreiben
Hallo,
wie kann ich eine datei verschlüsseln, kennwort, verschlüsselungsalgorhytmus und die Datei in einen Stream schreiben und diesen als Datei speichern. Es wäre klasse, wenn mir zusätzlich einer erklären könnte, wie mann kennwort, algoryhtmus und datei auslesen und diesen kriterien entsprechend wieder entschlüsseln kann. (Bei beiden Operationen soll die original Datei ersetzt werden) :gruebel: :arrow: :-D |
Re: Datei verschlüsseln und in einen Stream schreiben
Kennt keiner eine (anehernde) Lösung?
|
Re: Datei verschlüsseln und in einen Stream schreiben
Tipp die magischen Worte deines Postings [dp]datei verschlüsseln[/dp] in die Forensuche ein und du wirst mit Lösungen zugeschmissen. Eine Suche nach
![]() |
Re: Datei verschlüsseln und in einen Stream schreiben
Das schon aber mir ging es eher darum, zu erkennen, ob eine datei ver oder entschlüsselt vorliegt.
Das wollte ich prüfen, indem ich die verschlüsselte datei in einen stream schreibe und noch einen "kennungs-string" hinzuschreibe. |
Re: Datei verschlüsseln und in einen Stream schreiben
Das wirst du wohl nicht können. Es sind ja schließlich auch nur Bytes im Speicher. Wie diese zu interpretieren sind, hängt vom Anwendungsprogramm ab. Und ob Programme die Dateien verschlüsseln eine Signatur da noch reinschreiben ist nicht sicher.
|
Re: Datei verschlüsseln und in einen Stream schreiben
"wie kann ich eine datei verschlüsseln, kennwort, verschlüsselungsalgorhytmus und die Datei in einen Stream schreiben und diesen als Datei speichern. "
Wenn du die verschlüsselte Datei, den Schlüssel und den verwendeten Algorithmus zusammen in eine Datei abspeicherst, was hat das dann bitte für einen Sinn??? Dann kannst du sie auch gleich unverschlüsselt lassen! |
Re: Datei verschlüsseln und in einen Stream schreiben
Zitat:
![]() So kann man also mit einiger Genauigkeit herausfinden, ob die Datei verschlüsselt ist oder nicht. Verschlüsseln und Packen ähneln sich dahingehend nämlich. |
Re: Datei verschlüsseln und in einen Stream schreiben
Ich hab keine Ahnung ob ich das falsch verstanden habe aber warum schaust Du Dir nicht einfach die Dateiendung an?
Wenn Du verschlüsselst änderst Du die in *.zib und in den Stream schreibst Du als erstes den Originallen Name der Datei! So kannst Du ohne Probleme ermitteln obs verschlüsselt ist... |
Re: Datei verschlüsseln und in einen Stream schreiben
Zitat:
das setzt aber voraus das man weis wie die Entropy der unverschlüsselten Datei aussieht. Liegt die Datei nur verschlüsselt vor, und man weis nicht was da verschlüsselt wurde, so kann man auch nicht über die Entropy erkennen ob die Datei verschlüesselt wurde. Man kann nämlich auch Zufallsdaten verschlüsselt speichern, und im allgemeinen wird die Entropy der Verschüsselten Daten kleiner oder gleich groß der Entropy der unverschlüsselten Daten sein. Eine gepackte Datei wiederum wird vergleichbar viel Entropie wie eine verschlüsselte Datei erzeugen, denoch sind die gepackten Daten nicht zwangsläufig verschlüsselt. Ich kenne zZ. kein offizielles Verfahren das das könnte ohne eventuelle Header der Dateien zu analysieren. Also rein auf Basis der binären Daten erkennen kann ob diese verschlüsselt oder unverschlüsselt sind. Denkt man mal logisch darüber nach so widerspricht das ja auch dem Prinzip der Verschlüsselung. Die beste Verschlüselung ist diejenige der man es nicht ansieht. Vor einiger Zeit habe ich ähnliches versucht umzusetzen. Da es keine offiziellen Forschungen oder Ergebnisse auf diesem Gebiet gibt beschloß ich einen anderen Weg zu gehen. Dazu programmierte ich ein Neuronales Netzwerk, katalogisierte alle Dateien auf meiner Festplatte nach deren Typen, d.h. ordente alle Dateien nach deren Inhalten in bestimmte Kategorieren ein. Nun wurde das Neuronale Netzwerk an Hand dieses Kataloges und der Dateien trainiert. Eine Schwierigkeit dabei war der Fakt das Dateien nunmal unterschiedlich groß sind, das deren Entropie ungleichmäßig in den Daten verteilt ist usw. usw. Um nun alle Dateien untereinander "vergleichbar" zu machen nutzte ich eine Fourier Transformation der Daten der Datei. D.h. über die FFT wurde ein Spektrum der Daten in den Dateien erzeugt. Dieses Spektrum ist unabhänig von der Dateigroße und liefert aber für beliebige Dateien einen gleichgroßen Output. Damit war ein wichtiger Punkt für die Anwendung des Neuronalen Netzwerkes gegeben, der Input pro Datei ist immer gleichgroß und berücksichtigt trotzdem die komplette Datei. Nungut, das NN hat seine Aufgabe ziemlich gut gelernt. Es kann zwischen den Formaten unterscheiden so lange Formate in den Dateien vorhanden sind !! Das heist, als Härtetest wurde einige Dateien mit bekannten Formaten so manipuliert das deren Header-Informationen entfernt wurden. Die resultierenden Dateien enthielten also nur die reinen Datenanteile. Und schwups konnte das NN nicht mehr zwischen den verschlüsselten, komprimierten oder Zufallsdaten unterscheiden. Dieses Resultat ist auch das was ich theoretisch erwartet hatte. Bei eine sicheren Verschlüsselung MUSS deren Entropie so angelegt sein das KEINE Rückschlüsse auf deren Inhalt möglich sind. Die wird mathematisch auch von Zufallsdaten oder eben stark komprimierten Daten erreicht. Somit kann man die reinen Daten einer Verschlüsselung, einer Komprimierung oder eines Zufallsstromes NICHT voneinander unterscheiden. Mein Experiment mit dem Neuronalen Netzwerk funktinierte anfänglich nur deshalb weil in allen Dateien auch immer Header enthalten sind, sprich Informationen WAS die Datei WIE enthält. Das NN hat sich auf die Erkennung dieser Unterschiede spezialisiert. Dazu wurde dem NN neben dem FFT-Spektrum auch die erstene 256 Bytes der Datei als Transingsparameter übergeben. Entfernte man diese 256 Bytes so war das NN niemlas in der Lage zwischen bestimmten Dateitypen zu unterscheiden. Eben zwischen komprimierten, verschlüsselten und Zufallsdaten. Oder aber bei Textuellen Verschlüsselungen wie PEM oder MIME64. Diese Dateien erkannte das abgespeckte NN als normale Textdateien obwohl sie eben verschlüsselte Dateien waren deren binärer Inhalt nach Text transformiert wurde. Erst die erweiteret Version des NN's das die ersten 256 Bytes der Datei einbezog konnte die Uterschiede rausfiltern. Gruß Hagen |
Re: Datei verschlüsseln und in einen Stream schreiben
Hallo Hagen,
Zitat:
Zitat:
Für mich ist Packen eine Form der Verschlüsselung, auch wenn man sich über den krytographischen Nutzen (widersteht Angriffen oder nicht ...) streiten kann. Zitat:
Zitat:
Also so sehr ich deine Fachkenntnisse in Sachen Kryptographie schätze, aber daß eine Verschlüsselung daran gemessen werden sollte, inwieweit sie erkennbar ist (nicht Typ sondern nur ob) das ist Quark. Da landen wir nämlich bei Steganographie, nicht mehr bei Krytographie. Zitat:
Also nochmal, es ging hier nicht um das was du so schön beschreibst. Es ging darum zu erkennen ob eine Datei mit bekannten Strukturen verschlüsselt vorliegt oder nicht - und da kannst du wohl kaum umhin zuzugeben, daß die Entropie ein Maß dafür ist (zumindest mit hoher Wahrscheinlichkeit - i.e. wenn die Daten nicht schon gepackt sind). Gruß, |
Re: Datei verschlüsseln und in einen Stream schreiben
Zitat:
Das Ziel der Kryptographie ist es Daten zu schützen, dazu ist jedes Mittel recht, auch die Komprimierung, das Vortäuschen anderer Entropie und das Verstecken durch Einbettung in andere Daten. Und somit ist Steganographie auch ein Verfahren der Kryptographie. Ich kenne eigentlich kein gutes Steganographie Program das die Daten nicht vorher komprimiert und verschlüsselt bevor es diese geschützten Daten zusätzlich in andere Trägerdaten einbettet. Es gibt kein, und kann kein Verfahren geben das verschlüsselte Informationen als solches identifizieren kann. Die reine Analyse der Entropie sagt rein garnichts über den tatsächlichen Inhalt einer Datei aus. Gerade aber das wollte ich eben mit der Anwendung von neuronalen Netzwerken und einer Spektralanalyse erreichen. Klar, das zeigt ja auch mein Hinweis auf die Neuronalen Netze, kann man versuchen eine Abschätzung zu geben, das ist mir sehr wohl bewusst. Es ist aber dann so das diese Abschätzung eben bei gut geschützten Daten immer daneben liegen wird. Bei meinen Tests zeigte sich das das trainierte Netz bei Dateien die nur teilweise verschlüsselte Informationen enthielten, absolut versagte. Noch schlimmer, es lies sich noch nicht mal so trainieren das es solche teilverschlüsselten Dateien überhaupt unterscheiden konnte. Die Eingangsfrage zielte darauf ab ob man verschlüsselte Dateien identifizieren kann. Ja man kann solche Dateien als Abschätzung identifizieren. Aber wirklich gut verschlüsselte Dateien wird man niemals entdecken können. Wenn nun ALLE verschlüsselten Datein auf solche sehr gute Verfahren aufbauen so sinkt diese Abschätzung gegen Null ! Dies impliziert also das man verschlüsselte Daten niemals eindeutig identifizieren kann. Und das ist auch ein Sinn der Verschlüsselung ! Gruß Hagen |
Re: Datei verschlüsseln und in einen Stream schreiben
Zitat:
Zitat:
![]() ![]() Zitat:
Wikipedia sagt: Viele Menschen ordnen die Steganographie als Unterpunkt zur Kryptographie ein. Das ist falsch, da beide Wissenschaften vollkommen verschiedene Ansätze haben, eine Nachricht dem Empfänger sicher zukommen zu lassen. Zitat:
Zitat:
Zitat:
Nochmal: Kryptologen sprechen sich ja gerade gegen Security through Obscurity aus! |
Re: Datei verschlüsseln und in einen Stream schreiben
Zitat:
Nun, wenn du so willst propagiere ich persönlich die Verschlüsselungs-Steganographie also die sichere Kombinationen beider Varianten. Wenn aber beides das "Schützen geheimer Daten" darstellt dann frage ich mich was wäre der gemeinsamme Oberbegriff ? Für mich ist es Kryptographie. Nochmal: der Schutz bei der Steganographie sollte nicht nur auf dem Verstecken der Daten basieren sondern auch auf der Anwendung starker Verschlüsselungsalgorithmen. Steganographie hat also aus meiner Sicht rein garnichts mit "Security through Obscurity" zu tun. Das was du meinst ist eher das erreichen einer scheinbaren Sicherheit durch die Erhöhung der Komlexität oder das geheimhalten der Verfahren ohne jedoch einen mathematischen Beweis für die Sicherheit zu haben. Aus dieser Sichtweise stimme ich dir natürlich voll und ganz zu. Nur darfst du heutige steganographische Verfahren damit NICHT vergleichen. D.h. ich persönlich meine das es nicht nur wichtig ist seine Daten sehr sicher per Verschlüsselungen zu schützen sondern eben auch die Anwendung der Verschlüsselung selber geheim zu halten. Man schützt also nicht nur die Daten selber sondern auch den Vorgang des Schützens der Daten. Der Sinn der Verschlüsselung ist es doch das nicht berechtigte Personen keinen Zugriff auf die Daten haben sollen. Nun der nächste Schritt wäre demnach den nicht berechtigen Personen den Zugriff auf das Wissen das überhaupt was geschützt wurde zu verwehren ! Das ist der Sinn der Steganographie wie ich ihn begreife. Demnach ist Steganographie wiederum ein Mittel der Kryptographie. Ich für mich persönlich differenziere zwischen Steganographie, Verschlüsselungen, Einweg Funktionen, Verteilte Geheimnisse usw. usw. und als Oberbegriff steht für mich die Kryptographie. Die Anti-Wissenschaft wäre die Kryptologie. Du kannst da mit Verweisen auf Wiki's dienen wie du möchtest, nur müssen diese für mein persönliches Begriffsverständnis nicht richtig sein. Ich vertrete hier meine Meinung, meine Erfahrungen und gebe dieses Wissen so weiter wie ich es verstanden habe. Das heist zwangsläufig auch das wir uns darüber streiten können, das mein begriffliches Wissen falsch sein könnte oder aber der Wiki einfach nur Allgemeinwissen wiederspiegelt. Wissen verändert sich. Denoch wäre das dann nur eine Diskussion über Begrifflichkeiten und nicht über Inhalte. Zurück zu Inhalten kann ich aus eigener Erfahrung mit praktischen Experimenten nur sagen das es nicht möglich ist zuverlässig eine verschlüsselte Datei von beliebigen anderen Dateien zu unterscheiden. Denn falls es irgendeinem gelingen sollte ein Verfahren zu entwickeln, das mit Sicherheit zwischen beliebig verschlüsselten Daten und unverschlüsselten Daten unterscheiden kann, so hiese dies implizit auch das dieses Verfahren der ultimative Codebreaker wäre. Denn dieses Verfahren muss mit Sicherheit unterscheiden können zwischen Zufall, komprimierten Daten und verschlüsselten Daten. Zitat:
Es geht darum zu erkennen ob eine beliebige Datei verschlüsselte Informationen enthält oder eben nicht. Falls sie verschlüsselte Informationen enthalten sollte so wissen wir denoch nichts über den unverschlüsselten Inhalt. Demzufolge kann aus dieser Sicht jede komprimierte oder auch Zufallsdatei Informationen enthalten so wie eine verschlüsselte Datei auch. Und jede Textdatei, Bitmap, Wave kann verschlüsselte Informationen einbettet haben. Das diese Informationen mit Steganographie eingebettet wurden ist erstmal belanglos, wichtig ist die Antwort zur Frage "enthält diese Datei verschlüsselte Informationen ?". Da in diesem Moment die Entropie exakt gleich zu einer gleichwertigen Datei ohne verschlüsselte Informationen ist, denn DAS ist ja die Aufgabe der digitalen Steganographie, "das Einbetten von Informationen in die Entropie anderer Daten ohne deren Entropie merklich zu verändern", und diese eventuell eingebetteten Informationen verschlüsselt wurden, ist es logischerweise eben nicht möglich über die Entropie einer Datei erkennen zu wollen ob sie verschlüsselte Informationen enthält oder nicht. Und eben aus diesem Zusammenhang heraus sehe ich die Verschlüsselungen und die Steganographie als Verfahren der Kryptographie an. So gesehen gibt es zwei übergeordnete Wissenschaften, die Kryptographie und die Kryptologie. Natürlich nur für mein ganz persönliches Begriffsempfinden :) So und hier noch par verschlüsselte Daten die die exakte Entropie von deutschem Text haben: "Umschlaghafen knusperigster verirrende zentnern wallfahrenden vor profivereine. Umgebuchtes gewateten versteigt seitenblick ausklammernde, präzisionsleistung hefeteig zufließender bucht. Angenehmere ersatzkanister kommunikationsleitungen fußabstreicher ! Gleichbleiben streifblicke nennend klangst extremeren Thermosflasche ortes Cellophanpapier Juwelen beklagendes ausgeholtes umgestalten" Unverschlüsselt heist das "Das ist ein verschlüsselter Text". Die Verschlüsselung dafür benutzt eine Transposition, eine Transposition eines Bytes in ein deutsches Wort. Es ist KEINE Steganographie da der Text selber keinen Sinn macht und für jeden Menschen, besser gesagt Deutschen, sofort als Quatsch zu entziffern ist. Allerdings ist ein Computer mit einem Entropie-Berechnungs-Algorithmus eben kein Mensch und schon garnicht Wissenbasiert mit Syntaktischem Regelwerk. Einnormaler Entropie-Algorithmus wird diese Verschlüsselung als normalen Text erkennen müssen. Gruß Hagen |
Re: Datei verschlüsseln und in einen Stream schreiben
Achso, und damit schließt sich der Kreis zu meinem Experiment mit dem Neuronalem Netzwerk. Denn solche Texte sollte es im Idealfalle als verschlüsselte Informationen erkennen, zumindestens wäre das das Ziel gewesen wenn nicht schon viel früher das NN versagt hätte. Es hat aber noch nichtmal ansatzweise den Unterschied solcher Texte zu normalen Texten erlernen können. Ergo: aus Sicht des Netzwerkes haben die Trainingsdaten immer die gleiche "Sprache" gesprochen, es konnte innerhalb der Trainingsdaten keinerlei Unterschiede entdecken. Erwartungsgemäß war die Trefferquote des Netzwerkes bei 50%, also nicht besser als bloßes Raten.
Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz