新人最近看OSS java SDK源码,发现SDK中在构造SSLcontext的时候,并没有对服务端证书做校验,TrustStrategy的isTrusted方法总是返回true;
类名:com.aliyun.oss.common.comm.DefaultServiceClient
方法:
protected HttpClientConnectionManager create HttpClientConnectionManager() {
SSLContext sslContext = null;
try {
sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
return true;
}
}).build();
} catch (Exception e) {
throw new ClientException(e.getMessage());
}
SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
.register(Protocol.HTTP.toString(), PlainConnectionSocketFactory.getSocketFactory())
.register(Protocol.HTTPS.toString(), sslSocketFactory)
.build();
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
connectionManager.setDefaultMaxPerRoute(config.getMaxConnections());
connectionManager.setMaxTotal(config.getMaxConnections());
connectionManager.setValidateAfterInactivity(config.getValidateAfterInactivity());
connectionManager.setDefaultSocketConfig(SocketConfig.custom().
setSoTimeout(config.getSocketTimeout()).setTcpNoDelay(true).build());
if (config.isUseReaper()) {
IdleConnectionReaper.setIdleConnectionTime(config.getIdleConnectionTime());
IdleConnectionReaper.registerConnectionManager(connectionManager);
}
return connectionManager;
}
以上是不是说明OSS JAVA SDK 并没没有服务端证书做校验,对伪装服务端的这一类攻击有什么处理办法吗,或者OSSclient是否有别的设置可以实现对服务端的校验
-------------------------
-------------------------
-------------------------
-------------------------
服务端通常是ECS有HTTPS,OSS可以通过其他多种授权方式保证,比如几分钟之内链接有效
-------------------------
目前阿里云的ECS有HTTPS通信,OSS做为存储服务暂时没有提供HTTPS协议方面的通信
-------------------------
目前应该都是HTTP的,只有ECS有HTTPS,HTTPS才有证书。
-------------------------
我以前确实都是用HTTP访问OSS的,HTTPS配置后,通常HTTP也可以访问,具体详细技术细节,建议提交工单问一下;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。