Articles of 安全

应用程序授权与Android中的复制保护

我准备发布应用程序并检查应用程序许可证我想知道是否值得将应用程序调整到许可证系统所需的额外工作。 因为从我所读到的来看,许可证制度也是可以破解的。 提前致谢

这是在apk中包含一对密钥(public / private)的最安全的方法

我正在开发一个android应用程序,我必须通过一对私钥和公钥保持与服务器的安全通信。 哪个是最安全的方式来存储我的apk中的私钥? 显然我要混淆代码,但我想要更多的安全性。 我曾想过以下选项: 如果我使用签名交易信息的方法创build本地共享库,则apk只需包含.so文件,并且此文件位于机器代码中,因此反编译可能很困难,不是吗? 有任何想法吗? 谢谢

允许用户使用Google凭据访问您的应用的最佳方式

如果您有一个需要用户注册的Android应用程序,并且希望允许用户通过Google进行login,那么您将如何处理? 我想让Google+login脱离这里的讨论。 我们也没有使用用户凭据来访问Google API,我也不想额外访问Google+的社交function。 似乎有很多select: 使用OAuth2.0进行身份validation logging在Google OAUth2login页面 这并没有提到Android,但它(部分)基于OAuth2访问令牌,但更重要的是对JSON Web令牌id_token的validation。 这种对用户进行身份validation的方式还包括启动WebView以允许用户login到他们的Google帐户以及相当复杂的id_tokenvalidation。 使用OAuth2 / Google Play服务 Google Play服务中有一个示例,更多地关注授权。 它使用GoogleAuthUtil.getToken来检索access_token。 其中的一部分是肯定的authentication,因为对话状态“login到…”。 我是否正确地认为将OAuth2.0stream与access_token用作authentication机制是一种不好的做法? (将访问令牌存储为authentication令牌)。 支持Facebook / Twitterlogin 我问的原因是因为Twitter和Facebook推荐你实施“使用…login”身份validation过程 用Twitter实现login Facebookloginstream为Android 这似乎也完全基于OAuth访问令牌。 我没有意识到的任何其他选项允许您用他们的谷歌帐户authentication用户?

蓝牙文件交换完全安全吗?

当我通过蓝牙传输文件时,可能会遇到什么样的攻击? 此外,Android手机之间通过蓝牙encryption传输的文件?

在Android的本地SQLite数据库中存储用户名和密码是否安全?

我现在可以允许用户在即将到来的Android应用程序中存储简单networking应用程序的凭证。 我的恐惧(对Android来说是新的)是其他(邪恶的)应用程序可能会在这个看似本地的数据库(本地到我的应用程序) 当写这个function,我应该害怕其他应用程序获取这些数据? 如果是的话,在本地进行encryption的最好方法是什么(但是记住,当用户使用应用程序时,我需要在某个时刻将其退出) 谢谢!

确保Web服务请求

我需要通过android应用程序向Web服务发出请求。 webservice可以根据需要进行devise。 在我看来,不pipe我select哪种方法,有人想要破解它,只需要逆向工程我的Android应用程序代码(这不是非常困难),并且可以看到我正在做什么,然后encryption数据,使用硬编码密码或任何其他解决scheme。 有没有一个解决scheme,将100%安全?

检查http请求是否来自我的android应用程序

我从外部服务器检索数据用于我的android应用程序。 我希望这些数据只能通过我的应用程序访问。 我使用标准的http连接从json格式的apache / php服务器获取数据。 我也发送一些参数到服务器来检索相关数据。 现在,我打算做的是: 发送参数 发送类似md5的东西(“someSecretPhrase”+ params)。 检查服务器端的秘密短语是否正确。 现在,问题是 – 逆向工程是否安全? 现在我可以想到没有其他可能性来获取这些数据。 但是,如果有人能够反编译我的apk,他也将能够检索到这个“someSecretPhrase”(在服务器端很难做),然后访问服务器,不是吗? 这是一个真正的威胁吗? 有任何其他的可能性来validation我的应用程序的服务器? 我看了论坛,例如。 确定是否从Android应用程序的HTTP请求? 然后做出适当的回应 ,但是他们没有解释反编译问题。

将salt与encryption的文件中断安全性一起存储吗?

我正在编写一个旨在使用AES 256encryption和解密文件的Android应用程序。我正在使用AES-CBC模式和PBKDF2从用户input的密码派生AES密钥。 另外,我正在为每个文件的encryption密钥生成一个安全的伪随机盐。 我使用encryption的文件存储IV和salt,所以我可以重新读取它们并稍后重新生成密钥,以便能够解密文件。 我的问题:存储盐与encryption文件中断安全性和盐本身的任何含义? 攻击者不知道salt和IV是否会对encryption文件进行离线蛮力攻击以找出encryption密钥?

Android应用程序不能在根设备上运行

我正在编写一个不能在根目录设备上运行的应用程序。 我想存储一些安全的数据,只能在非root用户的设备上存储,因为没有人可以访问/ data / data / package-name中的文件 。 有人知道吗: 1)是否有可能阻止在根设备上安装应用程序? 我读了一些关于Android Market的“版权保护机制”。 这个function似乎已经过时,取而代之的是许可function。 但是,许可只能用于付费应用程序,而我的是免费的… 2)是否有可能以编程方式检查设备是否已经生根? 如果可以这样做,我可以简单地停止应用程序,如果设备是根植的。 任何有关这个话题的帮助表示赞赏!

uid …没有android.permission.UPDATE_APP_OPS_STATS

从Android 4.3开始,我收到以下堆栈跟踪信息: [STACKTRACE] => java.lang.SecurityException: uid 10140 does not have android.permission.UPDATE_APP_OPS_STATS. at android.os.Parcel.readException(Parcel.java:1431) … 以下行引发exception: notificationManager.notify(0, notification.build()); 我尝试了新的Android 4.3的用户function,在这个用户下面展示了一个通知,没有任何问题。 有任何想法吗?