Tag: 安全性

Axis 2 webservice SSL通信

我从这段代码得到了Soap Response SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance(); SOAPConnection connection = sfc.createConnection(); SOAPMessage soapMessageResponse = connection.call(soapRequest, new URL(serviceLocation)); 如何使其基于SSL? 我知道如何从SSLContext创建SSLSocketFactory给我指定的密钥库 。 如何告诉SOAPConnection类有关SSLSocketFactory或SSLContext ? 这样我的沟通就可以得到保障。 我不想在系统属性或xml文件中设置密钥库。 我正在使用Websphere 7。 编辑: Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:600) at com.ibm.ws.webservices.engine.soap.SOAPConnectionImpl.callJAXWSDispatch(SOAPConnectionImpl.java:416) … 49 more Caused by: javax.xml.soap.SOAPException: javax.xml.ws.WebServiceException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem at com.ibm.ws.webservices.engine.xmlsoap.saaj13only.SOAPConnectionJAXWS.call(SOAPConnectionJAXWS.java:72) … 54 […]

服务器端的BouncyCastle与Android手机作为客户端

我目前在让BouncyCastle工作时遇到一些困难。 现在正在搜索这几天,所以我希望你能提供任何有用的见解。 这是设置。 使用REST协议,Android客户端将POST消息发送到服务器。 我用表示这些消息的类创建了一个单独的项目,以便我可以将它作为库包含在客户端和服务器上。 消息对象首先被解析为JSON字符串,然后在服务器上进行解释。 为了数据完整性,消息包含数字签名(DSA)。 我之前就这个问题提出了一个关于公钥交换的问题。 我得到的答案很有帮助,因为这似乎正常。 但是,validation仍然失败。 Nikolay Elenkov在另一个post中的回答提到了一个可能的原因:“顺便说一句,如果你与一个提供商打交道可能会更容易,所以你可能也想在服务器上使用Bouncy Castle。” 这是我遇到麻烦的地方(因为这是一个不同的问题,我为此提出了一个新主题) 以下是来自消息类(来自公共库)的代码的摘录: import org.bouncycastle.jce.provider.BouncyCastleProvider; // …. private byte[] signature; // …. public void sign(DSAPrivateKey key) throws Exception { Security.addProvider(new BouncyCastleProvider()); Signature signer = Signature.getInstance(“SHA1withDSA”); signer.initSign(key); signer.update(this.toByteArray()); this.signature = signer.sign(); } public boolean verifySignature(DSAPublicKey key) throws Exception { Security.addProvider(new BouncyCastleProvider()); Signature signer = […]

x509certificate certpathvalidation

我们的用例要求在PKIX设置上通过OCSPvalidation证书撤销。 我的出发点是这个相关问题的代码: 客户证书上的OCSP撤销 我在应用程序级别手动执行它,因为tomcat不支持它。 但是,我在构建certPath时遇到了一些麻烦,我想我缺少一些基本的理解。 首先,我尝试为传入的客户端x509Certificate创建certPath。 KeyStore存储已正确初始化,仅包含与客户端x509Certificate匹配的根证书。 编辑:我添加中间证书后得到了相同的结果。 X509CertSelector certSelector = new X509CertSelector(); certSelector.setSubject(x509certificate.getSubjectX500Principal()); PKIXParameters params = new PKIXBuilderParameters(store,certSelector); CertPathBuilder cpb = CertPathBuilder.getInstance(CertPathBuilder.getDefaultType()); CertPath certPath = cpb.build(params).getCertPath(); 但是,我在运行时遇到错误: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 可能会遗漏什么?

Android版Firebase实时(在线)数据库的安全性如何?

我刚刚开始使用Google的firebase作为Android应用数据的在线集中式数据库(从使用本地sqlite迁移)。 作为firebase的新手,我想问一下android的firebase在线数据库有多安全? 从以下主题中读取,看起来任何可以访问google-services.json的人都可以插入和修改我的firebase数据库中的在线数据吗? 我应该将google-services.json(从Firebase)添加到我的存储库吗? google-services.json可以免受黑客攻击吗? 我担心任何能够访问反编译的apk配置文件(google-services.json)的人都可以在他们的android项目中使用它,比如说,创建一个类似包名的Android应用程序并推送恶意数据或从我的删除 firebase数据库。 如果有新的和聪明的解决办法使在线数据库更安全,你能提供建议吗? 到目前为止为了增加安全性,我试图: 将firebase的数据库规则编辑为: { “rules”: { “.read”: “auth != null”, “.write”: “auth != null” } } 将firebase电子邮件/密码validation添加到我的应用程序以控制登录。 但是,我发现即使没有身份validationfunction,新创建的应用程序仍然可以通过使用“hacked”google-services.json将数据推送和修改到在线firebase数据库中。 感谢您的意见和建议!

