Forum: PC-Programmierung Kryptografie: Anonyme Accounts möglich?


von bolton more (Gast)


Lesenswert?

Hi,

ist folgendes mathematisch möglich/lässt es sich auf ein bekanntes 
Problem reduzieren?:

Ein Accountsystem, bei dem sich nur feststellen lässt, ob jemand, der 
sich einloggt/authentifiziert sich zuvor registriert hat, aber nicht 
zuordnen lässt, wer es ist?
Würde zB bedeuten, dass man natürlich keine Accounts sperren kann, 
sobald sie einmal erstellt worden sind.

Wäre auch ok, wenn man wesentlich leichter (Wahrscheinlichkeit, 
Rechenaufwand, ..) feststellen kann, ob jemand einen Account hat als 
sicher einzelne Authentifizierungen zuordnen zu können.
Zum Beispiel würde es reichen, wenn der Rechenaufwand zum feststellen 
der Zuordnungen exponentiell mit der Menge der Accounts steigen würde, 
die Wahrscheinlichkeit für eine einzelne Authentifizierung 
fehlzuschlagen, obwohl man einen Account hat, jedoch nur logarithmisch.
(paar Loginversuche, bevor man reinkommt sind also ok)

Es muss in jedem Fall nahezu unmöglich sein, dass jemand ohne Account 
sich fälschlicherweise authentifizieren kann - also ähnlich schwer wie 
Authentifizierungen zu Accounts zuordnen zu können.

Natürlich darf man davon ausgehen, dass die Teilnehmer ihre Accounts 
auch geheim halten wollen.

Geht mir nur um die Mathematik, nicht, ob das praktisch sinnvoll wäre.

Bin gespannt auf eure Antworten

von Andreas H. (ahz)


Lesenswert?

bolton more schrieb:
> Ein Accountsystem, bei dem sich nur feststellen lässt, ob jemand, der
> sich einloggt/authentifiziert sich zuvor registriert hat, aber nicht
> zuordnen lässt, wer es ist?

Ich vermute, Dein Problem ist falsch formuliert.

Ansonsten: Ja, das geht (sogar trivial). Gib allen registrierten 
Benutzern das gleiche Passwort, egal auf welcher mathematischen 
Grundlage das berechnet wurde.

Grüße
Andreas

von niemand (Gast)


Lesenswert?

Sieh dir mal an, wie Zertifikate gemacht sind.

von niemand (Gast)


Lesenswert?


von bolton more (Gast)


Lesenswert?

Andreas H. schrieb:
> Ich vermute, Dein Problem ist falsch formuliert.

> Gib allen registrierten Benutzern das gleiche Passwort

:D stimmt natürlich.

Habe vergessen, dass jeder Benutzer jederzeit in der Lage sein soll, zu 
Beweisen, dass eine einzelne Authentifikation zu  seinem Account gehört, 
ohne dazu seine Accountdaten preisgeben zu müssen, dass er also für 
beliebige Authentifizierungen seine Anonymität aufgeben kann, ohne, dass 
das weitere Auswirkungen hat.

Ist das beim Online Ticket gegeben?
Der Herausgeber kann doch bei der Ticketkontrolle rausfinden, wo ich das 
Ticket herhabe, oder?

von (prx) A. K. (prx)


Lesenswert?

bolton more schrieb:
> Habe vergessen, dass jeder Benutzer jederzeit in der Lage sein soll, zu
> Beweisen, dass eine einzelne Authentifikation zu  seinem Account gehört,
> ohne dazu seine Accountdaten preisgeben zu müssen, dass er also für
> beliebige Authentifizierungen seine Anonymität aufgeben kann, ohne, dass
> das weitere Auswirkungen hat.

Bahnhof. Versuchs mal gaaanz langsam und deutlich für klein Fritzchen.

von Andreas H. (ahz)


Lesenswert?

niemand schrieb:
> Sieh dir mal an, wie Zertifikate gemacht sind.

niemand schrieb:
> oder das hier:
> http://de.wikipedia.org/wiki/Online-Ticket

beide Vorschläge passen aber leider nicht zu:

bolton more schrieb:
> jemand, der
> sich einloggt/authentifiziert sich zuvor registriert hat, aber nicht
> zuordnen lässt, wer es ist?

Denn hier wäre das Cert. immer bei der Registrierung erstellt, dem 
Registrierenden also eindeutig zuordenbar. Wenn die Certs auch noch 
einmalig wären (one-time-pad mäßig), dann wäre diese Zuordnung sogar 
bijektiv, also könnte der Herausgeber anhand des Certs den Benutzer 
immer eindeutig identifizieren, oder ?

Also doch alle das gleiche Passwort, bzw. ein hinreichend grosser 
PW-Pool, aus dem dann zufällig eins ausgewählt wird. Ist die Anzahl im 
Pool groß genug, geht die Wahrscheinlichkeit, dass es gerade Benutzer X 
ist, irgendwann gegen 0.

Grüße
Andreas

von Andreas H. (ahz)


Lesenswert?

bolton more schrieb:
> Habe vergessen, dass jeder Benutzer jederzeit in der Lage sein soll, zu
> Beweisen, dass eine einzelne Authentifikation zu  seinem Account gehört,
> ohne dazu seine Accountdaten preisgeben zu müssen, dass er also für
> beliebige Authentifizierungen seine Anonymität aufgeben kann, ohne, dass
> das weitere Auswirkungen hat.

Ehm, versteh mich nicht falsch aber von Kryptographie hast Du entweder 
keine Ahnung oder Du kannst (zumindest mir) Dein Problem nicht 
verständlich machen.

Wenn Du Dich irgendwo einloggst wird eigentlich NIE das Passwort selbst 
übertragen, sondern nur irgendwelche Hashes. Das Passwort bleibt also 
immer nur beim Sender.Selbst der Empfänger hat typischerweise nur einen 
Hash des Passworts gespeichert und verifiziert dagegen.

Google mal nach Challenge-Response Algorithus. Das ist ein Verfahren, wo 
das Ganze auch zweiseitig gemacht werden kann, sich also der Sender und 
der Empfänger gegenseitig identifizieren.

Vielleicht ist es ja das was Du suchst...

Grüße
Andreas

von (prx) A. K. (prx)


Lesenswert?

Andreas H. schrieb:
> Wenn Du Dich irgendwo einloggst wird eigentlich NIE das Passwort selbst
> übertragen, sondern nur irgendwelche Hashes.

Auch in simplen passiven Webformularen, in Plaintext 
Browser-Authentifizierung?? Oder FTP? Oder ...

Richtig ist, dass saubere Verfahren nur den Hash in der Benutzer-DB 
speichern. Ob aber seitens des Clients oder des Servers gehasht wird ist 
sehr verschieden.

von Andreas H. (ahz)


Lesenswert?

