NetworkWorkingGroupJ.ZsakoRequestforComments:2726BankNetCategory:StandardsTrackDecember1999NetworkWorkingGroupJ.ZsakoRequestforComments:2726BankNetCategory:StandardsTrackDecember1999PGPAuthenticationforRIPEDatabaseUpdates
用于成熟数据库更新的PGP身份验证
StatusofthisMemo
本备忘录的状况
本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD1)。本备忘录的分发不受限制。
Abstract
摘要
ThisdocumentpresentstheproposalforastrongerauthenticationmethodoftheupdatesoftheRIPEdatabasebasedondigitalsignatures.Theproposaltriestobeasgeneralaspossibleasfarasdigitalsigningmethodsareconcerned,however,itconcentratesmainlyonPGP,asthefirstmethodtobeimplemented.TheproposalistheresultofthediscussionswithintheRIPEDBSECTaskForce.
本文件提出了一种基于数字签名的更强大的数据库更新认证方法的建议。就数字签名方法而言,该提案试图尽可能具有一般性,但是,它主要集中于PGP,这是第一种要实现的方法。该提案是成熟的DBSEC工作组内部讨论的结果。
Anincreasingneedhasbeenidentifiedforastrongerauthenticationofthedatabasemaintainerupondatabaseupdates(addition,modificationanddeletionofobjects).Theexistingauthenticationmethodshaveserioussecurityproblems:theMAIL-FROMhasthedrawbackthatamailheaderisveryeasytoforgewhereasCRYPT-PWisexposedtomessageinterception,sincethepasswordissentunencryptedintheupdatemailmessage.
现已查明,越来越需要在数据库更新(添加、修改和删除对象)时对数据库维护人员进行更强有力的身份验证。现有的身份验证方法存在严重的安全问题:MAIL-FROM的缺点是邮件头很容易伪造,而CRYPT-PW则容易被消息截获,因为密码在更新邮件消息中未加密发送。
Thegoalwastoimplementadigitalsignaturemechanismbasedonawidelyavailableanddeployedtechnology.ThefirstchoicewasPGP,othermethodsmayfollowatalaterdate.PGPispresentlyquitewidelyusedwithintheInternetcommunityandisavailablebothinandoutsidetheUS.
目标是基于广泛可用和部署的技术实现数字签名机制。第一种选择是PGP,其他方法可能会在以后采用。PGP目前在互联网社区中得到了广泛的应用,在美国国内外都可以使用。
Thecurrentaimisforanimprovedauthenticationmethodandnothingmore(inparticular,thispaperdoesnottrytocoverauthorizationissuesotherthanthoserelatedtoauthentication).
Inordertomakethedatabaseasmuchselfconsistentaspossible,thekeycertificatesarestoredintheRIPEdatabase.Forefficiencyreasonsalocalkeyringofpublickeyswillalsobemaintained,however,thelocalkeyringwillonlycontainacopyofthekeycertificatespresentinthedatabase.Thesynchronizationofthedatabasewiththelocalkeyringwillbemadeasoftenaspossible.Thedatabaseobjectswillbecreatedonlyviathecurrente-mailmechanism(auto-dbm@ripe.net),inparticularnopublickeycertificatewillberetrievedfromakeyserverbythedatabasesoftware.
为了使数据库尽可能具有自一致性,密钥证书存储在成熟的数据库中。出于效率原因,还将维护公钥的本地密钥环,但是,本地密钥环将仅包含数据库中存在的密钥证书的副本。数据库与本地密钥环的同步将尽可能频繁。数据库对象将仅通过当前电子邮件机制(自动)创建-dbm@ripe.net),尤其是数据库软件不会从密钥服务器检索公钥证书。
数据库中密钥证书的存在将允许数据库用户检查维护者的“身份”,也就是说,他们可以在数据库中查询数据库软件用于认证维护者的密钥证书。然后可以检查该密钥证书是否存在签名,并且可以将其与通过其他方式为同一用户(例如,从公钥服务器的所有者本人处)获得的密钥证书进行比较。尽管密钥证书可以存储在具有任意数量签名的成熟数据库中,但由于成熟数据库不直接与公钥服务器通信,因此最好使用尽可能少的签名(最好仅使用一个签名:本身的签名)添加密钥证书。另见第4节。更多细节。
Anewobjecttypeisdefinedbelowforthepurposeofstoringthekeycertificatesofthemaintainers:
下面定义了一种新的对象类型,用于存储维护人员的密钥证书:
key-cert:[mandatory][single][primary/look-upkey]method:[generated][single][]owner:[generated][multiple][]fingerpr:[generated][single][]certif:[mandatory][single][]remarks:[optional][multiple][]notify:[optional][multiple][inversekey]mnt-by:[mandatory][multiple][inversekey]changed:[mandatory][multiple][]source:[mandatory][single][]key-cert:[mandatory][single][primary/look-upkey]method:[generated][single][]owner:[generated][multiple][]fingerpr:[generated][single][]certif:[mandatory][single][]remarks:[optional][multiple][]notify:[optional][multiple][inversekey]mnt-by:[mandatory][multiple][inversekey]changed:[mandatory][multiple][]source:[mandatory][single][]Thesyntaxandthesemanticsofthedifferentattributesaredescribedbelow.
不同属性的语法和语义如下所述。
key-cert:IsoftheformPGPKEY-hhhhhhhh,wherehhhhhhhhstandsforforthehexrepresentationofthefourbytesIDofthePGPkey.ThekeycertificatedetailedinthecertifattributebelongstothePGPkeywiththeidhhhhhhhh.ThereasonforhavingPGPKEY-asaprefixistoallowforothertypesofkeycertificatesatalaterdate,andatthesametimetobeabletoclearlydifferentiateatquerytimebetweenapersonqueryandakeycertificatequery.Atthetimeofthecreation/modificationofthekey-certobject,thedatabasesoftwarecheckswhetherthekeycertificateinthecertifattributeindeedbelongstothePGPidspecifiedhere.Thecreation/modificationisauthorizedonlyuponthematchofthesetwoids.
方法:包含签名方法名称的行。这是数字签名方法的名称。当前证书属于使用指定方法对消息进行数字签名的密钥。方法属性由数据库软件在创建密钥证书对象时自动生成。将忽略提交创建时对象中存在的任何方法属性。该方法必须与keycert属性中的id前缀以及certif属性中包含的证书一致。如果后两者(即前缀和证书)不一致,则拒绝密钥证书对象创建。对于PGP方法,这将是字符串“PGP”(不带引号)。
owner:Linecontainingadescriptionoftheownerofthekey.ForaPGPkey,theownersaretheuseridsassociatedwiththekey.Foreachuseridpresentinthekeycertificate,anownerattributeisgeneratedautomaticallybythedatabasesoftwareuponcreationofthekey-certobject.Anyownerattributepresentintheobjectatthetimeofthesubmissionforcreationisignored.
所有者:包含密钥所有者描述的行。对于PGP密钥,所有者是与密钥关联的用户ID。对于密钥证书中存在的每个用户id,在创建密钥证书对象时,数据库软件会自动生成所有者属性。将忽略提交创建时对象中存在的任何所有者属性。
fingerpr:Agivennumberofhexencodedbytes,separatedforbetterreadabilitybyspaces.Itrepresentsthefingerprintofthekeyassociatedwiththepresentcertificate.Thisisalsoafieldgenerateduponcreationoftheobjectinstance.Anyfingerprattributesubmittedtotherobotisignored.Thereasonforhavingthisattribute(andtheownerattribute)istoallowforaneasycheckofthekeycertificateuponaqueryofthedatabase.Thequeriergetstheownerandfingerprintinformationwithouthavingtoaddthecertificatetohis/herownpublickeyring.Also,sincethesetwoattributesare_generated_bythedatabasesoftwarefromthecertificate,onecantrustthem(asmuchasonecantrustthedatabaseitself).
fingerpr:给定数量的十六进制编码字节,用空格分隔以提高可读性。它表示与当前证书关联的密钥的指纹。这也是在创建对象实例时生成的字段。将忽略提交给机器人的任何fingerpr属性。拥有此属性(以及所有者属性)的原因是允许在查询数据库时轻松检查密钥证书。查询者获得所有者和指纹信息,而无需将证书添加到他/她自己的公钥环中。此外,由于这两个属性是由数据库软件从证书生成的,因此可以信任它们(就像信任数据库本身一样)。
certif:包含ASCII密钥证书行的行。certif属性行包含密钥证书。对于PGP,它们还包含分隔线(开始/结束PGP公钥块)。显然,行的顺序至关重要,因此certif属性行在查询时的显示顺序与创建时提交的顺序相同。数据库客户机应用程序可以包含一个脚本,该脚本从前导的“certif:”字符串和以下空格中删除certif属性行(作为查询结果返回),并将其余部分导入本地keyring。
mnt-by:Theusualsyntaxtheusualsemanticsthisattributeis_mandatory_forthisobject.Therefore,theexistenceofamntnerobjectisaprerequisiteforthecreationofakey-certobject.Themntnerreferencedinthemnt-byattributemaynothavetheauthattributesettoNONE.
mntby:通常的语法通常的语义此属性对于此对象是_强制性的。因此,mntner对象的存在是创建密钥证书对象的先决条件。mntby属性中引用的mntner的auth属性不能设置为NONE。
remarks:,notify:,changed:,source:theusualsyntaxandsemantics.
InthecaseofPGP,whenakey-certobjectiscreated,theassociatedkeyisalsoaddedtoalocalkeyringofpublickeys.Whenakey-certobjectisdeleted,thecorrespondingpublickeyisdeletedfromthelocalkeyringaswell.Wheneverakey-certobjectismodified,thekeyisdeletedfromthelocalkeyringandthekeyassociatedwiththenewcertificateisaddedtothekeyring(obviouslythisisperformedonlywhenthedatabaseupdateisauthorized,inparticularifthenewkeycertificatedoesbelongtotheidspecifiedintheattributekey-cert,seeabove).
Theonlychangeisthatthereisanewpossiblevaluefortheauthattribute.ThisvalueisoftheformPGPKEY-
唯一的变化是auth属性有一个新的可能值。此值的格式为PGPKEY-
ThesemanticsofthisnewvalueisthatthePGPkeyassociatedwiththekeycertificatestoredinthekey-certobjectidentifiedbyPGPKEY-idisusedtocheckthesignatureofanycreation/modification/deletionmessagesenttoauto-dbm@ripe.netaffectinganobjectmaintainedbythismntner.
与其他值一样,auth属性可以是多个。拥有两个具有不同方法的auth属性(例如PGPKEY-
IfthereareseveralauthmethodswithaPGPKEY-
如果存在多个具有PGPKEY-
Thewholemessagehastobesigned.Thismeans,thatthedatabasesoftwarefirstcheckswhetherthemessageisaPGPsignedmessage.Ifitis,itchecksforavalidsignatureandassociatesthissignaturewiththeobjectssubmittedinthemessage.AmessagemaycontainonlyonePGPsignature.
Ifanobjectpresentinamessagehasamnt-byattribute,andtherespectivemntnerhasauthattribute(s)withPGPKEY-
如果消息中存在的对象具有mntby属性,并且相应的mntner具有带有PGPKEY-
Thisapproachallowsforasimplificationofthemessageparsingprocess.Adifferentapproachwouldbenecessaryifonewouldsignthe_objects_,ratherthentheupdatemessages.Incasetheobjectswouldbesigned,theparserwouldhavetoidentifywhichobjectsweresigned,checkthesignature(s)oneachobjectindividuallyandpermit/refusetheupdateatanobjectlevel,dependingon(amongstothers)whetherthesignatureisvalidandwhetheritbelongsto(oneof)themaintainer(s).Thisapproachwouldallowformixinginthesamee-mailmessageobjectssignedbydifferentmaintainers(whichwouldprobablynotbetypical),anditwouldalsoallowforstoringthesignatureinthedatabase(inordertoallowfortheverificationofthesignatureatquerytime).Thislatter(i.e.storingthesignaturesinthedatabase)isbeyondthescopeofthefirstphaseoftheimplementation.Itmaybecomeagoalatalaterdate.
这种方法允许简化消息解析过程。如果要对_objectsu进行签名,而不是对更新消息进行签名,则需要采用不同的方法。如果要对对象进行签名,解析器必须识别哪些对象被签名,分别检查每个对象上的签名,并允许/拒绝对象级别的更新,这取决于(除其他外)签名是否有效以及它是否属于(其中一个)维护者。这种方法允许混合使用由不同维护人员签名的相同电子邮件对象(这可能不是典型的),还允许将签名存储在数据库中(以便在查询时验证签名)。后者(即将签名存储在数据库中)超出了实施第一阶段的范围。这可能在以后成为一个目标。
Itisrecommendedtocheckthatthemailerprogramdoesnotmakeanytransformationsonthetextofthee-mailmessage(andpossiblyconfigureitnottodoany).Suchcommontransformationsareline-wrappingafteragivennumberofcharacters,transformingoftabsinspaces,etc.AlsocheckthatyouonlyuseASCIIcharactersinthemessage.
建议检查邮件程序是否未对电子邮件文本进行任何转换(并可能将其配置为不进行任何转换)。这种常见的转换是在给定数量的字符后换行、在空格中转换制表符等。还要检查消息中是否只使用ASCII字符。
ThereisnolimitationimposedwithrespecttotheversionofthePGPsoftwarethatis/wasusedforthecreationofthekey.Keyofbothversion2.xand5.0aresupported,althoughthekeysgeneratedwithversion5.0arerecommended.
对于用于创建密钥的PGP软件版本没有任何限制。支持2.x版和5.0版的密钥,但建议使用5.0版生成的密钥。
Thekeycertificatessubmittedforcreatingakey-certobjectmustcontainasignatureofthekeyitself.Althoughthecertificatemaycontainothersignaturesaswell,itisrecommendedtocreatethekey-certobjectwithasfewsignaturesaspossibleinthecertificate.Anyoneconcernedaboutthetrustfulnessofthekeyshouldretrieveacopyofthekeycertificatefromapublickeyserver(orbyanyotherappropriatemeansandcheckthesignaturespresentin_that_certificate.Ifsuchacheckisperformedoneshouldtakecaretocheckboththekeyfingerprintandthekeytypeandlengthinordertomakesurethetwocertificates(theoneretrievedfromtheRIPEdatabaseandtheoneretrievedfromthepublickeyserverorcollectedbyothermeans)belongtothesamekey.
为创建密钥证书对象而提交的密钥证书必须包含密钥本身的签名。尽管证书也可能包含其他签名,但建议在证书中创建签名尽可能少的密钥证书对象。任何关心密钥可信度的人都应该从公钥服务器检索密钥证书的副本(或通过任何其他适当方式,并检查该证书中的签名。如果进行此类检查,应注意检查密钥指纹以及密钥类型和长度,以确保两个证书(从成熟数据库检索的密钥和从公钥服务器检索或通过其他方式收集的密钥)属于同一密钥。
Althoughitishighlyunlikely,itmayhappenthatakey-certwiththeididenticaltotheidofthekeyofamaintaineralreadyexistsintheRIPEdatabase.Incasethislatterkeyhadbeenusedforawhileandithadbeenregisteredatpublickeyserversforsometime,thegivenpersonshouldcontacttheRIPENCCandreportthistoripe-dbm@ripe.net.Anyway,he/shemayhavetocreateanewkeyandregister_its_certificateintotheRIPEdatabase.Suchaprocedure,althoughhighlyunlikelytohappen,shouldnotcreateseriousproblemstotherespectivemaintainer.
5.ShortoverviewofthetaskstobeperformedinordertousePGPauthentication
5.简要概述使用PGP身份验证要执行的任务
YoumusthaveamntnerobjectintheRIPEdatabasewithauth:otherthanNONE.Themntnerobjecthastobecreatedinthetraditionalway.
在成熟的数据库中,必须有一个auth为的mntner对象,而不是NONE。mntner对象必须以传统方式创建。
Youmustgetacertificateofyourownkeyandprepareakey-certobjectfromit.Theobjecthastoreferenceinmnt-bythemntnermentionedabove.
您必须获得自己密钥的证书,并从中准备密钥证书对象。对象必须由上述mntner在mnt中引用。
Createthekey-certobjectintheRIPEdatabase,bysendingtheobjectpreparedabovetoauto-dbm@ripe.net.Obviouslyyoumustpasstheauthenticationchecksrequiredbythemntnerobject(i.e.mailfromapredefinedaddressorsendthecorrectpassword).
通过将上面准备的对象发送到auto,在成熟数据库中创建密钥证书对象-dbm@ripe.net.显然,您必须通过mntner对象所需的身份验证检查(即从预定义地址发送邮件或发送正确的密码)。
Changethemntnerobjecttohavetheauth:attributevalueofPGPKEY-
将mntner对象更改为具有PGPKEY-
Checkallobjectsmaintainedbythegivenmntner(preferablywiththecommandThisistheonlywaytobenefitfromthestrongerauthenticationmethodinordertoassignmoretrustfulnesstothedatabase.Rememberthatyouaretheonlypersonwhocancheckforandcorrectpossibleinconsistencies.
检查由给定mntner维护的所有对象(最好使用命令),这是从更强大的身份验证方法中获益的唯一方法,以便为数据库分配更多的信任度。请记住,您是唯一可以检查和纠正可能不一致的人。
Fromnowonalwayssignthe(whole)updatemessagesthatrefertoobjectsmaintainedbyyou,withthekeyyousubmittedtotheRIPEdatabase.
从现在起,始终使用提交到数据库的密钥对引用您维护的对象的(整个)更新消息进行签名。
ThepresentproposalistheresultofthediscussionswithintheRIPEDBSECTaskForce,whichwassetupatRIPE27inDublinattheinitiativeofJoachimSchmitzandWilfriedWoeber.Thelistofparticipantswhohavecontributedtothediscussionsatdifferentocasions(TFmeetingsandviae-mail)is(inalphabeticalorder):CengizAllaettinoglu,JoaoLuisSilvaDamas,HavardEidnes,ChrisFletcher,DanielKarrenberg,DavidKessens,JakeKhuon,CraigLabovitz,CarlMalamud,DaveMeyer,MaldwynMorris,SandyMurphy,MikeNorris,CarolOrange,JoachimSchmitz,TomSpindler,DonStikvoort,CurtisVillamizar,GeraldWinters,WilfriedWoeber,JanosZsako.
本提案是成熟的DBSEC工作组内部讨论的结果,该工作组在约阿希姆·施密茨(JoachimSchmitz)和威尔弗里德·沃伯(WilfriedWoeber)的倡议下于27日在都柏林成立。在不同地点(TF会议和通过电子邮件)参与讨论的参与者名单(按字母顺序排列):森吉兹·阿莱蒂诺格鲁、若昂·路易斯·席尔瓦·达马斯、哈瓦德·艾恩斯、克里斯·弗莱彻、丹尼尔·卡伦伯格、大卫·凯森斯、杰克·库恩、克雷格·拉博维茨、卡尔·马拉默德、戴夫·迈耶、马尔德温·莫里斯、桑迪·墨菲、迈克·诺里斯、,卡罗尔·奥兰治、约阿希姆·施密茨、汤姆·斯平德勒、唐·斯蒂克沃特、柯蒂斯·维拉米扎、杰拉尔德·温特斯、威尔弗里德·沃伯、雅诺斯·扎科。
[1]Meyer,D.,Villamizar,C.,Alaettinoglu,C.和S.Murphy,“路由策略系统安全”,RFC27251999年12月。
JanosZsakoBankNet1121BudapestKonkoly-Thegeut29-33.Hungary
雅诺斯·扎科银行网1121布达佩斯孔科利泰格大学,邮编29-33。匈牙利
Phone:+3613959028Fax:+3613959032EMail:zsako@banknet.netPhone:+3613959028Fax:+3613959032EMail:zsako@banknet.net11.Notices11.通知PGPisacommercialsoftware.
PGP是一种商业软件。
TheIETFinvitesanyinterestedpartytobringtoitsattentionanycopyrights,patentsorpatentapplications,orotherproprietaryrightswhichmaycovertechnologythatmayberequiredtopracticethisstandard.PleaseaddresstheinformationtotheIETFExecutiveDirector.
Thisdocumentandtranslationsofitmaybecopiedandfurnishedtoothers,andderivativeworksthatcommentonorotherwiseexplainitorassistinitsimplementationmaybeprepared,copied,publishedanddistributed,inwholeorinpart,withoutrestrictionofanykind,providedthattheabovecopyrightnoticeandthisparagraphareincludedonallsuchcopiesandderivativeworks.However,thisdocumentitselfmaynotbemodifiedinanyway,suchasbyremovingthecopyrightnoticeorreferencestotheInternetSocietyorotherInternetorganizations,exceptasneededforthepurposeofdevelopingInternetstandardsinwhichcasetheproceduresforcopyrightsdefinedintheInternetStandardsprocessmustbefollowed,orasrequiredtotranslateitintolanguagesotherthanEnglish.
ThelimitedpermissionsgrantedaboveareperpetualandwillnotberevokedbytheInternetSocietyoritssuccessorsorassigns.
上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。
本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。
Acknowledgement
确认
FundingfortheRFCEditorfunctioniscurrentlyprovidedbytheInternetSociety.