我有一个从我的 ios 应用程序到我的 mysql 数据库的加密连接。我的问题是他们是否能够拦截来自 ios 应用程序的连接并找到加密或不加密的域
4 回答
他们是否能够拦截来自 ios 应用程序的连接
是的,他们可以这样做。至少可以肯定使用越狱设备 - 对于越狱设备,有几个因素使黑客更容易。
一方面,在越狱系统上,可以防止 Apple 加密应用程序可执行文件(通过将未加密的程序代码从内存转储到磁盘)并运行一个名为“class-dump”的实用程序来获取 Objective-C类信息(也可以在设备或 IDA Pro 上使用 GDB 调试器来对应用程序逻辑进行逆向工程)。
另一方面,用于进行 iOS 调整的同一 MobileSubstrate 库可用于更改任何给定应用程序的行为(我已成功使用此技术在运行时规避某些代码混淆),因此理论上攻击者会更改您的应用程序的通信逻辑并转储您和您的用户的未加密数据。
令人抓狂的是,大多数可用于此类黑客攻击的标准和较少使用的 Unix 实用程序都为越狱的 iOS 移植/编译 - 包括流行的网络嗅探工具nmap
、“开膛手约翰”密码破解程序、臭名昭著的aircrack-ng
WEP/WPA 密钥破解程序、GNU 调试器 (GDB) 等。这些对于执行您描述的攻击也很有用。
如果连接本身是加密的,那么理论上,您的数据在网络中应该是安全的。这仍然不能阻止基于 MobileSubstrate 的利用方法。确实可以相对容易地找到您要连接的服务器的 IP 地址(即使是匹配的域也可以结束,因为也有使用已知 IP 地址获取反向 DNS 信息的已知技术)。
我不确定在没有越狱的情况下这是否可能,但俄罗斯黑客对苹果的应用内购买进行了类似的中间人攻击(有效地使底层支付系统失效并允许购买自由下载),仅要求用户安装 SSL 证书、配置文件并使用黑客自己的代理服务器,所以我怀疑即使没有越狱也是可能的。请注意,在这种情况下,连接也是加密的,重要的不是加密。
您不应该创建与 mysql-database 的直接连接,而是寻求与服务器程序/api 的连接以及与相关数据库的连接。为了更直接地回答这个问题,如果正确加密,用户不应该能够拦截来自 ios-app 的连接,但仍然值得冒这个风险吗?
如果连接是加密的,则数据是安全的。但不是域。iPhone 正在连接到一个 IP 地址,而该 IP 地址显然没有加密。
在您的应用程序和 Mysql 之间创建一个 PHP 接口。这样做他们将只能破解应用程序帐户而不是整个数据库!您的 Mysql 凭证将存储在 PHP 代码运行的远程域中。