1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-12 12:23:50 +03:00
Commit Graph

46 Commits

Author SHA1 Message Date
Andrew Bartlett
351f7040f7 r20640: Commit part 2/2
Update Heimdal to match current lorikeet-heimdal.  This includes
integrated PAC hooks, so Samba doesn't have to handle this any more.

This also brings in the PKINIT code, hence so many new files.

Andrew Bartlett
2007-10-10 14:37:20 -05:00
Stefan Metzmacher
75c037cae2 r20139: only add GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG if the caller requested it!
this is needed to create plain, singed or sealed LDAP connections.

this should go into lorikeet and main heimdal...

metze
2007-10-10 14:29:13 -05:00
Andrew Bartlett
05421f45ed r19681: Update to current lorikeet-heimdal. I'm looking at using the realm
lookup plugin, the new PAC validation code as well as Heimdal's SPNEGO
implementation.

Andrew Bartlett
2007-10-10 14:25:31 -05:00
Andrew Bartlett
476452e143 r19650: Allow Samba to use Heimdal's SPNEGO code. Currently this can only
negotiate krb5, but if this works, I'll add NTLM as a GSSAPI backend
by some means or other.

Andrew Bartlett
2007-10-10 14:25:25 -05:00
Andrew Bartlett
8117e76d2a r19644: Merge up to current lorikeet-heimdal, incling adding
gsskrb5_set_default_realm(), which should fix mimir's issues.

Andrew Bartlett
2007-10-10 14:25:24 -05:00
Andrew Bartlett
13c9df1d4f r19633: Merge to lorikeet-heimdal, removing krb5_rd_req_return_keyblock in favour of a more tasteful replacement.
Remove kerberos_verify.c, as we don't need that code any more.
Replace with code for using the new krb5_rd_req_ctx() borrowed from
Heimdal's accecpt_sec_context.c

