it-swarm.com.de

Welche Untersuchungen legen nahe, dass die Mausbewegungen des Benutzers für die Generierung geheimer Schlüssel (nicht) ausreichend unvorhersehbar sind?

Ich konnte keine glaubwürdige Quelle finden, die versuchte, die Zufälligkeit von Mausbewegungen zu beweisen oder zu widerlegen.

Es könnte relevant sein zu erwähnen, dass ein kurzer Blick auf den Puttygen-Quellcode darauf hindeutet, dass er private Schlüssel ausschließlich basierend auf Mausbewegungen generiert. Es füllt ein Array mit der Zeit der Mausbewegungsereignisse in den geraden Zellen und der Mausposition in den ungeraden Zellen, streut etwas magisches Mischen darüber (Mischen des Speichers, Xoring-Felder) und ruft einen RSA/DSA/EC * -Schlüsselgenerator mit auf das Array als Argument. Ob es ernsthafte Beweise dafür gibt, dass Mausbewegungen eine gute Entropiequelle sind, ist für solche Anwendungsfälle sehr wichtig. Beachten Sie, dass dies anders ist als die Verwendung als zusätzliche Quelle, z. B. im Linux-Kernel, wodurch die Qualität nur dann erhöht wird, wenn es sich um eine mittelmäßige Quelle handelt.

Es fällt mir schwer zu glauben, dass sich niemand jemals damit befasst hat. Was vermisse ich?

15
Luc

Ich glaube nicht, dass es Forschungsarbeiten gibt, die die Unvorhersehbarkeit des neuromuskulären Systems im Kontext der Computersicherheit und bei den relevanten Abtastraten beschreiben, daher kann ich die gewünschten Forschungsarbeiten nicht verknüpfen. Ich kann jedoch zumindest einige der Gründe erklären, warum menschliche Bewegung so stochastisch und unvorhersehbar ist. Alles läuft auf eine einfache Tatsache hinaus: Lebendes Gewebe ist ein wirklich, wirklich schlampiges Medium für die Informationsübertragung. Dies ist seit sehr langer Zeit bekannt und war der Computational Neuroscience ständig ein Dorn im Auge. Biologische neuronale Netze sind schreckliche Computer.

Die Übertragungsgeschwindigkeit von Neuronen variiert manchmal erheblich. Selbst innerhalb eines einzelnen Neurons ist die Geschwindigkeit variabel. Darüber hinaus hängt die Anzahl der nacheinander gesendeten Aktionspotentiale (elektrische Signale, die sich über das Axon ausbreiten) von der Wahrscheinlichkeit ab, dass sich zu einem bestimmten Zeitpunkt mikroskopische Ionenkanäle öffnen. Zusätzlich haben Muskeln eine hohe Menge an Jitter. Die Kraft eines Muskels kommt nicht von einer skalaren Zunahme der Aktivität, sondern von diskreten Bündeln von Muskelzellen, die als motorische Einheiten bezeichnet werden und aktiviert werden. Selbst wenn wir so stark wie möglich biegen, können wir nur etwa 30% der Motoreinheiten aktivieren. Diese zufällige Rekrutierung motorischer Einheiten führt zu den für freiwillige Skelettmuskeln typischen zuckenden Vibrationen.

Die Kombination des extrem stochastischen Verhaltens von Neuronen und der probabilistischen Aktivierung von Muskelzellen führt zu winzigen variablen Verzögerungen im Timing. Während diese Verzögerungen für einen Menschen nicht wahrnehmbar sind, bemerkt ein Computer, der milliardenfach pro Sekunde tickt, dies schnell. Aufgrund der zufälligen Verzögerungen, die der neuronalen Übertragung eigen sind, können Millionen von Zyklen vergehen, und diese zufälligen Verzögerungen können gemessen und als Entropiequelle verwendet werden. Obwohl wir keine Untersuchungen haben, die genau zeigen, wie viele Entropiebits jedes Aktionspotential erzeugen wird, können wir eine äußerst konservative Vermutung anstellen und sagen, dass der gesamte Prozess, vom Gehirn über die Muskeln bis zum Tastenanschlag, weniger als ein einziges Stück übrig lässt Entropie. Dann sind nur noch ein paar hundert Tastenanschläge erforderlich, um eine kryptografisch signifikante Menge an Entropie zu erhalten.

