openldap-technical
[Arriba] [Todas las Listas]

Re: GSSAPI (SASL) + LDAP

To: openldap-technical@xxxxxxxxxxxx
Subject: Re: GSSAPI (SASL) + LDAP
From: Daniel Savard <dsavard@xxxxxxx>
Date: Fri, 10 Feb 2012 12:59:05 -0500
Delivery-date: Fri, 10 Feb 2012 13:10:36 -0500
Envelope-to: traductor@xxxxxxxxxxx
In-reply-to: <20120209232130.GG4744@dan.olp.net>
List-archive: <http://www.openldap.org/lists/openldap-technical>
List-help: <mailto:openldap-technical-request@openldap.org?subject=help>
List-id: OpenLDAP Technical Discussion list <openldap-technical.openldap.org>
List-post: <mailto:openldap-technical@openldap.org>
List-subscribe: <http://www.openldap.org/lists/mm/listinfo/openldap-technical>, <mailto:openldap-technical-request@openldap.org?subject=subscribe>
List-unsubscribe: <http://www.openldap.org/lists/mm/options/openldap-technical>, <mailto:openldap-technical-request@openldap.org?subject=unsubscribe>
Organization: CiDS Inc.
References: <1328825757.27575.8.camel@feynman.cids.ca> <20120209232130.GG4744@dan.olp.net>
Reply-to: dsavard@xxxxxxx
Sender: openldap-technical-bounces@xxxxxxxxxxxx
*Le *jeudi 09 *février 2012 *à 17:21 -0600, Blanco de Dan un *écrit :
> En 02/09/12 17:15 -0500, Daniel *Savard escribió:
(...)
> 
> Esto podría ser un *libsasl2 problema. Qué versión de *cyrus *sasl  has
> instalado, y qué *kerberos versión/de biblioteca lo es *compiled en contra?
> 
> Si estás corriendo *libsasl2 > 2.1.23, ver si cualesquiera de estos aplican a ti:
> 
> *https://*bugzilla.*cyrusimap.*org/Espectáculo_*bug.*cgi?*id=3480
> *https://*bugzilla.*cyrusimap.*org/Espectáculo_*bug.*cgi?*id=3445
> 

MIT *Kerberos 1.9.2-*r2
Cyrus-*Sasl 2.1.23-*r6
*OpenLDAP 2.4.24

Linux *distro: *Gentoo

fragmento de Código de *plugins/*gssapi.*c Comparado a *bug 3445 y su *patch:

    si (producción_*token->producción && de valor)
        #unknown{^*int *len;

        *ret = _tapón_*buf_*alloc(texto->*utils, &(texto->*encode_*buf),
                              &(texto->*encode_*buf_*len),
producción_*token->longitud + 4);

        si (*ret != *SASL_*OK)
            #unknown{^*GSS_CERRADURA_*MUTEX(texto->*utils);
            *gss_liberación_*buffer(&*min_*stat, producción_*token);
            *GSS_*UNLOCK_*MUTEX(texto->*utils);
            regreso *ret;
        }

        *len = *htonl(producción_*token->longitud);
        *memcpy(texto->*encode_*buf, &*len, 4);
        *memcpy(texto->*encode_*buf + 4, producción_*token->valor,
producción_*token->longitud);
    }

Esto uno parece correcto. Y fragmento de código comparado a *patch para *bug
3480:

        /* *Setup *req_banderas correctamente */
        *req_banderas = *GSS_*C_BANDERAMUTUA | *GSS_*C_BANDERA_de SECUENCIA;
        si(*params->*props.*max_*ssf > *params->Externo_*ssf)
            /* #prnsubj está pidiendo una capa de seguridad */
            *req_banderas |= *GSS_*C_*INTEG_BANDERA;
            /* Cualquier SSF más grande que 1 es confidencialidad. */
            /* Dejado control si el cliente del API requiere
confidencialidad,
               y no fue ya proporcionado por una capa externa */

Parece correcta también.

-- 
Daniel *Savard


Le jeudi 09 février 2012 à 17:21 -0600, Dan White a écrit :
> On 02/09/12 17:15 -0500, Daniel Savard wrote:
(...)
> 
> This could be a libsasl2 problem. What version of cyrus sasl do you have
> installed, and what kerberos library/version is it compiled against?
> 
> If you're running libsasl2 > 2.1.23, see if either of these apply to you:
> 
> https://bugzilla.cyrusimap.org/show_bug.cgi?id=3480
> https://bugzilla.cyrusimap.org/show_bug.cgi?id=3445
> 

MIT Kerberos 1.9.2-r2
Cyrus-Sasl 2.1.23-r6
OpenLDAP 2.4.24

Linux distro: Gentoo

Code fragment from plugins/gssapi.c compared to bug 3445 and its patch:

    if (output_token->value && output) {
        int len;

        ret = _plug_buf_alloc(text->utils, &(text->encode_buf),
                              &(text->encode_buf_len),
output_token->length + 4);

        if (ret != SASL_OK) {
            GSS_LOCK_MUTEX(text->utils);
            gss_release_buffer(&min_stat, output_token);
            GSS_UNLOCK_MUTEX(text->utils);
            return ret;
        }

        len = htonl(output_token->length);
        memcpy(text->encode_buf, &len, 4);
        memcpy(text->encode_buf + 4, output_token->value,
output_token->length);
    }

This one seems correct. And code fragment compared to patch for bug
3480:

        /* Setup req_flags properly */
        req_flags = GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG;
        if(params->props.max_ssf > params->external_ssf) {
            /* We are requesting a security layer */
            req_flags |= GSS_C_INTEG_FLAG;
            /* Any SSF bigger than 1 is confidentiality. */
            /* Let's check if the client of the API requires
confidentiality,
               and it wasn't already provided by an external layer */

Seems correct too.

-- 
Daniel Savard


<Anterior por Tema] Tema Actual [Siguiente por Tema>