-
Notifications
You must be signed in to change notification settings - Fork 49
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
Implement signature verification api #391
base: master
Are you sure you want to change the base?
Implement signature verification api #391
Conversation
This endpoint allows verification of a SignedMessage. Currently, there's no authorization: as the user already has a signature, and authenticator does not prevent doing disclosures with excessive personal data. However, it should still probably be implement to prevent freeloading on a public irma server.
The attribute-based signature verification endpoint seems like a nice idea. irmago/server/requestorserver/server.go Lines 247 to 277 in 52fd9f2
|
@saravahdatipour so you'd like me to take a look at implementing some form of authorization? Would perhaps a simple boolean 'enable signature verification' config option work? There's no way for irmago to know what kind of attributes are in the signature (or what personal information is in the message) before receiving (and hence processing) it, so fine-grained permissions are not possible here. I can see some added value in having a complete requestor authentication system, but as it doesn't quite fit in the existing requestor authentication for session requests, I think that would be a pretty big addition, that's a little beyond my skillset and the time I have. |
The issue here would be that even if we enable it with a flag or similar logic, merging this would mean all future IRMA servers will have this endpoint that if misconfigured can suddenly subject the service provider to GDPR issues. |
Based on a discussion from a long time ago (https://yiviapp.slack.com/archives/C0KCTQ0BC/p1713794023128249) I decided to implement an API endpoint for verifying signatures in the irma server.
Currently, there's no authorization: as the user already has a signature, and authenticator does not prevent doing disclosures with excessive personal data.
However, maybe it should still be implement to prevent freeloading on a public irma server. I'm not sure about that, nor about how that would look. Alternatively, it could also be made configurable whether the endpoint should be available at all. That way, it can be disabled by default, and hosting parties who are afraid of people using it without authentication can still turn it on when reachable only from a private network.
I haven't made docs or implemented implemented any tests (yet). The verification logic is already tested though, and I'm using this without any issues so far in my project.
Let me know if you have any ideas or requests! If you guys are interested in merging this, I can probably take a look at unittests and docs some time.