+1 to deprecating and removing SECURITY_UDP_DHALGO. The current
implementation is a non-thread-safe hack that would require extensive work
to "fix". It fails EVERY time we run mass test run. I'd prefer to see us
embrace DTLS as a standard.

On Fri, Feb 28, 2020 at 11:43 AM Bill Burcham <bill.burc...@gmail.com>
wrote:

> I propose we deprecate Geode’s proprietary UDP message privacy algorithm
> based on the Diffie-Hellman key exchange protocol. This would deprecate:
>
> ConfigurationProperties.SECURITY_UDP_DHALGO
>
> String DistributionConfig.getSecurityUDPDHAlgo()
>
> void DistributionConfig.setSecurityUDPDHAlgo(String attValue)
> DistributionConfig.SECURITY_UDP_DHALGO_NAME
>
> Additionally we’d have to upate documentation to reflect deprecation.
>
> From ConfigurationProperties.java:
>
>
> Application can set this property to valid symmetric key algorithm, to
> encrypt udp messages in Geode. Geode will generate symmetric key using
> Diffie-Hellman key exchange algorithm between peers. That key further used
> by specified algorithm to encrypt the udp messages.
>
> The property (and the feature) was added mid-2016. Unfortunately it was not
> added as an “experimental” feature, so it cannot simply be removed.
>
> Incidentally, the corresponding property for client-server communication,
> SECURITY_CLIENT_DHALGO, is already deprecated. It was deprecated in Geode
> 1.5 in favor of SSL/TLS.
>
> I am proposing deprecating the feature because:
>
>
>    1.
>
>    The feature has not proven popular with users.
>    2.
>
>    At least one hard-to-reproduce bug exists in the implementation:
>    GEODE-6448 <https://issues.apache.org/jira/browse/GEODE-6448>. We’ve
>    burned a person-week trying to fix the problem (Bruce Schuchardt and me)
>    and it’s not clear how much more time it will take. If we decide to
>    deprecate the feature, fixing this problem would be de-prioritized
>    accordingly.
>    3.
>
>    If we decide, in the future, that UDP message security is required, it
>    would be better to implement a standard algorithm such as DTLS
>    <https://tools.ietf.org/html/rfc6347>:
>    1.
>
>       Our algorithm provides only message privacy whereas DTLS provides
>       privacy, tamper-resistance, and message forgery protection
>       2.
>
>       DTLS is a standard
>       3.
>
>       There is some support for DTLS in the JDK (JEP-219
>       <https://openjdk.java.net/jeps/219> delivered in JDK 9). It’s not a
>       complete implementation e.g. guaranteed delivery is a do-it-yourself
> kit.
>
>
> Actually implementing DTLS is out of scope for this proposal. Adding DTLS
> would be a significant undertaking.
>
> So, how do you feel about me making a GEODE ticket to deprecate the
> SECURITY_UDP_DHALGO configuration property?
>

Reply via email to