bolton more schrieb:
> Habe vergessen, dass jeder Benutzer jederzeit in der Lage sein soll, zu
> Beweisen, dass eine einzelne Authentifikation zu  seinem Account gehört,

bolton more schrieb:
> Ein Accountsystem, bei dem sich nur feststellen lässt, ob jemand, der
> sich einloggt/authentifiziert sich zuvor registriert hat, aber nicht
> zuordnen lässt, wer es ist?

Das wiederspricht sich. Entweder hat er einen Account der ihm zugeordnet 
ist, dann ist er aber identifizierbar (wenn er der einzige 
Zugriffsberechtigte ist) oder er hat keine exclusiven Rechte, die ihn 
von Anderen unterscheidbar machen würden.

Klassischer Fall einer Äquivalenzrelation^^

Grüße
Andreas

von Andreas H. (ahz)


Lesenswert?

A. K. schrieb:
> Auch in simplen passiven Webformularen, in Plaintext
> Browser-Authentifizierung?? Oder FTP? Oder ...
Da hast Du recht. Aber das sind (in meinen Augen) auch nur Relikte aus 
den Zeiten, wo IT-Security noch ein akademisches Steckenpferd von 
Promotionsstudenten war.

> Richtig ist, dass saubere Verfahren nur den Hash in der Benutzer-DB
> speichern. Ob aber seitens des Clients oder des Servers gehasht wird ist
> sehr verschieden.
Eigentlich nicht. Es wird immer auf der Senderseite gehashed. Denn wenn 
der legendäre Oscar per Mitm-Attack das Klartext PW hat, macht das 
Hashen beim Empfänger ja auch keinen Sinn mehr.

Einzige mir bekannte Ausnahme sind die On-time-PW Generatoren (z.B. von 
Cisco) wo man gefahrlos auch den Key im Klartest schicken kann weil er 
danach sowieso ungültig ist (bei TANs ist die Situation an dieser Stelle 
fast ähnlich. Da fehlt halt die InTime Fähigkeit)

Kennst Du andere Verfahren gier

Grüße
Andreas

von Simon B. (nomis)


Lesenswert?

bolton more schrieb:
> Habe vergessen, dass jeder Benutzer jederzeit in der Lage sein soll, zu
> Beweisen, dass eine einzelne Authentifikation zu  seinem Account gehört,
> ohne dazu seine Accountdaten preisgeben zu müssen, dass er also für
> beliebige Authentifizierungen seine Anonymität aufgeben kann, ohne, dass
> das weitere Auswirkungen hat.

Vorschlag (aus der hohlen Hand, ohne Gewähr...):

* Jeder Benutzer der sich anmeldet, bekommt einen Schlüssel vom Server, 
mit dem er eigene Daten signieren kann. Jeder der diesen Schlüssel kennt 
wird sich einloggen können, d.h. der Server-Betreiber muss seinen 
Benutzern vertrauen, dass die den nicht weitergeben.

* Weiterhin generiert er sich selber ein Schlüsselpaar, ggf. sogar für 
jeden Anmeldevorgang ein neues. Dies behält er für sich selbst.

* Der Server generiert eine Zufallszahl, übermittelt die an den 
Benutzer. Dieser macht zwei Signaturen: Einmal mit dem Schlüssel vom 
Server, einmal mit seinem privaten Schlüssel.

* Das Datenpaket wird an den Server übermittelt, der seine Signatur 
überprüft und im Erfolgsfall Zugang gewährt.

* Der Server kennt den Schlüssel des Benutzers nicht, kann also die 
zweite Signatur nicht überprüfen und keinem Benutzer zuordnen.

* Der Benutzer kann aber später beweisen, dass er den Schlüssel hat, der 
die zweite Signatur erzeugt hat.

Gut?

Grüße,
        Simon

von (prx) A. K. (prx)


Lesenswert?

Andreas H. schrieb:
> Hashen beim Empfänger ja auch keinen Sinn mehr.

Der Sinn dieser Methode liegt darin, dass eine Offenlegung der Auth-DB 
wenig(er) Schaden anrichtet. Diese Problematik ist auch heute noch 
relevant. 10000 Passwörter live mitlesen dauert viel länger und ist weit 
riskanter als mal eben ein File mit 10000 Klartext-Passwörtern 
abzugreifen und sofort wieder zu verschwinden.

von (prx) A. K. (prx)


Lesenswert?

Andreas H. schrieb:
> den Zeiten, wo IT-Security noch ein akademisches Steckenpferd von
> Promotionsstudenten war.

Was meinst du wieviele Webpräsenzen auch heute noch frisch fabriziert 
werden, mit Sicherheitsverfahren die nicht besser sind als vor 20 
Jahren. Wichtig ist das Design, manchmal noch die Funktion, und 
natürlich die Entwicklungszeit. Und der Seitenblastler darf auch nicht 
zu teuer sein.

Diejenigen, die über die Kriterien der Präsenz entscheiden, und die 
Termine prügeln, haben Security kaum auf dem Radar, ausser vielleicht 
bei bekannt sicherheitskritischen Präsenzen wie Banken.

von Christian R. (christian_r75)


Lesenswert?

Man speichert bei der Registrierung einen Hash(Passwort und UserID).

Bei der Authentifizierung wird clientseitig einen Hash von den der 
UserID und dem Passwort generiert, zusammen mit dem Unix-Timestamp in 
Plain und einmal zusammen mit dem Passwort gehashed zum Server 
geschickt. Dort wird der Hash(UserId und Passwd) kontrolliert und danach 
ein neuer Hash aus den Hashes (UserId + Passwd) und (Timestamp+Passwd) 
generiert. Dieser Hash[Hash(UserID+Passwd)+Hash(Timestamp+Passwd)] wird 
zusammen mit dem Plain Unix-Timestamp in einer DB speichern.

Nun könnte man eine bestimmte Authentifizierung ohne Zutun des User (um 
den Hash vom Timestamp und dem Passwort zubekommen) nicht mehr 
nachvollzogen werden.

von Andreas H. (ahz)


Lesenswert?

Simon Budig schrieb:
> * Der Benutzer kann aber später beweisen, dass er den Schlüssel hat, der
> die zweite Signatur erzeugt hat.

Und wie überprüft der Server die Gültigkeit ?
Wenn er das anhand der zweiten Signatur macht, ist das Verfahren ja 
nicht mehr annonym, denn die zweite Sig wurde ja zusammen mit der, durch 
die Serversignatur geprüfte Übertragung, transferiert, ist also 
zuordenbar. Genau das sollte aber nicht sein :-)

Grüße
Andreas

von Simon B. (nomis)


Lesenswert?

Andreas H. schrieb:
> Simon Budig schrieb:
>> * Der Benutzer kann aber später beweisen, dass er den Schlüssel hat, der
>> die zweite Signatur erzeugt hat.
>
> Und wie überprüft der Server die Gültigkeit ?

