Frage

Eines der Werkzeuge, die ich durch Verschlüsselung / Entschlüsselung bin mit Daten senden über das Netzwerk. Ich bin das Werkzeug zu modifizieren, und ich muss sicher sein, dass die Daten tatsächlich in verschlüsselter Form gesendet wird.

Sind Wireshark und tcpdump die richtigen Werkzeuge für den Zweck? An welchem ??Punkt während der Übertragung erfasse sie die Netzwerk-Pakete?

War es hilfreich?

Lösung

Diese beiden Werkzeuge, um die Daten erfassen genau, wie sie über den Draht erlischt. (Denken Sie daran, als eine Art der äquivalent von „T-Stück“ für die Ausgabe, die auch auf Datei auf Bildschirm geht,. Auch hier die gleichen Daten gehen an die Buchse sowie tcpdump oder was auch immer)

Also ja, wenn Ihr Werkzeug richtig konfiguriert ist, um die Daten zu verschlüsseln, bevor sie zu senden, dann tcpdump oder Wireshark widerspiegeln soll, dass in ihrer Paketerfassung.

Andere Tipps

Kurze Antwort:. Pakete, die an sehr Ende des Software-Netzwerkstack abgegriffen werden (zum Beispiel in Linux)

Lange Antwort mit Code Graben in tcpdump, libpcap und Linux-Kernel 3.12:

Sowohl Wireshark und tcpdump Anwendungen Libpcap zum Beispiel

http://sources.debian.net/ src / tcpdump / 4.5.1-2 / tcpdump.c # L1472

    if (pcap_setfilter(pd, &fcode) < 0)

, die wiederum einen Paketfilter über setfilter_op und activate_op installieren. Es gibt viele Implementierungen dieser Operationen, und ich denke, dass auf den letzten Linux PF_PACKET mit pcap_activate_linux verwendet werden: libpcap-1.5.3-2 / pcap-linux.c # L1287 :

/*
 * Current Linux kernels use the protocol family PF_PACKET to
 * allow direct access to all packets on the network while
 * older kernels had a special socket type SOCK_PACKET to
 * implement this feature.
 * While this old implementation is kind of obsolete we need
 * to be compatible with older kernels for a while so we are
 * trying both methods with the newer method preferred.
 */
status = activate_new(handle);

    ...
    activate_new(pcap_t *handle)
     ...
    /*
 * Open a socket with protocol family packet. If the
 * "any" device was specified, we open a SOCK_DGRAM
 * socket for the cooked interface, otherwise we first
 * try a SOCK_RAW socket for the raw interface.
 */
sock_fd = is_any_device ?
    socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_ALL)) :
    socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));

ist PF_PACKET im Kernel implementiert, in der Datei net /packet/af_packet.c . Initialisierung von PF_SOCKET wird in packet_do_bind mit register_prot_hook(sk) Funktion erfolgen (wenn das Gerät in UP-Zustand ist), die dev_add_pack von tpacket_rcv(...) Funktion -. wird in ptype_all registriert werden

Haken, eingetragen in ptype_all sind für ausgehende Pakete von dev_queue_xmit_nit genannt ( "Support-Routine. Sendet abgehenden Rahmen an ein Netzwerk Taps derzeit im Einsatz.") Mit list_for_each_entry_rcu(ptype, &ptype_all, list) { ... deliver_skb ...} .. func ruft deliver_skb die func der tpacket_rcv für libpcap ist.

dev_queue_xmit_nit von dev_hard_start_xmit genannt ( Linie 2539 in Netz /core/dev.c ), die AFAIK ist die letzte Stufe (für ausgehende Pakete) von geräteunabhängigen Pakethandhabungs in Linux-Netzwerkstapel.

Die gleiche Geschichte ist für eingehende Pakete, ptype_all registrierte Haken von __netif_receive_skb_core mit gleichen list_for_each_entry_rcu(ptype, &ptype_all, list) {.. deliver_skb..} genannt werden. __netif_receive_skb_core heißt von __netif_receive_skb in den Anfängen eingehenden Pakete der Handhabung

Linux Foundation hat eine gute Beschreibung der Netzwerk-Stack ( http://www.linuxfoundation.org / collaborate / Arbeitsgruppen / networking / kernel_flow ) können Sie dev_hard_start_xmit auf das Bild Network_data_flow Bild , erhalten Sie die Antworten. Zum Beispiel ist Netfilter gehakt (NF_HOOK) nur in ip_rcv (ankommend) ip_output (lokal ausgehend) und ip_forward (ausgehend von Routing) - kurz nach netif_receive_skb und kurz vor dev_queue_xmit

.

Ja, das sind die richtigen Werkzeuge. Wireshark wird TLS und SSL-Pakete identifizieren, wenn es das ist, was Sie für die Verschlüsselung verwenden. Sie können mit Wireshark des Servers des privaten Schlüssel bereitstellen und den Verkehr bei Bedarf (außer kurzlebigen Moden wie DHE und ECDHE) entschlüsseln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top