Hash Randomisierung in Perl 5

8

Als Perl 5.8.1 herauskam, fügte es Hash-Randomisierung . Als Perl 5.8.2 herauskam, dachte ich, es entfernte Hash-Randomisierung, wenn keine Umgebungsvariable ( PERL_HASH_SEED ) vorhanden war. Es scheint jetzt so, als würde ich mich schwer irren wie

%Vor%

Startet immer die gleiche Tastenfolge unabhängig vom Wert von $SEED .

Ist die Hash-Randomisierung komplett verschwunden, mache ich etwas falsch oder ist das ein Fehler?

    
Chas. Owens 13.07.2011, 20:12
quelle

2 Antworten

6

Siehe Algorithmische Komplexitätsangriffe :

  

In Perl 5.8.1 wird die Hash-Funktion zufällig durch einen Pseudozufalls-Seed gestört, was das Erzeugen solcher unartiger Hash-Schlüssel erschwert. [...] aber ab 5.8.2 wird es nur bei einzelnen Hashes verwendet, wenn die Interna die Einfügung pathologischer Daten erkennen .

Randomisierung findet also nicht immer statt, nur wenn Perl erkennt, dass sie benötigt wird.

    
Mat 13.07.2011, 20:24
quelle
1

Es gab zumindest einige schlampige Dokumentationsaktualisierungen. Im dritten Abschnitt von perlrun wird der Eintrag für PERL_HASH_SEED angezeigt:

  

Das Standardverhalten ist Randomisieren, wenn nicht PERL_HASH_SEED festgelegt ist.

was in 5.8.1 nur war und widerspricht dem unmittelbar vorhergehenden Absatz:

  

Die meisten Hashes geben die Elemente standardmäßig in der gleichen Reihenfolge wie in Perl 5.8.0 zurück. Wenn auf einer Hash-nach-Hash-Basis während einer Hash-Schlüsseleinfügung pathologische Daten erkannt werden, wechselt dieser Hashwert zu einem alternativen Zufalls-Hash-Seed.

perlsec wird für Algorithmic Complexity Attacks eingetragen rechts:

  

In Perl 5.8.1 wurde die zufällige Störung standardmäßig vorgenommen, aber ab   5.8.2 es wird nur für einzelne Hashes verwendet, wenn die Interna das   Einfügen von pathologischen Daten.

perlsec fährt fort zu sagen

  

Wenn man aus irgendeinem Grund das alte Verhalten emulieren möchte, [...] setzen Sie das   Umgebungsvariable PERL_HASH_SEED auf Null, um die   Schutz ( oder eine andere ganze Zahl, um eine bekannte Störung zu erzwingen, )   als zufällig).

[Hervorhebung hinzugefügt]

Da die Einstellung von PERL_HASH_SEED nicht die Hash-Reihenfolge beeinflusst, würde ich es als Fehler bezeichnen. Die Suche nach "PERL_HASH_SEED" auf rt.perl.org ergab keine Ergebnisse, daher scheint es kein "bekanntes" Problem zu sein.

    
Michael Carman 13.07.2011 21:18
quelle

Tags und Links