Die erste Signatur beweist doch, dass der Benutzer den (zwischen allen 
Benutzern geteilten) Schlüssel erhalten hat.

Grüße,
        Simon

von Andreas H. (ahz)


Lesenswert?

A. K. schrieb:
> Der Sinn dieser Methode liegt darin, dass eine Offenlegung der Auth-DB
> wenig(er) Schaden anrichtet. Diese Problematik ist auch heute noch
> relevant. 10000 Passwörter live mitlesen dauert viel länger und ist weit
> riskanter als mal eben ein File mit 10000 Klartext-Passwörtern
> abzugreifen und sofort wieder zu verschwinden.

Was irgendwann mal zur Shadow-Passworddatei unter Unix führte. Das ist 
bekannt, ändert aber nichts daran, das Oscar Deinen Key hätte, wenn er 
nicht vorher schon gehashed worden wäre.

Ich hatte nur den Transfer gemeint, nicht das Storage auf dem Server. Da 
beissen Dich natürlich noch ganz andere Hunde ;-)

Grüße
Andreas

von Andreas H. (ahz)


Lesenswert?

A. K. schrieb:
> Was meinst du wieviele Webpräsenzen auch heute noch frisch fabriziert
> werden, mit Sicherheitsverfahren die nicht besser sind als vor 20
> Jahren. Wichtig ist das Design, manchmal noch die Funktion, und
> natürlich die Entwicklungszeit. Und der Seitenblastler darf auch nicht
> zu teuer sein.
>
> Diejenigen, die über die Kriterien der Präsenz entscheiden, und die
> Termine prügeln, haben Security kaum auf dem Radar, ausser vielleicht
> bei bekannt sicherheitskritischen Präsenzen wie Banken.

Das beweisen ja auch die diversen erfolgreichen Hacks irgendwelcher 
Seiten.

Aber viel schlimmer finde ich die diversen "Normalanwendungen", die 
meinen, sich einen Extraport spendieren zu müssen um dann "nach Hause 
telefonieren" zu müssen.

Damit kann man dann die Firmensicherheit auch sehr schnell gegen die 
Wand fahren. Und solche Lücken werden dann anscheinend auch nur im 
Rahmen von normalen Produktupdates geschlossen, wenn überhaupt^^

Grüße
Andreas

von Andreas H. (ahz)


Lesenswert?

Simon Budig schrieb:
> Die erste Signatur beweist doch, dass der Benutzer den (zwischen allen
> Benutzern geteilten) Schlüssel erhalten hat.

Von "(zwischen allen  Benutzern geteilten)" war bisher nicht die Rede.

Ok, dann musst Du nur sicherstellen, das zwischen der Challenge und der 
Response eine große Anzahl anderer "Anmeldungen" passiert sind, damit 
Deine Antwort nicht mehr per TimeSlot zugeordnet werden kann.

Sehr wacklig, oder ?

Grüße
andreas

von Karl H. (kbuchegg)


Lesenswert?

Andreas H. schrieb:
> A. K. schrieb:
>> Auch in simplen passiven Webformularen, in Plaintext
>> Browser-Authentifizierung?? Oder FTP? Oder ...
> Da hast Du recht. Aber das sind (in meinen Augen) auch nur Relikte aus
> den Zeiten, wo IT-Security noch ein akademisches Steckenpferd von
> Promotionsstudenten war.

Mehr war damals auch nicht notwendig, weil es zum Ehrencodex gehörte, 
dass man auf einem der wenigen Computer, die damals online erreichbar 
waren, nichts anstellt.

Und für Bankgeschäfte ging man auf die Bank und füllte einen Erlagschein 
aus.

von Karl H. (kbuchegg)


Lesenswert?

Andreas H. schrieb:
> Simon Budig schrieb:
>> Die erste Signatur beweist doch, dass der Benutzer den (zwischen allen
>> Benutzern geteilten) Schlüssel erhalten hat.
>
> Von "(zwischen allen  Benutzern geteilten)" war bisher nicht die Rede.
>
> Ok, dann musst Du nur sicherstellen, das zwischen der Challenge und der
> Response eine große Anzahl anderer "Anmeldungen" passiert sind, damit
> Deine Antwort nicht mehr per TimeSlot zugeordnet werden kann.
>
> Sehr wacklig, oder ?

So wie ich Simons Vorschlag verstehe, ist das im Grunde auch nur ein "1 
Password für alle" Verfahren.
Der wensentliche Unterschied: nach der Anmeldung mit dem bekannten 
Password schickt der Client dem Server eine Zusatz-Information, mit der 
der Server im Prinzip nichts anfangen kann, die er sich aber trotzdem 
speichert.

Im Falle des Falles kann dann später der Client sagen: Hier das war ich. 
Bei dieser und jener Operation müsstest du diese Zusatz-Information 
gespeichert haben. Wenn dem so ist, dann beweist das, dass ich zumindest 
diese Zusatz-Information kenne. Und da ausser mir keiner diese Info 
kennt, beweist das, dass ich das war.

Um sicherzustellen, dass letzters (ausser mir kennt die keiner) 
gewährleistet ist, schickt der Server etwas, was der Client mit seinem 
geheimen Password verschlüsseln muss. D.h. wenn es darum geht, zu 
beweisen dass er das war, kann man ja von ihm verlangen, dass er darlegt 
wie er zu dieser am Server überall mitprotokollierten Zusatz-Information 
gekommen ist.

von Simon B. (nomis)


Lesenswert?

Andreas H. schrieb:
> Von "(zwischen allen  Benutzern geteilten)" war bisher nicht die Rede.

Ah pardon, das hätte ich expliziter hinschreiben können.

> Ok, dann musst Du nur sicherstellen, das zwischen der Challenge und der
> Response eine große Anzahl anderer "Anmeldungen" passiert sind, damit
> Deine Antwort nicht mehr per TimeSlot zugeordnet werden kann.

Nunja, wenn man zum Anfordern der Challnge den Benutzernamen nicht 
abfragt, dann wäre das auch egal, oder?

> Sehr wacklig, oder ?

Bestimmt, ich bin kein Krypto-Experte. Und ich verstehe auch nicht, 
weshalb der TE diese Anforderungen hat  :-)

Viele Grüße,
        Simon

von Andreas H. (ahz)


Lesenswert?