在AndroidKeyStore密钥生成期间出现IllegalArgumentException(Unparseable date)

我在使用AndroidKeyStore的 RSA密钥生成期间在我的应用程序中遇到了以下问题,而不是理解它可以在Android SDK的BasicAndroidKeyStore示例应用程序中轻松复制。 因此,如果您的Locale.getDefault() == Locale.US比此示例效果好,但如果您将语言环境更改为”ar_EG” ,则会因exception而崩溃: java.lang.IllegalArgumentException:无效日期字符串:无法解析日期:“af`cadaaedcaGMT + 00:00”(在偏移0处)com的com.android.org.bouncycastle.asn1.DERUTCTime。(DERUTCTime.java:98)。在android.security.AndroidKeyPairGenerator.generateKeyPair(AndroidKeyPairGenerator)的com.android.org.bouncycastle.x509.X509V3CertificateGenerator.setNotBefore(X509V3CertificateGenerator.java:112)上的android.org.bouncycastle.asn1.x509.Time。(Time.java:62) .java:127)at java.security.KeyPairGenerator $ KeyPairGeneratorImpl.generateKeyPair(KeyPairGenerator.java:276)at com.example.android.basicandroidkeystore.BasicAndroidKeyStoreFragment.createKeys(BasicAndroidKeyStoreFragment.java:237) 因此,问题在于转换为String的密钥有效时间是针对默认语言环境进行的。 这是来自ASN1UTCTime类的代码片段,它在KeyPairGenerator.generateKeyPair()的引擎下使用,方法调用: public ASN1UTCTime( String time) { this.time = Strings.toByteArray(time); try { this.getDate(); } catch (ParseException e) { throw new IllegalArgumentException(“invalid date string: ” + e.getMessage()); } } 在调用此方法之前,Date对象将传递给以下Time构造函数,该构造函数使用默认系统区域设置: public Time( Date time) { SimpleTimeZone tz = new SimpleTimeZone(0, “Z”); […]

java socket:在接受之前听?

上下文:由于DOS攻击,我在我的程序内存中的某个集合中有一张禁止ip地址的表。 我使用TCP服务器套接字,接受每个连接,然后检查IP地址,然后我关闭连接或继续处理客户端。 我想知道在Java中是否可以监听TCP服务器套接字上的连接,并接受或拒绝以某种方式建立tcp链接,给定请求客户端的IP地址。 我的意思是不必接受&关闭客户端套接字,这是我已经在做的事情。 谢谢。

是否可以使用applet获取正在运行的进程列表?

我想使用在浏览器中运行的java applet获取正在运行的进程列表。 我的理解是,只要applet签名,它就能获得这些信息。 这准确吗? 这是否可以使用未签名的applet? 最后,有没有我可以看看的FOS小程序? 谢谢。

如何创建安全的许可Java EE应用程序?

我们正在开发一个由客户选择的任何数据库支持的Java EE应用程序。 我们将根据用户许可证价格向客户销售。 我如何确保应用程序根据我们的条件使用,即不容易破解? 有没有可用的教程?

REALM术语在安全性方面的确切用途是什么?

术语REALM在安全性方面存在过载和混淆,这个术语在安全性方面的确切用途是什么?

客户端 – 服务器安全性和认证

无论编程语言如何 我有一个客户端服务器应用程序 移动客户端 – http服务器 该应用程序将在几个手机上提供,不仅仅是android。 我想确保请求仅来自客户端的移动设备。 我该如何解决这个安全问题? 我提议 : 在移动应用上有一个硬编码的密钥: 每个请求都使用此密钥加密,并在服务器端解密。 如果这种方式有意义,那么对密钥进行硬编码是否安全? (反编译器可以获得密钥?该应用程序不仅适用于Android!) 额外信息: 每个用户都有一个用户名/用户名…