0

テキストのみの通信チャネル(base64を使用することを考えました)を介してtlsをトンネリングしようとしていますが、SSLSocketを使用しないtlsサーバーの例が見つからないようです。

tlsクライアントの場合、入力ストリームと出力ストリームを使用するだけなので、トランスポートに依存しない弾力のある城TlsProtocolHandlerを見つけることができましたが、サーバーのtls実装に類似したものは見つかりませんでした。

4

1 に答える 1

2
  • 使用SSLSocket

    SocketTCPに基づかない独自の実装を確実に行うことができます。たとえば、Unixソケットの実装があります。あなたがあなた自身の輸送のためにそれを持ったら、あなた自身の上にSSLSocketFactory.createSocket(Socket, ...)確立することができます。SSLSocketSocket

  • 使用SSLEngine(もう少し複雑):

    SSLEngine.wrap(およびunwrap sに取り組みByteBufferます。これらのバッファは、独自の通信チャネルから取得できます。

発生する可能性のある問題の1つは、証明書の概念をカスタムトランスポートにマッピングすることです。証明書(またはより一般的にはサーバーのIDを証明する)は、MITM攻撃を防ぐために、SSL/TLSチャネルのセキュリティに不可欠です。ID検証では、証明書が信頼できるものであるかどうかを確認することと、証明書のIDが到達しようとしたエンティティに対応していること(ホスト名の検証)の両方を確認する必要があります。ホスト名の検証はデフォルトでは有効になっていませんが、ホスト名がない場合は、とにかく似たようなものを見つける必要があります(たとえば、UNIXソケットでは問題になる可能性がありますが、この場合にSSLを使用すると、とにかくセンス)。

于 2013-02-06T00:20:10.370 に答える