RFC 1805

Location-Independent Data/Software Integrity Protocol

๐Ÿ“… published June 1995, from ietf

RFC 1805: Location-Independent Data/Software Integrity Protocol โœจ

Okay bestie, here's the deets ๐Ÿ’… This is RFC 1805, written for the Network Working Group by A. Rubin at Bellcore. It's dated June 1995 and sits in the Informational category ๐Ÿงš The header doesn't list anything it obsoletes or updates.


Status of this Memo

Okay so this memo is just giving info to the Internet community ๐ŸŽ€ It is NOT a standard of any kind, so nobody is required to follow it like a rule. Distribution is totally unlimited, so share it with everyone ๐ŸŒˆ

Abstract

This doc explains how to add integrity assurance to files that get passed around the Internet ๐Ÿ“ฆ It's meant for software, data, documents, and literally any other file that someone could sneakily tamper with ๐Ÿ˜ญ The whole point is to give you assurances about both integrity and time, and you need a trusted third party to make it work ๐Ÿ‘‘

Introduction

Okay so here's the tea ๐Ÿซ– Checking whether a file is legit has a big problem: the program doing the checking can get attacked too! Your software might say "all good, bestie!" while both the file and the verifier have quietly changed, and you'd never know ๐Ÿ’€

That's why a protocol that doesn't need any special software, and is built entirely on widely used standards, is so iconic ๐Ÿฆ‹ Users can build their own tools or grab trusted copies of software and check integrity on their own. So this protocol is made of ASCII messages that can be sent by e-mail or any other way you like ๐Ÿ’Œ

There's already a working version called Betsi [1] that does exactly this ๐ŸŒธ Betsi has been around since August, 1994, and it's live on the Internet right now. You can get it by sending an e-mail to certify@bellcore.com with the subject 'help', or check out the web version at http://info.bellcore.com/BETSI/betsi.html.

The goal is for authors to send their files to users across the internet with guarantees of time and integrity, with a trusted third party helping out ๐Ÿงš The whole thing is split into phases:

        I.   Author registration
        II.  Author verification
        III. File Certification
        IV.  File Distribution
        V.   File Integrity Verification

Phases I, III, IV, and V are fully defined here ๐Ÿ’– Phase II is intentionally left undefined, because the way you verify an author can change depending on the app. The hope is that future Internet Drafts will cover the different options for phase II ๐Ÿ”ฎ This memo describes how Betsi handles author verification, and it also makes a few recommendations โœจ

Requirements

It's super important that the integrity and time info stay independent from where the file lives ๐Ÿ“ Lowry [2] came up with a syntax and protocols for location-independent objects, but his system needs end-users to install special software, and it's still a prototype ๐Ÿฅบ The protocol in this memo is already implemented and widely used across the Internet ๐Ÿ”ฅ It's simple, compact, and easy to understand, and that matters because a super complex system is hard to trust when you can't even figure out how it works ๐Ÿคทโ€โ™€๏ธ

Assumptions

There are three entities in this protocol: Authors (A), Users (U), and a Trusted third party (T) ๐Ÿ‘‘ The protocol doesn't care which algorithm you use, and every message is in ASCII ๐ŸŽ€ It's assumed that for each signature scheme in use, there's a well-known verification key tied to T ๐Ÿ”‘

You can use basically any signature scheme, as long as it has a standard ASCII representation of a digital signature ๐Ÿ’… PGP [3] fits all of that, but it also needs encryption, so export restrictions might scare some people off ๐Ÿ™ˆ The DSS [4] is recommended, but some folks suspect it has a trapdoor [5] based on results from Simmons [6] ๐Ÿ’€ It's also unclear whether there's a standard for making an ASCII signature with the DSS, which is kind of a lot ๐Ÿ˜ญ

High level view

Here's how it goes ๐Ÿฆ‹ In phase one, authors ask to register with the trusted third party, T. Once you're registered, you can distribute files with integrity and time assurance. Time assurance means there's a guarantee that a file existed at a given time โฐ In phase two, T figures out the identity of the author who wants to register somehow. Registration isn't complete until that verification happens โœจ

To distribute a file, a registered author computes a cryptographic hash of the file and sends it to T over an integrity protected channel ๐Ÿ” T then makes an object with the hash, the current time, the author's name, the file's name, and some other info. T seals the object and sends it back to the author ๐Ÿ’Œ Now the author has a sealed object that works as a location-independent proof of the file's integrity and timeliness ๐Ÿซถ

Any user who gets the file and the sealed object can compute the hash of the file, check the seal on the object, and confirm that the object hasn't changed ๐Ÿ•ต๏ธโ€โ™€๏ธ

T also has to keep a widely available, dated, and signed certificate revocation list (CRL) ๐Ÿ“œ Users who access a file with a certificate must check that the CRL is current and complete, and that their certificate isn't listed on it ๐Ÿ˜ค

Author registration

Phase one is where authors ask to register with T ๐Ÿ’– The author sends T an ASCII message made of keywords followed by values. Some fields are optional and get marked with a *. The values go inside angle brackets < > ๐ŸŽ€

     AUTHOR-NAME= <first m. last>
   * AUTHOR-ORGANIZATION= <Company, school, etc.>
   * AUTHOR-EMAIL= <e-mail address>
     AUTHOR-LOCATION= <city, state>
   * AUTHOR-PHONE-1= <Home phone>
   * AUTHOR-PHONE-2= <Work phone>
     SIGNATURE-SYSTEM= <name of signature system>
   * MISC-FIELD-n= <Any number of additional fields can be defined here>
   * AUTHOR-PUBLIC-KEY=
   * <public key of author>

Every field keeps its keyword and value on the same line, except for the public key ๐Ÿ”‘ For that one, you paste an ASCII version of the key on the line right after the AUTHOR-PUBLIC-KEY keyword. The format of that ASCII key depends on which signature system you're using ๐ŸŒธ The public key field is optional. You can include your own, or T can hand you one during phase II โœจ

T replies to say the request came through and that you should wait for off-line verification ๐Ÿ“ฌ Here's a safety tip: if you get that confirmation and you never asked to register, someone might be trying to register on your behalf ๐Ÿšจ That's a big red flag, babe ๐Ÿšฉ

If you get a confirmation for a registration you never asked for, don't ignore it. Somebody may be trying to register as you.

Author verification

Okay so this is where T checks out the identity of the author who sent the phase I request ๐Ÿ•ต๏ธโ€โ™€๏ธ T also confirms the rest of the info in the request. All of this happens off-line ๐Ÿ“ž The method is intentionally left open, but whatever technique gets picked must be identified in phases III and V ๐Ÿ’…

In the Betsi version, T uses the phone company infrastructure ๐Ÿ“ž T calls directory assistance (1-xxx-555-1212) in the author's city and asks for the author's number. Then T calls that number and asks the author to verify the info from the request ๐Ÿ’– T especially makes sure the author registered the correct public key. In some cases, T assigns a public key to the author instead ๐Ÿ”‘

Betsi only works in the United States, so other mechanisms need to be in place to verify people internationally ๐ŸŒ Hopefully standards for that will show up soon ๐Ÿ™ The rest of the protocol doesn't depend on whichever off-line identity and public key verification method gets used ๐Ÿฆ‹

References ๐Ÿ“š

Okay bestie, here are the receipts ๐Ÿงพโœจ Every source the memo leans on, in order:

  • [1] Rubin, A., "Trusted Distribution of Software over the Internet", Internet Society Symposium on Network and Distributed System Security," pp. 47-53, 1995.
  • [2] Lowrey, J., "Location-Independent Information Object Security", Internet Society Symposium on Network and Distributed System Security," pp. 54-62, 1995.
  • [3] Zimmerman, P., "PGP User's Guide", 1992.
  • [4] National Institute for Standards and Technology, Digital Signature Standard (DSS), Federal Register 56(169), 1991.
  • [5] Schneier, B., "Applied Cryptography", ISBN 0-471-59756-2.
  • [6] Simmons, G., "The Subliminal Channels of the U.S. Digital Signature Algorithm (DSA)", Proceedings of the 3rd Symposium on: State and Progress of research in Cryptography, pp. 35-54, 1993.

Security Considerations ๐Ÿ”

Okay, this section is short but it's giving SERIOUS ๐Ÿšจ Security issues are discussed throughout this memo. So the whole doc is one big security conversation, and you'll want to read all of it ๐Ÿซถ


Author's Address ๐Ÿ’Œ

And here's who to slide into the DMs about this one ๐Ÿฆ‹ Contact details, exactly as written:

Aviel D. Rubin
Bellcore
Morristown, NJ 07960
USA

Phone: +1 201 829 5922
Fax: +1 201 829 2645
EMail: rubin@bellcore.com

That's the whole spec, periodt ๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from