2009-10-17 201 views
0

我剛開始編寫套接字程序。知道單個UDP數據包有源端口目標端口和一些代表路由器的MAC地址..等等。我想知道爲什麼有人不能創建帶有假信息的定製數據包並通過互聯網發送。我想知道我們的電腦有多安全。應該採取什麼措施來保護它?網絡有多不安全?

回答

5

答案有幾個不同的方面。

一個是網絡依賴於TCP而不是UDP。這意味着它是面向連接的。你的軟件包將被拒絕,除非它似乎是現有連接的一部分(這意味着,除其他外,它還必須具有正確的源IP和端口,並且它必須具有適合的序號接收窗口)。當然,這仍然可以沒有太多的麻煩。但它確實需要您瞭解有關在原始連接上發送的數據包的一些信息。

另一部分是,無論何時我們需要確定數據包的發件人是他們自稱的人,我們都使用加密。 :)

大多數數據包並不真的需要這個。如果有人向Google發送請求,其中出現來自我的IP,這並不是什麼大問題。但是在進行信用卡交易時,它變得更加重要。

+0

你說網絡依賴於TCP,但我認爲一些多媒體內容在UDP上運行。它是否正確? – LJM 2009-10-17 17:31:53

+0

@fella HTTP是TCP,而UDP通常留給流媒體,以及如果由於正常的網絡噪聲導致一些數據包消失,那麼這些數據並不重要。 – David 2009-10-17 17:44:04

+0

另外請注意,「網絡」是HTTP,它與「互聯網」不一樣 – lfaraone 2009-10-17 18:05:07

3

大多數TCP/IP協議棧「泄漏信任」,正如我曾經說過的那樣 - 而且作爲一名軟件開發人員(假設您正在尋找一種編程解決方案,並非如此,否則,stackoverflow的錯誤的論壇,去服務器故障或超級用戶;-)可以做到這一點 - 超越選擇和仔細實施的安全期望合理的協議。

HTTPS(具有強大的證書檢查等)是一個合理的強大方法;爲了提高安全性,請研究SSH和基於VPN的方法。當然,除非他們已經採取了特定的步驟,否則沒有人應該承擔隱私或強大的身份驗證(如果他們採取了這樣的步驟,他們可能仍然受到成功的攻擊,這就是爲什麼使用現有的,或多或少的「證明」 「諸如HTTPS,SSH,VPN等解決方案是可取的;-)。

1

是的,任何人都可以用他們想要的任何數據創建數據包並通過互聯網發送出去。特別是對於UDP,你可以假裝成任何你想要的人(除非你的ISP出口過濾)。對於UDP 的源地址不可信,因此不能。 TCP的源地址可以達到某種程度(您知道數據必須來自相關IP地址或路由中的某個人)。

歡迎上網:)

編輯:只是爲了澄清過濾外出是後話了發送 ISP將不得不這樣做。作爲一個接收者,實際上沒有任何事情可以通過UDP數據包來驗證地址,而無需與發送者進行通信。您至少可以部分信任傳入的TCP連接的唯一原因是TCP需要某些控制數據流回發送方(因此需要一個有效的IP地址/端口來設置連接並維護它)。

1

好吧,很多人創建無效數據包並通過Internet發送它們;例如,閱讀Ping of death

完全安全的計算機是關閉的計算機。爲了讓您的跑步PC更安全,您應該依賴防火牆軟件/硬件,它們可以檢測出格式錯誤的數據包。

1

可以很容易地創建帶有假信息的自定義數據包。因此你必須確保你不會受到他們的傷害。