Skip to content
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

SIF v3 Framework uses shared secret passwords saved in clear text #17

Open
kunalyadavdfe opened this issue Dec 14, 2016 · 6 comments
Open

Comments

@kunalyadavdfe
Copy link

Environment - "Security": SIF v3 Framework uses shared secret passwords saved in clear text. This is not secure for any implementation. SIF Framework needs to incorporate OAUTH as part of its core code.
Shared Secret – This is like a typical password field and is stored unencrypted within the SIF framework database. Potentially anyone who has access to the database can read this and create fake consumer applications easily to send spurious data to the functional service. SIF needs to be secure across all its framework components rather than just relying on transport level security

@iantasker
Copy link

@kunalyadavdfe I am going to split OAuth into a separate tickets as this is an enhancement. Please see ticket #25

@iantasker
Copy link

@drjonnicholson & @rafidzal What are your thoughts on this? Should the field be migrated to a hash or reversible password?

@joerghuber How is this handled in the java version?

Encrypting the database can mitigate this so have tagged this issue as an enhancement instead of a bug.

@joerghuber
Copy link
Contributor

In the Java version it is held as clear text in a DB. If some one get access to your database you have other problems than just the password. Your database should be well protected through firewalls and other means. Also since the password or related environment is for integration purpose between systems rather holding sensitive data it is not a critical issue.

@rafidzal
Copy link
Contributor

By default, the SIF Framework provides a simple implementation for the management of Consumer and Provider settings through the IFrameworkSettings interface. The current implementation uses a configuration file purely for the sake of convenience and to simplify the provided demo projects. This includes the clear text storage of the shared secret. It is expected that for an enterprise-level solution, developers implement their own settings class and update the SettingsManager class (until such time as a DI framework can be incorporated). The documentation will be enhanced to better explain how this can be achieved.

@mattharris5
Copy link

My understanding is that the shared secrets in SIF work as a symmetric key, not a password. Since it is used in unattended settings (system to system communication) the server has to know the value and therefore it needs to be stored in some sort of decryptable format. You could store the keys encrypted and maintain the decryption key in application memory, but if someone compromises the system or the application they'll likely have access to both anyway, so multi-layer system security is imperative (as @joerghuber stated previously).

Regardless, I agree that implementation of OAuth is a better solution and SIF supports that too.

@dingvarson
Copy link

dingvarson commented Dec 22, 2016 via email

joerghuber pushed a commit that referenced this issue Mar 6, 2018
Implemented events processing methods
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants