论文课题:Inside Encrypting File System(加密文件系统) .doc_第1页
论文课题:Inside Encrypting File System(加密文件系统) .doc_第2页
论文课题:Inside Encrypting File System(加密文件系统) .doc_第3页
论文课题:Inside Encrypting File System(加密文件系统) .doc_第4页
论文课题:Inside Encrypting File System(加密文件系统) .doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专业论文翻译 论文课题:insideencryptingfilesystem指 导 教 师: 班 级: 姓 名: insideencryptingfilesystemthenextstepefsrpcencryptfilesrvperformsistocreatealogfileintowhichlsasrvwillrecordtheprogressoftheencryptionprocess.efsrpcencryptfilesrvcreatesthelogfileonthesamedriveasthefilethatefswillencrypt,andplacesthelogfileundertheroot directoryssubdirectorysystemvolumeinformation.thelogfileusuallyhasthenameefs0.log,butifother filesareundergoingencryption,efsrpcencryptfilesrvreplacesthenumber0 withincreasingnumbersuntillsasrvcancreateauniquelogfileforthecurrentencryption.win2kscryptographyapisrelyoninformationthatausersregistryprofilestores,so efsrpcencryptfilesrvnextusestheloaduserprofileapiofuserenv.dll(userenvironmentdll)toloadtheprofileintotheregistryoftheuserefsrpcencryptfilesrvisimpersonating.usuallytheuserprofileisalreadyloaded,becausewinlogon.exeloadsausersprofilewhenauserinteractivelylogson.however,ifyouusethemicrosoftwindowsntserver4.0resourcekitsuutilityorthewin2krunascommandtologontoadifferentaccount,whenyoutrytoaccessencryptedfilesfromthataccount,theaccountsprofilemightnotload.efsrpcencryptfilesrvsnextstepistocallanotherlsasrvfunction,encryptfilesrv,tocarryouttherestoftheencryptionprocessforthefile.encryptfilesrvbeginsbyqueryingntfsaboutwhichdatastreamsexistwithinthefile,notingtheresultforlateruse.ntfssupportsalternatenameddatastreamsinadditiontothedefaultunnamedstreaminwhichnttypicallystoresdata.win2kmakesheavyuseofalternatestreamstosupportcompounddocumentstorage(i.e.,nativestructuredstorage),asdoesservicesformacintoshwhichusesalternatestreamstoimplementmacintoshresourceforks.efsmustencryptallofafilesdatastreamsnotjustthestreamthatmostapplicationssee.encryptfilesrvcallstheinternalfunctiongeneratefektogenerateafekforthefile.generatefekusesthecryptoapifunctioncryptacquirecontexttoinitiateacryptographicsession.cryptacquirecontexttakesseveralparameters,includingthenameofthesessionscryptographicproviderandthecryptographyservicethatthecaller(inthiscase,generatefek)isinterestedin.generatefekspecifiesmicrosoftbasecryptographicprovider1.0asthesessionscryptographicprovider.generatefekalsosignalsthatitwantstousetheprovidersrsaencryptionfacilities.basecryptographicproviderisabuilt-inproviderthatispresentonallwin2ksystems.however,thearchitectureofthecryptoapiletssoftwarevendorsimplementproprietaryprovidersanddynamicallyaddthemtowin2k.thus,generatefekmustspecifyasessionscryptographicprovider.rsaisapublic-key-basedencryptionalgorithmthahasbecomeadefactoworldwidestandard.thefilersabase.dllimplementsrsaforbasecryptographicprovider1.0.afterthecryptacquirecontextfunctionreturnswithahandletotheprovider,generatefekcallscryptgenrandomtohavetheprovidergenerate16bytes(128bits)ofrandomdatatoserveasthefilesfek.generatefekthencallscryptclosesessiontoclosethecryptographicprovidersession,andreturnscontroltoencryptfilesrv.constructingkeyrings.atthispoint,encryptfilesrvhasafekandcanconstructefsinformationto storewiththefile,includinganencryptedversionofthefek.figure2illustratestheefsinformationslayout.encryptfilesrvcallsanotherfunction,constructefs,toconstructtheefsinformation.beforeitcandoso,constructefsmustusethecryptoapitogetahandletotheuserspublickeyandprivatekeypair.togetthishandle,constructefscallsanotherfunction,getcurrentkey,whichreadstheregistryvaluehkey_current_usersoftwaremicrosoftwindowsntcurrentversionefscurrentkeyscertificatehash.everypublickey/privatekeypairhasadigitalcertificatethattheissuingcertificateauthoritysigns,andthatusersusetoobtaintheirpublickeys.thedigitalsignature,orhash,uniquelyidentifiesthepublickey/privatekeypair.byreadingthecertificatehashvalue,constructefsobtainsthecurrent userspublickeysignatureandusesittoaccessthepublickeyandencryptfeks.whenthecertificatehashvaluedoesntexist,whichisthecasethefirsttimeauserencryptsafile,efsmustdeterminewhethertheuserhasanefspublickey/privatekeypair,orwhetheritmustcreatethekeypair.first,efsopensthemysystemcertificatestoragearea,inwhichtheosstoresefskeypairs.(severalcertificatestorageareascanexistonasystem,eachcontainingvariouscertificates.)efsusesthecryptoapifunctioncertfindcertiragearea.ifcertfindcertificateinstoredoesntfindanefskey-paircertificate,constructefscallsgenerateuserkeytocreateone.generateuserkeycallscryptuiwizcertrequesttocreatethekeypairandreturnasignedcertificateforthepair.thekey-pairgenerationoccursonadomaincontroller(forasystemthatispartofadomain)orthelocalcomputer(foracomputerthatisnotpartofadomain).whenefslocatesorcreatestheuserskey-paircertificate,efsobtainsthecertificateshashandstoresitintheregistrykeyhkey_current_usersoftwaremicrosoftwindowsntcurrentversionefscurrentkeyscertificatehash.inwin2kbeta3,theproviderthatcreatespublickey/privatekeypairsisbasecryptographicprovider1.0.whenithastheuserskey-pairhash,efsusesthecertgetcertificatecontextpropertycryptoapitoobtaininformationabouttheproviderthatcacreatelocalautoenrollmentobjectusedtogeneratethekeypair.thisinformationincludestheprovidersnameandthenameofthecontainertheproviderusestostorekeypairsfortheuserwhomlsasrvisimpersonating.thecontainernameismeaningfulonlytotheprovider,butinthecaseofbasecryptographicprovider,thecontainernameisafilepathrelativetotheusersprofiledirectory.anexamplecontainernameism:documentsandsettingsadministratorapplicationdatamicrosoftsystemcertificatesmycertificatescd099602fd898d7efcdc4283c6742d30a15a0062.win2khidestheapplicationdatadirectorybydefault,andcontainerfilenamesvary.efsusescryptacquirecontexttoopenacryptographicsessionwiththeprovider.inthecalltocryptacquirecontext,efsspecifiestheprovidername,thecontainername,andthatitwantsto usersaencryptionservices.toobtainthecurrentuserspublickey,efsusesthefunctioncryptexportkey,whichcausesthecryptographicprovidertoextractthekeyfromthecontainer.constructefscannowconstructthe informationthatefsstoreswiththefile.thelsasrv functionconstructkeyringmakesuseoftheuserspublickeythatcryptexportkeyobtainedtostoretheefsinformationwithafile.microsoftcallsthefunctionconstructkeyringbecause,asimentionedearlier,efsletsmultipleusersshareencryptedfiles.efsstoresonlyoneblockofinformationinanencryptedfile,andthatblockcontainsanentryforeachuser sharingthefile.theseentriesarecalledkeyentries,andefsstoresthem inthedatadecryptionfield(ddf)portionofthefilesefsdata.acollectionofmultiplekeyentriesisakeyring.figure2showsafilesefsinformationformatandkeyentryformat.efsstoresenoughinformationinthefirstpartofakeyentrytopreciselydescribeauserspublickey.thisdataincludesthecryptographicprovidername,thecontainernameinwhichthekeyisstored,theuserssecurityid(sid),andthepublickey/privatekeypaircertificatehash.thesecondpartofthe keyentrycontainsanencryptedversionofthefek.constructkeyringusesthecryptencryptcryptoapitoencryptthefekwiththersaalgorithmandtheuserspublickey.(whenidescribethedecryptionprocessnextmonth,illexplainwhyefsstoresthisinformationinkeyentries.)next,efscreatesanotherkeyringthatcontainsrecoverykeyentries.efsstoresinformationaboutrecoverykeyentriesinafiles datarecoveryfield(drf).theformatofdrfentriesisidenticaltotheformatofddfentries.thedrfspurposeistoletdesignatedaccounts,orrecoveryagents,decryptausersfilewhen administrativeauthoritymusthaveaccesstotheusersdata.forexample,supposeacompanyemployeeusedacryptoapitostorehisprivatekeyonasmartcard,thenlostthecard.withoutrecoveryagents,noonecouldrecoverhisencrypteddata.youcandefinerecoveryagentswith theencryptedrecoveryagentssecuritypolicy(whichisasubsetofpublickeypolicy)ofthe localcomputerordomain,asscreen2shows.whenyouusetherecoveryagentwizardinthedomainorcomputermanagementmicrosoftmanagementconsole(mmc)snap-in,youcanaddrecoveryagentsandspecifywhichpublickey/privatekeypairs(designatedbytheircertificates)theagentsuseforefsrecovery.lsasrvinterpretstherecoverypolicywhenitinitializesandwhenitreceivesnotificationthattherecoverypolicyhaschanged.efsusesthecryptographicprovideryouregisterforefsrecoverytocreateadrfkeyentryforeachrecoveryagent.currently,thedefaultrecoveryagentprovideristhersaencryptionfacilityofbasecryptographicprovider1.0thesameprovidergeneratefekusesforuserkeys.inthefinalstepincreatingefsinformationforafile,constructefsusesthemd5hashfacilityofbasecryptographicprovider1.0tocalculateachecksumforthedrfandddf.efsstoresthechecksumsresultintheefsinformationheader.efsreferencesthischecksumduringdecryptiontoensurethatthecontentsofafilesefsinformationhavenotbecomecorruptedorbeentamperedwith.screen3showsanencryptedfiles$efsattributeson-diskcontents.someofthefieldsivedescribedarehighlighted,includingthenameofthecryptographicstorethatstoresthekeypairtheencryptionuses(thestringbeginning5.d.c.3.b.3.e.b.-.5.),thenameofthecryptographicprovider(microsoftbasecryptographicproviderv1.),andinformationusedfordisplaywhenapplicationsquerytheencryptionformat(l.=.e.f.s.).diskedit,theutilityviewingthedatainscreen3,isanunsupportedtoolthatmicrosoftincludesontheservicepack4(sp4)cd-rom.tobecontinued thatbringsustotheendofthismonthscolumn.nextmonth,illconcludemydescriptionoftheencryptionprocess,andilldescribethefiledecryptionprocessandsomeoftheotherefsapisthatlsasrvsupports.加密文件系统下一个步骤 efsrpcencryptfilesrv 表演乃是创作其 lsasrv 希望的一个记录文件记录编密码过程的进展。efsrpcencryptfilesrv 创作记录文件上作为 efs 将加密,在根本目录下面的地方记录文件是的文件的同样的行驶子目录系统卷信息。记录文件通常有名字 efs0.log,但是如果其他文件在经受编密码, efsrpcencryptfilesrv 取代数字 0 通过增加直到 lsasrv 的数字能够创建一个独特的记录文件当前的 encryption.win2k 是密码术 apis 依赖一个用户的登记处简介储存的信息,所以 efsrpcencryptfilesrv 紧接着使用 userenv.dll 的 loaduserprofile api(用户环境 dll)装简介进用户 efsrpcencryptfilesrv 的登记处人格化。通常用户简介已经被装,因为 winlogon.exe 装一个用户的简介当一个用户交互地登录。可是,如果你使用微软 windows nt 服务器 4.0资源个人装具 su 设施或者到一个不同的理由登录的 win2k runas 指挥,当你尝试从那个报告使用被加密的文件的时候,账户的简介可能不装货。efsrpcencryptfilesrv 的下一个步骤乃是叫另一种 lsasrv 功能,encryptfilesrv,为了运载向外用于文件的编密码过程的其余部分。encryptfilesrv 通过询问关于 ntfs 数据溪在文件以内存在,注意用于更迟的使用的结果的 ntfs 开始。ntfs 支持交替除了缺省值之外被命名是数据溪无名的溪在那 nt 典型地 storesdata。win2k 做出交换的溪的大量使用支持复合的文件存储器(即,本地被组织的存储器),正如为了使用交换的溪实现的 macintosh 服务macintosh 资源不情愿地交付。efs 必须加密所有一份文件的数据 streams 梟ot 刚刚溪那大多数申请明白。encryptfilesrv 叫内在的功能 generatefek 产生一 fek对 file.generatefek 使用 cryptoapi 功能 cryptacquirecontext 为了开始用密码写的会议。cryptacquirecontext 接受若干参数,包括会议的用密码写的提供者的名字和密码术服务那访问者(在这种情况下, generatefek)是对有兴趣。generatefekspecifies 微软基础用密码写提供者作为会议的用密码写的提供者的 1.0。generatefek 也发信号那它想使用提供者的英国 rsa 实验室编密码设施。基本用密码写的提供者是在所有 win2k 系统上是未缺失的一个固定的提供者。可是 cryptoapi 的建筑让软件公司实现私人的提供者和动态地把他们加到 win2k 上。这样, generatefek 必须标示一届会议的用密码写的提供者。英国 rsa 实验室是一个公众为定基调基于的编密码算法 tha 成为一个事实上世界范围的标准。文件 rsabase.dll 因为 basecryptographic provider 1.0.after 实现英国 rsa 实验室 cryptacquirecontext 功能用到提供者的一个把柄归来,generatefek 给 cryptgenrandom 打电话有提供者产生 16 个字节(128 少量)担任文件的 fek 的随便的数据中。generatefek 然后把 cryptclosesession 叫到结束用密码写的提供者会议,归还控制到 encryptfilesrv.constructing 钥匙圈。在这一点上, encryptfilesrv 有一 fek 和能够构思 efs 信息跟包括 fek 的一个被加密的版本在内的文件一起储存。图 2 说明 efs信息的规划。encryptfilesrv 叫另一种功能, constructefs,建造 efs信息。在它能够这样做以前, constructefs 必须使用 cryptoapi 得到一个把柄到用户的公共主要和私人主要的对。为了得到这个把柄, constructefs 叫另一种功能,getcurrentkey,读登记处价值 hkey_current_user 软件 微软 windows nt currentversion efs currentkeys certificatehash。每把公共主要/私营钥匙对有发行证书权力签名,用户使用弄到的一份数字证书他们的公共的钥匙。数字签名,或者杂乱信号,独特地识别公共主要/私营钥匙对。通过读 certificatehash 价值, constructefs 弄到当前的用户的公共的钥匙签名和使用它使用公共的钥匙,加密 feks.when certificatehash 价值不存在,是一个用户加密的案例第一次一份文件, efs 必须决定是否用户有一 efs 公众钥匙/列兵钥匙对,或者是否它必须创造主要的对。第一, efs打开我的系统证书存储器地区,在那 os 商店 efs 钥匙配对。(一些证书存储器地区能够在一个系统上存在,每一个控制不同的证书。) efs 使用 cryptoapi 功能 certfindcertirage 地区。如果 certfindcertificateinstore 不找到一 efs主要对的证书, constructefs 给 generateuserkey 打电话创建一个。generateuserkey 叫喊cryptuiwizcertrequest 为了创造主要的对,归来对的一份被签名的证书。主要对的一代在一个领域控制器上出现(对是领域部分的一个系统)或者本地计算机(对不是领域部分的一台计算机)。当 efs 定居或者创造的时候用户的主要对的证书, efs 弄到证书的杂乱信号和在登记处钥匙中储存它hkey_current_user 软件 微软 windows nt currentversion efs currentkeys certificatehash .在 win2k beta 中 3,创造公共主要/私营钥匙的提供者对是基本用密码写的提供者 1.0。当它有用户的主要对的杂乱信号的时候, efs 使用 certgetcertificatecontext 财产 cryptoapi 弄到关于提供者的信息那cacreatelocalautoenrollmentobject 常产生主要的对。这条信息包括提供者的名字和提供者使用把主要的对保存以供用户的容器的名字谁 lsasrv 人格化。容器名字对于提供者是有意义唯一的,但是在基本用密码写例的提供者,容器名字是一条文件路径与有关系用户是简介目录。一个例子容器名字是 m:documents 和设置 主管 申请数据 微软 systemcertificates 我的 证书 cd099602fd898d7efcdc4283c6742d30a15a0062 .win2k 隐藏申请数据由缺省值,和容器文件名所作的目录变化。efs 使用 cryptacquirecontext 开放带提供者的用密码写的会议。在到 cryptacquirecontext, efs 的电话标示提供者名字,容器名字,那它想使用英国 rsa 实验室编密码服务。为了弄到当前的用户的公共的钥匙, efs 使用功能 cryptexportkey,导致从 container.constructefs 抽取钥匙的用密码写的提供者现在能够建造efs 跟文件一起储存的信息。lsasrv 功能 constructkeyring 利用 cryptexportkey 弄到跟一份文件一起储存 efs 信息的用户的公共的钥匙。微软叫功能 constructkeyring 因为,当我更早提及, efs 让多的用户分享被加密的文件。efs 在一份被加密的文件中储存信息的仅仅一街区,那条街区为分享文件的每个用户包含进入。这些进入叫做主要的进入,以及

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论