Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Sicherer AES Passphrase

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Sicherer AES Passphrase

    Hallo Leute,

    Für einen Chat,der Ende-zu-Ende verschlüsselt sein soll,will ich cryptico
    (https://github.com/wwwtyro/cryptico) verwenden.
    Hier kommen mir jedoch einige Fragen:

    1.Wie erstelle ich automatisch generierte Passphrasen, welche auch sicher sind?

    2.Was haltet ihr von der Kombination
    "Benutzername+email+Ip-Adresse+timestamp(microtime) ?"

    3.Wenn jemand Benutzername+email+Ip-Adresse irgendwie herausfinden kann und weiß, wann die Nachricht ungefähr abgeschickt wurde,könnte er ja das problemlos nachbauen..oder nicht?.
    Wisst ihr da was Besseres?

    4.Sollte man eigentlich für jede Nachricht ein neues Key-Pair generieren oder ist das ein wenig übertrieben?

    5.Gibt es vielleicht auch eine sicherere/bessere Alternativen zu cryptico, die dieses Problem gleich mitlöst?

    Ich hoffe das waren nicht zu viele Fragen auf einmal

    Vielen Dank
    euer easyAnfänger26

  • #2
    Was stellt denn sicher, dass du dem Bootstrap-Skript (das ist das IndexSkript, dass deinen Chat startet) Vertrauen kannst?

    Kommentar


    • #3
      browser fingerprint?
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        was meinst du damit?
        ich schreibe mein skript selber und nutze ssl.

        Kommentar


        • #5
          Jede Passphrase ist im Endeffekt nur eine Folge von Bits. Die Passphrase ist in der Länge begrenzt (bei AES üblich 128 oder 256 Bit). Lies also von /dev/urand ein paar Bytes und du bist glücklich .
          [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

          Kommentar


          • #6
            ja aber ist diese denn einzigartig und nicht reproduzierbar? (also statitisch gesehen)
            ich kenn mich mit den zufallsalgos nicht aus darum frag ich so blöd..

            und wo bekomm ich die her? js kennt kein urand() soweit ich weiß!?

            EDIT:
            was haltet ihr von sowas? :
            https://entima.net/diceware/

            Kommentar


            • #7
              1.Wie erstelle ich automatisch generierte Passphrasen, welche auch sicher sind?
              gar nicht - ohne hardware oder brauchbaren zufallsgenerator.
              weniger?
              Lies also von /dev/urand ein paar Bytes und du bist glücklich .
              genau.

              Kommentar


              • #8
                Zitat von moma Beitrag anzeigen
                gar nicht - ohne hardware oder brauchbaren zufallsgenerator.
                weniger?
                gut, und wie geht das dann überhaupt?
                wie machen denn das dann TextSecure Messenger,threema usw.,da ist die hardware ja auch nur ein smartphone..

                Kommentar


                • #9
                  Zitat von easyAnfaenger26 Beitrag anzeigen
                  gut, und wie geht das dann überhaupt?
                  wie machen denn das dann TextSecure Messenger,threema usw.,da ist die hardware ja auch nur ein smartphone..
                  so, wenn mich nicht alles täuscht:
                  http://developer.android.com/referen...ureRandom.html
                  in der form:
                  Code:
                  random = SecureRandom.getInstance("SHA1PRNG");
                  ich weiss nicht, wie highend mäsig das so ist.

                  die sorgen bei linux sind mal kurz hier erleutert, werden aber wohl beim endgültigen umschwung auf libressl behoben:
                  https://www.schneier.com/blog/archiv...rities_in.html

                  trozdem rate ich dir nach wie vor zu dem linux random generator, wenn du darauf zugreifen kannst.

                  Kommentar


                  • #10
                    ok, das ist ja dann geräte-spezifisch,ich dachte eigentlich ich kann das direkt in JS browserübergreifend realisieren...

                    Kommentar


                    • #11
                      Du kannst ja auch mittels AJAX von urand eines zentralen Servers lesen.
                      [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                      Kommentar


                      • #12
                        aber untergräbt das nicht irgendwie das Prinzip von PGP?

                        Kommentar


                        • #13
                          Zitat von easyAnfaenger26 Beitrag anzeigen
                          ok, das ist ja dann geräte-spezifisch,ich dachte eigentlich ich kann das direkt in JS browserübergreifend realisieren...
                          wieso auch linkis lesen gelle?
                          also servier:
                          http://bitwiseshiftleft.github.io/sj...sjcl.prng.html
                          http://bitwiseshiftleft.github.io/sjcl/demo/

                          ist nicht "full metal jacket uranium bullet profed" aber gut genung für unsere anwendungen!

                          Kommentar


                          • #14
                            also schön ich seh ein,so einfach ist das wohl nicht...
                            Was haltet ihr von diesem Ansatz:
                            PHP-Code:
                            if(typeof(window.crypto)==='undefined')
                                            {
                                                
                            alert('Ihre Nachrichten sind nicht kryptographisch sicher!');
                                                
                            Passphrase=(Math.random()*10).toString();
                                                
                            Passphrase=Passphrase.replace('.','');
                                                
                            alert(Passphrase);//testzweck
                                                /* weitere verarbeitung */
                                            
                            }
                                            else
                                            {   
                                                
                            Passphrase=new Uint32Array(10);
                                                
                            window.crypto.getRandomValues(Passphrase);
                                                for(var 
                            i=0;i<Passphrase.length;i++)
                                                {
                                                    
                            alert('sichere Nachrichten-verschlüsselung!');
                                                    
                            alert(Passphrase[i]); //nur zu testzwecken
                                                    /*weitere verarbeitung*/
                                                
                            }
                                            } 
                            Wenn ich jetzt noch Math.random() mit einem ajax-urand aus dem server ersetze bin ich doch ganz gut aufgestellt,oder ?! 100% gibt's ja eh nicht..

                            Kommentar


                            • #15
                              Zitat von https://developer.mozilla.org/en-US/docs/Web/API/RandomSource.getRandomValues
                              The PRNG used differ from one implementation to the other but is suitable for cryptographic usages.

                              Kommentar

                              Lädt...
                              X