Andrew Bartlett
2007-10-10 14:25:21 -05:00
Stefan Metzmacher
0a52e11a9c r19616: the heimdal spnego mech doesn't seem to use roken.h and isn't portable
(it doesn't compile on suse 10.1 because gethostname() isn't found,
 unistd.h isn't included...)

as we don't need the spnego mech, disable it till it gets fixed in heimdal

metze
2007-10-10 14:25:06 -05:00
Andrew Bartlett
4826f17351 r19604: This is a massive commit, and I appologise in advance for it's size.
This merges Samba4 with lorikeet-heimdal, which itself has been
tracking Heimdal CVS for the past couple of weeks.

This is such a big change because Heimdal reorganised it's internal
structures, with the mechglue merge, and because many of our 'wishes' have been granted:  we now have DCE_STYLE GSSAPI, send_to_kdc hooks and many other features merged into the mainline code.  We have adapted to upstream's choice of API in these cases.

In gensec_gssapi and gensec_krb5, we either expect a valid PAC, or NO
PAC.  This matches windows behavour.  We also have an option to
require the PAC to be present (which allows us to automate the testing
of this code).

This also includes a restructure of how the kerberos dependencies are
handled, due to the fallout of the merge.

Andrew Bartlett
2007-10-10 14:25:03 -05:00
Andrew Tridgell
95455b5789 r18528: work around what appears to be a compiler bug in gcc on irix. It
caused the RPC-SECRETS test to crash smbd in an inlined version of
this memcmp() call. This patch should have absolutely no effect at
all, but in fact it prevents the crash.

Disassembling at the point of the crash, it shows that gcc is inlining
the memcmp(). I don't know enough MIPS assembler to actually spot the
bug. In case anyone reading this does know MIPS assembler, here is the
gcc generated code that crashes:

0x105e0218 <gssapi_krb5_verify_header+168>:     lw      $t1,52($sp)
0x105e021c <gssapi_krb5_verify_header+172>:     lw      $t1,0($t1)
0x105e0220 <gssapi_krb5_verify_header+176>:     lhu     $t1,0($t1)
0x105e0224 <gssapi_krb5_verify_header+180>:     lw      $t2,68($sp)
0x105e0228 <gssapi_krb5_verify_header+184>:     lhu     $t2,0($t2)
0x105e022c <gssapi_krb5_verify_header+188>:     subu    $t1,$t1,$t2

it gets a segv at 0x105e0220.

lha, what do you think of this? The change should be innocuous on all
other platforms, apart from making the code harder to read :(
2007-10-10 14:18:42 -05:00
Andrew Tridgell
3697cd6597 r18308: get this right .... 2007-10-10 14:18:06 -05:00
Andrew Tridgell
1f38a7ea56 r18300: fixed a type bug in heimdal - lha, you happy with this upstream? It
showed up on ia_64 systems
2007-10-10 14:18:04 -05:00
Andrew Bartlett
df2e4f061f r16235: Don't update minor_status when cleaning up on error. This restores
sensible log messages to gensec_gssapi.

Andrew Bartlett
2007-10-10 14:09:07 -05:00
Gerald Carter
26a2fa97e4 r16100: Patch from Michael Wood <mwood@icts.uct.ac.za>: s/then/than/ for correct grammar 2007-10-10 14:08:59 -05:00
Stefan Metzmacher
ecff7b70aa r16000: - use uint16_t instead of u_int16_t
- use int32_t for seq_number

both changes let us use the types which the main heimdal code uses

metze
2007-10-10 14:08:48 -05:00
Stefan Metzmacher
e1842c9b55 r15993: don't use u_int32_t, as the main heimdal code also don't use
it anymore

metze
2007-10-10 14:08:47 -05:00
Andrew Bartlett
0132312124 r15515: Syncronsise with current lorikeet-heimdal.
Andrew Bartlett
2007-10-10 14:05:45 -05:00
Andrew Bartlett
4b44355d42 r15491: Always initialise is_cfx (found by Valgrind)
Always remember to free the crypto context (found by Luke Howard)
2007-10-10 14:05:41 -05:00
Andrew Bartlett
120374f5f9 r15484: Make accept_security_context() more compatible with how Samba3 (and
similarly built clients) behave.

This is better than just ignoring the checksum, if it isn't the GSSAPI
checksum.  (Samba4 clients in Samba3 mode use more than just the MD5
checksum, and will use a signed AES checksum if available.  Actual
samba3 may well do the same in future, against a suitable KDC).

Also a change for easier debugging of checksum issues.

Andrew Bartlett
2007-10-10 14:05:39 -05:00
Andrew Bartlett
ef5604b877 r15481: Update heimdal/ to match current lorikeet-heimdal.
This includes many useful upstream changes, many of which should
reduce warnings in our compile.

It also includes a change to the HDB interface, which removes the need
for Samba4/lorikeet-heimdal to deviate from upstream for hdb_fetch().
The new flags replace the old entry type enum.

(This required the rework in hdb-ldb.c included in this commit)

Andrew Bartlett
2007-10-10 14:05:39 -05:00
Andrew Bartlett
f0e538126c r15192: Update Samba4 to use current lorikeet-heimdal.
Andrew Bartlett
2007-10-10 14:04:15 -05:00
Andrew Bartlett
bdb55ce2b5 r14707: Initialise default value (the rest of this function sets it to 1 if
this is CFX).

Caught by Valgrind.

Andrew Bartlett
2007-10-10 13:59:11 -05:00
Andrew Bartlett
97a0a0e2fa r14198: Update Samba4 to current lorikeet-heimdal.
Andrew Bartlett
2007-10-10 13:56:58 -05:00
Andrew Bartlett
cfd0df16b7 r13481: As far as I can tell, my changes in -r 12863 were dangerously untested.
We do need the gsskrb5_get_initiator_subkey() routine.  But we should
ensure that we do always get a valid key, to prevent any segfaults.

Without this code, we get a different session key compared with
Win2k3, and so kerberised smb signing fails.

Andrew Bartlett
2007-10-10 13:51:55 -05:00
Andrew Bartlett
38809b43a5 r13144: This seems to be required for Samba4 to talk to Samba4, and to get the
same session key.  I need to understand this more, but it works
samba/samba, and I don't have access to windows doing AES (longhorn)
yet.

Andrew Bartlett
2007-10-10 13:51:28 -05:00
Andrew Bartlett
ec11870ca1 r12863: As lha suggested to me a while back, it appears that the
gsskrb5_get_initiator_subkey() routine is bougs.  We can indeed use
gss_krb5_get_subkey().

This is fortunate, as there was a segfault bug in 'initiator' version.

Andrew Bartlett
2007-10-10 13:50:55 -05:00
Andrew Bartlett
8fd5224c6b r12269: Update to current lorikeet-heimdal. This changed the way the hdb
interface worked, so hdb-ldb.c and the glue have been updated.

Andrew Bartlett
2007-10-10 13:47:26 -05:00
Andrew Bartlett
2426581dfb r12000: Update to current lorikeet-heimdal, including in particular support
for referencing an existing in-MEMORY keytab (required for the new way
we push that to GSSAPI).

Andrew Bartlett
2007-10-10 13:46:57 -05:00
Andrew Bartlett
6b75573df4 r11995: A big kerberos-related update.
This merges Samba4 up to current lorikeet-heimdal, which includes a
replacement for some Samba-specific hacks.

In particular, the credentials system now supplies GSS client and
server credentials.  These are imported into GSS with
gss_krb5_import_creds().  Unfortunetly this can't take an MEMORY
keytab, so we now create a FILE based keytab as provision and join
time.

Because the keytab is now created in advance, we don't spend .4s at
negprot doing sha1 s2k calls.  Also, because the keytab is read in
real time, any change in the server key will be correctly picked up by
the the krb5 code.

To mark entries in the secrets which should be exported to a keytab,
there is a new kerberosSecret objectClass.  The new routine
cli_credentials_update_all_keytabs() searches for these, and updates
the keytabs.

This is called in the provision.js via the ejs wrapper
credentials_update_all_keytabs().

We can now (in theory) use a system-provided /etc/krb5.keytab, if

krb5Keytab: FILE:/etc/krb5.keytab

is added to the secrets.ldb record.  By default the attribute

privateKeytab: secrets.keytab

is set, pointing to allow the whole private directory to be moved
without breaking the internal links.
2007-10-10 13:46:56 -05:00
Andrew Bartlett
6bb1b24428 r11541: More logical (I think...) delegation semantics.
Andrew Bartlett
2007-10-10 13:45:51 -05:00
Andrew Bartlett
e60cdb63fb r11477: This seems really nasty, but as I understand it an attacker cannot
change this checksum, as it is inside the encrypted packets.

Where the client (such as Samba3) fakes up GSSAPI, allow it to
continue.  We can't rid the world of all Samba3 and similar clients...

Andrew Bartlett
2007-10-10 13:45:42 -05:00
Andrew Bartlett
fd5fd03570 r11468: Merge a bit more of init_sec_context from Heimdal CVS into our
DCE_STYLE modified version, and add parametric options to control
delegation.

It turns out the only remaining issue is sending delegated credentials
to a windows server, probably due to the bug lha mentions in his blog
(using the wrong key).

If I turn delgation on in smbclient, but off in smbd, I can proxy a
cifs session.

I can't wait till Heimdal 0.8, so I'll see if I can figure out the fix
myself :-)

Andrew Bartlett
2007-10-10 13:45:40 -05:00
Andrew Bartlett
0a41941189 r11462: Fix the build: somehow I lost the header for this samba-specific hack.
Andrew Bartlett
2007-10-10 13:45:39 -05:00
Andrew Bartlett
55b89899ad r11452: Update Heimdal to current lorikeet, including removing the ccache side
of the gsskrb5_acquire_cred hack.

Add support for delegated credentials into the auth and credentials
subsystem, and specifically into gensec_gssapi.

Add the CIFS NTVFS handler as a consumer of delegated credentials,
when no user/domain/password is specified.

Andrew Bartlett
2007-10-10 13:45:38 -05:00
Volker Lendecke
a0b4036ba6 r11392: After confirmation from Love, fix a compiler warning 2007-10-10 13:45:30 -05:00
Andrew Bartlett
57f811115e r11317: An ugly hack to setup the global gssapi_krb5_context early, when we
have easy access to the event context.

This stops Samba dead-locking against itself when the winbindd client
tries to contact the KDC.

Andrew Bartlett
2007-10-10 13:45:19 -05:00
Andrew Bartlett
939d4f340f r11294: Update Heimdal in Samba4 to lorikeet-heimdal (which is in turn updated
to CVS of 2005-10-24).

Andrew Bartlett
2007-10-10 13:45:15 -05:00
Andrew Bartlett
4d2a9a9bc4 r10386: Merge current lorikeet-heimdal into Samba4.
Andrew Bartlett
2007-10-10 13:38:38 -05:00
Andrew Bartlett
8a22d46e70 r10286: This patch is ugly and disgusting, but for now it works better than the other
ideas I have had.

When I get a full list of things I want to do to a krb5_context I'll
either add gsskrb5_ wrappers, or a way of speicfying the krb5 context
per gssapi context.

(I want to ensure that the only krb5_context variables created while
executing Samba4 are via our wrapper).

Andrew Bartlett
2007-10-10 13:38:13 -05:00
James Peach
5767c05909 r10159: Dereference padsize before comparing to an int. 2007-10-10 13:38:04 -05:00
Andrew Bartlett
e4f2afc343 r10153: This patch adds a new parameter to gensec_sig_size(), the size of the
data to be signed/sealed.  We can use this to split the data from the
signature portion of the resultant wrapped packet.

This required merging the gsskrb5_wrap_size patch from
lorikeet-heimdal, and fixes AES encrption issues on DCE/RPC (we no
longer use a static 45 byte value).

This fixes one of the krb5 issues in my list.

Andrew Bartlett
2007-10-10 13:38:04 -05:00
Andrew Bartlett
c17926b6fe r10072: Fix mismerge weridness in error handling.
Andrew Bartlett
2007-10-10 13:36:34 -05:00
Andrew Bartlett
a3aba57c00 r10066: This is the second in my patches to work on Samba4's kerberos support,
with an aim to make the code simpiler and more correct.

Gone is the old (since the very early Samba 3.0 krb5 days) 'iterate over
all keytypes)' code in gensec_krb5, we now follow the approach used in
gensec_gssapi, and use a keytab.

