[infinispan-dev] Infinispan Security
Pedro Ruivo
pedro at infinispan.org
Fri Nov 22 10:47:40 EST 2013
Hi,
I took a look at the document and these are my comments :)
(note: I only have the basic knowledge of security: security is a myth)
* About the permissions
It would be good to describe what is the relation between the
permissions. For example, answer the following question: can a
user/group/role have READ permission over a cache without ACCESS
permission? Can it have WRITE permission without READ (write operation
returns the old value)? and EXEC? does it makes sense to have EXEC
without READ and/or WRITE?
Since we have a BULK permission (that it is a READ) why not split the
WRITE? like MODIFY(put* replace*), DELETE(remove*) and CLEAR(clear)?
Other thing that is not clear to me is if it is possible to specify
default permissions. I assuming that if you define the roles in the
<default> cache, they will be passed to the <namedCache> if nothing is
specified, right?
Is the secure cache protected against the ComponentRegistry? I meant, it
is possible to do cache.getAdvancedCache().getDataContainer().clear()
and skip any authentication?
* About the Interceptors
IMO, bad idea. I think we should have a SecureCache interface and
implementation (SecureCacheImpl). As suggested in the wiki, this
SecureCacheImpl will throw a SecurityException in any invocation byut it
would have a method /.as(Subject)/ that would return a decorate
SecureCache with the correct permissions.
About the encryption I think the application should be responsible to do
it and not the Cache. However, if it is really necessary I would do it
in the SecureCache level so any component in Infinispan would have
access to the plain object. Also I wouldn't allow the user to choose to
encrypt only to persistence. In addition, how are we going to manage the
encryption keys? If a key is leaked are we going to support the
re-encryption with a new key? Is it possible to choose different keys
per user/type of data?
* HotRod security
In the design document, it does not refer anything to encrypt the
communication between the clients and the server. is it a gap?
* Finally, some minor typos:
** the embedded configuration title is in the middle of the embedded API
text
** the lists are all in the same line in embedded encryption and hot rod
security
** Memcached Security is not "titlefied"
Cheers,
Pedro
On 11/22/2013 01:05 PM, Tristan Tarrant wrote:
> Hi all,
>
> I've published an ongoing draft of how we should implement Security in
> Infinispan.
>
> https://github.com/infinispan/infinispan/wiki/Security
>
> There are still gaps in there, but I'd like your comments early :)
>
> Tristan
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
More information about the infinispan-dev
mailing list