kostenloser Webspace werbefrei: lima-city


Javascript verschlüsselung

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    Hallo,
    ich habe ein Script genau meinen Wünschen ensprechend gefunden. Ich habe eine encript() und eine decrypt() Funktion mit den Attributen (key, string). Jetzt denk ich mir aber wenn ich einen Key mit Javascript generiere ist das ganze ja komplett sinnlos. Deshalb hab ich das ganze mit PHP gemacht und den Key dann ins Javascript eingefügt.

    Jetzt weiss man zwar nicht wie ich den Key generiere, aber man sieht ihn trotzdem. Das ganze mit PHP läuft übrigens über Ajax ab. Wie kann ich das lösen?

    Gruss
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Was willst du überhaupt verschlüsseln? Und mit welchem Algorithmus? Und was willst du bezwecken?
  4. ich schlage dir vor, dass du dir diese google liste (nur vom letzten jahr) gewissenhaft abarbeitest! die gründe bilden diverse fehlermöglichkeiten, die in diesem kontext immer wieder auftreten. z.b.:
    stackoverflow_i,
    stackoverflow_ii,
    ... &c.

    ==== EDIT: verende keine alten beispiele!

    Beitrag zuletzt geändert: 5.6.2013 2:24:35 von czibere
  5. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    hackyourlife schrieb:
    Was willst du überhaupt verschlüsseln? Und mit welchem Algorithmus? Und was willst du bezwecken?


    Das Script nennt sich blowfish. Nachrichten für einen Privaten nutzen. Also gibt es recht viel zu verschlüsseln, weshalb ich das mit JS machen will. Ich will bezwecken, dass wenn jemand die Leitung abhören würde er nur das verschlüsselte bekommt und in der Datenbank auch nur die verschlüsselten Daten sind.

    @czibere:
    Schau ich mir dann mal zuhause an, danke.

    Beitrag zuletzt geändert: 5.6.2013 16:14:46 von c143
  6. m**********n

    c143 schrieb:
    Ich will bezwecken, dass wenn jemand die Leitung abhören würde er nur das verschlüsselte bekommt


    Und du denkst, ein professioneller Man in the middle wäre nicht in der Lage, dein JavaScript, welches du auch über die Leitung schickst, auszuführen?
    Um sich vor einer solchen Attacke zu schützen, musst du dafür sorgen, dass dein "key" nicht mitgelesen werden kann. Dazu wäre es notwendig den Schlüssel einmal auf dem Server zu speichern und einmal auf allen Rechnern. Wobei selbst das theoretisch unsicher ist, weil allein eine unverschlüsselte Übertragung auf den Server dazu führen könnte, den Schlüssel mitzulesen.
    Auch dürftest du deinen Schlüssel nicht unverschlüsselt über das Internet verteilen, sondern müsstest ihn per Post/per USB weitergeben.

    Gegen eine Man in the middle attack sich zu schützen ist also extrem aufwendig.

    Grüße
    Mator
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    c143 schrieb:
    Nachrichten für einen Privaten nutzen. Also gibt es recht viel zu verschlüsseln, weshalb ich das mit JS machen will. Ich will bezwecken, dass wenn jemand die Leitung abhören würde er nur das verschlüsselte bekommt und in der Datenbank auch nur die verschlüsselten Daten sind.
    Wäre es nicht einfacher SSL für diesen Zweck zu nutzen? Dann sind zwar die Daten in der Datenbank nicht verschlüsselt, die Verbindung lässt sich aber auch nicht abhören.

    @mator-kaleen:
    Es gibt sehr wohl einen halbwegs sicheren Weg, wobei ein Teil davon Public-Key-Kryptographie wäre …
  8. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    mator-kaleen schrieb:
    c143 schrieb:
    Ich will bezwecken, dass wenn jemand die Leitung abhören würde er nur das verschlüsselte bekommt


    Und du denkst, ein professioneller Man in the middle wäre nicht in der Lage, dein JavaScript, welches du auch über die Leitung schickst, auszuführen?
    Um sich vor einer solchen Attacke zu schützen, musst du dafür sorgen, dass dein "key" nicht mitgelesen werden kann. Dazu wäre es notwendig den Schlüssel einmal auf dem Server zu speichern und einmal auf allen Rechnern. Wobei selbst das theoretisch unsicher ist, weil allein eine unverschlüsselte Übertragung auf den Server dazu führen könnte, den Schlüssel mitzulesen.
    Auch dürftest du deinen Schlüssel nicht unverschlüsselt über das Internet verteilen, sondern müsstest ihn per Post/per USB weitergeben.

    Gegen eine Man in the middle attack sich zu schützen ist also extrem aufwendig.

    Grüße
    Mator


    Genau das denk ich eben, und genau das hab ich auch im ersten Post geschrieben... Ich generiere einen Key und will, dass er ihn nicht mitlesen kann. Er ändert sich zwar für jede Nachricht aber das ist ja kein Problem. Auch wenn er verschlüsselt übertragen wird steht er in der Javascript Funktion drin.





    hackyourlife schrieb:
    c143 schrieb:
    Nachrichten für einen Privaten nutzen. Also gibt es recht viel zu verschlüsseln, weshalb ich das mit JS machen will. Ich will bezwecken, dass wenn jemand die Leitung abhören würde er nur das verschlüsselte bekommt und in der Datenbank auch nur die verschlüsselten Daten sind.
    Wäre es nicht einfacher SSL für diesen Zweck zu nutzen? Dann sind zwar die Daten in der Datenbank nicht verschlüsselt, die Verbindung lässt sich aber auch nicht abhören.

    @mator-kaleen:
    Es gibt sehr wohl einen halbwegs sicheren Weg, wobei ein Teil davon Public-Key-Kryptographie wäre …


    Die Verschlüsslung brauch ich sowieso und in der Datenbank hätt ichs auch gern verschlüsselt, das ist eben das Problem.
  9. m**********n

    Naja, wenn wir von dem Fall ausgehen, dass deine SSL-Verbindung WIRKLICH sicher ist, dann stellt die Übertragung deines Datenbankschlüssels kein Problem mehr dar.

    @hackyourlife
    Es ist dennoch der (wenn auch unwahrscheinliche) Fall zu betrachten, dass er im Moment schon angegreiffen wird. Und wenn er sich nun einen Server mit SSL einrechten (wo es nicht eingerichtet ist), dann könnte es tatsächlich passieren, dass jemand den privaten Schlüssel mitliest. Und ab dem Zeitpunkt ist die Sicherheit weg.
    Das ist natürlich nur rein hypothetisch, denn... wer sollte dich so extrem überwachen?

    Aber theoretisch geht es.
  10. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    mator-kaleen schrieb:
    Naja, wenn wir von dem Fall ausgehen, dass deine SSL-Verbindung WIRKLICH sicher ist, dann stellt die Übertragung deines Datenbankschlüssels kein Problem mehr dar.

    @hackyourlife
    Es ist dennoch der (wenn auch unwahrscheinliche) Fall zu betrachten, dass er im Moment schon angegreiffen wird. Und wenn er sich nun einen Server mit SSL einrechten (wo es nicht eingerichtet ist), dann könnte es tatsächlich passieren, dass jemand den privaten Schlüssel mitliest. Und ab dem Zeitpunkt ist die Sicherheit weg.
    Das ist natürlich nur rein hypothetisch, denn... wer sollte dich so extrem überwachen?

    Aber theoretisch geht es.


    Wieso sollte ich angegriffen werden? Ich hab noch nicht mal etwas online...
    Wie könnte ich denn den Schlüssel in die Javascriptfunktion übertragen?
  11. Mega EDIT :p

    schau dir das mal an,

    http://www.governmentsecurity.org/forum/topic/21157-blowfish-encryption-class/
    die combi von blowfish und ein ssl cert sollte für die belange mehr als ausreichend sein.
    wenn du das erstmal mit einem self signed cert testest sparste dir für´s cert auch erstmal die kosten.

    (Sofern hier oder auf dem Vserver möglich, ausser du hast ne rootkiste)

    und wieso javascript ?
    das ganze sollte ggf. per session mit ssl+blowfish laufen

    mit js wäre es dann durchaus möglich ein polling zu starten

    wie du das machst findest du hier:

    http://stackoverflow.com/questions/6835835/jquery-simple-polling-example
    mein vorschlag die daten verschlüsselt in die db zu schreiben,

    machen die user ein auth an deinem system oder wie willst du den key exchangen ?
    pro post ein key wie oder woher bekommt das ziel den key, um die msg lesen zu können ?

    fragen fragen fragen............................
    jetzt komm nicht mit geheim den dann ist dein konzept murks

    zu beachten ist auch das je nach verschlüsselung Stärke und Algo der Server ne menge zu kauen hat
    und sowas für en Vserver respektive webspace..... da steigt dir bei massig load der Admin auf´s dach :)
    für sowas gibt es u.a. signier hardware / server die kostet je nach ausführung ein kleinwagen

    Randnotiz:

    "geht allerdings viel einfacher, irc -> bot+blowfish enc, blowfish + mirc und fertisch ist der lack
    chan key global , person to person key pro talk neu, oder ganz durchgeknallt, in der partyline vom eggdrop+ssl blowfish, und da geschnackt,

    ein webirc client z.b.

    https://kiwiirc.com/
    https://www.ohloh.net/p/jircwin/tags/select

    den kannste im member bereich deiner page insten die o.g. technik (ssl Session vom webserver +irc+blow) nutzen , und hast ein hyper secure env " :)




    Beitrag zuletzt geändert: 6.6.2013 6:50:59 von n0tiert
  12. c143 schrieb:
    Wie könnte ich denn den Schlüssel in die Javascriptfunktion übertragen?

    Wir reden hier von Javascript, richtig?
    Wo wird Javascript ausgeführt? Beim Client. Ergo müßtest Du eh alle, zur Entschlüsselung benötigten Daten mitliefern, damit Browser des berechtigten Nutzer das Script ausführen kann.
    Klingelt was? .
    Ist der Key im Javascript, ist er genau so sinnvoll versteckt/gesichert, wie der Hausschlüssel unter der Fußmatte, auf den mit einem Zettel an der Tür hingewiesen wird. :wink:

    Wenn es dir nur um das Abhören geht, hast Du den richtigen Tip "SSL" bereits bekommen. Javascript kann da keine Sicherheit bieten.

    Unabhängig von JS kann ein Key, der gemeinsam mit der Nachricht übermittelt wird. keine Sicherheit für die Nachricht gewährleisten. Nur die "Gespächspartner" dürfen den Schlüssel kennen. Der Austausch des Schlüssels darf dann aber nie über den gleichen Weg stattfinden, wie die anschließende Kommunikation.

  13. Für eine simple verschlüsselung kannst du schon per Javascript lokal verschlüsseln, dann an den Server schicken und es da nochmals per PHP z.b. verschlüsseln. Somit hast du es sicher auf dem Server gelagert. Wenn du sicher übertragen willst, solltest du das schon mit einer https verbindung bzw ssl tun.
    Ansonsten kannst du dir mal Public-Key-Verschlüsselungsverfahren anschauen.
  14. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    n0tiert schrieb:
    schau dir das mal an,

    http://www.governmentsecurity.org/forum/topic/21157-blowfish-encryption-class/

    Dass es Blowfish auch für PHP gibt, weiss ich, aber das wär mir zu viel Rechenarbeit für den Server. Wenn ich dann das über SSL übertragen würde (weils ja noch nicht verschlüsselt ist) ginge es, ja, aber das Ziel wär echt mit Javscript.

    n0tiert schrieb:
    und wieso javascript ?


    n0tiert schrieb:
    zu beachten ist auch das je nach verschlüsselung Stärke und Algo der Server ne menge zu kauen hat
    und sowas für en Vserver respektive webspace..... da steigt dir bei massig load der Admin auf´s dach :)
    für sowas gibt es u.a. signier hardware / server die kostet je nach ausführung ein kleinwagen


    Wieso Javascript hast du dir grad selbst beantwortet, und ich auch schon in nem Post. Nehmen wir mal an ich bau einfach nur nen Chat, dann würde jede Nachricht verschlüsselt werden und das ist für den Server einfach zu viel.

    n0tiert schrieb:
    machen die user ein auth an deinem system oder wie willst du den key exchangen ?
    pro post ein key wie oder woher bekommt das ziel den key, um die msg lesen zu können ?

    fragen fragen fragen............................
    jetzt komm nicht mit geheim den dann ist dein konzept murks

    Pro Nachricht ändert sich der Key, da ich dazu verschiedene Daten der User Nehme. Name der User, Anzahl der Nachricht, Datum, Uhrzeit usw. Würde man also die gleiche Nachricht mit dem selben User schreiben, ists trotzdem ein anderer Key und somit eine andere Verschlüsselung. Was soll daran Geheim sein?

    fatfreddy schrieb:
    Wir reden hier von Javascript, richtig?
    Wo wird Javascript ausgeführt? Beim Client. Ergo müßtest Du eh alle, zur Entschlüsselung benötigten Daten mitliefern, damit Browser des berechtigten Nutzer das Script ausführen kann.
    Klingelt was? .
    Ist der Key im Javascript, ist er genau so sinnvoll versteckt/gesichert, wie der Hausschlüssel unter der Fußmatte, auf den mit einem Zettel an der Tür hingewiesen wird. :wink:


    Genau weils gleich geklingelt hat, hab ich ja darüber einen Post geschrieben… liest das überhaupt jemand?




    Also SSL ist das richtige Stichwort sagt ihr. Da Frage ich mich, was die Javascriptverschlüsslung dann für einen Sinn hat. Oder wie das z.B. Mega alles im Browser verschlüsselt. Genau das wär eigenltich mein Ziel, alles wird im Browser verschlüsselt, mein Server hat keine unnötige Arbeit und somit ist die Übertragung auch grad schon sicher.

    Beitrag zuletzt geändert: 6.6.2013 16:41:47 von c143
  15. c143 schrieb:
    Also SSL ist das richtige Stichwort sagt ihr. Da Frage ich mich, was die Javascriptverschlüsslung dann für einen Sinn hat. Oder wie das z.B. Mega alles im Browser verschlüsselt. Genau das wär eigenltich mein Ziel, alles wird im Browser verschlüsselt, mein Server hat keine unnötige Arbeit und somit ist die Übertragung auch grad schon sicher.


    Da du Mega ansprichst: Da weiß der Browser natürlich den Schlüssel. Weiß nicht wie es bei Mega genau gemacht wird, aber glaube das der Schlüssel steckt da im Anker des Links.
    Auf jeden Fall ist da das Passwort dem Browser und dem Benutzer bekannt und lediglich dem Server nicht. Das ist ja auch der Sinn der Sache in diesem Fall.

    Da bleibt natürlich die Frage des Schlüsselaustausches. Mit asynchroner Verschlüsselung kann man da schon was machen, wenn sich nicht grade im Moment des Schlüsselaustausches jemand einklinkt. Das würde dann aber auch auffallen und man könnte den Schlüssel wechseln.
    Natürlich ist asynchron ziemlich rechenintensiv weshalb (z.B. bei SSL) der synchrone Schlüssel meistens per asynchroner V. ausgetauscht wird und ab da der synchrone verwendet wird.
    Allerdings wäre hier das Problem, dass auch wenn man den Inhalt nicht kennt man erstmal noch Absender und Empfänger kennt. Da wäre dann noch die Kommunikation zwischen den Clients und dem Server extra zu verschlüsseln.
    Was ist eigentlich so schwer daran sich solche Szenarien auszudenken?:confused:
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!