Yeah, this is not the right place for this rant.
But was curious what the River community thinks about it.

Michał 

> On 30 Apr 2021, at 17:59, Jeremy R. Easton-Marks <j.r.eastonma...@gmail.com> 
> wrote:
> 
> Hi Michal,
> I think you should definitely share your opinions about this (
> https://bugs.openjdk.java.net/browse/JDK-8264713). I think they may not
> know about Apache River and they probably should address the issues around
> dynamically loaded code. I would cite other Java examples other than just
> River. Android is able to operate without the Java Security Manager and
> maybe the JDK should look into adopting the Android way.
> 
> 
> 
>> On Fri, Apr 30, 2021 at 4:38 AM Michał Kłeczek <mic...@kleczek.org> wrote:
>> 
>> 
>> 
>>> On 30 Apr 2021, at 04:42, Jeremy R. Easton-Marks <
>> j.r.eastonma...@gmail.com> wrote:
>>> 
>>> I'm not sure how much JEP 411 will impact River. I agree with the overall
>>> direction that it proposes in removing the security manager.
>> 
>> IMHO JEP 411 gives unconvincing reasons to ditch SecurityManager:
>> 
>> - brittle permission model
>> This one is really well summarized in the same paper: The Security Manager
>> does not allow negative permissions that could express "grant permission
>> for all operations except reading files”.
>> 
>> Why not fix that??? Especially that it has been done before:
>> https://github.com/olukas/pro-grade
>> 
>> - poor performance
>> Why not fix that??? Especially that it has been done before by… yes -
>> Apache River (thanks Peter!).
>> 
>> - difficult programming model
>> This one is difficult to sensibly assess without comparing alternatives.
>> Simply speaking: security is difficult - there is no free lunch.
>> 
>> Example from the document (ie. client code needs to be granted permissions
>> required by library code if doPrivileged is not used) has it completely
>> backwards as that’s the whole point of stack walking based security: avoid
>> confused deputee issue.
>> 
>> It also looks like there is another huge misconception in the industry:
>> "running untrusted code on the server is a big no-no and once you only run
>> trusted code SecurityManager is not needed anymore”.
>> The point really is: there is no such a thing as “trusted code” - that’s
>> illusion. See for example: https://news.ycombinator.com/item?id=26087064
>> 
>> Similar misconception: one should avoid dynamically loaded code (or even
>> from the JEP 411 itself: nobody is interested in dynamically loaded code).
>> Well… Docker images _are_ dynamically loaded code.
>> And k8s or Helm yaml descriptors defining what this dynamically loaded
>> code can access are by no means simpler than security policy files. Quite
>> the opposite.
>> 
>> 
>>> However, I am
>>> worried that removing security features is going to cause some other
>>> problems in the Java ecosystem. Beyond the potential impact of River.
>>> 
>>> I do think what affect it will have on Apache River should be explored.
>>> 
>>> I am of the opinion that Apache River should look beyond just being a
>> Java
>>> only project and that we may need to rethink the way that we approach
>>> building distributed systems.
>> 
>> Killing mobile code is killing Apache River as IMHO that’s the defining
>> feature of it.
>> 
>> The question is whether killing SecurityManager is killing mobile code.
>> 
>> Regards,
>> Michal
>> 
>> 
> 
> -- 
> Jeremy R. Easton-Marks
> 
> "être fort pour être utile"

Reply via email to