dns - Is domain name of the server checked during SSL handshake -
during ssl handshake, domain name of server checked during ssl handshake, mean domain name in server certificated checked against domain in server running ?
example: suppose server certificate has domain mydomain.com . , if server running in domain someotherdomain.com ... cheked during ssl handshake , aborted mydomain.com not someotherdomain.com ?
it depends...
the ssl/tls standard doesn't specify how , when server certificate verified.
from introduction:
[...] decisions on how initiate tls handshaking , how interpret authentication certificates exchanged left judgment of designers , implementors of protocols run on top of tls.
this being said, while doesn't specify how authentication has take place, implementations meant perform check during handshake (or @ least, after):
- see appendix d.
- some error messages related certificate authentication failure (
bad_certificate
,certificate_expired
, ...). - some of text in handhsake overview: "[...] if server authenticated, may request certificate client, if appropriate cipher suite selected."
in cases, certificate verification guided rfc 3280/rfc 5280. number of ssl/tls stacks @ least default.
the host name verification, considered 1 of certificate authentication step, has historically been implemented separately. because rfc 3280/rfc 5280 didn't address step , left each application protocol. there relatively recent harmonisation attempt in rfc 6125 (you can find differences in protocols in appendix b).
whether host name checking done during ssl/tls handshake depends on library you're using, , how you've configured it.
for example, before java 7, had done separately main jsse api (sslsocket
/sslengine
). (this done in httpsurlconnection
, example, sits on top of jsse, not within.) since java 7, it's possible perform check during handshake , within jsse using x509extendedtrustmanager
, has configured using sslparameters.setendpointidentificationalgorithm(...)
, only supports https
, ldaps
(this being said, if service doesn't use http, using https
endpoint identification algorithm wouldn't bad choice, better nothing).
other ssl/tls libraries or wrapping other libraries in other languages tend @ least have callbacks this. whether they're used (and used correctly) developers depends, shown in this paper. (you might interested in this question on security.se.)
Comments
Post a Comment