- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要建立从我的 iPhone 应用程序到客户服务器的 HTTPS 双向 SSL 连接。但是我没有看到任何安全的方式来将客户端证书传递给应用程序(这是一个电子银行应用程序,所以安全性确实是一个问题)。到目前为止,根据我的发现,应用程序能够访问证书的唯一方法是将其与应用程序本身预先捆绑在一起,或者公开一个可以从中获取证书的 URL ( IPhone app with SSL client certs )。
问题在于,这两种方式都无法阻止某些第三方获得证书,如果将其视为一种风险,则无需双向 SSL(因为任何人都可以拥有客户端证书)。
整个安全协议(protocol)应该是这样的:
- HTTPS 2-way SSL 验证应用程序
- 基于 OTP( token )的用户注册(在此步骤生成的客户端 key 对)
- SOAP/WSS XML-Signature(由之前生成的 key 签名的请求)
关于如何建立第一层安全 (HTTPS) 的任何想法?
最佳答案
好吧,那么回答我自己的问题...
原来安全没有固定的衡量尺度。只要制动系统的价格明显高于这样做的奖励,就可以满足安全要求。
在我的情况下,我们谈论的是电子银行系统,但每月限额较低(几千美元)。正如我在我的问题中提到的那样,在 HTTPS 之上还有另一层安全性,它将具有 WSS XML 签名。注册用户和接受他的公钥的过程也分几个步骤完成。在第一步中,用户发送他的电话号码以及从我的客户那里以某种方式检索到的鳕鱼。然后将带有确认码的短信发送给用户。用户将确认码输入 OTP 计算器,该计算器将生成 OTP 代码以识别用户。然后将公钥与 OTP 代码一起发送到服务器。从这里开始,每个请求都将由之前发送到服务器的公钥的私钥副本签名。
所以整个过程的最大弱点是有人对应用程序进行反向工程并检索用于 SLL 的客户端证书。由此产生的唯一问题是有人可能会观察用户的交易。然而,为了让某人进行交易,他需要用户的私钥,该私钥已生成、加密并存储在钥匙串(keychain)中。破坏此安全级别的代价非常高。
我们还将考虑如何在更高级别上保护用户的数据(例如使用 WSS 加密),但一开始我觉得我们对当前的解决方案很好。
有什么意见吗?
问候
关于ios - 苹果手机 : is there any secure way to establish 2-way SSL from an application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2775138/
我将从 ColdFusion 8 迁移到 ColdFusion 10。 目前,在我的Unix根目录下,我只有1个Application.cfm,在这个根目录下我有大约10个子目录(以前的程序员就是这样
这个问题在这里已经有了答案: Is it possible to write a program in Java without main() using JDK 1.7 or higher? [d
我是编写 Windows 服务应用程序的新手,并且遇到了问题。 我用 Delphi 编写了一个普通的 Windows 应用程序来检查和调试代码的主要部分,现在必须将其转换为 NT 服务。 我的代码必须
我在 Visual Studio 2013 中运行它。 对于 Application.Current.Shutdown 我得到: “Application”是“System.Windows.Appli
给定以下 C++ 代码“mini.cpp”: #include "iostream" using namespace std; int main() { cout << "Hello Worl
什么是“服务器应用程序”?我被要求写一篇关于“服务器应用程序”中的错误的文章,但我不熟悉确切的术语。它们只是网络应用程序,还是其他东西? 最佳答案 “服务器应用程序”是一种应用程序,它等待来自其他应用
JavaFX 应用程序类必须扩展 javafx.application.Application package automationFramework import java.util.concurr
I have implemented deeplinking in my application that open my app (if available) but my app opens
我被困在一个非常基本的问题上。我使用 JavaFX 创建了一个简单的 hello world 程序,它在 JDK 1.8 上运行良好。但是当我切换到 JDK-11 时,它会抛出以下异常: Error:
我可以让Application Insights显示正在运行的每小时使用情况日志,但是有没有一种方法可以每小时显示一次平均使用情况,以查看必须在一天中的哪个时段使用网站? 最佳答案 在您的资源的概览
有谁知道为什么在.NET应用程序中实现Application Insights时不会收集用户代理信息,却能够在浏览器中收集统计信息? 我很希望能够针对特定的用户代理字符串过滤出请求,但是看起来我无法看
我有多个应用程序使用 Application Insights for Production Data。我正在尝试使用 City 遥测字段来映射我们当前的用户。这些数据的跟踪似乎非常不一致,并且在大多
有没有办法在 ASP.NET Web 应用程序中禁用 Application Insights?假设我想关闭生产中运行的应用程序中的所有数据收集。 最佳答案 如果 ikey 在 Application
如何在 Azure Application Insights 中将时差转换为毫秒 let startTime = todatetime('2017-05-15T17:02:23.7148691Z');
我正在修改一个用 Coldfusion 编码的现有 Web 应用程序。在现有代码中,大部分文件夹包含一个 Application.cfm 文件,该文件设置应用程序变量 但是,我对这些应用程序的部分修改
我在 Application Insights Analytics 中有一些数据,它有一个动态对象作为自定义维度的属性。例如: | timestamp | name
首先,我需要的是-n WebBrowser-s,每个都在自己的窗口中执行自己的工作。用户应该能够看到所有这些内容,或者仅看到其中一个(或不显示任何内容),并且能够对每一个执行命令。有一个主要形式,没有
我已收到以下代码以添加到封闭代码(受密码保护)中,以便可以发现错误。 On Error Resume Next: Err.Clear Application.SetOption "Error Trap
我正在使用 Delphi 7。我试图在非 VCL 单元中添加一个调用“application.processmessages”的过程。我收到错误“未声明的标识符:应用程序”。 如何从非 vcl 单元引
考虑一个非外汇现有应用程序,我们将其称为Business。 Business 公开一个 Model 对象,该对象又公开一些属性。 Model 还接受这些属性的监听器。 我的问题是关于向此类应用程序添加
我是一名优秀的程序员,十分优秀!