Security considerations are mostly orthogonal to message encoding.
In the SecureRpcEngine there is a SASL negotiation at connection setup, and
then HBase protocol data is transformed using the established context. That is
the null transformation unless message integrity or confidentiality options are
negotiated/required. The JRE's SASL support handles that. SASL is well defined
and interoperable between versions. Otherwise we delegate to the HBase RPC
code.
For ZooKeeper security, there is a new ZK protocol message type for the SASL
authenticator. Unlike with HBase, the application protocol is not wrapped with
a secure socket layer. So the authentication handshake is as cross version
compatible as the rest of the ZK protocol, and the handshake basically tunnels
SASL protocol messages, which are compatible cross version with respect to
themselves. It was done this way due to how ZK architected pluggable
authentication methods.
Best regards,
- Andy
On Feb 14, 2012, at 5:02 AM, Jimmy Xiang <[email protected]> wrote:
> I posted the proposal on wiki:
>
> http://wiki.apache.org/hadoop/Hbase/HBaseWireCompatibility
>
> Thanks,
> Jimmy
>
> On Mon, Feb 13, 2012 at 11:03 AM, Ted Yu <[email protected]> wrote:
>
>> Can you post on wiki ?
>>
>> Attachment stripped.
>>
>> On Mon, Feb 13, 2012 at 11:01 AM, Jimmy Xiang <[email protected]> wrote:
>>
>>> Hello,
>>>
>>> As HBase installation base is getting bigger, we are ready to work on the
>>> wire compatibility issue.
>>> The goal is to make HBase easier for operators to upgrade, while it is
>>> also easier for developers to
>>> enhance, re-architect if necessary.
>>>
>>> The attached is a proposal we came up. We'd like to start with two
>> phases:
>>>
>>> Phase 1: Compatibility between client applications and HBase clusters
>>> Phase 2: HBase cluster rolling upgrade within same major version
>>>
>>> Could you please review?
>>>
>>> Thanks,
>>> Jimmy
>>>
>>