[
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: [email protected]
For additional commands, e-mail: [email protected]