-
Notifications
You must be signed in to change notification settings - Fork 509
Add brute force protection to conversation passwords #7504
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
Add brute force protection to conversation passwords #7504
Conversation
Signed-off-by: Joas Schilling <[email protected]>
Signed-off-by: Joas Schilling <[email protected]>
Signed-off-by: Joas Schilling <[email protected]>
Signed-off-by: Joas Schilling <[email protected]>
vitormattos
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think will be good to implement behat tests to check if it is working fine.
It is intentionally disables even for the login and stuff: |
Signed-off-by: Joas Schilling <[email protected]>
|
/backport to stable24 |
|
/backport to stable23 |
|
/backport to stable22 |
danxuliu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The delay in HPB requests needs to be reset.
Signed-off-by: Joas Schilling <[email protected]>
Signed-off-by: Joas Schilling <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I am not mistaken there are some other endpoints that need to be protected:
-
getRoomByFileIdandgetRoomByShareTokenin FilesIntegrationController, to protect the file id or share token of a public share -
getSettingsin SignalingController, to protect the conversation token -
getSingleRoomin RoomController, to protect the conversation token -
createGuestByDialInin RoomController, to protect the SIP secret -
createGuestByDialInandgetParticipantByDialInPinin RoomController, to protect the conversation token (due to using@RequireRoomif the token is wrong 404 is returned, but if the token is right and the SIP bridge request is not valid then 401 is returned)
Signed-off-by: Joas Schilling <[email protected]>
|
Not sure what to throttle there. First thing that is done is checking if you have access to the fileId. That is outside of the scope of Talk and only gives you tokens which you can access. Other things are fixed |
I thought that public shared files were seen as being accessible by the user when checked with the file id, but the code says that they are not. I think that I mixed up the tests for the shared token and the file id, sorry for the noise. |
danxuliu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested and (mostly, see comments) works 👍
What about resetting the delay for the signaling server IP when the secret is changed? In my experience it is not uncommon to set a wrong secret, and if it is not reset and no hint is given about the throttling I would expect some puzzled admins :-)
Besides that, similarly to getParticipantByDialInPin and createGuestByDialIn, getSingleRoom needs to be protected for the SIP bridge secret and the talk room token. However, getParticipantByDialInPin and createGuestByDialIn have an explicit annotation for talkSipBridgeSecret and an implicit protection for talkRoomToken due to using @RequireRoom, but getSingleRoom only has an explicit annotation for talkRoomToken.
It would be more correct if both actions have an explicit handling, for example by calling sleepDelay and registerAttempt instead of throttle when the SIP bridge secret can not be validated. Right now it probably makes no difference in practice, as those actions are never reset, but it could have unexpected behaviours if at some point they are. As it is just a "future-proofness" thing it might be enough to add a comment mentioning it.
Signed-off-by: Joas Schilling <[email protected]>
Signed-off-by: Joas Schilling <[email protected]>
|
The backport to stable22 failed. Please do this backport manually. |
|
22 in #7537 |
No description provided.