Frage:
Warum ist TCP sicherer als UDP?
Philipp
2014-10-08 16:56:49 UTC
view on stackexchange narkive permalink

Nicht wirklich.

Keines der Protokolle verfügt über integrierte Funktionen, die Vertraulichkeit gewährleisten sollen. Jegliche Sicherheit sollte von den Protokollschichten oben (oder unten) bereitgestellt werden.

TCP ist ein komplexeres Protokoll als UDP, was das Fälschen etwas schwieriger macht Diese Komplikationen sind selten ein ernstes Hindernis.

Wenn Leute sagen, dass TCP "zuverlässiger" als UDP ist, beziehen sie sich nicht auf Sicherheit. TCP ist zuverlässiger, da sichergestellt wird, dass alle Segmente in der richtigen Reihenfolge empfangen und verlorene Segmente erneut übertragen werden. UDP garantiert dies nicht. Wenn die Verbindung schlecht ist, können UDP-Segmente spurlos verloren gehen oder in der falschen Reihenfolge eintreffen. Wie Sie mit diesem Problem umgehen, hängt von der Anwendung ab.

Könnten Sie bitte den letzten Absatz erweitern? Was genau meinst du mit "Parodie"? Soweit ich weiß, ist TCP nicht nur ein bisschen schwieriger zu fälschen, es ist auch viel schwieriger zu fälschen.
@Adnan Ich möchte dies lieber nicht näher erläutern, da es sich bei dieser Frage ohnehin nicht wirklich um ein Thema handelt (beim Spoofing geht es um die Verletzung der Integrität, nicht um die Vertraulichkeit). Es steht Ihnen jedoch frei, eine neue Frage zu stellen, wenn Sie sich für dieses Thema interessieren.
Oh es tut mir leid. Vielleicht war ich nicht klar. Ich habe höflich gesagt, dass Ihr letzter Absatz schlecht formuliert ist, von geringer Qualität ist und möglicherweise falsche Informationen enthält (es sei denn, Sie führen dies aus). Ich habe nicht um zusätzliche Informationen gebeten, sondern Sie gebeten, Ihre Antwort zu korrigieren (falls es falsch ist, was nur klar ist, wenn Sie näher erläutern, was Sie unter Spoofing verstehen).
Soweit ich weiß, und bitte korrigieren Sie mich, wenn ich falsch liege. Wenn Sie über TCP / UDP und Spoofing sprechen, wird automatisch davon ausgegangen, dass Sie über das Herstellen einer Verbindung (im Fall von TCP) von a sprechen Quelle, die nicht die wahre Quelle ist. Es sei denn natürlich, Sie meinen den Network Engineering-Prozess Protocol Spoofing https://en.wikipedia.org/wiki/Protocol_spoofing#TCP_spoofing (und ich glaube nicht, dass Sie darüber sprechen)
Oh, es sieht so aus, als wäre ich nicht der einzige, der durch den schlecht formulierten Absatz http://security.stackexchange.com/questions/69181/what-is-tcp-spoofing verwirrt ist
Elf antworten:
Steve Sether
2017-07-20 19:39:54 UTC
view on stackexchange narkive permalink

Um Daten über TCP an eine Anwendung zu senden, müssen Sie zunächst eine Verbindung herstellen. Bis die Verbindung hergestellt ist, gelangen Pakete nur zur Betriebssystemschicht, nicht zur Anwendung. Um eine Verbindung herzustellen, müssen Sie Pakete an das initiierende Ende zurückerhalten. Wenn Sie eine IP-Adresse fälschen möchten, die sich nicht in Ihrem eigenen Netzwerk befindet, und eine TCP-Verbindung herstellen möchten, müssen Sie in der Lage sein, die von der anderen Seite gesendeten Pakete abzufangen. (Sie müssen sich "zwischen" dem Endpunkt befinden und dort, wo die Pakete an die gefälschte IP-Adresse normalerweise abgelegt werden, oder andere clevere Routing-Tricks ausführen.)

UDP hat keine Verbindung, sodass Sie eine Fälschung durchführen können ein Paket mit einer beliebigen IP-Adresse und es sollte an die Anwendung gelangen. Sie erhalten immer noch keine Pakete zurück, es sei denn, Sie sind natürlich am richtigen "Ort". Ob dies wichtig ist oder nicht, hängt von der Sicherheit ab, die Sie in die Anwendung gestellt haben. Wenn Sie bestimmten IP-Adressen in der Anwendung mehr vertrauen als anderen, kann dies ein Problem sein.

