Skip to main content

TOTP: Time-Based One-Time Password Algorithm
RFC 6238

Revision differences

Document history

Date Rev. By Action
2020-01-21
08 (System) Received changes through RFC Editor sync (added Verified Errata tag)
2018-12-20
08 (System)
Received changes through RFC Editor sync (changed abstract to 'This document describes an extension of the One-Time Password (OTP) algorithm, namely the HMAC-based One-Time Password …
Received changes through RFC Editor sync (changed abstract to 'This document describes an extension of the One-Time Password (OTP) algorithm, namely the HMAC-based One-Time Password (HOTP) algorithm, as defined in RFC 4226, to support the time-based moving factor. The HOTP algorithm specifies an event-based OTP algorithm, where the moving factor is an event counter. The present work bases the moving factor on a time value. A time-based variant of the OTP algorithm provides short-lived OTP values, which are desirable for enhanced security.

The proposed algorithm can be used across a wide range of network applications, from remote Virtual Private Network (VPN) access and Wi-Fi network logon to transaction-oriented Web applications. The authors believe that a common and shared algorithm will facilitate adoption of two-factor authentication on the Internet by enabling interoperability across commercial and open-source implementations. This document is not an Internet Standards Track specification; it is published for informational purposes.')
2017-05-16
08 (System) Changed document authors from "Johan Rydell, Mingliang Pei, Salah Machani" to "Johan Rydell, Mingliang Pei, Salah Machani, Mountain View"
2015-10-14
08 (System) Notify list changed from smachani@diversinet.com, mpei@verisign.com, johan.rydell@portwise.com, draft-mraihi-totp-timebased@ietf.org, Hannes.Tschofenig@gmx.net to Hannes.Tschofenig@gmx.net
2012-08-22
08 (System) post-migration administrative database adjustment to the No Objection position for Robert Sparks
2012-08-22
08 (System) post-migration administrative database adjustment to the No Objection position for Dan Romascanu
2011-05-17
08 Amy Vezza State changed to RFC Published from RFC Ed Queue.
2011-05-13
08 (System) RFC published
2011-03-08
08 Cindy Morgan State changed to RFC Ed Queue from Approved-announcement sent.
2011-03-07
08 (System) IANA Action state changed to No IC from In Progress
2011-03-07
08 (System) IANA Action state changed to In Progress
2011-03-07
08 Amy Vezza IESG state changed to Approved-announcement sent
2011-03-07
08 Amy Vezza IESG has approved the document
2011-03-07
08 Amy Vezza Closed "Approve" ballot
2011-03-07
08 Amy Vezza Approval announcement text regenerated
2011-03-07
08 Amy Vezza Ballot writeup text changed
2011-03-07
08 Dan Romascanu [Ballot Position Update] Position for Dan Romascanu has been changed to No Objection from Discuss
2011-02-26
08 Alexey Melnikov [Ballot Position Update] Position for Alexey Melnikov has been changed to No Objection from Discuss
2011-02-24
08 (System) Sub state has been changed to AD Follow up from New Id Needed
2011-02-24
08 (System) New version available: draft-mraihi-totp-timebased-08.txt
2011-02-23
08 Robert Sparks [Ballot Position Update] Position for Robert Sparks has been changed to No Objection from Discuss
2011-02-17
08 Cindy Morgan Removed from agenda for telechat
2011-02-17
08 Cindy Morgan State changed to IESG Evaluation::Revised ID Needed from IESG Evaluation.
2011-02-17
08 Ralph Droms [Ballot Position Update] New position, No Objection, has been recorded
2011-02-17
08 Cindy Morgan Ballot writeup text changed
2011-02-17
08 Jari Arkko
[Ballot comment]
Some comments from Ari Keränen who helped me with some of the
reviews today:

3.  Algorithm Requirements

  R1 - The prover (e.g. …
[Ballot comment]
Some comments from Ari Keränen who helped me with some of the
reviews today:

3.  Algorithm Requirements

  R1 - The prover (e.g. token, soft token) and verifier (authentication
  or validation server) MUST have access to the Unix Time

A reference to, or explicit definition of, Unix Time would be good already here. "MUST have access to" sounds a bit misleading since any time reference where one can derive the unix time should be OK. Also, should mention how well synchronized the clocks need to be (or at least refer to sec 6).

Perhaps could say something like "MUST know or be able to derive the current Unix Time (explanation-of-unix-time-here) with precision of (precision-requirements-here)".


  R8 - The TOTP algorithm SHOULD be used for online application.

What does this requirement exactly mean? {All, Only, ?} on-line apps should use TOTP?


5.2.  Validation and Time-step Size

  Secondly, the next different OTP must be generated in the next Time-
  step window.  A user must wait till the clock moves to the next Time-
  step window from the last submission.

s/must be generated/can only be generated/ ?

Should also mention/warn about the Year 2038 problem with 32-bit unix time stamps.


6.  Resynchronization

Why is this section after the security considerations? I would switch the order of sections 5 and 6.
2011-02-17
08 Jari Arkko [Ballot Position Update] New position, No Objection, has been recorded
2011-02-17
08 Gonzalo Camarillo [Ballot Position Update] New position, No Objection, has been recorded
2011-02-16
08 Ron Bonica [Ballot Position Update] New position, No Objection, has been recorded
2011-02-16
08 Russ Housley [Ballot Position Update] New position, No Objection, has been recorded
2011-02-16
08 Russ Housley
[Ballot comment]
Please consider the questions raised on the Gen-ART Review by
  Ben Campbell on 14-Feb-2011.  He asks about Section 5.2:

  Is there …
[Ballot comment]
Please consider the questions raised on the Gen-ART Review by
  Ben Campbell on 14-Feb-2011.  He asks about Section 5.2:

  Is there a requirement that the proover must not make a second
  attempt inside a given time window? If so, that was not clear
  from the text.  If there is not such a requirement, are there
  security implications if the proover does send multiple messages
  inside the same tick?  It is not really a one time pad if that
  happens is it?
2011-02-15
08 Peter Saint-Andre [Ballot comment]
I concur with with the discusses from Dan Romascanu, Robert Sparks, and Alexey Melnikov.
2011-02-15
08 Peter Saint-Andre [Ballot Position Update] New position, No Objection, has been recorded
2011-02-15
08 Robert Sparks
[Ballot comment]
Stronger rationalization for the default of 30s for X would be welcome. From the existing text, it seems to have been selected expecting …
[Ballot comment]
Stronger rationalization for the default of 30s for X would be welcome. From the existing text, it seems to have been selected expecting that the only use will be humans logging into websites. If that's accurate, it would help to explicitly state it in the document. If it's not accurate, more explanation is needed.
2011-02-15
08 Robert Sparks
[Ballot discuss]
1) This document contains a sizable "Code Component" in Appendix A, but does not appear to be following the TLP recommendations for stating …
[Ballot discuss]
1) This document contains a sizable "Code Component" in Appendix A, but does not appear to be following the TLP recommendations for stating copyright. Is that intentional?

2) What are the consequences of the generator and consumer of a TOTP having different system parameter values configured for X (say the recommended 30s at a generator, and 90s at a consumer)? X does not appear to be transmitted. Can this mismatch be detected? Similarly, what are the consequences of mismatched T0 values?
2011-02-15
08 Robert Sparks [Ballot Position Update] New position, Discuss, has been recorded
2011-02-14
08 Dan Romascanu
[Ballot discuss]
1. The IANA Considerations section states:

> The OTP algorithm defined in this document can be referred by a URI
  defined in …
[Ballot discuss]
1. The IANA Considerations section states:

> The OTP algorithm defined in this document can be referred by a URI
  defined in a separate document.  [ALGP] is such an attempt that
  defines various OTP related algorithm URIs.  There is no registration
  needed in this document.

However [ALGP] is according to Section 9.2 draft-hoyer-keyprov-pskc-algorithm-profiles-01.txt which I could not find in the tracker. Is there some kind of mistake, maybe a typo or a change of name of the document?

2. The Time-step size is RECOMMENDED and has a default value of 30 seconds. Are there cases when this value can be different, how is it changed if such cases exist and how can a network operator know what is the Time-step size value on a client?
2011-02-14
08 Dan Romascanu [Ballot Position Update] New position, Discuss, has been recorded
2011-02-12
08 Alexey Melnikov
[Ballot comment]
Abstract

  This document describes an extension of one-time password (OTP)
  algorithm, namely the HAMC-Based

typo: HMAC-Based

1.2.  Background

  The default …
[Ballot comment]
Abstract

  This document describes an extension of one-time password (OTP)
  algorithm, namely the HAMC-Based

typo: HMAC-Based

1.2.  Background

  The default HMAC-SHA-1 function could be replaced by HMAC-SHA-256 or
  HMAC-SHA-512 to leverage HMAC implementations based on SHA-256 or
  SHA-512 hash functions.

Missing references for SHA-256/512.

5.1.  General

  All the communications SHOULD take place over a secure channel e.g.
  SSL/TLS, IPsec connections.

Missing informative references for TLS and IPSec.
2011-02-12
08 Alexey Melnikov
[Ballot discuss]
I am generally in favor of getting this document published. However I would like to clarify a couple of things before recommending approval …
[Ballot discuss]
I am generally in favor of getting this document published. However I would like to clarify a couple of things before recommending approval of this document.

3.  Algorithm Requirements

  R8 - The TOTP algorithm SHOULD be used for online application.

Can you please explain this requirement?

6.  Resynchronization

  Also, it is important to note that the longer a prover has not sent
  an OTP to a validation system, the longer (potentially) the
  accumulated clock drift between the prover and the verifier.  In such
  cases, the default synchronization may not be proper when the drift
  exceeds beyond allowed threshold.  Additional authentication measures
  SHOULD be used for the validation system to safely authenticate the
  prover.

What are these measures? I.e. how can the SHOULD be satisfied.
2011-02-12
08 Alexey Melnikov [Ballot Position Update] New position, Discuss, has been recorded
2011-02-11
08 Sean Turner State changed to IESG Evaluation from Waiting for AD Go-Ahead.
2011-02-08
08 Sean Turner [Ballot Position Update] New position, Yes, has been recorded for Sean Turner
2011-02-08
08 Sean Turner Ballot has been issued
2011-02-08
08 Sean Turner Created "Approve" ballot
2011-02-08
08 (System) State changed to Waiting for AD Go-Ahead from In Last Call.
2011-02-03
08 Amanda Baber We understand that this document does not require any IANA actions.
2011-01-18
08 Samuel Weiler Request for Last Call review by SECDIR is assigned to Eric Rescorla
2011-01-18
08 Samuel Weiler Request for Last Call review by SECDIR is assigned to Eric Rescorla
2011-01-11
08 Sean Turner Placed on agenda for telechat - 2011-02-17
2011-01-11
08 Sean Turner Status Date has been changed to 2011-01-11 from None
2011-01-11
08 Amy Vezza Last call sent
2011-01-11
08 Amy Vezza
State changed to In Last Call from Last Call Requested.

The following Last Call Announcement was sent out:

From: The IESG
To: IETF-Announce
Reply-To: ietf@ietf.org …
State changed to In Last Call from Last Call Requested.

The following Last Call Announcement was sent out:

From: The IESG
To: IETF-Announce
Reply-To: ietf@ietf.org
Subject: Last Call:  (TOTP: Time-based One-time Password Algorithm) to Informational RFC


The IESG has received a request from an individual submitter to consider the following document:
- 'TOTP: Time-based One-time Password Algorithm'
  as an Informational RFC

The IESG plans to make a decision in the next few weeks, and solicits final comments on this action. Please send substantive comments to the ietf@ietf.org mailing lists by 2011-02-08. Exceptionally, comments may be sent to iesg@ietf.org instead. In either case, please retain the beginning of the Subject line to allow automated sorting.

The file can be obtained via
http://datatracker.ietf.org/doc/draft-mraihi-totp-timebased/

IESG discussion can be tracked via
http://datatracker.ietf.org/doc/draft-mraihi-totp-timebased/

Note that there are 3 IPR statements related to this draft that can be found at:
https://datatracker.ietf.org/ipr/1095/
https://datatracker.ietf.org/ipr/1100/
https://datatracker.ietf.org/ipr/1104/
2011-01-11
08 Sean Turner Last Call was requested
2011-01-11
08 (System) Ballot writeup text was added
2011-01-11
08 (System) Last call text was added
2011-01-11
08 (System) Ballot approval text was added
2011-01-11
08 Sean Turner State changed to Last Call Requested from Publication Requested.
2011-01-11
08 Sean Turner Last Call text changed
2011-01-11
08 Sean Turner Last Call text changed
2011-01-11
08 Sean Turner Ballot writeup text changed
2011-01-11
08 Cindy Morgan
(1.a) Who is the Document Shepherd for this document? Has the
Document Shepherd personally reviewed this version of the
document and, in particular, does he …
(1.a) Who is the Document Shepherd for this document? Has the
Document Shepherd personally reviewed this version of the
document and, in particular, does he or she believe this
version is ready for forwarding to the IESG for publication?

The document shepherd is Hannes Tschofenig (Hannes.Tschofenig@gmx.net).
I have personally reviewed the document and I believe it is ready for
publication.

(1.b) Has the document had adequate review both from key WG members
and from key non-WG members? Does the Document Shepherd have
any concerns about the depth or breadth of the reviews that
have been performed?

The document has not been developed within an IETF working group.
Instead, it was brought forward by KEYPROV WG participants who are also
active in the OATH community. In fact, the work started in OATH with the
goal to extend HOTP [RFC 4226] to support time based moving factor.

Several companies have already implementing this draft and would like to
get it published as an RFC.

Testimonials supporting this work from a small subset of OATH members
can be found at
http://www.tschofenig.priv.at/keyprov/TOTP_Industry_Support.doc

A complete list of OATH members can be found at
http://www.openauthentication.org/members.


Brief Timeline of this document:
- 00 (March 2008)
+ Original submission.
- 01 (January 2009)
+ Updated IETF template.
- 02 (May 2009)
+ Added hash algorithm agility, support for SHA256 & SHA512 to
be used for HMAC operation.
+ Updated sample code and test vectors.
- 03 (May 2009)
+ Added security consideration around key length.
- 04 (Dec 2009)
+ Updated source code and test vectors.
- 05 (Mar 2010)
+ Review comments by document shepherd addressed.

(1.c) Does the Document Shepherd have concerns that the document
needs more review from a particular or broader perspective,
e.g., security, operational complexity, someone familiar with
AAA, internationalization, or XML?

There are no concerns with this document. Additional reviews will be
provided by the members of the SECDIR review team.

(1.d) Does the Document Shepherd have any specific concerns or
issues with this document that the Responsible Area Director
and/or the IESG should be aware of? For example, perhaps he
or she is uncomfortable with certain parts of the document, or
has concerns whether there really is a need for it. In any
event, if the WG has discussed those issues and has indicated
that it still wishes to advance the document, detail those
concerns here. Has an IPR disclosure related to this document
been filed? If so, please include a reference to the
disclosure and summarize the WG discussion and conclusion on
this issue.

There are no concerns with this document. No IPR disclosures have been
filed.


(1.e) How solid is the WG consensus behind this document? Does it
represent the strong concurrence of a few individuals, with
others being silent, or does the WG as a whole understand and
agree with it?

This specification was developed by the OATH community and
implementations exist. This is not the product of an IETF working group.

(1.f) Has anyone threatened an appeal or otherwise indicated extreme
discontent? If so, please summarize the areas of conflict in
separate email messages to the Responsible Area Director. (It
should be in a separate email because this questionnaire is
entered into the ID Tracker.)

To my knowledge nobody has expressed discontent with this document.

(1.g) Has the Document Shepherd personally verified that the
document satisfies all ID nits? (See
http://www.ietf.org/ID-Checklist.html and
http://tools.ietf.org/tools/idnits/.) Boilerplate checks are
not enough; this check needs to be thorough. Has the document
met all formal review criteria it needs to, such as the MIB
Doctor, media type, and URI type reviews? If the document
does not already indicate its intended status at the top of
the first page, please indicate the intended status here.

The document does not contain nits.

(1.h) Has the document split its references into normative and
informative? Are there normative references to documents that
are not ready for advancement or are otherwise in an unclear
state? If such normative references exist, what is the
strategy for their completion? Are there normative references
that are downward references, as described in [RFC3967]? If
so, list these downward references to support the Area
Director in the Last Call procedure for them [RFC3967].


The document has been split into normative and informative references.
The intended status of this document is an Informational RFC.



(1.i) Has the Document Shepherd verified that the document's IANA
Considerations section exists and is consistent with the body
of the document? If the document specifies protocol
extensions, are reservations requested in appropriate IANA
registries? Are the IANA registries clearly identified? If
the document creates a new registry, does it define the
proposed initial contents of the registry and an allocation
procedure for future registrations? Does it suggest a
reasonable name for the new registry? See [RFC2434]. If the
document describes an Expert Review process, has the Document
Shepherd conferred with the Responsible Area Director so that
the IESG can appoint the needed Expert during IESG Evaluation?

This document does not require actions by IANA.

(1.j) Has the Document Shepherd verified that sections of the
document that are written in a formal language, such as XML
code, BNF rules, MIB definitions, etc., validate correctly in
an automated checker?

There is Java code in this document (along with test vectors). The PROTO
shepherd has verified the code. The test vectors produce the desired
output shown in the document.

(1.k) The IESG approval announcement includes a Document
Announcement Write-Up. Please provide such a Document
Announcement Write-Up. Recent examples can be found in the
"Action" announcements for approved documents. The approval
announcement contains the following sections:


Technical Summary

This document describes an extension of one-time password (OTP)
algorithm, namely the HAMC-Based One-Time Password (HOTP) Algorithm as
defined in RFC 4226, to support time-based moving factor. The HOTP
algorithm specifies an event based OTP algorithm where the moving factor
is an event counter. The present work bases the moving factor on a time
value. A time-based variant of the OTP algorithm provides short-lived
OTP values, which are desirable for enhanced security.

The authors believe that a common and shared algorithm will facilitate
adoption of two-factor authentication on the Internet by enabling
interoperability across commercial and open-source implementations.

Working Group Summary

This document was developed outside the IETF, namely in the OATH
community. A number of OATH members participated in the IETF KEYPROV
working group and brought this work forward to the IETF.

Document Quality

This document is an AD-sponsored submission and has enjoyed review
within the OATH community. Implementations of the specification exist.

Personnel

Hannes Tschofenig  is the document shepherd
for this document.

Sean Turner  is the sponsoring Area Director.
2011-01-11
08 Cindy Morgan [Note]: 'Hannes Tschofenig (Hannes.Tschofenig@gmx.net) is the document shepherd.' added
2011-01-11
08 Cindy Morgan
2011-01-04
07 (System) New version available: draft-mraihi-totp-timebased-07.txt
2010-12-21
08 Sean Turner Responsible AD has been changed to Sean Turner from Tim Polk
2010-12-21
08 Sean Turner Status Date has been changed to 2010-12-21 from None
2010-12-21
08 Sean Turner Intended Status has been changed to Informational from None
2010-09-20
08 Tim Polk Draft added in state Publication Requested by Tim Polk
2010-09-09
06 (System) New version available: draft-mraihi-totp-timebased-06.txt
2010-03-08
05 (System) New version available: draft-mraihi-totp-timebased-05.txt
2009-12-10
04 (System) New version available: draft-mraihi-totp-timebased-04.txt
2009-11-12
08 (System) Document has expired
2009-05-15
03 (System) New version available: draft-mraihi-totp-timebased-03.txt
2009-05-12
02 (System) New version available: draft-mraihi-totp-timebased-02.txt
2009-02-25
(System) Posted related IPR disclosure: VeriSign's Statement about IPR related to draft-mraihi-mutual-oath-hotp-variants, draft-mraihi-totp-timebased, draft-ietf-keyprov-dskpp, draft-ietf-keyprov-pskc, and RFC 4226
2009-02-18
(System) Posted related IPR disclosure: VeriSign's Statement about IPR related to draft-ietf-keyprov-pskc, draft-ietf-keyprov-dskpp, draft-mraihi-totp-timebased, draft-mraihi-mutual-oath-hotp-variants, and RFC 4226
2009-01-14
01 (System) New version available: draft-mraihi-totp-timebased-01.txt
2008-04-04
00 (System) New version available: draft-mraihi-totp-timebased-00.txt