Christian Rademaker schrieb:
> Man speichert bei der Registrierung einen Hash(Passwort und UserID).
>
> Bei der Authentifizierung wird clientseitig einen Hash von den der
> UserID und dem Passwort generiert, zusammen mit dem Unix-Timestamp in
> Plain und einmal zusammen mit dem Passwort gehashed zum Server
> geschickt. Dort wird der Hash(UserId und Passwd) kontrolliert und danach
> ein neuer Hash aus den Hashes (UserId + Passwd) und (Timestamp+Passwd)
> generiert. Dieser Hash[Hash(UserID+Passwd)+Hash(Timestamp+Passwd)] wird
> zusammen mit dem Plain Unix-Timestamp in einer DB speichern.
>
> Nun könnte man eine bestimmte Authentifizierung ohne Zutun des User (um
> den Hash vom Timestamp und dem Passwort zubekommen) nicht mehr
> nachvollzogen werden.

???

Ich kann Dir nicht folgen.

Grüße
Andreas

von Andreas H. (ahz)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Im Falle des Falles kann dann später der Client sagen: Hier das war ich.
> Bei dieser und jener Operation müsstest du diese Zusatz-Information
> gespeichert haben. Wenn dem so ist, dann beweist das, dass ich zumindest
> diese Zusatz-Information kenne. Und da ausser mir keiner diese Info
> kennt, beweist das, dass ich das war.

Dann muss der Server aber eben wieder diese Sicherheitsinformation mit 
dem Benutzer in Verbindung bringen können. Aber genau das sollte ja 
ausgeschlossen sein.

Es geht mMn eben nicht, so wie der TE das gernew hätte :/

Grüße
Andreas

von Simon B. (nomis)


Lesenswert?

Andreas H. schrieb:
> Dann muss der Server aber eben wieder diese Sicherheitsinformation mit
> dem Benutzer in Verbindung bringen können. Aber genau das sollte ja
> ausgeschlossen sein.

Es geht aber nur mit Zutun (und Zustimmung) des entsprechenden 
Benutzers. Und das ist doch der Punkt, oder?

Grüße,
        Simon

von Andreas H. (ahz)


Lesenswert?

Simon Budig schrieb:
> Nunja, wenn man zum Anfordern der Challnge den Benutzernamen nicht
> abfragt, dann wäre das auch egal, oder?
>
Ja, dann kannst Du Dir auch gleich die ganze Registrierung sparen und 
mein oben vorgeschlagenes Global-PW auf die WEB Site schreiben. 
Erheblich weniger Aufwand bei kaum verringerten Risk :-D

>> Sehr wacklig, oder ?
>
> Bestimmt, ich bin kein Krypto-Experte. Und ich verstehe auch nicht,
> weshalb der TE diese Anforderungen hat  :-)
Ich auch nicht.
Und ich halte die Forderungen auch nicht für zusammen erfüllbar (s. mein 
Post viel weiter oben).

Aber man lernt ja nie aus :-D

Grüße
Andreas

von Andreas H. (ahz)


Lesenswert?

Simon Budig schrieb:
> Es geht aber nur mit Zutun (und Zustimmung) des entsprechenden
> Benutzers. Und das ist doch der Punkt, oder?

Nein. Es geht um Authentifizierung so, dass der Server weiss, dass Du 
"rein darfst" aber nicht wer Du bist", erschwert durch die Forderung, 
dass Du auch Rechte auf bestimmte Sachen geltend machen kannst.

Meiner Meinung nach ein nicht lösbares Problem.

Grüße
Andreas

von Simon B. (nomis)


Lesenswert?

Andreas H. schrieb:
> Nein. Es geht um Authentifizierung so, dass der Server weiss, dass Du
> "rein darfst" aber nicht wer Du bist", erschwert durch die Forderung,
> dass Du auch Rechte auf bestimmte Sachen geltend machen kannst.

Hmm, vermutlich reden wir aneinander vorbei.

Das "darf rein" ist geklärt dadurch, dass der Benutzer irgendwann den 
zwischen allen Benutzern geteilten Schlüssel erhalten hat. Damit ist 
eine Sperrung von Accounts (wie schon vom TE erkannt) unmöglich, im 
Prinzip kann aber auch ein Benutzer weiteren Benutzern den Zugang 
ermöglichen - was bisher noch nicht KO-Kriterium war.

Dann fordert der TE, dass "jeder Benutzer jederzeit in der Lage sein 
soll, zu Beweisen, dass eine einzelne Authentifikation zu  seinem 
Account gehört, ohne dazu seine Accountdaten preisgeben zu müssen, dass 
er also für beliebige Authentifizierungen seine Anonymität aufgeben 
kann, ohne, dass das weitere Auswirkungen hat.".

Ok, mein Verfahren deckt das wohl noch nicht 100%ig ab, mit einer 
leichten Modifikation gehts aber: Der Benutzer könnte aber für jeden 
Anmeldevorgang einen neuen Schlüssel generieren, und dann mit diesem 
Schlüssel die Zufallszahl signieren.

Wenn er dann später beweisen will, dass die vom Server mit einer 
gegebenen Zufallszahl verknüpften Aktionen von ihm stammen, dann legt er 
den bei sich gespeicherten privaten Schlüssel dem Serverbetreiber vor. 
Damit kann der dann überprüfen, dass die damals gespeicherte Signatur 
wirklich mit diesem Schlüssel aus dem Besitz von einem konkreten 
Benutzer stammt.

(Nachtrag: Sinn des jedesmal neu generierten Schlüssel ist ein Schutz 
vor Offenlegung seiner anderen Aktionen)

> Meiner Meinung nach ein nicht lösbares Problem.

Och, sehe ich erstmal nicht.

Grüße,
        Simon

von Karl H. (kbuchegg)


Lesenswert?

Andreas H. schrieb:
> Simon Budig schrieb:
>> Es geht aber nur mit Zutun (und Zustimmung) des entsprechenden
>> Benutzers. Und das ist doch der Punkt, oder?
>
> Nein. Es geht um Authentifizierung so, dass der Server weiss, dass Du
> "rein darfst" aber nicht wer Du bist", erschwert durch die Forderung,
> dass Du auch Rechte auf bestimmte Sachen geltend machen kannst.

Hmm.
Das hab ich dann vom TO anders verstanden.

Das geht dann meiner Meinung nach nur noch, indem sich der anonyme 
Benutzer, obowhl er bereits anonym angemeldet ist, ein weiteres mal 
anmeldet, wobei er dann seine Identität preisgeben muss. Will er das 
nicht mehr, kann er sich wieder ausloggen.

Ist natürlich problematisch, denn durch eine Analyse der 
Verbindungsdaten kann man im Nachhinein mit einer gewissen 
Wahrscheinlichkeit rekonsttuieren, wer es wohl gewesen sein wird.

von Karl H. (kbuchegg)


Lesenswert?

Simon Budig schrieb:

> Wenn er dann später beweisen will, dass die vom Server mit einer
> gegebenen Zufallszahl verknüpften Aktionen von ihm stammen,


Lies noch mal nach, was der TO von sich gegeben hat.
Ich denke Andreas hat recht: Darum geht es nicht.

Ein Benutzer will sich anonym einloggen um sich Daten zu saugen.
Aber er will auch auf dem Server etwas ausdrucken, wofür er sich beim 
Server identifizieren muss, denn drucken darf nicht jeder.

von Christian B. (casandro)


Lesenswert?

Also es gibt solche Verfahren, man verwendet die beispielsweise für 
anonymes Geld.

Du brauchst ein Kryptoverfahren mit dem ein Datenpaket verschlüsselt 
werden kann, dann von jemand anderen signiert, und wieder entschlüsselt 
werden kann. Solche Verfahren gibt es. (frag mich nicht wie das im 
Detail geht)

Damit geht es sogar direkt. Es gibt aber auch noch die Luxusversion bei 
der Du in die Kennung was rein schreiben kann.

Jetzt erstellst Du 1000 Datenpakete, welche Du später als "Kennung" für 
den Zugriff verwenden würdest, da kann zum Beispiel drin stehen wie viel 
Du machen darfst.
Du verschlüsselst alle 1000 mit zufälligen Schlüsseln und schickst sie 
an den Server.
Der Server wählt nun 999 zufällig davon aus, und fragt Dich nach den 
Schlüsseln für die.
Er überprüft alle 999 auf Korrektheit und signiert die einzig noch 
verschlüsselte Kennung.
Du nimmt die Kennung, entschlüsselst die und kannst Dich damit 
einloggen.

von Andreas H. (ahz)


Lesenswert?

So, vor der nächsten Laborrunde (ja, arbeiten muss man ja auch noch ;-) 
mal ein kurzes Beispiel wo man so etwas brauchen könnte. Etwas 
konstruiert, sorry.

Aufgabe: "Meckerbox" in einer Firma

Jeder Mitarbeiter kann hier wie z.B. in unserem Forum posten. 
Insbesondere will die GL, dass die MA auch mal Luft ablassen können, für 
Sachen die sie nerven und auch mal über ihre Vorgesetzen herziehen. 
Zweck ist es, die Mitarbeiterzufriedenheit und damit die Produktqualität 
zu erhöhen, weil die GL natürlich mitliest und hofft so neue 
Erkenntnisse, sozusagen Teeküchengerüchte, zu gewinnen. Dieses Mitlesen 
wird den MAs auch vorher mitgeteilt.

Der GL ist klar, dass die Meckerbox von den MA nur dann angenommen wird, 
wenn sichergestellt werden kann, dass es absolut anonym ist. Nicht-MAs 
soll kein Zugang gewährt werden, man will sich ja nicht öffentlich bloss 
stellen oder Headhuntern schon mal die unzufriedenen MAs frei Haus 
liefern.

Dazu wird ein Board gebaut, das vom INet zugänglich (SSL only) ist, 
damit die MAs es ausserhalb der Firma benutzen können um 
MA-Identifizierung über IP checks zu verhindern.

Registrieren können sich die MA nur über das Firmenintranet. Dazu wird 
zur Identifizierung das normale Intranet-ID/PW Pärchen benutzt. Der 
registrierte Benutzer erhält dann seinen "Boxpass" , mit dem er das 
Meckerboard benutzen kann.

Das Board ist inhaltlich ähnlich wie das Mikrocontroller.net Forum 
aufgebaut. Man kann aber eben nur lesen/schreiben, wenn man sich mit 
seinem "Boxpass" eingeloggt hat. Einen Benutzernamen kann man sich dann 
beliebig geben und auch nachträglich ändern.

Natürlich soll ein MA seine Beiträge auch nachträglich editieren und 
löschen können OHNE einen Admin zu brauchen, der dann ja Kenntniss des 
MA erlangen würde.
Beachte: Der MA darf nur SEINE Beiträge ändern/löschen können. Die 
Beiträge anderer MAs sind natürlich nur lesbar.



So, nun haut rein :-)

Grüße
Andreas

P.S: Willkürliche MA Anzahl 15000 MA (um hier mal eine "große" Zahl 
vorzugeben)

von Andreas H. (ahz)


Lesenswert?

Christian Berger schrieb:
> Jetzt erstellst Du 1000 Datenpakete, welche Du später als "Kennung" für
> den Zugriff verwenden würdest, da kann zum Beispiel drin stehen wie viel
> Du machen darfst.
> Du verschlüsselst alle 1000 mit zufälligen Schlüsseln und schickst sie
> an den Server.
> Der Server wählt nun 999 zufällig davon aus, und fragt Dich nach den
> Schlüsseln für die.
> Er überprüft alle 999 auf Korrektheit und signiert die einzig noch
> verschlüsselte Kennung.
> Du nimmt die Kennung, entschlüsselst die und kannst Dich damit
> einloggen.

Super, das mach ich auch. Genau wie Du es beschreibst. Identifizieren 
musste ich mich ja nie. Ach ja, Registrieren auch nicht. Da war doch was 
...

Und mit Registrierung ? Der Server legt ordentlich alle 1000 Pakete 
unter menem Account ab, denn die muss er mir ja zurückschicken. Nur mir 
!!!

Und dann wie gehabt. Obwohl, dann kann der Server ja doch den User zu 
den Packeten zuordnen^^

Grüße
Andreas

von Simon B. (nomis)


Lesenswert?

Ok, nehmen wir die Meckerbox.  :)