Das stochastische Verhalten des menschlichen Gehirns ist recht gut beschrieben hier (siehe Abschnitte 3 und 4).


Die Entropie durch Tastenanschläge oder Mausbewegungen kommt daher aus zwei Quellen:

  1. Individuelle Variationen bei Menschen aufgrund einer eindeutigen Anzahl von Neuronen und eindeutigen neuronalen Schaltkreisen.

  2. Zeitabhängige Schwankungen der Übertragungsgeschwindigkeit des Aktionspotentials, der Rekrutierung von Motoreinheiten usw.

All dies führt zu zufälligen Verzögerungen, die zwar für alltägliche Aufgaben irrelevant sind, für einen Computer mit manchmal sogar zeitlicher Auflösung von weniger als einer Nanosekunde jedoch gut sichtbar sind. Wenn wir die Zeit von Ereignissen abtasten (nicht nur Daten wie die Position des Mauszeigers oder das Drücken der Taste), können wir mit Sicherheit sagen, dass sie mindestens eine nominelle Entropie enthalten. Schließlich sollte angesichts all dieser stochastischen Zufälligkeit klar werden, dass es unmöglich ist, innerhalb von Nanosekunden zu erraten, wie lange es dauern wird, bis ein Signal aus unserem Gehirn eine Taste drückt. Selbst wenn es so vorhersehbar ist, dass wir mit 50% iger Genauigkeit erraten können, wie lange es dauern wird, gibt es uns dennoch ein weiteres Stück Entropie, das wir unserem Entropiepool hinzufügen können, von dem wir nicht viel mehr als hundert benötigen.

Es ist jedoch wichtig zu wissen, dass es leicht ist, die Entropiesammlung falsch zu machen. Sie können nicht einfach die Mausbewegung abtasten und die Systemzeit als Uhr verwenden. Sie müssen die Abtastung sofort auslösen, wenn das Ereignis eintritt. Dies bedeutet, dass die Erfassung innerhalb des Kernels erfolgen muss, normalerweise innerhalb eines Interrupt-Handlers. Andernfalls ist es sehr wahrscheinlich, dass vorhersehbare Planungsverzögerungen die gesammelte Entropie beeinträchtigen. Was nützt ein zufälliges Tastendruckereignis, wenn es gepuffert wird, sobald es auftritt und nur in vorhersehbaren Intervallen für den Benutzerbereich freigegeben wird? Sie sollten die Entropiesammlung immer dem Betriebssystem selbst überlassen.

7
forest

Meiner Meinung nach basiert das Konzept auf Fingerabdrücken von Mausbewegungsbenutzern, bei denen der Umfang der Komplexität bei der Schlüsselgenerierung völlig unterschiedlich ist.

Wenn Sie beide vergleichen, werden Sie feststellen, dass die Benutzeridentifikation mithilfe des Fingerabdrucks der Mausbewegung weniger Entropie erfordert, um die Identifizierung zu verbessern. Ein hohes falsches Positiv ist akzeptabel. Somit ergibt der Fingerabdruck der Mausbewegung eine hohe Genauigkeit.

Auf der anderen Seite verwendet der Mausbewegungsschlüsselgenerator eine hohe Entropie, abhängig von der Stimmung und der Umgebung der Person, die ich bezweifle, dass jeder in jeder Kontrollumgebung reproduzieren kann. Z.B. Eine Person mit leerem Magen bewegt die Maus anders als ein voller Magen.

0
mootmoot