RFC 1805
Location-Independent Data/Software Integrity Protocol
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
- ietf: rfc1805 1995-06
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms