我打算在同一主機上運行的兩個進程之間爲我的IPC(進程間通信)使用unix域套接字。但在選擇unix套接字之前,我還必須考慮數據安全性。IPC與unix域套接字是否安全?
我只是想知道,如果我使用unix套接字來加密我在該連接上發送的數據,是否有任何方式「中間人」攻擊?
我打算在同一主機上運行的兩個進程之間爲我的IPC(進程間通信)使用unix域套接字。但在選擇unix套接字之前,我還必須考慮數據安全性。IPC與unix域套接字是否安全?
我只是想知道,如果我使用unix套接字來加密我在該連接上發送的數據,是否有任何方式「中間人」攻擊?
任何客戶端 - 服務器通信通常都容易受到MitM攻擊:它只取決於攻擊面的大小。
簡而言之,Unix域套接字通常是安全的。您可以使用POSIX權限來鎖定與套接字and the server side can request information such as credentials and PID of clients before they can fully connect相關的文件描述符(FD)的訪問。
如果有人想攔截數據,它們會有效地篡改作爲核心操作系統一部分的低級IPC機制。如果有人能夠做到這一點,被測設備/系統(DUT)已經被入侵(即:安裝了惡意內核模塊或預加載的庫)。
攻擊UDS連接的最可能的場所是在調試器中運行使用它們的程序(即:gdb
),或者在套接字上僅使用socat
來嘗試收集數據。後者可以通過使用認證程序和加密來最小化,而前者不能得到真正的幫助。如果有人可以通過root
訪問DUT,他/她可以啓動根控制檯,然後在調試器中啓動客戶端應用程序。
It's as secure as your system is.