Re: [kitten] Token Preauth for Kerberos
Thomas Hardjono <hardjono@MIT.EDU> Tue, 10 June 2014 15:10 UTC
Return-Path: <hardjono@mit.edu>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2DA021B27FF for <kitten@ietfa.amsl.com>; Tue, 10 Jun 2014 08:10:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.252
X-Spam-Level:
X-Spam-Status: No, score=-3.252 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.651, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FDKwpZgRsCSX for <kitten@ietfa.amsl.com>; Tue, 10 Jun 2014 08:10:06 -0700 (PDT)
Received: from dmz-mailsec-scanner-6.mit.edu (dmz-mailsec-scanner-6.mit.edu [18.7.68.35]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 98F491B2802 for <kitten@ietf.org>; Tue, 10 Jun 2014 08:10:05 -0700 (PDT)
X-AuditID: 12074423-f79916d000000c54-a2-53971fcce8d7
Received: from mailhub-auth-1.mit.edu ( [18.9.21.35]) (using TLS with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-6.mit.edu (Symantec Messaging Gateway) with SMTP id 07.F6.03156.CCF17935; Tue, 10 Jun 2014 11:10:04 -0400 (EDT)
Received: from outgoing-exchange-1.mit.edu (outgoing-exchange-1.mit.edu [18.9.28.15]) by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id s5AFA32l001809; Tue, 10 Jun 2014 11:10:04 -0400
Received: from OC11EXEDGE3.EXCHANGE.MIT.EDU (oc11exedge3.exchange.mit.edu [18.9.3.21]) by outgoing-exchange-1.mit.edu (8.13.8/8.12.4) with ESMTP id s5AFA22e014699; Tue, 10 Jun 2014 11:10:03 -0400
Received: from OC11EXHUB9.exchange.mit.edu (18.9.3.23) by OC11EXEDGE3.EXCHANGE.MIT.EDU (18.9.3.21) with Microsoft SMTP Server (TLS) id 14.3.158.1; Tue, 10 Jun 2014 11:09:53 -0400
Received: from OC11EXPO24.exchange.mit.edu ([169.254.1.212]) by OC11EXHUB9.exchange.mit.edu ([18.9.3.23]) with mapi id 14.03.0158.001; Tue, 10 Jun 2014 11:10:01 -0400
From: Thomas Hardjono <hardjono@MIT.EDU>
To: "kitten@ietf.org" <kitten@ietf.org>, "krbdev@mit.edu" <krbdev@mit.edu>
Thread-Topic: Token Preauth for Kerberos
Thread-Index: Ac95oBHY/v5P0th/QSGCBpa/sVINTQLHZRBA
Date: Tue, 10 Jun 2014 15:10:00 +0000
Message-ID: <5E393DF26B791A428E5F003BB6C5342A71539056@OC11EXPO24.exchange.mit.edu>
References: <8D5F7E3237B3ED47B84CF187BB17B666118D870F@SHSMSX103.ccr.corp.intel.com>
In-Reply-To: <8D5F7E3237B3ED47B84CF187BB17B666118D870F@SHSMSX103.ccr.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [18.111.19.235]
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_001E_01CF849C.84C8CAF0"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjk+LIzCtJLcpLzFFi42IR4hRV1j0jPz3YYGqfhsXRzatYHBg9liz5 yRTAGMVlk5Kak1mWWqRvl8CVcep8E2vBt7SKB3dvsDUwfo3tYuTkkBAwkVi8bwozhC0mceHe ejYQW0hgNpNE92u+LkYuIPsAo8SahoVMEM5xRomW7R8YIZxtjBKPZj9mgXBWMUp8+t/EDtLP JqAhce73XjBbRMBL4s+F3WC2sIC6xN9/nVBxDYlfKw9D2UYSmxa+ZgSxWQRUJbqXX2YCsXkF giRebZjCAnFTsMS15vlgt3IKhEjM+ziFFcRmBLr7+6k1YPXMAuISt57MZ4L4R0Ti4cXTbDC/ /dv1EMpWlGhsn8YMcjSzQC+jxPYji6CWCUqcnPmEZQKj+Cwks2Yhq5uFpA6iyEDi/qEOVghb W2LZwtfMELa1xIxfB9kgbEWJKd0P2SFsU4nXRz8yLmDkWMUom5JbpZubmJlTnJqsW5ycmJeX WqRrppebWaKXmlK6iREUvewuyjsY/xxUOsQowMGoxMN7QGJ6sBBrYllxZe4hRkkOJiVR3s9S QCG+pPyUyozE4oz4otKc1OJDjCpAux5tWH2BUYolLz8vVUmEt+3vtGAh3pTEyqrUonyYMmkO FiVx3rfWVsFCAumJJanZqakFqUUwWRkODiUJXh85oAWCRanpqRVpmTklCGkmDs5DjBIcPEDD DUBqeIsLEnOLM9Mh8qcYdTluNZxpYxICu0BKnDdBFqhIAKQoozQPbg4sGb9iFAd6UZg3FmQU DzCRw016BbSECWiJaMRUkCUliQgpqQZGEyF2a1XbnewTM92nZZupB/J/fDVL9fWpLpnIz3vY PgVIs69iNJVwLClWeP+0Qbw6Y73lCvNdn+ZPyA8W+xQkpbZs1cngjLLPXnt0zk4WkZ/d11wb mmjPsCNlSf1ll7XvgpyFCk6yhJZpH/8l4yJu09Ibkudy+4qeVai8/vOZy6zCLdYpVymxFGck GmoxFxUnAgDIubwBoQMAAA==
Archived-At: http://mailarchive.ietf.org/arch/msg/kitten/dTW17KGmVeFRWl3qFNqdfAziRII
Subject: Re: [kitten] Token Preauth for Kerberos
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Jun 2014 15:10:09 -0000
Kai, I think a token-preauth mechanism would be a very useful addition to the set of mechanisms that we have today. When do you plan to submit the draft to the KITTEN WG? Best. /thomas/ ____________________________________________ From: Kitten [mailto:kitten-bounces@ietf.org] On Behalf Of Zheng, Kai Sent: Tuesday, June 10, 2014 8:19 AM To: kitten@ietf.org; krbdev@mit.edu Subject: [kitten] Token Preauth for Kerberos Hi all, I would like to mention an effort regarding Kerberos and propose a new Kerberos preauth mechanism, token-preauth. Before dive into that, please kindly allow me to introduce, mainly for the background and scenario for the proposal. Im an engineer from Intel and develop identity and security related products. The current focus is Apache Hadoop, and our goal is enabling Hadoop to support more authentication mechanisms and providers. Currently Hadoop only supports Kerberos authentication method as the built-in secured one and its not easy to add more since it involves changing into many projects on top of it in the large ecosystem. The community had proposed a token based authentication, planned to add TokenAuth method for Hadoop and by TokenAuth then all kinds of authentication providers can be supported since their authentication results can be wrapped into token, and the token can be employed to authenticate to Hadoop across the ecosystem. The effort is still undergoing. Considering the complexity, risk and deployment overhead of this approach, our team investigate and think of another possible solution, i.e. support token in Kerberos. The basic idea is allow end users to authenticate to Kerberos with their tokens and obtain tickets, then access Hadoop services using the tickets as current flow goes. The PoC was already done, and we make it work seamlessly from MIT Kerberos to Java world and Hadoop. However we think its very important to get the key point token-preauth be reviewed by you security and Kerberos experts, to make sure its defined and implemented in compliance with the existing standards and protocols, without involving security critical leaks. So please kindly give your feedback and we appreciate it. The proposal Kerberos token-preauth This proposes to add another preauthentication mechanism similar to OTP and PKINIT for Kerberos, based on Kerberos preauthentication framework and FAST tunnel. It allows 3rd party token in JWT format like OAuth bearer token can be used as credential to authenticate to KDC for a normal principal instead of user password. When using the token to request a tgt, the user name or other attributes claimed in the token must match the target Kerberos principal. PKI is used to establish the trust relationship between 3rd party token issuer and KDC. According to configured certificate and public/private keys KDC decrypt and verify the token, and determines to issue ticket or not according to configured policy. The token itself will be wrapped into ticket as new authorization data and carried on to application server side. The tgt and derived service ticket resulted from token are not in much difference except the contained token and work exactly as normally. Besides that in application servers, token can be extracted from service ticket and employed further to do fine-grained authorization since the token can contain rich identity attributes. POC implementation 1. We implement a token-preauth plugin for MIT Kerberos like OTP one and it does all the necessary work that should be done for Kerberos itself in both client side and KDC side. We need update krb5.conf and kdc.conf to use and enable the mechanism. The plugin is a so module and can be separately installed/deployed. To protect token between client and KDC in KDC-REQ/KDC-REP exchanges, FAST must be used, therefore we suggest PKINIT be deployed also. 2. For end users, we provide ktinit tool as follows: ktinit -h This tool uses token to authenticate to KDC and obtains tgt for you. ktinit [-t token | -T token-cache-file] [-c kerb-ccache-file] when no token specified, ~/.tokenauth.token will be used by default In the behind, it requests the needed armor ticket using PKINIT anonymous and then executes kinit with the armor ticket and token with X option, gets tgt and puts the tgt in specified credential cache 3. For JAVA application servers (Apache Hadoop services), we figured out how to extract token from service tickets from both GSSAPI layer and SASL layer. Its planned to have a draft for this work. Our team is making effort to enable Kerberos to be easily deployed in large Hadoop clusters and big data platform and can integrate with other authn & authz solutions well from enterprise and internet. Thanks for your input, feedback and correction. Regards, Kai
- [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Thomas Hardjono
- Re: [kitten] Token Preauth for Kerberos Greg Hudson
- Re: [kitten] Token Preauth for Kerberos Nordgren, Bryce L -FS
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- [kitten] Verified authorization data Peter Mogensen
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Verified authorization data Simo Sorce
- Re: [kitten] Verified authorization data Peter Mogensen
- Re: [kitten] Verified authorization data Simo Sorce
- Re: [kitten] Token Preauth for Kerberos Nathaniel McCallum
- Re: [kitten] Verified authorization data Peter Mogensen
- Re: [kitten] Verified authorization data Simo Sorce
- Re: [kitten] Verified authorization data Peter Mogensen
- Re: [kitten] Verified authorization data Simo Sorce
- Re: [kitten] Verified authorization data Peter Mogensen
- Re: [kitten] Verified authorization data Simo Sorce
- Re: [kitten] Verified authorization data Peter Mogensen
- Re: [kitten] Verified authorization data Simo Sorce
- Re: [kitten] Token Preauth for Kerberos Simo Sorce
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Wang Weijun
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Simo Sorce
- Re: [kitten] Token Preauth for Kerberos Dr. Greg Wettstein
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Simo Sorce
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Greg Hudson
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai
- Re: [kitten] Token Preauth for Kerberos Benjamin Kaduk
- Re: [kitten] Token Preauth for Kerberos Zheng, Kai