1, Il mio ambiente di configurazione esistente è come segue: (1), Server_side, Redhat5.5 Enterprise con samba4.0.0 installato, indirizzo IP: 5.5.5.149; nome di dominio: EXAMPLE.COM; (2), Client_side: Windows Server 2003, indirizzo IP: 5.5.5.45, nome host: SMB1; Ho seguito la configurazione di collegamento con esito positivo, ovvero il lato server è configurato come DC AD. Ora posso ottenere che il client (SMB1) si unisca al dominio EXAMPLE.COM. Nel processo di SMB1 che si unisce a EXAMPLE.COM, si sta verificando l'autenticazione kerberos, allo stesso tempo ho acquisito i pacchetti AS_REQ, AS_REP, TGS_REQ e TGS_REP tramite lo strumento Wireshark.
2, Il mio obiettivo è trovare l'interfaccia di chiamata della funzione corrispondente di Sevice_key nella sorgente Samba dal lato server Redhat5.5. Dalla lettura della documentazione relativa a Kerberos, ho appreso che il Service_key esiste nel pacchetto di richiesta TGS_REP, che ha utilizzato per accedere al lato server nel KRB_AP_REQ.
3, My Current Progress è che sono stato trovato stack di chiamate di AS_REQ e TGS_REQ attraverso il debugging a passo singolo di gdb tool e l'impostazione del livello gdb con 10. Gli stack di chiamate sono i seguenti:
Lo stack di chiamate AS_REP è:
# 0. / source4 / heimdal / kdc / kerberos5.c: 1032 # 1 ../ source4 / heimdal / kdc / process.c: 70 # 2 / source4 / heimdal / kdc / process.c : 242 # 3 ../ source4 / kdc / kdc.c: 161 # 4 ../ source4 / kdc / kdc.c: 519 # 5 ../ lib / tevent / tevent_req.c: 101 ...... ...
Lo stack di chiamate TGS_REP è:
# 0 ../source4/heimdal/kdc/krb5tgs.c:2355 # 1 ../ source4 / heimdal / kdc / process.c: 97 # 2 ../ source4 / heimdal / kdc / process.c: 242 # 3 ../ source4 / kdc / kdc.c: 161 # 4 ../ source4 / kdc / kdc.c: 519 # 5 ../lib/tevent/tevent_req.c:101 ....... ..
Anche così, il codice è enorme e molto difficile da imparare perché correlato alla crittografia. Il mio obiettivo non ha ancora raggiunto
4, I miei problemi urgenti possono essere descritti: Le funzioni correlate dei pacchetti AS_REQ, AS_REP, TGS_REQ e TGS_REP sono più difficili da comprendere, puoi fornire una spiegazione dettagliata?
In primo luogo, quali sono le corrispondenti interfacce delle funzioni con AS_REQ, AS_REP, TGS_REQ e TGS_REP? In particolare, le parti rilevanti con Service_key di TGS_REP?
In secondo luogo, la relazione logica della chiamata dei pacchetti precedenti?
In terzo luogo, Specificamente, poiché non sono molto chiaro diverse funzioni
1) /source4/heimdal/kdc/kerberos5.c:956 _kdc_as_rep ();
2) /source4/heimdal/kdc/krb5tgs.c:2288 _kdc_tgs_rep ();
3) /source4/heimdal/kdc/process.c:64 decode_AS_REQ () non ha definizione.
Fornisci alcuni materiali, ad esempio i collegamenti, se possibile. Qualsiasi aiuto sarebbe apprezzato sinceramente.