[ https://issues.apache.org/jira/browse/ZOOKEEPER-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15096571#comment-15096571 ]
Rakesh R commented on ZOOKEEPER-1045: ------------------------------------- bq. Is there much user demand for Kerberos support for inter-zk channels?. SASL approach is a good choice considering that SASL(Kerberos) is already supported between zkclient-zksever communications quite some time. I think users/admins will be much more comfortable with SASL deployment. Also, it will be easy for them to upgrade the existing clusters which is secured with SASL(kerberos) way. bq. Will ZK have to always get token from KDC first before authenticating a peer?. I am not quite familiar with SASL Java API can you shed some light into the system level process. Yes, Initial authentication takes place between the Kerberos client and the KDC server. In ZooKeeper,every QuorumPeer will have a Kerberos client and at the beginning gets token from the KDC server. For the initial TGT can either choose {{kinit USERNAME}} or use the local keytab file. I've tried capturing few configurations needed for implementing this feature in [README.md|https://github.com/apache/zookeeper/pull/49/files#diff-ecca263dd60ba00b624638323e799bdfR53] For example, {code} QuorumServer { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=false useTicketCache=true principal="zkquorum/localh...@example.com"; }; {code} {code} QuorumServer { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/path/to/keytab" storeKey=true useTicketCache=false debug=false principal="zkquorum/localh...@example.com"; }; {code} I hope the following links will help to understand Kerberos, SASL java API: http://www.roguelynn.com/words/explain-like-im-5-kerberos/ https://docs.oracle.com/javase/7/docs/technotes/guides/security/sasl/sasl-refguide.html https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fintroductiontokerberosauthentication.htm bq. Does this provide encryption of the data traffic using the shared secret key?. As per my understanding, Kerberos provides facilities to make sure that messages are not changed as they travel across the network. The messages can optionally be encrypted so only the parties that know the session key can examine their contents. Java SASL provides QOP settings. "auth-conf" – This stands for authentication, integrity and confidentiality. This setting guarantees that data exchanged between client and server is encrypted and is not readable by a "man in the middle". Truly I haven't explored much to implement this part. I hope experienced folks can shed some light on this. > Quorum Peer mutual authentication > --------------------------------- > > Key: ZOOKEEPER-1045 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1045 > Project: ZooKeeper > Issue Type: New Feature > Components: server > Reporter: Eugene Koontz > Assignee: Rakesh R > Attachments: ZOOKEEPER-1045-00.patch, ZOOKEEPER-1045-Rolling Upgrade > Design Proposal.pdf > > > ZOOKEEPER-938 addresses mutual authentication between clients and servers. > This bug, on the other hand, is for authentication among quorum peers. > Hopefully much of the work done on SASL integration with Zookeeper for > ZOOKEEPER-938 can be used as a foundation for this enhancement. -- This message was sent by Atlassian JIRA (v6.3.4#6332)