(Ich zwischendurch an ein System gedacht, in dem man z.B. anonym Prior 
Art hinterlegen kann und später sagen kann "Hier, das war wirklich meine 
Idee").

Vorweg - wir müssen erstmal davon ausgehen, dass der Netzwerkverkehr 
nicht getrackt wird. Welche Pakete wann wie laufen ist so oder so ein 
Leak, das ist aber nicht per se ein kryptographisches Problem.

Bei der Meckerbox sehe hier bisher kein Rechte-Management außer dem 
Zugriff auf den Server selber. Das ist in der Tat haarig, weil nach 
"meinem" Schema die Mitarbeiter ihre im Firmennetz verteilten 
Credentials duplizieren könnten, so dass externe ebenfalls Zugriff auf 
den Server bekommen könnten. Das sehe ich als Schwachpunkt bzw. habe da 
keine Idee dafür.

Aber der Rest müsste doch funktionieren. Der Meckerer meldet sich mit 
den für-alle-gleichen Credentials beim Server an (ob nun als Signatur 
bei einer Transaktion oder einmal für die ganze Session ist quasi egal) 
und ist nun "anonymous" auf dem Server.

Er legt ein neues Meckerticket an. Der Server liefert dazu eine 
Zufallszahl, die der Meckerer mit einem frisch erzeugten Schlüssel 
signiert. Den Schlüssel behält er für sich. Der Server speichert das 
Ticket, Zufallszahl zu diesem Ticket und die Signatur.

Nun will der Meckerer in einer weiteren Session das Ticket ändern. Er 
hat sich wieder als "anonymous" beim Server authentifiziert (s.o). Er 
ändert den Text und übermittelt nun dem Server seinen vorher erzeugten 
privaten Schlüssel (der natürlich keine Namen etc. enthält).

Der Server hat nun den privaten Schlüssel, der in der Session davor 
verwendet wurde um die Signatur zu erzeugen. Er kann die Zufallszahl nun 
selber signieren und so also die Signatur verifizieren. Er weiß nun, 
dass der Autor derselbe ist, und ändert den Text des Tickets. Damit ist 
der Schlüssel natürlich verbrannt, und damit man in Zukunft das Ticket 
erneut ändern kann, wird die neue Version nach dem gleichen Schema mit 
einer neuen Zufallszahl versehen, die mit einem vom Nutzer neu erzeugten 
Schlüssel signiert wird.

Wo ist denn mein Denkfehler? Ok, das mit dem Weitergeben der 
Server-Zugangsdaten das sehe ich. Aber sonst?

Nur wenn es tatsächlich um ein System gehen sollte, bei dem 
unterschiedliche (anonyme) Nutzer verschiedene Privilegien ("Zugriff auf 
Drucker") haben sollen, dann sehe ich da auch ein Problem. Es sei denn 
man verteilt für jede ressource einen eigenen 
"anonymous-drucker"-Zugang.

Grüße,
        Simon

von Andreas H. (ahz)


Lesenswert?

Simon Budig schrieb:
> Wo ist denn mein Denkfehler?

Das es nicht zur Spec passt.

Um auf die Meckerbox zu kommen, müssen sich die MAs aus dem INTRANET mit 
ihrem normalen MA-UID/PW anmelden. Daraufhin erhalten sie den "Boxpass" 
mit dem sie dann in die Box einloggen können. Dieser Boxpass ist aber 
nicht für alle gleich, sondern individuell für jeden MA.

Vorstellbar wäre jetzt (oder eben auch nicht), dass der MA mit der 
passenden Menge Magie diesen Boxpass so modifiziert, dass der Server 
nachher eben nur feststellen kann, das es ein gültiger Boxpass ist, aber 
nicht welchem MA der dazugehörige Original-Boxpass ausgestellt wurde.

Mit dem modifizierten Boxpass kann sich der MA dann immer wieder anonym 
anmelden und dann auchseine Beiträge bearbeiten.

Ticketsystem hatte ich nicht spezifiziert :p

Aber es kriegt langsam formen. Vielleicht geht das ja doch^^

So, Feierabend. Bis morgen o/^

Grüße
Andreas

von Simon B. (nomis)


Lesenswert?

Andreas H. schrieb:
> Simon Budig schrieb:
>> Wo ist denn mein Denkfehler?
>
> Das es nicht zur Spec passt.
>
> Um auf die Meckerbox zu kommen, müssen sich die MAs aus dem INTRANET mit
> ihrem normalen MA-UID/PW anmelden. Daraufhin erhalten sie den "Boxpass"
> mit dem sie dann in die Box einloggen können. Dieser Boxpass ist aber
> nicht für alle gleich, sondern individuell für jeden MA.

Warum? Warum kann der nicht für alle gleich sein?

"Hier ist der Meckerzugang. Wenn Du uns nicht vertraust, bist Du 
eingeladen, die Zugangsdaten mit anderen Mitarbeitern abzugleichen."

Grüße,
        Simon

von Karl H. (kbuchegg)


Lesenswert?

Simon Budig schrieb:
> Andreas H. schrieb:
>> Simon Budig schrieb:
>>> Wo ist denn mein Denkfehler?
>>
>> Das es nicht zur Spec passt.
>>
>> Um auf die Meckerbox zu kommen, müssen sich die MAs aus dem INTRANET mit
>> ihrem normalen MA-UID/PW anmelden. Daraufhin erhalten sie den "Boxpass"
>> mit dem sie dann in die Box einloggen können. Dieser Boxpass ist aber
>> nicht für alle gleich, sondern individuell für jeden MA.
>
> Warum? Warum kann der nicht für alle gleich sein?


Wegen dem hier

> Einen Benutzernamen kann man sich dann beliebig geben
> und auch nachträglich ändern.
>
> Natürlich soll ein MA seine Beiträge auch nachträglich editieren
> und löschen können OHNE einen Admin zu brauchen, der dann ja
> Kenntniss des MA erlangen würde.

und natürlich soll das von jedem beliebigen PC im Intrenet gehen und 
nicht nur auf dem PC auf dem ich mich zuletzt eingeloggt habe. D.h. 
irgendeine Kennung, die der Client beim Login präsentieren muss und die 
er sich aus der letzten Verbindung gemerkt hat, ist nicht. Was ist, wenn 
mein PC neu aufgesetzt werden muss? Wo kriege ich dann diese 
sessionübergreifende Kennung her?


gleichzeitig anonym und doch nicht anonym ist für mich ein Widerspruch 
in sich selbst.

von Simon B. (nomis)


Lesenswert?

Ok, ich will meinen Ansatz nicht mit Gewalt verteidigen, aber...  :)

Karl Heinz Buchegger schrieb:
>> Einen Benutzernamen kann man sich dann beliebig geben
>> und auch nachträglich ändern.

(Das lässt sich sicherlich auch noch organisieren  :)

>> Natürlich soll ein MA seine Beiträge auch nachträglich editieren
>> und löschen können OHNE einen Admin zu brauchen, der dann ja
>> Kenntniss des MA erlangen würde.

Ok, das habe ich ja oben ausgeführt.

> und natürlich soll das von jedem beliebigen PC im Intrenet gehen und
> nicht nur auf dem PC auf dem ich mich zuletzt eingeloggt habe. D.h.
> irgendeine Kennung, die der Client beim Login präsentieren muss und die
> er sich aus der letzten Verbindung gemerkt hat, ist nicht. Was ist, wenn
> mein PC neu aufgesetzt werden muss? Wo kriege ich dann diese
> sessionübergreifende Kennung her?

Das sind aber Forderungen die Du jetzt neu stellst. Intranet geht ja so 
oder so nicht, weil da ja die Aktivitäten auf dem Server zeitlich mit 
dem Netzwerkverkehr zur Workstation des Mitarbeiters korrelliert werden 
könnten.

Ansonsten musst Du die Schlüsseldaten halt irgendwie auf einem USB-Stick 
mitschleppen. Sicher, das ist unbequem, aber Kryptographie ist nie 
einfach und bequem...

> gleichzeitig anonym und doch nicht anonym ist für mich ein Widerspruch
> in sich selbst.

Naja, Du scheinst sehr davon auszugehen, dass man für Aktivitäten auf 
dem Server immer einen klassischen Account mit Loginnamen und Passwort 
braucht. Wenn man das eher in der Richtung betrachtet, dass jeder mit 
dem one-for-all-Passwort auf dem Server Ressourcen anlegen kann, die 
jeweils an ein Geheimnis gekoppelt sind welches man kennen muss um sie 
ändern zu können, dann scheint mir das zumindest für das 
Meckerbox-Beispiel lösbar zu sein.

Ob das dem TE hilft ist natürlich eine andere Frage. Das müsste aber er 
beantworten  :)

Viele Grüße,
        Simon

von bolton more (Gast)


Lesenswert?

Das Meckerboxmodell gefällt mir sehr gut, ich denke, es vereinfacht und 
konkretisiert das Problem.
Sagen wir mal, man will die Box gegen Spam oder Beleidigungen schützen, 
da die Geschäftsleitung die Box sonst abschaffen würde, daher ist es im 
Interesse der Mehrheit der Mitarbeiter, das zu verhindern.
Deshalb

a) dürfen nur Mitarbeiter Zugriff haben

Simon Budig schrieb:
> Bei der Meckerbox sehe hier bisher kein Rechte-Management außer dem
> Zugriff auf den Server selber. Das ist in der Tat haarig, weil nach
> "meinem" Schema die Mitarbeiter ihre im Firmennetz verteilten
> Credentials duplizieren könnten, so dass externe ebenfalls Zugriff auf
> den Server bekommen könnten. Das sehe ich als Schwachpunkt bzw. habe da
> keine Idee dafür.

b) darf kein Mitarbeiter die Möglichkeit haben, externen Leuten Zugriff 
zu verschaffen, ohne seine persönlichen Accountdaten/Schlüssel 
weiterzugeben

Die Mitarbeiter wollen nun die Möglichkeit haben, im Falle einer 
Beleidigung kollektiv herausfinden zu können, wer die Beleidigung 
eingeworfen hat.
Dazu muss jeder Mitarbeiter glaubhaft versichern können, dass er die 
Beleidigung selber nicht geschrieben hat, wobei er natürlich in Kauf 
nehmen muss, seine Anonymität fallen zu lassen.
Wenn das nun jeder bis auf den Schuldigen macht, kann dieser 
identifiziert und entlassen werden.
Mitarbeiter, die sich weigern, können ebenfalls entlassen werden.
Prinzipbedingt kann mathematisch natürlich von niemandem die Anonymität 
aufgehoben werden, außer, er macht das freiwillig/wird zur Herausgabe 
gezwungen.

Damit das funktioniert, muss b) erfüllt sein, sodass jeder Einwurf einem 
Account per Ausschlussverfahren zugeordnet werden kann, also kein 
externer ohne Mitarbeiteraccount die Beleidigung einwerfen kann.

Beiträge editieren/hinzufügen ist nicht notwendig bzw lässt sich immer 
einfach emulieren, indem jeder Mitarbeiter, der etwas schreiben möchte, 
in die Box einen öffentlichen Schlüssel wirft, über den jeder die 
Signatur aller weiteren Beiträge, die dann zB auf ein Flipchart 
nebendran geschrieben werden können, überprüfen kann.

Geheim muss der Inhalt der Box nicht sein, das würde auch nicht gehen, 
denn jeder Mitarbeiter kann ja prinzipiell immer unbemerkt 
veröffentlichen, was er lesen kann.

Das Problem ist erstmal unabhängig vom Netzwerk (bzgl Verfolgbarkeit 
anhand Adressen oder Zeiten, das kann das Netzwerk ja garantieren, dafür 
gibt es ja genügend existierende Methoden)





Christian Berger schrieb:
> Du brauchst ein Kryptoverfahren mit dem ein Datenpaket verschlüsselt
> werden kann, dann von jemand anderen signiert, und wieder entschlüsselt
> werden kann. Solche Verfahren gibt es. (frag mich nicht wie das im
> Detail geht)

Das hört sich verdammt gut an, verstehe ich das richtig, der signierende 
kann nicht feststellen, was er da signiert hat und die Signatur überlebt 
die Entschlüsselung?

Wenn ich jemandem jetzt anonym Rechte vergeben möchte, könnte ich das 
über die 1000 Pakete machen, um sicherzugehen, dass der Nutzer sehr 
wahrscheinlich nicht bescheißen will, da ich ihm ja quasi einen 
Blankoscheck ausstelle.
Ich verschaffe mir also Gewissheit, dass der Scheck, den ich 
letztendlich unterschreibe, genauso mit Rechten beschriftet ist wie die 
999 anderen.
Clever :)

Auf die Meckerbox angewendet bräuchte man noch nichtmal verschiedene 
Rechte, ein einmal Ticket würde erstmal ausreichen. Jeder Mitarbeiter 
bekommt eins (die Mitarbeiter schreiben sich auf ein Blatt Papier den 
Hash eines zufällig gewählten Codes konkateniert mit ihrem Namen und 
lassen diesen unterschreiben, wobei während der Unterschrift die 
Geschäftsleitung diesen nicht zu Gesicht bekommt.
Jeder MA kann nun später was in die Box einwerfen, authentifiziert sich 
mit dem unterschriebenen Hash und kann auch jederzeit nachweisen, was er 
eingeworfen hat und was nicht, in dem er den zufällig gewählten Code 
veröffentlicht.
Jeder kann nun den Namen + Code hashen und der MA kann mittels des 
unterschriebenen Hashes beweisen, was er geschrieben hat und was nicht.

Das wäre genau die Magie, die notwendig ist, also:

wie kann man was verschlüsseltes signieren, sodass die Signatur beim 
entschlüsseln erhalten bleibt?

Du schriebst, du wüsstest nicht im Detail, wie das ginge, kannst du 
vielleicht ein Stichwort oÄ nennen?

PS: wie gesagt, weder bin ich eine Geschäftsleitung, noch will ich 
jemanden feuern, der anonym bleiben möchte, es geht mir nur um die Magie 
der Mathematik :)
Hatte das aber in der Tat mal, eine elektronische Meckerbox in der 
Firma, wobei man sich aber anmelden musste und darauf vertrauen musste, 
dass es so implementiert ist, dass es niemand so leicht zurückverfolgen 
kann.


Vielen Dank an alle, die sich so aktiv beteiligen und auch danke für die 
Hinweise, die mir geholfen haben, genauer zu beschreiben, was ich 
eigentlich genau möchte.

von bolton more (Gast)


Lesenswert?

Nachtrag:

was sich also an meinen ursprünglichen Spezifikationen von ganz oben 
ändern muss:

Statt beweisen muss man abstreiten können, etwas geschrieben zu haben.
zB in dem man jedem erlaubt, nachzuvollziehen, was man insgesamt 
geschrieben hat.

Ich denke, der schwierigere Part ist Anonymität von Tickets für einmal 
Nachricht in Box einwerfen.
Abstreitbarkeit ergibt sich dann automatisch, in dem jeder seine Tickets 
vorlegt.