In diesem Sinne ist TCP "sicherer" als UDP. Je nach Anwendung kann dies für die Sicherheit relevant sein oder nicht. An und für sich ist es kein guter Grund, UDP durch TCP zu ersetzen, da zwischen den beiden Protokollen andere Kompromisse bestehen.

* "UDP hat keine Verbindung, daher können Sie ein Paket mit einer beliebigen IP-Adresse fälschen und es sollte zur Anwendung gelangen." * Sollte es?Ich hatte den Eindruck, dass dies ein urbaner Mythos ist, da auf der ISP-Seite die Egress / Ingress-Filterung erfolgt.
@Merhdad Nein.Dies ist ein Hauptfaktor für das Problem mit DDoS-Angriffen von DNS-Reflektoren.Eingangsfilterung bedeutet nur, dass der ISP prüft, ob der angegebene Ursprung des Pakets mit dem Schnittstellen- / BGP-Nachbarn übereinstimmt, von dem es eingegangen ist, und die Ausgangsfilterung nicht annähernd so oft auftritt, wie wir möchten.
Ich stimme @Shadur, und den meisten Antworten zu, mit dem zusätzlichen Lob, dass das "sicherere" nicht beabsichtigt ist, aber es bietet einen gewissen Schutz gegen Spoofing, ist aber nicht wasserdicht.Ich würde es ähnlich wie z.NAT ist nicht als Sicherheitsmerkmal konzipiert, bietet jedoch zusätzliche Hürden für Angreifer, über die sie springen müssen.Eine ordnungsgemäße Sicherheit würde die Verwendung einer Authentifizierungsfunktion im UDP- oder TCP-Protokoll oder das Hinzufügen von Authentifizierungsheadern (IPsec AH) bedeuten.
Auf jeden Fall kann man UDP nicht einfach willkürlich durch TPC ersetzen.Zustellungsverzögerungen bei Paketverlust, langwieriger Verbindungsaufbau, kein Multicast ... Bei der Auswahl von UDP und TCP geht es nicht um Sicherheit, sondern um Anwendungsanforderungen.
sluge
2017-07-20 17:27:21 UTC
view on stackexchange narkive permalink

Beim Lesen von MS SDL-Präsentationen (Microsoft Security Development Lifecycle) fand ich eine Empfehlung, UDP in Anwendungen durch TCP zu ersetzen, da TCP sicherer als UDP ist. Beide sind jedoch nur Transportschichten, nicht mehr.

Warum ist TCP also sicherer als UDP?

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/70130/discussion-on-question-by-sluge-why-is-tcp-more-secure-than-udp).
domen
2017-07-20 17:46:55 UTC
view on stackexchange narkive permalink

Normales UDP behält nicht den Status bei, hat Handshakes usw. Dies bedeutet, dass ein Angreifer leicht ein gefälschtes Paket senden kann, es sei denn, es gibt Schutzmaßnahmen auf anderen Ebenen.

Andererseits erfordert das Senden eines gefälschten TCP-Pakets Der Angreifer muss die Sequenznummer und den Client-Port einer hergestellten Verbindung erraten.

Oder einfach nur im selben LAN zu sein und Arp-Tabellen zu vergiften, um die gesamte Kommunikation zu erhalten und dann einfach die Reihenfolge zu erhöhen, wenn er ein Paket einfügen möchte, wodurch ein "legitimes" Paket als schlechte Neuübertragung verworfen wird ...
Es ist erwähnenswert, dass jede halbwegs sichere App den Status beibehalten, Handshakes usw. selbst implementieren sollte, sodass die zusätzlichen Funktionen von TCP redundant sein sollten.
@Nat ist es wert, das Umschließen von TCP in TLS zu vergleichen und keine höheren Handshakes zu bemerken, indem IKE erneut implementiert wird, um eine sichere UDP-Interaktion zu erhalten, die den Verlust von Handshakes bewältigen kann, der die Dinge überflüssig machen sollte.
TheJulyPlot
2017-07-20 17:37:20 UTC
view on stackexchange narkive permalink

