-
Notifications
You must be signed in to change notification settings - Fork 308
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2 person login #3897
Comments
A possible way to enforce the communication between the person who sits in front of the login dialog and the holder of the smartphone app would be as follows: The challenge text does not only contain "please confirm the login on your smartphone", but it would contain a random informatoin like: "please confirm the login on your smartphone by pressing 17". The privacyIDEA server would have to store the 17 as challenge data. The smartphone would receive e.g. 5, 17 and 49 and the smartphone user would have to click either of those. This could be configured as optional push auth mode. This way we could also use this with already enrolled push tokens. What happens, if there are more than one push tokens and several challenges are created. Is it possible to create the same tupples for all push tokens, so that only one correct number needs to be displayed in the challenge text? Spec@frankmer Please stop by, when the spec is complete. smartphone receiving dataThe JSON object sent to the smartphone can contain two additional entries: { ...
"require_presence": "{string of available options separated by ','}",
"version": "2"
} If require_presence is available the smartphone app shall display the list entry (strings) on each separate button. The signature contains the "require_presence" as the last entry, separated by "|". The user will then press one of the buttons. The login window tells the user, which button he should press. smartphone sending dataThe smartphone app does not know the correct answer. It needs to send the pressed button (aka the string) back to the privacyIDEA server. This needs to be implemented here:
As @frankmer suggested the answer of the smartphone should contain: "presence_answer": "pressedAnswer", The signature will be created as suggested
while "decline" is the word decline and "" would be the displayed and pressed answer. Could be "A", "B" or "C" or "McCartney", "Harrison" or "Starr". As the user would either press "decline" or a supposedly valid answer, the signed message would be
or classically:
|
This would be related to #3632 or even would make it obsolete. We could even, if the number is answered wrong, start to delete the challenge or block the token. |
In this implementation a policy defines, that the user needs to confirm the correct choice, as displayed in the login UI. Working on #3897
and save it to the challenge database. Working on #3897
@cornelinux
{ ...
"decline": "0"
"presence_answer": "{pressedNumber}",
} |
* Add policy for PUSH require presence In this implementation a policy defines, that the user needs to confirm the correct choice, as displayed in the login UI. Working on #3897 * Create challenge data and save it to the challenge database. Working on #3897 * Fix typo * Fix pep8 * Handle signed response from the smartphone Working on #3897 * Fix backward compat and tests * Add test for require_presence * Fix brackets * Add review comments for communication with smartphone * Require presence in case of POLL only * Allow several tokens for a user Closes #3897 * Pep8 newline * Fix typo for python 3.12
PUSH token that needs interaction with the user and the login page.
The scenario is, that one person sits in front of the login page and the other person is the owner of the 2nd factor.
The 1st person logs in. The 2nd person is required to contact the first person. A personal interaction is requested between the two persons - the PUSH token would allow a login without interaction.
This seems to be different from the push fatigue requirement in #3632
Questions:
cc: 174178
@nilsbehlen I would like to discuss this in the next KESS.
Discuss: Are we finde with a 33% chance of guessing?
Todos
privacyidea/privacyidea/lib/tokens/pushtoken.py
Line 886 in 6e80ba2
_build_smartphone_data
privacyidea/privacyidea/lib/tokens/pushtoken.py
Line 903 in 6e80ba2
privacyidea/privacyidea/lib/tokens/pushtoken.py
Line 614 in 6e80ba2
How shoold we do this? We also could add the random number to the nonce and thus have it automagically in the response of the smartphone.
data
, since he most probably has the same transaction id entry in the challenge database? Done in 84d9aa2 (see Multiple Push Tokens with push_wait #2323)privacyidea/privacyidea/lib/tokens/pushtoken.py
Line 668 in 84d9aa2
The text was updated successfully, but these errors were encountered: