Jump to content

TLS-SRP: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
FauxFaux (talk | contribs)
m Update gnutls link
 
(15 intermediate revisions by 14 users not shown)
Line 1: Line 1:
'''[[Transport layer security]] [[Secure Remote Password protocol|Secure Remote Password]] (TLS-SRP) ciphersuites''' are a set of [[cryptographic protocol]]s that provide [[security|secure]] communication based on [[password]]s, using an [[Secure Remote Password protocol|SRP]] [[PAKE|password-authenticated key exchange]].
'''[[Transport Layer Security]] [[Secure Remote Password protocol|Secure Remote Password]] (TLS-SRP) ciphersuites''' are a set of [[cryptographic protocol]]s that provide [[security|secure]] communication based on [[password]]s, using an [[Secure Remote Password protocol|SRP]] [[PAKE|password-authenticated key exchange]].


There are two classes of TLS-SRP ciphersuites: The first class of cipher suites uses only [[Secure Remote Password protocol|SRP]] authentication. The second class uses [[Secure Remote Password protocol|SRP]] authentication and [[public key certificate]]s together for added security.
There are two classes of TLS-SRP ciphersuites: The first class of cipher suites uses only [[Secure Remote Password protocol|SRP]] authentication. The second class uses [[Secure Remote Password protocol|SRP]] authentication and [[public key certificate]]s together for added security.


Usually, TLS uses only [[public key certificate]]s for authentication. TLS-SRP uses a value derived from a password (the [[Secure Remote Password protocol|SRP]] verifier) and a salt, shared in advance among the communicating parties, to establish a TLS connection. There are several reasons to use TLS-SRP:
Usually, TLS uses only [[public key certificate]]s for authentication. TLS-SRP uses a value derived from a password (the [[Secure Remote Password protocol|SRP]] verifier) and a salt, shared in advance among the communicating parties, to establish a TLS connection. There are several possible reasons one may choose to use TLS-SRP:


* Using password-based authentication does not require reliance on [[certificate authority|certificate authorities]].
* Using password-based authentication does not require reliance on [[certificate authority|certificate authorities]].
* The end user does not need to check the URL being certified. If the server does not know data derived from the password then the connection simply cannot be made. This prevents [[Phishing]].

* Password authentication is less prone than certificate authentication to certain types of configuration mistakes, such as expired certificates or mismatched common name fields.
* Password authentication is less prone than certificate authentication to certain types of configuration mistakes, such as expired certificates or mismatched common name fields.
* TLS-SRP provides mutual authentication (the client and server both authenticate each other), while [[Transport layer security|TLS]] with server certificates only authenticates the server to the client. [[Public key certificate#Client certificates|Client certificates]] can authenticate the client to the server, but it may be easier for a user to remember a password than to install a certificate.

* TLS-SRP provides mutual authentication (the client and server both authenticate each other), while [[Transport layer security|TLS]] with server certificates only authenticates the server to the client. [[Public key certificate#Client_certificates|Client certificates]] can authenticate the client to the server, but it may be easier for a user to remember a password than to install a certificate.


==Implementations==
==Implementations==


TLS-SRP is implemented in [[GnuTLS]],<ref>{{cite web
TLS-SRP is implemented in [[GnuTLS]],<ref>GnuTLS Manual, [http://www.gnutls.org/manual/html_node/Authentication-using-SRP.html Authentication using SRP]</ref> OpenSSL [http://article.gmane.org/gmane.comp.encryption.openssl.announce/103 as of release 1.0.1], [http://www.outoforder.cc/projects/apache/mod_gnutls/ Apache mod_gnutls], [[cURL]], [http://trevp.net/tlslite/ TLS Lite] and [http://www.eldos.com/sbb/ SecureBlackbox].
| url=https://www.gnutls.org/manual/html_node/Authentication-using-SRP.html
| title=Authentication using SRP
| work=GnuTLS Manual
| date=2016-11-13
| accessdate=2016-12-02}}</ref> OpenSSL as of release 1.0.1,<ref>{{cite web
| url=https://marc.info/?l=openssl-announce&m=133174050203217
| title=OpenSSL 1.0.1 released
| author=OpenSSL Project Team
| date=2012-03-14
| accessdate=2016-12-02}}</ref> Apache mod_gnutls<ref>{{cite web
| url=https://mod.gnutls.org/
| title=mod_gnutls
| date=2015-11-22
| accessdate=2016-12-02}}</ref> and [[mod_ssl]], [[cURL]], TLS Lite<ref>{{cite web
| url=http://trevp.net/tlslite/
| title=TLS Lite
| date=2013-03-20
| accessdate=2016-12-02}}</ref> SecureBlackbox<ref>{{cite web
| url=https://www.secureblackbox.com/kb/help/ref_cl_srpcredential.html
| title=SecureBlackbox: TElSRPCredential class
| date=2019-02-20
| accessdate=2019-02-20}}</ref> and [[wolfSSL]].<ref>{{cite web
| url=https://www.wolfssl.com/products/wolfssl/
| title=wolfSSL
| date=2021-02-15
| accessdate=2021-06-25}}</ref>


==Standards==
==Standards==
* [http://www.ietf.org/rfc/rfc2945.txt RFC 2945: “The SRP Authentication and Key Exchange System”.]
* [https://tools.ietf.org/html/rfc2945 RFC 2945: “The SRP Authentication and Key Exchange System”.]
* [http://tools.ietf.org/html/rfc5054 RFC 5054: “Using the Secure Remote Password (SRP) Protocol for TLS Authentication”.]
* [https://tools.ietf.org/html/rfc5054 RFC 5054: “Using the Secure Remote Password (SRP) Protocol for TLS Authentication”.]


== See also ==
== See also ==

{{Portal|Cryptography}}
* [[Transport Layer Security]]
* [[Transport Layer Security]]


Line 26: Line 51:
{{Reflist}}
{{Reflist}}


[[Category:Cryptographic protocols]]
[[Category:Transport Layer Security]]
[[Category:Internet standards]]
[[Category:Internet protocols]]
[[Category:Secure communication]]
[[Category:Session layer protocols]]

Latest revision as of 17:03, 25 June 2021

Transport Layer Security Secure Remote Password (TLS-SRP) ciphersuites are a set of cryptographic protocols that provide secure communication based on passwords, using an SRP password-authenticated key exchange.

There are two classes of TLS-SRP ciphersuites: The first class of cipher suites uses only SRP authentication. The second class uses SRP authentication and public key certificates together for added security.

Usually, TLS uses only public key certificates for authentication. TLS-SRP uses a value derived from a password (the SRP verifier) and a salt, shared in advance among the communicating parties, to establish a TLS connection. There are several possible reasons one may choose to use TLS-SRP:

  • Using password-based authentication does not require reliance on certificate authorities.
  • The end user does not need to check the URL being certified. If the server does not know data derived from the password then the connection simply cannot be made. This prevents Phishing.
  • Password authentication is less prone than certificate authentication to certain types of configuration mistakes, such as expired certificates or mismatched common name fields.
  • TLS-SRP provides mutual authentication (the client and server both authenticate each other), while TLS with server certificates only authenticates the server to the client. Client certificates can authenticate the client to the server, but it may be easier for a user to remember a password than to install a certificate.

Implementations

[edit]

TLS-SRP is implemented in GnuTLS,[1] OpenSSL as of release 1.0.1,[2] Apache mod_gnutls[3] and mod_ssl, cURL, TLS Lite[4] SecureBlackbox[5] and wolfSSL.[6]

Standards

[edit]

See also

[edit]

References

[edit]
  1. ^ "Authentication using SRP". GnuTLS Manual. 2016-11-13. Retrieved 2016-12-02.
  2. ^ OpenSSL Project Team (2012-03-14). "OpenSSL 1.0.1 released". Retrieved 2016-12-02.
  3. ^ "mod_gnutls". 2015-11-22. Retrieved 2016-12-02.
  4. ^ "TLS Lite". 2013-03-20. Retrieved 2016-12-02.
  5. ^ "SecureBlackbox: TElSRPCredential class". 2019-02-20. Retrieved 2019-02-20.
  6. ^ "wolfSSL". 2021-02-15. Retrieved 2021-06-25.