Sichere Stringvergleichsfunktion

Ich bin gerade auf diesen Code in der HTTP Auth Library des Zend Framework gestoßen. Es scheint eine spezielle Funktion zum Vergleichen von Zeichenfolgen zu verwenden, um die Sicherheit zu erhöhen. Allerdings verstehe ich die Kommentare nicht ganz. Kann jemand erklären, warum diese Funktion sicherer ist als dies zu tun?$a == $b?

<code>/**
 * Securely compare two strings for equality while avoided C level memcmp()
 * optimisations capable of leaking timing information useful to an attacker
 * attempting to iteratively guess the unknown string (e.g. password) being
 * compared against.
 *
 * @param string $a
 * @param string $b
 * @return bool
 */
protected function _secureStringCompare($a, $b)
{
    if (strlen($a) !== strlen($b)) {
        return false;
    }
    $result = 0;
    for ($i = 0; $i < strlen($a); $i++) {
        $result |= ord($a[$i]) ^ ord($b[$i]);
    }
    return $result == 0;
}
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage