具有 unix 域套接字的 IPC 是否安全?
Is IPC with unix domain sockets are safe?
我计划在同一主机上的两个进程 运行 之间为我的 IPC(进程间通信)使用 unix 域套接字。但在选择 unix 套接字之前,我还必须研究数据安全性。
我只是想知道如果我使用 unix 套接字而不加密我在该连接上发送的数据,有什么方法可以"man-in-the-middle"攻击吗?
一般来说,任何客户端-服务器通信都容易受到 MitM 攻击:这取决于攻击面有多大。
简而言之,Unix 域套接字通常是安全的。您可以使用 POSIX 权限来锁定对与套接字关联的文件描述符 (FD) 的访问,and the server side can request information such as credentials and PID of clients before they can fully connect.
如果有人想要拦截数据,他们实际上是在篡改作为核心操作系统一部分的低级 IPC 机制。如果有人能够做到这一点,则 device/system 被测 (DUT) 已经受到损害(即:安装了恶意内核模块或预加载库)。
最有可能攻击 UDS 连接的地方是 运行 在调试器中使用它们的程序(即:gdb
),或者只是在套接字上使用 socat
尝试收集数据。后者可以通过使用身份验证例程和加密来最小化,而前者则无济于事。如果有人 root
可以访问您的 DUT,he/she 可以启动根控制台,并在调试器中启动客户端应用程序。
TL;DR
It's as secure as your system is.
我计划在同一主机上的两个进程 运行 之间为我的 IPC(进程间通信)使用 unix 域套接字。但在选择 unix 套接字之前,我还必须研究数据安全性。
我只是想知道如果我使用 unix 套接字而不加密我在该连接上发送的数据,有什么方法可以"man-in-the-middle"攻击吗?
一般来说,任何客户端-服务器通信都容易受到 MitM 攻击:这取决于攻击面有多大。
简而言之,Unix 域套接字通常是安全的。您可以使用 POSIX 权限来锁定对与套接字关联的文件描述符 (FD) 的访问,and the server side can request information such as credentials and PID of clients before they can fully connect.
如果有人想要拦截数据,他们实际上是在篡改作为核心操作系统一部分的低级 IPC 机制。如果有人能够做到这一点,则 device/system 被测 (DUT) 已经受到损害(即:安装了恶意内核模块或预加载库)。
最有可能攻击 UDS 连接的地方是 运行 在调试器中使用它们的程序(即:gdb
),或者只是在套接字上使用 socat
尝试收集数据。后者可以通过使用身份验证例程和加密来最小化,而前者则无济于事。如果有人 root
可以访问您的 DUT,he/she 可以启动根控制台,并在调试器中启动客户端应用程序。
TL;DR
It's as secure as your system is.