Question about DTLS implementation

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Question about DTLS implementation

Seung-bum Jin

Hi All,

We are trying to use the BouncyCastle 1.63 java source to implement DTLS protcol on our JSSE provider.

While review the source code, we found code stuffs handling HandshakeType.new_session_ticket, but it's not mentioned in RFC-6347 4.3.2. (Handshake Protocol), 4.2.4. (Figure 2).

We have question about that is the implementation correct? 

And the DTLSServerProtocol does not sends hello_verify_request. In the point of design approach, it seemed to be right way to handle the request in clinet and server protocol class, not in DTLSVerifier class, regrdless of synchronous or aynchronous processing.

And the code in the DTLSClient.java may works when no hello_verify_request received. We have also question about is that right.

Regards,


Seung-Bum Jin.

 

Driector, Research & Development Dept.

Peoplecar,

Replublic Of Korea.


Reply | Threaded
Open this post in threaded view
|

Re: Question about DTLS implementation

Peter Dettman-3
Hi Seung-bum,

On 8/11/19 6:56 pm, Seung-bum Jin wrote:

> Hi All,
>
> We are trying to use the BouncyCastle 1.63 java source to implement DTLS
> protcol on our JSSE provider.
>
> While review the source code, we found code stuffs
> handling HandshakeType.new_session_ticket, but it's not mentioned in
> RFC-6347 4.3.2. (Handshake Protocol), 4.2.4. (Figure 2).
>
> We have question about that is the implementation correct?

Session tickets are defined in RFC 5077; they're an optional feature of
(D)TLS. We don't fully support them, but do support the handshake
message if the extension is negotiated.


> And the DTLSServerProtocol does not sends hello_verify_request. In the
> point of design approach, it seemed to be right way to handle the
> request in clinet and server protocol class, not in DTLSVerifier class,
> regrdless of synchronous or aynchronous processing.

The idea is that DTLSVerifier can be used by a stateless server without
having to bind to a particular client. Only once a verified ClientHello
is received does the server proceed to DTLSServerProtocol (which implies
a stateful connection to the client).

>
> And the code in the DTLSClient.java may works when
> no hello_verify_request received. We have also question about is that right.

Yes, HelloVerifyRequest (+ ClientHello resend) is an optional step in
the DTLS handshake. The server may choose to send a ServerHello immediately.

Regards,
Pete Dettman