【问题标题】:TLS-handshake with own random numbers in Java在 Java 中使用自己的随机数进行 TLS 握手
【发布时间】:2013-03-08 07:23:02
【问题描述】:

我有一个硬件,它实现了一些加密功能,如随机数生成(例如智能卡)。 我想在我的 TLS hadshake 期间使用这个硬件。是否可以在不自己实现 TLS-Handshake 的情况下做到这一点?

我试图扩展“SecureRandom”类,但“下一个”方法是最终的,所以我不能覆盖它,以便它返回“我的”生成的数字。

所以基本上我想“外包”所有加密功能而不在 JAVA 中实现 TLS 握手。

谢谢

【问题讨论】:

  • 对 SecureRandom 真正重要的是种子,其余的都是可以预测的,因为算法是不可改变的,所以我想也许你可以使用你的 StarmtCard 生成随机种子并使用 SecureRandom(byte[] seed) 代替

标签: java ssl smartcard handshake


【解决方案1】:

改为扩展SecureRandomSpi。然后要么实现Provider,要么做一个便宜的SecureRandom

  public MySecureRandom() 
    throws NoSuchAlgorithmException, NoSuchProviderException {
      super(new MySecureRandom(),null);
  }

next 的实现依赖于给定的 SPI)

然后将您的SecureRandom 作为参数传递给SSLContext.init

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2018-05-06
    • 1970-01-01
    • 2012-06-11
    • 2016-03-21
    相关资源
    最近更新 更多