ImportNew一周资讯:JDK 9, 10与11中的安全改进

2018-12-24    来源:importnew

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

ImportNew小编为您搜集有关Java业界、资源一周资讯(2018.12.24)。
(内容无特殊说明均为英文,这里仅做摘编,点击链接可直达原文。)

1. JDK 9, 10 与 11 中的安全改进:来自 javaadvent

解读:TLS 握手流程有以下9步:

  1. 客户端:发送”hello”(TLS版本、密码)
  2. 服务器:发送”hello”(服务器证书、TLS版本、密码)
  3. 客户端:验证服务器证书及加密参数
  4. 客户端:发送客户端证书
  5. 客户端:发送秘钥
  6. 服务器:验证客户端证书
  7. 客户端:结束
  8. 服务器:结束
  9. 客户端与服务器开始交换信息

JDK9 中的安全改进:JSSE(Java Secure Socket Extension) API

  • 支持 DTLS,在 UDP 上进行 TLS 加密
  • 加入 TLS ALPN 扩展,支持在 TLS 握手过程中加入应用协议
  • 对 TCP 进行 OCSP 加固,在 TLS 服务器上进行协议验证,节省带宽。此配置需要在客户端和服务器上同时启用
  • 默认使用 PKCS12 秘钥库:目前使用的 JKS 无法应用到 Java 以外的编程语言
  • 基于 DRBG 实现 SecureRandom
  • 利用 CPU 指令进行 GHASH 与 RSA 加密
  • 协议验证中禁用 SHA-1 协议
  • 实现 SHA-3 哈希算法

JDK10 中的安全改进:

  • JEP319 Root 证书:在 JDK 的 Cacert 秘钥库中加入 root 证书列表
  • 一些安全相关的 API 标记为移除

JDK 11 中的安全改进:

  • JEP32:TLS 1.3,在1.2版本基础上增加了许多改进
  • JDK 的 Cacert 秘钥库中增加了一些、移除了一些 root 证书

2. 用 Java 实现数据库批量更新:来自 javaadvent

解读:批量更新可以获得更好的执行效率。这篇文章介绍了如何通过 JDBC API、Spring JDBCTEMPLATE、JOOQ、Hibernate 实现批量更新。

3. 连接池你造吗:来自?javaadvent

解读:传统 Web 访问存在这样的问题,打开慢,忘记关闭连接会造成内存泄漏。使用数据库连接池是一种改进方法,比如 C3P0 (https://www.mchange.com/projects/c3p0/)、HikariCP (https://github.com/brettwooldridge/HikariCP)。那么问题来了,这些连接池解决方案好使吗?这篇文章对比了 C3P0 和 HikariCP 默认值使用情况,最后的结论是“别相信我,也不要相信默认值”。

4. Java8 默认方法介绍以及对 API 设计的影响:来自?javaadvent

解读:在引入默认方法之前,要为 interface 添加实现,必须通过 abstract 类再进行继承。这么做的问题,以 java.util 中的 List 为例,会造成不符合面向对象的设计,比如 static sort() 方法。Java8 引入的默认方法提供了新的解决方法,通过在 List 接口中加入 sort() 方法改进了 API 设计。

5. Eclipse Collection 编程练习的19种解答:来自?javaadvent

解读:Eclipse Collection(https://github.com/eclipse/eclipse-collections) Java 集合框架对 List、Set 和 Map 进行了优化,提供一套丰富的流式 API。这篇文章中,按照教程 http://eclipse.github.io/eclipse-collections-kata/pet-kata/#/ 给出了19种解答。

6. Java 安全 API 动画演示:来自?javaadvent

解读:Java 安全动画(Security Animated)项目是一个通过动画、代码段介绍 Java 安全的开源项目 https://github.com/martinfmi/java_security_animated。内容涵盖 JDK 安全沙箱模型、JDK 安全开发库、主流框架安全机制(例如 OSGi,、JavaEE、Spring)及安全开发库 (如 BouncyCastle)。

整个演示包含以下章节:

- sanbox model
- security APIs:
	- JAAS
	- JSSE (SSL/TLS/DTLS)
	- GSSAPI/Kerberos
	- JCA (JCE/Crypto)
	- SASL
	- PKI (CertPath)
	- JAR Verification
	- XML Signatures
- tools: 
	- keytool
	- jarsigner
	- policytool
	- kinit
	- klist
	- ktabs

说明:项目 pom.xml 不全,可以关注 issue 解决进展。

关于作者: 唐尤华

唐尤华

我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。(新浪微博:@唐尤华

查看唐尤华的更多文章 >>

标签: ssl 安全 代码 服务器 数据库

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:ImportNew一周资讯:开发者应该了解的 RabbitMQ 最佳实践

下一篇:每周10道Java面试题:String, String Pool, StringBuilder