Tag: 安全

应用程序包保护 – 签名包*可能会被修改

也许你们都知道.app包很容易通过诸如iExplorer这样的工具阅读(对于那些认为只有iTunes文件共享允许访问iPhone上的数据的人来说)。 也许你还读过iOS编程指南,标题为“安装特定于应用程序的数据文件作为首次发布”。 相关段落: “…因为iOs应用程序是代码签名的,所以修改软件包中的文件会使应用程序的签名失效,并阻止您的应用程序在未来启动。” 这是明显的错误,至less在某种程度上。 我试图修改从AppStore购买的几个免费的第三方应用程序中的几个文件,并成功修改了几个文件的内容。 Voala,应用程序启动没有任何问题。 事情是,我用上面提到的iExplorer,没有黑客攻击,破解,破解。 只需一个支持开发的设备,并发布,审查应用程序。 我该怎么办?

访问安全的Web服务器上的文件

我正在尝试构build一个iPad应用程序,以便从Web服务器下载并显示文档(pdf,ppt,doc等)。 目前它是通过parsing服务器上的HTML结构(使用hpple )来完成的。 例如,文件保存在: Http://myserver.com/myFolders/myFiles/ 应用程序到这个位置,并遍历树,使用X-Path查询,例如 "/html/body/ul/li/a" 然后将find的任何文件下载到iPad上进行显示。 到目前为止,这工作得很好,但服务器是公开可访问的。 我的问题是,我将如何去做一个类似的安全服务器? 例如是否可以使用密码保护服务器,使用iPad的用户名/密码连接到服务器,并使用相同的系统?

任何人都可以findIdentifierForVendor(IDFV)的应用程序,如果有物理访问设备?

我正在编写一个应用程序,出于安全原因需要绑定电话给用户,我们正在使用IDFV作为设备令牌。 设备和服务器之间的所有数据都是经过encryption的,因此通过networking发送IDFV并不是一个问题。 而且我知道IDFV将在重置手机时发生变化,并重新安装所有应用程序并恢复对我们有益的备份。 (在这种情况下,我们有其他机制来识别用户) 但是这里存在一个简单的安全问题,苹果如何坚持IdentifierForVendor(IDFV)和在哪里? 如果他/她有你的设备,黑客能够find价值吗? 例如,如果黑客监狱 – 打破被盗设备?

从iOS应用程序到服务器的SSL通信

一般来说,我对SSL和安全连接还是比较陌生的。 iOS应用程序需要通过安全通信渠道与服务器通话的主要步骤是什么? 我知道SSL证书可能是必要的。 我打算从可信authentication机构购买一台。 不过,我不知道如果应用程序和服务器都需要证书,或者它只是服务器。 另外我不确定如何处理SSL错误。 也许有一个库可以帮助像ASIHTTPRequest或类似的。

如何从Swift 3获得MS翻译器访问令牌?

我正在尝试使用Swift 3的MS Translator API(目前在操场上玩,但目标平台是iOS)。 但是,当我试图获取OAuth2的访问令牌时,我陷入了困境。 我有以下代码(我试图移植来自示例的代码获取访问令牌 ): let clientId = "id".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! let clientSecret = "secret".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! let scope = "http://api.microsofttranslator.com".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! let translatorAccessURI = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13" let requestDetails = "grant_type=client_credentials&client_id=\(clientId)&client_secret=\(clientSecret)&scope=\(scope)" let postData = requestDetails.data(using: .ascii)! let postLength = postData.count var request = URLRequest(url: URL(string: translatorAccessURI)!) request.httpMethod = "POST" request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") request.setValue("\(postLength)", forHTTPHeaderField: "Content-Length") request.httpBody […]

安全问题通过https从iOS应用程序发送用户名和密码到服务器

根据苹果的build议,我已经设置了应用购买收据validation,将收据发送到我的服务器,服务器又把它发送到苹果的服务器进行validation。 我所有的收据处理都是在服务器端处理的,并且工作正常。 我的服务器发回一个非常模糊的代码到我的应用程序,以确认购买是否有效。 我在应用程序方面使用了一种非常强大的模糊处理方法来掩饰返回代码的内容,使越狱黑客破解它变得越来越困难。 问题是我有我的PHP文件存储在我的networking服务器上的密码保护的文件夹,并担心如何可以被认为是安全的应用程序本身有用户名和密码的embedded在该目录中发送收据到php文件开始。 我的应用程序只使用服务器进行应用程序购买收据validation。 所有其他function都在应用程序本身,所以我不强迫每个用户有一个唯一的用户名和密码的帐户。 我正在使用URLSession通过TLS 1.2 https连接与服务器进行通信,以便部分是安全的,但我想不出一种方法来确保黑客从设备上的应用程序中提取用户名和密码,并直接访问我的服务器文件夹。 有这种能力的人可以很容易地修改php文件,总是返回一个代码,表明有效的购买。 我在应用程序中混淆了用户名和密码,以至于大多数人可能会放弃尝试弄清楚这一点,但是我知道我只是使得提取更加困难,而不是靠近不可能的地方。 对此有何想法? 几乎所有我在网上find的关于这个问题都是关于不通过http传输用户名和密码,而不是越狱的设备更大的问题。

UIPasteboard安全

我需要将信息存储在打开应用程序时总是需要阅读的应用程序中。 但我不希望用户复制/转储/或编辑它。 所以问题是:“UIPasteboard能解决这个问题吗? 这是安全吗? 如果不是,还有什么是适合使用的。 非常感谢你。 编辑:有没有其他解决scheme可以解决“删除并重新安装应用程序?

如何从服务器validation客户端的身份?

我正在使用Rails作为我的iOS应用程序的服务器。 目前,从应用程序,它从服务器启动一个网页的URL请求获取数据。 我的问题是,我如何保证只有我的应用程序可以访问服务器,不能从我的服务器的客户端/应用程序/浏览器中获取任何东西?

在Objective-C中使用NSLog打印SecKeyRef参考

我使用下面的代码从证书中检索公钥。 – (SecKeyRef) extractPublicKeyFromCertificate: (SecIdentityRef) identity { // Get the certificate from the identity. SecCertificateRef myReturnedCertificate = NULL; OSStatus status = SecIdentityCopyCertificate (identity, &myReturnedCertificate); if (status) { NSLog(@"SecIdentityCopyCertificate failed.\n"); return NULL; } SecKeyRef publickey; SecCertificateCopyPublicKey(myReturnedCertificate, &publickey); NSLog(@"%@", publickey); return publickey; } 我正在试图打印“publickey”variables来查看内容。 我得到运行时错误。 我想知道如何打印“publickey”variables的内容?

从iOS导出SecKey到watchOS

我试图在我的iOS应用程序和它的watchOS等价物之间同步私人不对称密钥。 我已经尝试使用SecKeyCopyExternalRepresentation将其导出为CFData ,然后使用WatchConnectivity将其发送到手表。 但是,当它到达手表我无法将数据转换回SecKey 。 我尝试使用SecKeyCreateWithData尝试重新创build它,但它似乎只适用于对称密钥,因为当我尝试它,它使手表应用程序崩溃。 有任何想法吗? iOS代码: func sendSharedKeyPair(keyPair: (publicKey: SecKey, privateKey: SecKey)) { var error: Unmanaged<CFError>? let publicKeyData = SecKeyCopyExternalRepresentation(keyPair.publicKey, &error) if let error = error { return print("Error sending shared key: \(error)") } let privateKeyData = SecKeyCopyExternalRepresentation(keyPair.privateKey, &error) if let error = error { return print("Error sending shared key: \(error)") } if […]