I have also done a lot of work in the GSSAPI code, to try and reduce
the diff between us and upstream heimdal.  It was becoming hard to
track patches in this code, and I also want this patch (the DCE_STYLE
support) to be in a 'manageable' state for when lha considers it for
merging.  (metze assures me it still has memory leak problems, but
I've started to address some of that).

This patch also includes a simple update of other code to current
heimdal, as well as changes we need for better PAC verification.

On the PAC side of things we now match windows member servers by
checking the name and authtime on an incoming PAC.  Not generating these
right was the cause of the PAC pain, and so now both the main code and
torture test validate this behaviour.

One thing doesn't work with this patch:
 - the sealing of RPC pipes with kerberos, Samba -> Samba seems
broken.  I'm pretty sure this is related to AES, and the need to break
apart the gss_wrap interface.

Andrew Bartlett
2007-10-10 13:36:33 -05:00
Andrew Bartlett
913924a499 r9680: Update Heimdal to current lorikeet-heimdal (which was itself updated
to Heimdal CVS as of 2005-08-27).

Andrew Bartlett
2007-10-10 13:34:39 -05:00
Andrew Bartlett
d5fb30fb0c r9413: Bring Samba4 back up to date with lorikeet-heimdal.
Delete test_crypto_wrapping.c, previously included but unbuilt.

Andrew Bartlett
2007-10-10 13:33:35 -05:00
Andrew Bartlett
9a1d2f2fec r9221: Try to merge Heimdal across from lorikeet-heimdal to samba4.
This is my first attempt at this, so there may be a few rough edges.

Andrew Bartlett
2007-10-10 13:31:33 -05:00
Heimdal Import User
118be28a7a r8302: import mini HEIMDAL into the tree 2007-10-10 13:19:33 -05:00