如何防止 MITM 攻击 API Key 和 API secret?
How to prevent MITM attacks on API Key and API secret?
有人会如何防止针对 API 秘密/API 密钥的 MITM 类型攻击?
facebook/instagram 如何保护他们的用户免受 MITM 类型的黑客攻击?
他们甚至保护用户吗?或者他们认为任何可能的攻击都应该由用户来承担?
我的回答的一些背景
我假设您的问题是在移动应用程序的上下文中,因此我的回答将展示如何防止 APIs 服务于移动应用程序的 MitM 攻击以及如何绕过它。
您的 Facebook/Instagram 相关问题
How does facebook/ instagram protect their users against MITM type hacks?
Do they even protect the users? Or they assume that any possible attacks should be shouldered by users?
这个问题最好由 Facebook/Instagram 的内部人员或对他们的移动应用程序和 APIs 进行了大量工作的安全研究人员回答。
很抱歉无法在这里向您说明。
防止 MitM 攻击
How would someone go about preventing MITM type attacks against API secrets/ API keys?
我可以通过使用针对证书 public 密钥的证书固定来帮助您并快速回复它,我们将在下面详细介绍。
首先,如果它提供为其域颁发的证书,您将希望通过将移动应用程序配置为仅在 TLS 握手期间与 API 建立连接来保护 HTTPS 通信通道并且移动应用程序已知并信任它,忽略根据设备证书信任库的验证可能仍然有效的任何其他内容。我在我写的文章 Securing HTTPS with Certificate Pinning:
中详细介绍了它以及如何实现它
In order to demonstrate how to use certificate pinning for protecting the https traffic between your mobile app and your API server, we will use the same Currency Converter Demo mobile app that I used in the previous article.
In this article we will learn what certificate pinning is, when to use it, how to implement it in an Android app, and how it can prevent a MitM attack.
要固定什么?
来自同一个article我会引用:
The easiest way to pin is to use the server’s public key or the hash of that public key, The hashed public key is the most flexible and maintainable approach since it allows certificates to be rotated in the server, by signing the new one with the same public key. Thus the mobile app does not have to be updated with a new pin because the hash for the public key of the new certificate will continue to match the pin provided in the network security config file. We will see an example of this later when we talk about how to setup certificate pinning.
实施静态证书固定
在移动应用程序中实现静态证书固定的最简单快捷的方法是使用 Mobile Certificate Pinning Generator 接受您要固定的域列表并为您生成正确的证书固定在 Android 和 iOS.
上使用的配置
给它一个要固定的域列表:
并且该工具会为您生成 Android 配置:
还有 iOS 配置:
该工具还说明了如何将配置添加到您的移动应用程序,您可以在证书固定配置框下方找到它。他们还为 Android and for iOS 提供了一个实例 Pin 测试应用程序,这是一个循序渐进的教程。
绕过证书固定
重要的是,任何决定在其移动应用程序中实施证书固定的开发人员也了解如何绕过它,以便了解威胁模型并评估是否需要进一步的保护来防止证书固定绕过。
我写了两篇关于如何绕过 Android 上的证书固定的文章,您可以在其中一篇中学习如何通过提取、修改和重新打包 APK,而在另一篇文章中您学习如何使用 Frida 检测框架在运行时连接到移动应用程序以绕过证书固定:
Bypassing Certificate Pinning on Android via APK
In this article you will learn how to repackage a mobile app in order to make it trust custom ssl certificates. This will allow us to bypass certificate pinning.
How to Bypass Certificate Pinning with Frida on an Android App:
Today I will show how to use the Frida instrumentation framework to hook into the mobile app at runtime and instrument the code in order to perform a successful MitM attack even when the mobile app has implemented certificate pinning.
Bypassing certificate pinning is not too hard, just a little laborious, and allows an attacker to understand in detail how a mobile app communicates with its API, and then use that same knowledge to automate attacks or build other services around it.
总结
尽管可以绕过证书固定,但我仍然强烈建议您在您的移动应用程序中实施它,因为它大大减少了您的移动应用程序的攻击面。
了解如何绕过证书固定可以让您深入了解是否需要采取进一步的保护措施。动态证书固定和运行时应用程序自我保护 (RASP) 可能是您安全阶梯的下一步。
有人会如何防止针对 API 秘密/API 密钥的 MITM 类型攻击? facebook/instagram 如何保护他们的用户免受 MITM 类型的黑客攻击?
他们甚至保护用户吗?或者他们认为任何可能的攻击都应该由用户来承担?
我的回答的一些背景
我假设您的问题是在移动应用程序的上下文中,因此我的回答将展示如何防止 APIs 服务于移动应用程序的 MitM 攻击以及如何绕过它。
您的 Facebook/Instagram 相关问题
How does facebook/ instagram protect their users against MITM type hacks?
Do they even protect the users? Or they assume that any possible attacks should be shouldered by users?
这个问题最好由 Facebook/Instagram 的内部人员或对他们的移动应用程序和 APIs 进行了大量工作的安全研究人员回答。
很抱歉无法在这里向您说明。
防止 MitM 攻击
How would someone go about preventing MITM type attacks against API secrets/ API keys?
我可以通过使用针对证书 public 密钥的证书固定来帮助您并快速回复它,我们将在下面详细介绍。
首先,如果它提供为其域颁发的证书,您将希望通过将移动应用程序配置为仅在 TLS 握手期间与 API 建立连接来保护 HTTPS 通信通道并且移动应用程序已知并信任它,忽略根据设备证书信任库的验证可能仍然有效的任何其他内容。我在我写的文章 Securing HTTPS with Certificate Pinning:
中详细介绍了它以及如何实现它In order to demonstrate how to use certificate pinning for protecting the https traffic between your mobile app and your API server, we will use the same Currency Converter Demo mobile app that I used in the previous article.
In this article we will learn what certificate pinning is, when to use it, how to implement it in an Android app, and how it can prevent a MitM attack.
要固定什么?
来自同一个article我会引用:
The easiest way to pin is to use the server’s public key or the hash of that public key, The hashed public key is the most flexible and maintainable approach since it allows certificates to be rotated in the server, by signing the new one with the same public key. Thus the mobile app does not have to be updated with a new pin because the hash for the public key of the new certificate will continue to match the pin provided in the network security config file. We will see an example of this later when we talk about how to setup certificate pinning.
实施静态证书固定
在移动应用程序中实现静态证书固定的最简单快捷的方法是使用 Mobile Certificate Pinning Generator 接受您要固定的域列表并为您生成正确的证书固定在 Android 和 iOS.
上使用的配置给它一个要固定的域列表:
并且该工具会为您生成 Android 配置:
还有 iOS 配置:
该工具还说明了如何将配置添加到您的移动应用程序,您可以在证书固定配置框下方找到它。他们还为 Android and for iOS 提供了一个实例 Pin 测试应用程序,这是一个循序渐进的教程。
绕过证书固定
重要的是,任何决定在其移动应用程序中实施证书固定的开发人员也了解如何绕过它,以便了解威胁模型并评估是否需要进一步的保护来防止证书固定绕过。
我写了两篇关于如何绕过 Android 上的证书固定的文章,您可以在其中一篇中学习如何通过提取、修改和重新打包 APK,而在另一篇文章中您学习如何使用 Frida 检测框架在运行时连接到移动应用程序以绕过证书固定:
Bypassing Certificate Pinning on Android via APK
In this article you will learn how to repackage a mobile app in order to make it trust custom ssl certificates. This will allow us to bypass certificate pinning.
How to Bypass Certificate Pinning with Frida on an Android App:
Today I will show how to use the Frida instrumentation framework to hook into the mobile app at runtime and instrument the code in order to perform a successful MitM attack even when the mobile app has implemented certificate pinning.
Bypassing certificate pinning is not too hard, just a little laborious, and allows an attacker to understand in detail how a mobile app communicates with its API, and then use that same knowledge to automate attacks or build other services around it.
总结
尽管可以绕过证书固定,但我仍然强烈建议您在您的移动应用程序中实施它,因为它大大减少了您的移动应用程序的攻击面。
了解如何绕过证书固定可以让您深入了解是否需要采取进一步的保护措施。动态证书固定和运行时应用程序自我保护 (RASP) 可能是您安全阶梯的下一步。