von i-Troll (c) (Gast)


Lesenswert?

Ich wuerd einen Server bei jemandem unabhaengigen, dem alle Vertrauen 
aufstellen. Vielleicht gibt's ja so jemanden. Also jemanden ohne Ehrgeiz 
auf den Chefposten. Oder ein externes mailaccount, worauf die 
Mitarbeiter posten koennen, von zuhause aus natuerlich.

von Stefanie B. (sbs)


Lesenswert?

Um sich vor Verkehrsanalyse zu schützen gibt es Tor oder Mix-Kaskaden.

Um sicherzustellen, dass man aus einer bestimmten Gruppe kommt, gibt es 
anonyme Berechtigungsnachweise oder Ringsignaturen.

> Ringsignaturen bieten besondere Möglichkeiten bei der Si-
> gnatur von Nachrichten. Mit einer Ringsignatur existieren
> mehrere mögliche Unterzeichner, von denen mindestens ei-
> ner die Unterschrift erzeugt hat. Es ist nicht möglich, un-
> ter den Unterzeichnern denjenigen zu nden, der die Un-
> terschrift tatsächlich erzeugt hat. Die Menge der möglichen
> Erzeuger der Unterschrift ist Bestandteil der Signatur und
> es ist gewährleistet, dass der tatsächliche Unterzeichner sich
> darin befindet.

http://jorsoft.de/uni/ringsignatures.pdf

Ob Ringsignaturen auch mit 15000 MA funktionieren weiß ich nicht 
(Performanz!)

von Simon B. (nomis)


Lesenswert?

Ok, mit der Anforderung dass bewiesen werden soll, dass etwas nicht 
von einem kommt ist mein System dann endgültig überfordert  :)

Mir fallen dafür so Konzepte wie das "ewige Logfile" ein, im Prinzip 
eine Liste von Hashes, die jeweils einen neuen Hashwert aus dem alten 
Hashwert plus den neuen Daten berechnen.

Bis man das aber auf diese Anforderungen zurechtmassiert hat muss man 
ein bischen Hirnschmalz investieren...

Und es hilft natürlich nicht gegen multiple Persönlichkeiten.

Viele Grüße,
        Simon

von Andreas H. (ahz)


Lesenswert?

Karl Heinz Buchegger schrieb:
> gleichzeitig anonym und doch nicht anonym ist für mich ein Widerspruch
> in sich selbst.

Lies den Thread :-)

Genau um DIESES Problem gehts doch.

Die Meckerbox ist nur eine Beispielanwendung, damit man sich die 
Anforderungen besser vorstellen kann.

Grüße
Andreas

von D. I. (Gast)


Lesenswert?

Christian Rademaker schrieb:
> Man speichert bei der Registrierung einen Hash(Passwort und UserID).
>
> Bei der Authentifizierung wird clientseitig einen Hash von den der
> UserID und dem Passwort generiert, zusammen mit dem Unix-Timestamp in
> Plain und einmal zusammen mit dem Passwort gehashed zum Server
> geschickt. Dort wird der Hash(UserId und Passwd) kontrolliert und danach
> ein neuer Hash aus den Hashes (UserId + Passwd) und (Timestamp+Passwd)
> generiert. Dieser Hash[Hash(UserID+Passwd)+Hash(Timestamp+Passwd)] wird
> zusammen mit dem Plain Unix-Timestamp in einer DB speichern.
>
> Nun könnte man eine bestimmte Authentifizierung ohne Zutun des User (um
> den Hash vom Timestamp und dem Passwort zubekommen) nicht mehr
> nachvollzogen werden.

Ich glaube ich habs noch nicht ganz durchblickt oder es fehlt irgendwas 
an der Erklärung.
Es ist doch wumpe ob ich über einen unverschlüsselten Kanal das 
Klartextpasswort sende oder den Hash?

von Lukas T. (tapy)


Lesenswert?

Was mir spontan einfiele ist, ein personalisierter Login, auf den 
Folgend dann ein 2 h gültiges Cookie (ohne Vermerk, von wem das ist) 
gesetzt wird.

Edit:
Problem dabei ist natürlich, dass der Benutzer dem Server vertrauen muss 
und das soll, wenn ich das richtig verstanden habe, nicht notwendig sein 
...

von Vn N. (wefwef_s)


Lesenswert?

Andreas H. schrieb:
> Eigentlich nicht. Es wird immer auf der Senderseite gehashed.

Nun wirklich nicht. Simples Gegenbeispiel: 99%+ aller Webseiten.

Andreas H. schrieb:
> Denn wenn
> der legendäre Oscar per Mitm-Attack das Klartext PW hat, macht das
> Hashen beim Empfänger ja auch keinen Sinn mehr.

Toll, wenn er den Hash kennt, kann er eben diesen übermitteln, das 
Problem bleibt. Dafür wurden sichere Verbindungen erfunden.

Andreas H. schrieb:
> Das ist
> bekannt, ändert aber nichts daran, das Oscar Deinen Key hätte, wenn er
> nicht vorher schon gehashed worden wäre.

Toll, so hat er den Hash, den er einfach an den Server übermittelt. 
Durch das clientseitige hashen hast du noch dazu das gleiche Problem, 
wie wenn du die Passwörter plain in der DB stehen hast: Jemand, der es 
schafft, die DB auszulesen, weis genau, was er übermitteln muss, um 
angenommen zu werden.
Nein, das Bilden des Hashes macht nur auf dem Server Sinn.

von Andreas H. (ahz)


Lesenswert?

vn nn schrieb:
> Toll, so hat er den Hash, den er einfach an den Server übermittelt.
> Durch das clientseitige hashen hast du noch dazu das gleiche Problem,
> wie wenn du die Passwörter plain in der DB stehen hast: Jemand, der es
> schafft, die DB auszulesen, weis genau, was er übermitteln muss, um
> angenommen zu werden.

Made my day. Du machst hoffentlich KEINE Sicherheitssoftware, oder ?

Natürlich macht das Übertragen von gehashten Keys nur dann Sinn, wenn 
gechallenged wurde. Und dann wird ja nicht mehr der Hash des Keys, 
sondern der Hash (Challenge-token, hash-key) gesendet.

Diesen Hash kann Oscar aber nach dem originalen Transfer nicht mehr 
gebrauchen, weil das Challenge-token jedes mal neu erzeugt wird.

Aber DU wirst jetzt sicher argumentieren, dass Oscar ja das 
Challenge-Token auch gesehen hat, also aus dem Hash ja theoretisch den 
gehashten Key zurückrechnen kann und dann jede neue Challenge korrekt 
beantworten kann...
... Also vorausgesetzt er hätte einen Quantencomputer^^

Lies Dir bitte mal durch, wie aktuelle Authentifizierungsverfahren 
funktionieren, danke :-)

Grüße
Andreas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.