(adding back net-dev)

Hi Autumn,
Thanks for the clarifications.

The JDK usually doesn't do any logging unless asked to; I don't think
a misused property warrants a warning on stderr.

I think we can add a set of system properties to configure caching.
Would you be interested in that? We originally used security
properties because DNS spoofing was a big concern; it's much less of a
concern today. Alas, we can't match the names of the security
properties - the naming convention dictates that all new system
property names start with "jdk." or "java.".

Our documentation can mislead users into thinking that they could
configure caching using system properties. I filed
https://bugs.openjdk.org/browse/JDK-8323089 for that.

Regards,
Daniel

pon., 29 sty 2024 o 18:43 Capasso, Autumn <autum...@amazon.com> napisał(a):
>
> Hi Daniel,
> I wanted to thank you so much for all the information you took the time to 
> provide I really appreciate it. We noticed many developers had misconfigured 
> security properties and seem unsure of how to use them on Github, and 
> Stackoverflow we are purposing a mechanism to warn developers through stderr  
> about misconfigured Security properties that have been mistaken for system 
> properties. Developers think they’re changing a System property and they not 
> get their desired effect. I created a JBS issue that I have included in this 
> email. We would like to focus on the DNS cache TTL property. During our 
> investigation of this issue we noticed many developers had misconfigured 
> security properties. One example is a search on Github for 
> -Dnetworkaddress.cache.ttl: 
> https://github.com/search?q=-Dnetworkaddress.cache.ttl&type=code<https://github.com/search?q=-Dnetworkaddress.cache.ttl&amp;type=code>
>  this search illustrates how developers mistake security settings for system 
> properties and end up with misconfigurations.
>
> Thank you so much,
> Autumn
>
> On 1/5/24, 6:32 AM, "Daniel Jeliński" <djelins...@gmail.com 
> <mailto:djelins...@gmail.com>> wrote:
>
>
> CAUTION: This email originated from outside of the organization. Do not click 
> links or open attachments unless you can confirm the sender and know the 
> content is safe.
>
>
>
>
>
>
> Hi Autumn,
> Thanks for bringing it up here.
> The documentation could definitely use some improvement; we could make
> the property documentation link to the Security class, which in turn
> documents the use of the java.security file. We should also remove
> these security properties from the system properties list
> (https://docs.oracle.com/en/java/javase/21/docs/api/system-properties.html 
> <https://docs.oracle.com/en/java/javase/21/docs/api/system-properties.html>).
>
>
> I'm not sure about exposing the DNS configuration as system
> properties. The configuration can already be set using undocumented
> system properties, but only if the corresponding security property is
> not set (so, for example, sun.net.inetaddr.ttl will work, but
> sun.net.inetaddr.negative.ttl will not). There's probably a reason why
> these properties are not documented, others could explain.
>
>
> As I'm sure you found out already, the default TTL is 30 seconds for
> successful lookups, 10 seconds for failed lookups. What kind of values
> would you use to reduce the DNS pressure?
>
>
> If you're looking to reduce the DNS activity, there are many other
> options to choose from:
> - use a local caching DNS resolver like systemd-resolved
> - cache the resolved InetAddress instance on the application level
> - use a custom address resolution service provider (requires JDK 18+,
> see https://openjdk.org/jeps/418 <https://openjdk.org/jeps/418>)
> - use the hosts file
> - use a local caching DNS server
>
>
> The default JDK resolver uses the standard C APIs to resolve DNS
> hostnames, and has no access to the TTL information returned by the
> server. Further, negative caching does not differentiate between a
> negative response and a DNS failure. For that reason you should prefer
> using caches that have access to that information.
>
>
> Let me know if that helps.
> Regards,
> Daniel
>
>
> czw., 4 sty 2024 o 22:45 Capasso, Autumn <autum...@amazon.com 
> <mailto:autum...@amazon.com>> napisał(a):
> >
> > We began investigating this issues when we noticed many developers had 
> > misconfigured security properties. One example is a search on github for 
> > Dnetworkaddress.cache.ttl: 
> > https://github.com/search?q=-Dnetworkaddress.cache.ttl&type=code 
> > <https://github.com/search?q=-Dnetworkaddress.cache.ttl&amp;type=code> this 
> > search illustrates the how developers mistake security settings for system 
> > properties and end up with misconfigurations. We see developers are 
> > misconfiguring networkaddress.cache.ttl and 
> > networkaddress.cache.negative.ttl settings, Often in the effort to increase 
> > the TTL for entries in the DNS cache, they mistakenly change the 
> > networkaddress.cache.ttl on the command line which does nothing. This means 
> > teams don’t actually end up raising the DNS cache TTL. Inadvertently 
> > leaving the cache TTL too low places more pressure on DNS servers. We would 
> > be open to at first narrowing the scope from all security properties to 
> > just the DNS cache properties and doing a proof of concept. We’ve also 
> > gotten the suggestion of implementing it by adding system property 
> > overrides for those DNS security properties.
> >
> >
> >
> > Thank you in advance,
> >
> > Autumn Capasso
> >
> >
> >
> >
>
>
>

Reply via email to