TCP ist nicht sicherer als UDP, es ist "zuverlässiger", da es statusbehaftet ist und die Bestätigung jedes Segments erfordert. UDP ist zustandslos und sendet nur Segmente, ohne zu wissen, ob der Client sie erhält oder nicht.

Sie haben auch keine maßgeschneiderten Sicherheitsfunktionen, die andere nicht haben. Unterschiede sind nur geringfügig auf die unterschiedlichen Anforderungen jedes Protokolls zurückzuführen, die wahrgenommen werden Sicherheitsvorteile sind eher mehlige Nebenprodukte der Protokolle als eine absichtliche Sicherheitsfunktion.

BEARBEITEN: UDP und TCP haben spezifische Verwendungszwecke, keine dieser Verwendungen bezieht sich auf die Sicherheit.

Beide Protokolle basieren auf anderen Protokollen, um Sicherheit zu bieten. Obwohl TCP möglicherweise eine etwas kleinere Angriffsfläche hat, spielt dies keine Rolle, um sicherzustellen, dass Sie entweder ein sicherheitsorientiertes Protokoll benötigen. Ein Protokoll wie DTLS oder Google QUIC.

Die Entscheidung, TCP für einen Anwendungsfall zu implementieren, der besser für UDP geeignet ist, anstatt UDP korrekt zu sichern (TCP würde in den meisten Anwendungsfällen auch eine Sicherung erfordern), wäre wie folgt Verwenden Sie ein 9-Eisen zum Putten, weil Sie denken, dass ein 9-Eisen eine bessere Waffe wäre, um sich in einem Kampf zu verteidigen ... wenn Sie eine Waffe in der Tasche haben.

Sicherheit durch glückliche Nebenwirkung ist immer noch Sicherheit.Es ist vielleicht keine * große * Sicherheit, aber es kann immer noch * sicherer * sein als in einem anderen Fall.
Ja, ich kann diesen Standpunkt sehen.Die Wahl von TCP gegenüber UDP trifft jedoch eine Entwurfsentscheidung, die auf einem Nebeneffekt basiert.Wenn ich persönlich einen Anwendungsfall hätte, der besser für UDP geeignet wäre, würde ich UDP verwenden und ihn mit Protokollen sichern, die auf Sicherheit ausgelegt sind.
Da Integirty per Definition eine Säule der Sicherheit ist und die größere Angriffsfläche von UDP hauptsächlich darin besteht, die Integrität durch Spoofing von Paketen anzugreifen, kann man mit Sicherheit sagen, dass TCP sicherer ist.
@PanosK.Integrität bedeutet, dass die Daten vertrauenswürdig sind.Die einfache Fehlererkennung in TCP bietet dies nicht.Es soll und wurde nicht dafür entworfen.Zu sagen, TCP sei sicherer als UDP, ist wie zu sagen, ein Volkswagen sei ein besseres Familienauto als ein Ford, wenn man über einen besseren Panzer für die Kriegsführung spricht.Ja, der Volkswagen hat vielleicht eine 5-Sterne-Sicherheitsbewertung und der Ford nur 4, aber er ist immer noch kein besserer Panzer und wird Sie immer noch nicht in einem Panzerkampf verteidigen.
@TheJulyPlot: D Ich sage nicht, dass TCP sicherer ist, aber eher verstehe ich, wie diese Leute in MS SDL zu diesem Schluss gekommen sind.
Beste Erklärung bei weitem.
WhiteWinterWolf
2017-07-21 14:14:40 UTC
view on stackexchange narkive permalink

Ist TCP sicherer als UDP?

Ja, aber wir müssen uns sehr klar darüber sein, worüber wir sprechen, wenn wir über "Sicherheit" sprechen, und diese Aussage nicht auf Protokolle der oberen Ebene verallgemeinern.

Derzeit wird Sicherheit häufig mit der CIA -Triade verknüpft:

  • C Onfidentiality.
  • I Integrität.
  • A Verfügbarkeit.

Die Version 4 des IP-Protokolls, das heute noch am häufigsten verwendet wird, ist ein sehr altes Tier, das in den 70er und 80er Jahren entwickelt wurde.

