[ 
https://issues.apache.org/jira/browse/SOLR-7207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14354499#comment-14354499
 ] 

Noble Paul commented on SOLR-7207:
----------------------------------

bq.Yes you'd probably want to combine with HTTPS, which is not a bad idea 
anyway when allowing traffic from outside your DC

Setting up Solr in HTTPS is a pain and not efficient because all our 
communication happens over that port. The fact that we will only need security 

bq.Typically ApiKeys are also combined with IP checking to further reduce 
attack surface

IPs can be faked , right?

bq.How would you make sure that an unencrypted, PKI signed payload with e.g. 
<delete><query>:</query></delete> cannot be sniffed and replayed by an 
attacker? The payload signature hash will be the same every time for the same 
payload, will it not?

Yes, I'm thinking of adding a timestamp attributes to all write operations . 
Any operation that is older than a few seconds (configurable) would be 
rejected. Most people who use the APIs in the intranet may not worry about 
sniffing , but those who use the APIs over the internet can use this.
example:
{noformat}
<delete>
<_ts_>3454354646576</_ts_>
<query>:</query>
</delete>
{noformat}

Our clients will have (SolrJ) will have options to initialize with a private 
key and the rest can be taken care of automatically

The reason for this idea was to have a tiered approach to security which you 
can opt in/out whenever you wish to an existing cluster without impacting any 
other operation. I can just say that loading executable  and , config alone 
needs to be secure and all you nee to do is upload a couple of public keys to a 
specified directory in ZK. We don't need to rely on external services. Relying 
on external systems is fine but this leads to a proliferation of recipes. This 
is exactly what happened when we had a .war file that could be deployed to any 
container and we are now at the mercy of the container

My suggestion is we should have a built in security mechanism that is 
reasonably secure and APIs to extend the security to other external tools.

This particular solution can be build on that API, where external solutions can 
also rely on


 








> Securing operations in Solr
> ---------------------------
>
>                 Key: SOLR-7207
>                 URL: https://issues.apache.org/jira/browse/SOLR-7207
>             Project: Solr
>          Issue Type: New Feature
>            Reporter: Noble Paul
>
> Historically, Solr has always stayed away from securing any operations and we 
> even allow GET operation on an HTTP end point to manipulate almost anything 
> inside a Solr cluster
> We can categorize the operations such as
> * Loading executable (runtime jars) SOLR-7126
> * conf files SOLR-6736
> * schema API
> * config API
> * collections API
> * /update/* operation to any collection
> SOLR-7126 has solved this problem using PKI where the public keys can be 
> uploaded to {{/keys/exe}} and all jars loaded are verified using one of the 
> public keys. 
> A similar scheme can be used for other operations as well. We can add keys to 
> other  directories and use them to verify other operations. The only catch is 
> , that we will need to send all the payload via POST
> The advantage of this scheme is that Solr does not need to manage any 
> credentials or take care of storing anything secretly. It just needs a few 
> public keys to be stored in ZK and security will kick in automatically. 
> External solutions can build on top of these and provide authentication etc



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to