Articles of 安全

在Android上保护Twitter密钥

将twitter身份validation添加到我的Android应用程序,转到Twitter开发时 ,我惊讶地发现我必须像这样初始化Twitter的Fabric : import io.fabric.sdk.android.Fabric; import com.twitter.sdk.android.Twitter; import com.twitter.sdk.android.core.TwitterAuthConfig; … @Override public void onCreate() { super.onCreate(); TwitterAuthConfig authConfig = new TwitterAuthConfig(“consumerKey”, “consumerSecret”); Fabric.with(this, new Twitter(authConfig)); } 他们正式建议我将API Key和API Secret作为明文放在我的应用程序中。 即使在此官方示例中 ,密钥也存储在BuildConfig 。 我正在使用Proguard,但即便如此,我无法保证坚定的黑客无法利用我的API秘密 。 像Quora这样的既定应用程序是否也公开了这些密钥 有人可以发布一个例子来克服这个漏洞,或者说一下为什么Twitter会这样做吗? 相比之下, 谷歌和Facebook只要求我添加一个AppID ,我不得不哈希我的签名证书并将哈希链接到相应的应用程序。 这比以上更安全。

SSRS网页的Monodroid WebView身份validation

我尝试使用身份validation访问网站时尝试了两次,我不确定我的尝试有什么问题。 我会列出每一个。 有没有人试过这个并让它起作用? 这对Java Android程序员来说应该不难理解,也不应该让我使用monodroid EDIT (它很重要,因为我在下面有一个Java实现工作得很好) END EDIT 。 我试图通过WebView访问SSRS RDL,我需要插入一些通用凭据。 活动: public static string username = “…”; public static string password = “…”; public static string website = “http://10.0.0.5/Reports”; private WebView webView; private void setupWebView(int attempt) { webView.Settings.JavaScriptEnabled = true; webView.Settings.BlockNetworkLoads = false; switch (attempt) { case 1: { webView.SetHttpAuthUsernamePassword(website, “”, username, password); […]

如何防止Android的应用内购买项目被破解

我有免费下载Android应用程序,它附带应用程序内购买项目(非消耗品) 最近,我发现几个黑市都带有我的Android应用程序,所有应用内购买项目都可以自由访问。 我在想,这些cookies是怎么做到的? 这就是我在我身边所做的。 有程序来混淆我的Android代码。 从Google官方示例中获取以下应用内购买代码。 我的onCreate将触发updateIsPremium 。 代码如下 private void updateIsPremium() { if (mHelper != null) { return; } /* base64EncodedPublicKey should be YOUR APPLICATION’S PUBLIC KEY * (that you got from the Google Play developer console). This is not your * developer public key, it’s the *app-specific* public key. * * Instead of […]

我是否只能在某些Android版本中获得许可?

GCM在JellyBean及更高版本上不需要android.permission.GET_ACCOUNTS。 但是,我的应用程序适用于API级别11及更高级别,因此我需要在这些设备上声明它。 由于我不需要使用GCM以外的帐户,我是否只能在API级别16以下的Android版本上注册此权限? 我的应用程序非常注重安全性,因此避免此许可将是一个巨大的优势。

是否有可能为Android手机编写wifi crack util? 监控模式与多播?

考虑为android平台编写一个wifi破解( wep , wpa )审计工具,但我想知道是否有可能没有root电话。 由于手机wifi芯片忽略了没有发往手机的数据包,我原本以为无法在无根电话上运行。 也就是说,如果没有将wifi芯片设置为监控模式的能力,许多这些攻击都无法工作。 我很惊讶地发现android支持多播数据包 。 也就是说,Android手机可以设置为接收未发送给他们的数据包。 我的问题是: 拥有多播锁意味着我可以接收所有广播数据包,还是仅适用于具有多播标志的数据包(如果存在这样的话)? 监控模式和组播之间有区别吗? android api有没有切换频道的系统? 更一般地说,我很好奇: 是否有人熟悉在Android上运行的其他wifi破解项目(谷歌搜索出现的很少)? 我可能遇到什么困难? 这个问题与SO问题有关无论如何将Android WIFI(机器人手机)置于多种监控模式 ?

如何在Android中存储安全字符串?

在Android中使用KeyStore有什么可以理解的例子吗? 我无法理解如何保护ROOTED设备中的Android应用程序中的密码/令牌/ anything_else不被有物理访问设备的黑客使用。 我知道我可以用一些ALIAS生成KeyPair,并使用它的私钥作为数据库密码,但我感兴趣的是:任何黑客都能从我反编译的apk中读取这个ALIAS(因为我不能混淆别名字符串)和构建另一个使用相同的ALIAS从Android KeyStore获取privateKey的应用程序? 有解决方案?

Java RSA中String的键

我在我的应用程序中使用RSA加密。 要存储生成的公钥,我将其转换为String,然后将其保存在数据库中。 Key publicKey=null; Key privateKey=null; KeyPair keyPair=RsaCrypto.getKeyPairRSA(1024); publicKey=keyPair.getPublic(); privateKey=keyPair.getPrivate(); String publicK=Base64.encodeToString(publicKey.getEncoded(), Base64.DEFAULT); String privateK=Base64.encodeToString(privateKey.getEncoded(), Base64.DEFAULT); 我保存字符串publicK和privateK 。 我的问题是,当我想用​​RSA加密/解密文本并使用我保存的Key in String格式时,我不知道如何将其转换为Key 。 public static String encrypt(Key publicKey, String inputText){ byte[]encodedBytes=null; String encryptedText=””; try { Cipher cipher=Cipher.getInstance(“RSA”); cipher.init(Cipher.ENCRYPT_MODE, publicKey); encodedBytes=cipher.doFinal(inputText.getBytes()); } catch (Exception e) {Log.e(“Error”, “RSA encryption error”); } encryptedText=Base64.encodeToString(encodedBytes, Base64.DEFAULT); return encryptedText; } 你有什么主意吗? 非常感谢

如何防止其他iOS / Android应用程序使用我的RESTful API?

我有一个预先存在的iOS和Android应用程序,我正在进行更新,其中包括RESTful服务API和用于身份validation的Facebook登录。 该应用程序的一般流程是: 用户通过Facebook的SDK“登录”到我的应用程序,该SDK将访问令牌返回到我的应用程序。 App调用RESTful服务,包括Facebook访问令牌作为参数(使用HTTPS和SSL) 被呼叫的服务将收到的访问令牌(以及仅存储在我的服务器上的应用程序秘密)发送到Facebook以validation用户是谁,并根据该操作执行操作。 Facebook设置为从服务器端调用需要应用程序密钥。 我的应用已经普及并且已经有几个克隆,我想阻止这些克隆能够使用我的RESTful API(因为我确信他们会在我发布更新时尝试做)。 让我们假设克隆是聪明的,使用与我的应用程序相同的Facebook访问权限(如果可能的话),并且遵循类似的模式和频率调用我的应用程序所做的API。 无论如何要确保或几乎确保我的服务的呼叫只来自我的应用程序,而不是克隆? 提前致谢!

禁用android ics中的屏幕截图

对于我们的某个安全应用,需要在Android ICS中禁用该应用的屏幕截图function。 这是否可以在非root设备上使用? 谢谢, Rajath

Android密钥库types我应该选择哪一个?

我想将安全数据存储在密钥库中。 所以我用 KeyStore store = KeyStore.getInstance(“JCEKS”); 但Android似乎不知道“JCEKS”。 04-18 10:52:17.236: WARN/System.err(474): java.security.KeyStoreException: KeyStore JCEKS implementation not found 尝试JKS会产生同样的错误。 在android上使用它有什么算法?