Zu dieser Zeit war Vertraulichkeit nicht wirklich ein Thema und das, worauf es wirklich abzielte Ziel war es, Integrität und Verfügbarkeit zu erreichen (das Arpanet-Netzwerk, der Vorfahr des Internets, aus dem das IP-Protokoll hervorging, sollte die Kontinuität des Dienstes auch im Falle eines Atomkrieges gewährleisten und keine Daten während des Transports schützen).

In dieser Optik wurden zwei Transportprotokolle über die IP-Schicht entwickelt: TCP und UDP.

TCP wa Es wurde entwickelt, um sowohl die Eigenschaften Integrität als auch Verfügbarkeit sicherzustellen. Es umfasst die damals fortschrittlichen Techniken wie einen Drei-Wege-Handshake, die Aushandlung von Parametern, die Behandlung verschiedener Verbindungsstatus, die transparente Neuordnung von Paketen, Bestätigungsfenster und Wiederholungsmechanismen. Dies gibt dem Absender eine gute Garantie dafür, dass die von ihm gesendeten Daten in einer vollständig unverfälschten Form empfangen wurden (dh keine fehlenden, geänderten oder ungeordneten Teile).

Erinnern Sie sich jedoch daran, dass das, worauf dieses Protokoll abzielte, a war technische Katastrophe, keine böswillige Manipulation der Daten während der Übertragung. Ein solches Problem war zu diesem Zeitpunkt völlig außer Reichweite.

UDP hingegen wurde als schnelles Protokoll konzipiert. Es hat keine der oben genannten Funktionen und daher auch keine ihrer Gemeinkosten. Insbesondere wenn der Absender einige Daten über UDP sendet, können die empfangenen Daten unvollständig, ungeordnet oder überhaupt nicht empfangen sein: Das UDP-Protokoll selbst bietet keinen Mechanismus, um dies weder auf der Sender- noch auf der Empfängerseite zu verhindern oder zu erkennen / p>

Auf diese Weise ist TCP in der Tat sicherer als UDP, wenn Sie sich auf die Datenintegrität und Verfügbarkeitseigenschaften der Sicherheit konzentrieren.

Ist ein Anwendungsprotokoll, das auf TCP basiert, sicherer als eines, auf das Sie sich verlassen UDP?

Mit Sicherheit nicht.

Dies bedeutet nur, dass Benutzer, die ein auf UDP basierendes Anwendungsprotokoll entwickeln, mehr Arbeit haben, da sie möglicherweise in ihren Anwendungsprotokoll-Problemumgehungen die fehlenden Funktionen implementieren müssen im UDP-Protokoll. Sie müssen berücksichtigen, dass gesendete Daten möglicherweise nicht unbedingt empfangen werden, dass empfangene Daten möglicherweise nicht in der richtigen Reihenfolge vorliegen usw. Dies sind alles bekannte Probleme.

OpenVPN zum Beispiel, während es unterstützt TCP hauptsächlich aus Gründen der Kompatibilität mit restriktiven Firewalls, wird standardmäßig ausgeführt und läuft am besten über UDP. Ein Wechsel zu TCP ist möglich, erhöht jedoch in keiner Weise die Sicherheit, da der Unterschied zwischen den beiden Transportschichtprotokollen UDP und TCP vollständig von OpenVPN selbst behandelt wird. Wenn Sie auf TCP umschalten, wird nur der TCP-Overhead zum OpenVPN-Protokoll hinzugefügt, wodurch die Leistung verringert wird.

Ist TCP besser als UDP?

Nein, dies ist ausschließlich eine Wahl für das Anwendungsprotokolldesign

UDP ist ein roheres Protokoll. Bei korrekter und sorgfältiger Verwendung kann eine bessere Leistung als TCP erzielen, was zu einer schwierigeren Entwicklung und Wartung des Anwendungsprotokolls führt.

  • Wenn die Anwendung nicht rechtzeitig ist TCP ist sensibel und bietet sich als natürliche Wahl an, da das Rad nicht neu erfunden werden muss.
  • Wenn die Anwendung zeitkritisch ist, muss eine Diskussion stattfinden, in der entschieden werden soll, ob jede Anwendung ihren Nachteil hat: eine potenzielle Leistungseinbuße mit TCP gegen eine sicher komplexere Anwendung mit UDP.
  • Die meisten Protokolle sind nicht zeitkritisch und daher ist TCP das am häufigsten verwendete Protokoll. Wenn Sie eine Webseite laden oder eine E-Mail erhalten, gibt es keinen Unterschied, ob Sie sie 10 Millisekunden früher oder später erhalten.

    Zwei klassische Beispiele für Protokolle, die UDP verwenden, zusätzlich zu dem zuvor genannten OpenVPN: sind Media Streaming und DNS.

    Beim Media-Streaming ist es Ihnen egal, ob ein Videobild oder einige Millisekunden Video oder Audio fehlen, solange das Video oder Audio reibungslos und synchron abgespielt wird. In diesem Fall möchten Sie keine sich wiederholenden Pausen einleiten, da TCP ein fehlendes Paket erkannt und den Absender aufgefordert hat, den Inhalt des letzten Bestätigungsfensters erneut zu senden.

    Bei DNS sind Anforderungen und Antworten normalerweise sehr kurz und Sie möchten, dass der Prozess der Namensauflösung so schnell wie möglich ist (beachten Sie, dass längere und weniger zeitkritische Antworten wie DNS-Zonenübertragungen normalerweise immer noch auf TCP stattfinden). Es ist schneller, die Namensauflösungsanforderung an den DNS-Server zu senden, wenn die Anforderung oder ihre Antwort nur wenige Male verloren geht, als für jede Anforderung einen vollständigen Drei-Wege-Handshake zu verarbeiten.

    Was ist mit Vertraulichkeit und böswilliges Schnüffeln / Manipulieren (und IPv6)?

    Alles, was uns bisher wichtig war, war im Geiste dieses alten IPv4 das Gleichgewicht zwischen Übertragungsgeschwindigkeit und Datenintegrität + Verfügbarkeit. Wenn wir darüber hinaus noch Vertraulichkeit hinzufügen möchten, können wir dies tun, dies muss jedoch auf Anwendungsebene erfolgen, da IPv4, wie bereits erwähnt, nicht von Vertraulichkeitsproblemen betroffen ist.

    Eine moderne, vollwertige Sicherheitsimplementierung kann auf Anwendungsebene implementiert werden und auf TCP- oder UDP-Protokollen (oder beiden) basieren, ohne dass dies Auswirkungen auf die Sicherheit des Anwendungsprotokolls selbst hat (siehe Beispiel OpenVPN oben).

    Wie eingangs erwähnt, stammt IPv4 jedoch tatsächlich aus einem anderen Computerzeitalter. Es erhielt einen Nachfolger mit dem Namen if IPv6, das IPSec auf IP-Ebene nativ unterstützt und somit modernere Sicherheitsdienste unter Transportprotokollen wie UDP und TCP bereitstellt.

    Dies ermöglicht Delegieren der Datenverschlüsselung während der Übertragung von der Anwendung an die Netzwerkschicht und Ermöglichen, dass sowohl UDP als auch TCP genau die gleichen Sicherheitsgarantien bieten. In den meisten Szenarien wird der UDP-Leistungsgewinn jedoch durch den IPSec-Overhead ausgeglichen, sodass ich nicht sicher bin, ob die Verwendung von UDP anstelle von TCP von Vorteil ist, solange IPv6-IPSec verwendet wird.

    Joshua Faust
    2017-07-20 18:12:40 UTC
    view on stackexchange narkive permalink

    TCP ist "verbindungsbasiert", dh es verfügt über eine integrierte Zuverlässigkeit in Form von Sequenznummern. So sende ich Ihnen zum Beispiel ein Bild über TCP, aber 1/4 der Pakete werden verworfen. Da wir ein verbindungsbasiertes Protokoll mit Sequenznummern haben, weiß Ihr Computer, dass Ihnen diese Daten fehlen, und fordert diese Daten daher von mir an, um Datenintegrität zu gewährleisten. Dies ist langsamer, aber viel sicherer. Um TCP / IP-Pakete zu fälschen, müssen Sie diese Sequenznummer abfangen und ein schädliches Paket senden. Ohne einen Mann in der Mitte ist das fast unmöglich!

    UDP ist ein "Connetionless" -Protokoll, dh es sendet nur die Daten und vergisst sie. Es gibt keine Zuverlässigkeit oder Integrität der Daten, aber für einige Anwendungen ist sie schneller und effizienter.

    Es ist nicht unmöglich, eine Maschine mit TCP-Syn / Ack / Syn-Ack-Paketen zu überfluten ... das Abfangen ist schwieriger, aber die Reihenfolge lässt sich beispielsweise durch Schnüffeln nach einer Arp-Vergiftung erraten (nicht im Internet, sondern im lokalen Netzwerk einer der Parteien)).Es gibt also keine wirkliche zusätzliche Sicherheit an sich.
    Ich würde es immer noch als sicherer betrachten, da die Schritte zur Kompromittierung von TCP, das wertvollere Daten enthält, schwieriger und umständlicher sind.Im Wesentlichen müssen Sie ein Netzwerk kompromittieren, ein MiTM durch ARP-Vergiftung und anschließend (möglicherweise) DNS-Vergiftung einrichten und von dort aus in der Lage sein, alles einzuspeisen, da der gesamte Datenverkehr durch Sie läuft, "The Fake Gateway".Oder Sie könnten einfach einen gefälschten AP einrichten und darauf warten, dass sich Leute verbinden, was viel einfacher ist, haha.In beiden Fällen ist TCP-Hijacking = Hacken mit mehr Schritten, während UDP-Hijacking = Hacken.lol
    Wenn das Ziel darin besteht, ein Paket im Namen des ursprünglichen Benutzers zu senden, müssen Sie nur auf die Arp-Anfrage des Gateways auf der Benutzerseite oder des Zielservers auf der Serverseite antworten, um eine Kopie der zu erratenden Pakete zu erhaltendie Sequenznummer.Das ist nur ein Schritt mehr als udp.Wenn Sie bidirektional sein möchten, müssen Sie ja als MITM erhalten, aber das gilt auch für UDP.Die zusätzliche Sicherheit ist sehr gering
    rackandboneman
    2017-07-21 13:53:48 UTC
    view on stackexchange narkive permalink

    In der Praxis ist TCP in einem Firewall-Netzwerk einfacher zu überwachen : Der Datenverkehr in Bezug auf extern und intern hergestellte Verbindungen und damit Client- und Serverrollen kann durch separate Richtlinien klar unterschieden und verarbeitet werden. Sie können beispielsweise trivial sicherstellen, dass Hosts in einem geschützten Netzwerk auf einen externen Webserver zugreifen können, jedoch nicht als Webserver für externe Clients fungieren können. Für UDP-Dienste (z. B. DNS) erfordert die Durchsetzung solcher Richtlinien weitaus mehr Intelligenz und Rätselraten, da Sie Informationen über und unter der Transportschicht berücksichtigen müssen.

    Arnaud Bouchez
    2017-07-24 13:12:12 UTC
    view on stackexchange narkive permalink

    TCP ist nicht "sicherer" als UDP:

    • TCP hat keine Verschlüsselungsfunktion per se ;
    • TCP-Paketübertragung ist zuverlässig Sie können dies jedoch auch über UDP emulieren.

    UDP ist nur eine dünne Schicht über den IP-Paketen, während TCP über komplexe und standardmäßige zusätzliche Mechanismen verfügt, die Teil des Betriebssysteme.

    Sehen Sie sich das QUIC-Projekt an, um mehr über TCP / UDP-Unterschiede zu erfahren und zu erfahren, warum Google anstelle von TCP eine eigene gesicherte HTTP / 2-Transportschicht über UDP erstellt hat.

    Zitieren wir https://www.chromium.org/quic:

    Zu den wichtigsten Vorteilen von QUIC gegenüber TCP + TLS + HTTP2 gehören:

    • Latenz beim Verbindungsaufbau
    • Verbesserte Überlastungskontrolle
    • Multiplexing ohne Head-of-Line-Blockierung
    • Vorwärtsfehlerkorrektur
    • Verbindungsmigration
    Shaboti
    2019-11-30 09:50:29 UTC
    view on stackexchange narkive permalink

    Lassen Sie uns jeweils einige Vor- und Nachteile aus Sicherheitsgründen festlegen und sehen:

    UDP

    • (+) Relativ schwer zu scannendes UDP Öffnen Sie die Ports, und es besteht kein versteckter Scan (halbe Verbindung in TCP durch Senden von SYN).
    • (-) Netzwerkgeräte (z. B. Stateful Firewalls, NAT) haben Schwierigkeiten, UDP-Verbindungen zu steuern, da keine FLAGS erforderlich sind auf.
    • (-) Reflektierte Angriffe sind aufgrund fehlender Verbindung häufiger.
    • (-) Das Spoofing von IP ist einfach und wird bei DoS-Angriffen verwendet.

    TCP

    • (-) Stealthy Scan kann offene TCP-Ports erkennen (SYN nur senden, um offene Ports zu erkennen).
    • (+) Netzwerkgeräte (z. B. Stateful Firewalls) können TCP-Verbindungen problemlos verfolgen und steuern.
    • (+) Das Fälschen von Paketen ist nicht einfach, da die richtige Sequenznummer und Bestätigungsnummer angegeben werden muss.
    • (+) Aufgrund des anfänglichen Handshakes ist es nicht so einfach wie UDP, die IP zu fälschen.
    morris hoodye
    2017-07-21 08:26:47 UTC
    view on stackexchange narkive permalink

    Derzeit ist TCP nicht sicherer als UDP. TCP ist zuverlässiger als UDP, da TCP Fehlerpakete erkennen und erneut übertragen kann.

    Wenn eine sichere Datenübertragung gewünscht wird, sollten Sie eine Formatverschlüsselung wie TLS oder IPSec verwenden.

    David Trott
    2017-07-22 23:08:20 UTC
    view on stackexchange narkive permalink

    TCP hat ein Konzept für eine Verbindung, UDP nicht. Das Verbindungskonzept ist jedoch aus Sicherheitsgründen sowohl eine Stärke als auch eine Schwäche. Die Hauptsicherheitsstärke der Verbindung besteht darin, dass sie standardisiert ist. Der Anwendungsentwickler, die Netzwerkausrüstung und die Firewalls können sich alle auf eine feste Methode verlassen, um die Verbindung herzustellen, die Paketfragmentierung zu handhaben, erneut zu übertragen und so weiter. Darüber hinaus erleichtert das Verbindungskonzept das Erstellen zusätzlicher Sicherheitsebenen, z. B. SSL.

    Eine TCP-Verbindung bietet jedoch keinen großen Schutz vor einem Angriff, der direkt auf die Transportschicht abzielt, z. B. a SYN Flutangriff. Mit UDP könnten Sie theoretisch jedes einzelne Paket authentifizieren, um einige dieser Risiken zu minimieren.

    Daher würde ich argumentieren, dass UDP „theoretisch“ sicherer als TCP ist, wir jedoch in einer Welt leben, in der Sicherheit nicht perfekt ist. Die theoretische Stärke ist also etwas bedeutungslos. In der realen Welt ist es möglich, Beispiele in beide Richtungen zu finden - wobei ein Protokoll auf eine Weise fehlgeschlagen ist, für die das andere nicht anfällig gewesen wäre.

    Zusammenfassend glaube ich nicht, dass es eine Antwort gibt Um welches Protokoll „sicherer“ ist, müssen Sie Ihre Frage dahingehend qualifizieren, welche Bedrohungen Sie befürchten und wie viel und wie lange Sie bereit sind, für deren Minderung aufzuwenden. Wenn es nur um Bedrohungen geht und Sie unendlich viel Zeit und Geld haben, gilt meine theoretische Antwort.

    [UDP hat auch Flutangriffe] (https://www.juniper.net/documentation/en_US/junos12.1x44/topics/concept/denial-of-service-network-udp-flood-attack-understanding.html).Ihre Antwort benötigt mehr Unterstützung, warum UDP "theoretisch" sicherer als TCP ist.
    @user2320464 Das Loch rfc792 kann geschlossen werden, indem niemals das Paket "Ziel nicht erreichbar" gesendet wird. Es gibt auch viele asymmetrische Angriffe gegen UDP-basierte Dienste.Aber ich schaufele diese einfach als Fehler in der Anwendung (oder dem von der Anwendung implementierten Protokoll, DNS, ntp usw.). Ich habe ein Problem mit TCP geseufzt (die Notwendigkeit, Ressourcen nach dem Empfang des ersten Pakets zuzuweisen).Bitte beachten Sie alle Fehler auf Protokollebene (nicht anwendungsspezifisch und nicht implementierungsspezifisch) in UDP, die nicht auch für TCP gelten und in unserer theoretischen Welt nicht geschlossen werden konnten.


    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...