WindowsServer2003EnhancedCryptographicProvider(RSAENH)(WindowsServer2003SP2)FIPS140-2Documentation:SecurityPolicySeptember20,2007AbstractThisdocumentspecifiesthenon-proprietarysecuritypolicyforWindowsServer2003(SP2)EnhancedCryptographicProvider(RSAENH)asdescribedinFIPSPUB140-2.
2TheinformationcontainedinthisdocumentrepresentsthecurrentviewofMicrosoftCorporationontheissuesdiscussedasofthedateofpublication.
BecauseMicrosoftmustrespondtochangingmarketconditions,itshouldnotbeinterpretedtobeacommitmentonthepartofMicrosoft,andMicrosoftcannotguaranteetheaccuracyofanyinformationpresentedafterthedateofpublication.
Thisdocumentisforinformationalpurposesonly.
MICROSOFTMAKESNOWARRANTIES,EXPRESSORIMPLIED,ASTOTHEINFORMATIONINTHISDOCUMENT.
Complyingwithallapplicablecopyrightlawsistheresponsibilityoftheuser.
ThisworkislicensedundertheCreativeCommonsAttribution-NoDerivs-NonCommercialLicense(whichallowsredistributionofthework).
Toviewacopyofthislicense,visithttp://creativecommons.
org/licenses/by-nd-nc/1.
0/orsendalettertoCreativeCommons,559NathanAbbottWay,Stanford,California94305,USA.
Microsoftmayhavepatents,patentapplications,trademarks,copyrights,orotherintellectualpropertyrightscoveringsubjectmatterinthisdocument.
ExceptasexpresslyprovidedinanywrittenlicenseagreementfromMicrosoft,thefurnishingofthisdocumentdoesnotgiveyouanylicensetothesepatents,trademarks,copyrights,orotherintellectualproperty.
Theexamplecompanies,organizations,products,peopleandeventsdepictedhereinarefictitious.
Noassociationwithanyrealcompany,organization,product,personoreventisintendedorshouldbeinferred.
2003MicrosoftCorporation.
Allrightsreserved.
Microsoft,ActiveDirectory,VisualBasic,VisualStudio,Windows,theWindowslogo,WindowsNT,andWindowsServerareeitherregisteredtrademarksortrademarksofMicrosoftCorporationintheUnitedStatesand/orothercountries.
Thenamesofactualcompaniesandproductsmentionedhereinmaybethetrademarksoftheirrespectiveowners.
3CONTENTSINTRODUCTION4SECURITYPOLICY.
5SPECIFICATIONOFROLES.
6SPECIFICATIONOFSERVICES.
7CRYPTOGRAPHICKEYMANAGEMENT13SELF-TESTS15MISCELLANEOUS.
17FORMOREINFORMATION.
204INTRODUCTIONTheMicrosoftCorporation'sWindowsServer2003EnhancedCryptographicProvider(RSAENH)isaFIPS140-2Level1compliant,software-based,cryptographicserviceprovider.
LikeothercryptographicprovidersthatshipwithMicrosoftWindowsServer2003,WindowsServer2003ServicePack1andServicePack2,RSAENHencapsulatesseveraldifferentcryptographicalgorithmsinaneasy-to-usecryptographicmoduleaccessibleviatheMicrosoftCryptoAPI.
SoftwaredeveloperscandynamicallylinktheMicrosoftRSAENHmoduleintotheirapplicationstoprovideFIPS140-2compliantcryptographicsupport.
WindowsServer2003doesnotshipthepreviouslyFIPS-140-1validatedMicrosoftBaseCryptographicProvider(RSABASE)anymore.
ThereisnolossoffunctionalityastheRSABASEfunctionalityhasalwaysbeenasubsetoftheRSAENHfunctionality.
CryptographicBoundaryTheMicrosoftEnhancedCryptographicProvider(RSAENH)consistsofasingledynamically-linkedlibrary(DLL)namedRSAENH.
DLL(Softwareversion5.
2.
3790.
3959[ServicePack2])testedonanx86,x64,andia64processors,whichcomprisesthemoduleslogicalboundary.
ThecryptographicboundaryforRSAENHisdefinedastheenclosureofthecomputersystemonwhichthecryptographicmoduleistobeexecuted.
Thephysicalconfigurationofthemodule,asdefinedinFIPSPUB140-2,isMulti-ChipStandalone.
ItshouldbenotedthattheDataProtectionAPIandCryptographicAPIofMicrosoftWindowsServer2003isnotpartofthemoduleandshouldbeconsideredtobeoutsidetheboundary.
5SECURITYPOLICYRSAENHoperatesunderseveralrulesthatencapsulateitssecuritypolicy.
RSAENHissupportedonWindowsServer2003,WindowsServer2003SP1andSP2.
RSAENHprovidesnouserauthentication;however,itreliesonMicrosoftWindowsServer2003fortheauthenticationofusers.
AlltheservicesprovidedbytheRSAENHDLLareavailabletotheUserandCrypto-officerroles.
KeyscreatedwithinRSAENHbyoneuserarenotaccessibletoanyotheruserviaRSAENH.
RSAENHstoreskeysinthefilesystem,butreliesuponMicrosoftWindowsServer2003fortheencryptionofthekeyspriortostorage.
WhenoperatingthismoduleunderWindowsServer2003SP2,thefollowingalgorithmsareApprovedsecurityfunctionsandcanbeusedinFIPSmode:oFIPS-approvedalgorithms:Triple-DES,AES,SHA-1,SHA-256,SHA-384,SHA-512,HMAC,RSAandFIPS186-2GeneralPurposerandomgenerator.
RSAENHalsoprovidestherequiredself-testsfortheseFIPS-approvedalgorithms.
RSAENHsupportsthefollowingnon-FIPSapprovedalgorithms:X9.
31RSAkey-pairgeneration,DES,RC4,RC2,MD2,MD4,andMD51;andthoughthesealgorithmsmaynotbeusedwhenoperatingthemoduleinFIPSmode,themoduleprovidespower-upself-teststoprovideextrasecurityfornonFIPSusers.
OperatingthemoduleinFIPSApprovedmoderequirestheuseofApprovedalgorithmslistedaboveaswellasApprovedserviceswhichhavenotbeenexcludedbythissecuritypolicy.
1Applicationsmaynotuseanyofthesenon-FIPSalgorithmsiftheyneedtobeFIPSmode.
TooperatethemoduleinaFIPSApprovedmode,applicationsmustonlyuseFIPS-approvedalgorithms.
6SPECIFICATIONOFROLESRSAENHmodulesupportsbothaUserandCryptographicOfficerroles(asdefinedinFIPSPUB140-2).
Bothrolesmayaccessalltheservicesimplementedinthecryptographicmodule.
Whenanapplicationrequeststhecryptomoduletogeneratekeysforauser,thekeysaregenerated,used,anddeletedasrequestedbyapplications.
Therearenoimplicitkeysassociatedwithauser,andeachusermayhavenumerouskeys,bothsignatureandkeyexchange,andthesekeysareseparatefromotherusers'keys.
MaintenanceRolesMaintenancerolesarenotsupportedbyRSAENH.
MultipleConcurrentOperatorsRSAENHisintendedtorunonWindowsServer2003inSingleUserMode.
Whenruninthisconfiguration,multipleconcurrentoperatorsarenotsupported.
BecausethemoduleisaDLL,eachprocessrequestingaccessisprovideditsowninstanceofthemodule.
Assuch,eachprocesshasfullaccesstoallinformationandkeyswithinthemodule.
NotethatnokeysorotherinformationaremaintainedupondetachmentfromtheDLL,thusaninstantiationofthemodulewillonlycontainkeysorinformationthattheprocesshasplacedinthemodule.
DataAccessBecauseanoperatorisprovidedaseparateinstanceofthemodule(aseparateinstantiationoftheDLL),theoperatorhascompleteaccesstoallofthesecuritydataitemswithinthemodule.
7SPECIFICATIONOFSERVICESThefollowinglistcontainsallservicesavailabletoanoperator.
Allservicesareaccessiblebyallroles.
KeyStorageServicesThefollowingfunctionsprovideinterfacestothecryptomodule'skeycontainerfunctions.
PleaseseetheKeyStoragedescriptionundertheCryptographicKeyManagementsectionformoreinformation.
CryptAcquireContextTheCryptAcquireContextfunctionisusedtoacquireaprogrammaticcontexthandletoaparticularkeycontainerviaaparticularcryptographicserviceprovider.
Thisreturnedhandlecanthenbeusedtomakecallstotheselectedcryptographicserviceprovider.
Anysubsequentcallstoacryptographicfunctionneedtoreferencetheacquiredcontexthandle.
Thisfunctionperformstwooperations.
ItfirstattemptstofindacryptographicserviceproviderwiththecharacteristicsdescribedinthedwProvTypeandpszProviderparameters.
Ifthecryptographicserviceproviderisfound,thefunctionattemptstofindakeycontainermatchingthenamespecifiedbythepszContainerparameter.
WiththeappropriatesettingofdwFlags,thisfunctioncanalsocreateanddestroykeycontainers.
IfdwFlagsissettoCRYPT_NEWKEYSET,anewkeycontaineriscreatedwiththenamespecifiedbypszContainer.
IfpszContainerisNULL,akeycontainerwiththedefaultnameiscreated.
IfdwFlagsissettoCRYPT_DELETEKEYSET,ThekeycontainerspecifiedbypszContainerisdeleted.
IfpszContainerisNULL,thekeycontainerwiththedefaultnameisdeleted.
Allkeypairsinthekeycontainerarealsodestroyedandmemoryiszeroized.
Whenthisflagisset,thevaluereturnedinphProvisundefined,andthus,theCryptReleaseContextfunctionneednotbecalledafterwards.
CryptGetProvParamTheCryptGetProvParamfunctionretrievesdatathatgovernstheoperationsoftheprovider.
Thisfunctionmaybeusedtoenumeratekeycontainers,enumeratesupportedalgorithms,andgenerallydeterminecapabilitiesofthecryptographicserviceprovider.
CryptSetProvParamTheCryptSetProvParamfunctioncustomizesvariousaspectsofaprovider'soperations.
Thisfunctionismaybeusedtosetasecuritydescriptoronakeycontainer.
CryptReleaseContextTheCryptReleaseContextfunctionreleasesthehandlereferencedbythehProvparameter.
Afteraproviderhandlehasbeenreleased,itbecomesinvalidandcannotbeusedagain.
Inaddition,keyandhashhandlesassociatedwiththatproviderhandlemaynotbeusedafterCryptReleaseContexthasbeencalled.
8KeyGenerationandExchangeServicesThefollowingfunctionsprovideinterfacestothecryptomodule'skeygenerationandexchangefunctions.
Note:onlyFIPSapprovedPRNGareusedforalltheKeygenerationoperationsCryptDeriveKeyTheCryptDeriveKeyfunctioncreatescryptographicsessionkeysfromahashvalue.
Thisfunctionguaranteesthatwhenthesamecryptographicserviceproviderandalgorithmsareused,thekeyscreatedfromthesamehashvalueareidentical.
Thehashvalueistypicallyacryptographichash(SHA-1mustbeusedwhenoperatinginFIPS-mode)ofapasswordorsimilarsecretuserdata.
ThisfunctionisthesameasCryptGenKey,exceptthatthegeneratedsessionkeysarecreatedfromthehashvalueinsteadofbeingrandomandCryptDeriveKeycanonlybeusedtocreatesessionkeys.
Thisfunctioncannotbeusedtocreatepublic/privatekeypairs.
IfkeysarebeingderivedfromaCALG_SCHANNEL_MASTER_HASH,thentheappropriatekeyderivationprocessisusedtoderivethekey.
InthiscasetheprocessusedisfromeithertheSSL2.
0,SSL3.
0,PCTorTLSspecificationofderivingclientandserversideencryptionandMACkeys.
Thisfunctionwillcausethekeyblocktobederivedfromthemastersecretandtherequestedkeyisthenderivedfromthekeyblock.
Whichprocessisusedisdeterminedbywhichprotocolisassociatedwiththehashobject.
FormoreinformationseetheSSL2.
0,SSL3.
0,PCTandTLSspecifications.
CryptDestroyKeyTheCryptDestroyKeyfunctionreleasesthehandlereferencedbythehKeyparameter.
Afterakeyhandlehasbeenreleased,itbecomesinvalidandcannotbeusedagain.
Ifthehandlereferstoasessionkey,ortoapublickeythathasbeenimportedintothecryptographicserviceproviderthroughCryptImportKey,thisfunctionzeroizesthekeyinmemoryandfreesthememorythatthekeyoccupied.
Theunderlyingpublic/privatekeypair(whichresidesoutsidethecryptomodule)isnotdestroyedbythisfunction.
Onlythehandleisdestroyed.
CryptExportKeyTheCryptExportKeyfunctionexportscryptographickeysfromacryptographicserviceproviderinasecuremannerforkeyarchivalpurposes.
AhandletoaprivateRSAkeytobeexportedmaybepassedtothefunction,andthefunctionreturnsakeyblob.
Thisprivatekeyblobcanbesentoveranonsecuretransportorstoredinanonsecurestoragelocation.
TheprivatekeyblobisuselessuntiltheintendedrecipientusestheCryptImportKeyfunctiononittoimportthekeyintotherecipient'scryptographicserviceprovider.
Keyblobsareexportedeitherinplaintextorencryptedwithasymmetrickey.
IfasymmetrickeyisusedtoencrypttheblobthenahandletotheprivateRSAkeyispassedintothemoduleandthesymmetrickeyreferencedbythehandleisusedtoencrypttheblob.
Anyofthesupportedsymmetriccryptographicalgorithmsmaybeusedtoencrypttheprivatekeyblob(DES,Triple-DES,RC4orRC22).
2NotethatDES,RC2andRC4maynotbeusedwhileoperatingRSAENHinFIPSApprovedmode.
9PublicRSAkeysarealsoexportedusingthisfunction.
AhandletotheRSApublickeyispassedtothefunctionandthepublickeyisexported,alwaysinplaintextasablob.
ThisblobmaythenbeimportedusingtheCryptImportKeyfunction.
SymmetrickeysmayalsobeexportedencryptedwithanRSAkeyusingtheCryptExportKeyfunction.
AhandletothesymmetrickeyandahandletothepublicRSAkeytoencryptwitharepassedtothefunction.
Thefunctionreturnsablob(SIMPLEBLOB)whichistheencryptedsymmetrickey.
Symmetrickeysmayalsobeexportedbywrappingthekeyswithanothersymmetrickey.
ThewrappedkeyisthenexportedasablobandmaybeimportedusingtheCryptImportKeyfunction.
CryptGenKeyTheCryptGenKeyfunctiongeneratesarandomcryptographickey.
AhandletothekeyisreturnedinphKey.
ThishandlecanthenbeusedasneededwithanyCryptoAPIfunctionrequiringakeyhandle.
Thecallingapplicationmustspecifythealgorithmwhencallingthisfunction.
Becausethisalgorithmtypeiskeptbundledwiththekey,theapplicationdoesnotneedtospecifythealgorithmlaterwhentheactualcryptographicoperationsareperformed.
CryptGenRandomTheCryptGenRandomfunctionfillsabufferwithrandombytes.
TherandomnumbergenerationalgorithmistheSHSbasedRNGfromFIPS186.
Duringthefunctioninitialization,aseed,towhichSHA-1isappliedtocreatetheoutputrandom,iscreatedbasedonthecollectionofallthedatalistedintheMiscellaneoussection.
CryptGenRandomacceptscallersupplieddatathroughitsin/outpbBufferparameter.
ThisdataismixedwiththeseedCryptGetKeyParamTheCryptGetKeyParamfunctionretrievesdatathatgovernstheoperationsofakey.
CryptGetUserKeyTheCryptGetUserKeyfunctionretrievesahandleofoneofauser'spublic/privatekeypairs.
CryptImportKeyTheCryptImportKeyfunctiontransfersacryptographickeyfromakeyblobintoacryptographicserviceprovider.
Privatekeysmaybeimportedasblobsandthefunctionwillreturnahandletotheimportedkey.
AsymmetrickeyencryptedwithanRSApublickeyisimportedintotheCryptoImportKeyfunction.
ThefunctionusestheRSAprivatekeyexchangekeytodecrypttheblobandreturnsahandletothesymmetrickey.
10Symmetrickeyswrappedwithothersymmetrickeysmayalsobeimportedusingthisfunction.
Thewrappedkeyblobispassedinalongwithahandletoasymmetrickey,whichthemoduleissupposedtousetounwraptheblob.
Ifthefunctionissuccessfulthenahandletotheunwrappedsymmetrickeyisreturned.
TheCryptImportKeyfunctionrecognizesanewflagCRYPT_IPSEC_HMAC_KEY.
TheflagallowsthecallertosupplytheHMACkeymaterialofsizegreaterthan16bytes.
WithouttheCRYPT_IPSEC_HMAC_KEYflag,theCryptImportKeyfunctionwouldfailwithNTE_BAD_DATAifthecallersuppliestheHMACkeymaterialofsizegreater16bytes.
ForimportingaHMACkey,thecallershouldidentifytheimportedkeyblobasthePLAINTEXTKEYBLOBtypeanduseCALG_RC2asthekeyAlgorithmidentifier.
CryptSetKeyParamTheCryptSetKeyParamfunctioncustomizesvariousaspectsofakey'soperations.
Thisfunctionisusedtosetsession-specificvaluesforsymmetrickeys.
CryptDuplicateKeyTheCryptDuplicateKeyfunctionisusedtoduplicate,makeacopyof,thestateofakeyandreturnsahandletothisnewkey.
TheCryptDestroyKeyfunctionmustbeusedonboththehandletotheoriginalkeyandthenewlyduplicatedkey.
DataEncryptionandDecryptionServicesThefollowingfunctionsprovideinterfacestothecryptomodule'sdataencryptionanddecryptionfunctions.
CryptDecryptTheCryptDecryptfunctiondecryptsdatapreviouslyencryptedusingCryptEncryptfunction.
CryptEncryptTheCryptEncryptfunctionencryptsdata.
ThealgorithmusedtoencryptthedataisdesignatedbythekeyheldbythecryptographicserviceprovidermoduleandisreferencedbythehKeyparameter.
HashingandDigitalSignatureServicesThefollowingfunctionsprovideinterfacestothecryptomodule'shashinganddigitalsignaturefunctions.
11CryptCreateHashTheCryptCreateHashfunctioninitiatesthehashingofastreamofdata.
Itreturnstothecallingapplicationahandletoacryptographicserviceproviderhashobject.
ThishandleisusedinsubsequentcallstoCryptHashDataandCryptHashSessionKeyinordertohashstreamsofdataandsessionkeys.
SHA-1andMD5arethecryptographichashingalgorithmssupported.
Inaddition,aMACusingasymmetrickeyiscreatedwiththiscallandmaybeusedwithanyofthesymmetricblockcipherssupportbythemodule(DES,Triple-DESAES,RC4orRC2).
ForcreatingaHMAChashvalue,thecallerspecifiestheCALG_HMACflagintheAlgidparameter,andtheHMACkeyusingahKeyhandleobtainedfromcallingCryptImportKey.
ACALG_SCHANNEL_MASTER_HASHmaybecreatedwiththiscall.
IfthisisthecasethenahandletooneofthefollowingtypesofkeysmustbepassedinthehKeyparameter,CALG_SSL2_MASTER,CALG_SSL3_MASTER,CALG_PCT1_MASTER,orCALG_TLS1_MASTER.
ThisfunctionwithCALG_SCHANNEL_MASTER_HASHintheALGIDparameterwillcausethederivationofthemastersecretfromthepre-mastersecretassociatedwiththepassedinkeyhandle.
Thiskeyderivationprocessisdoneinthemethodspecifiedintheappropriateprotocolspecification,SSL2.
0,SSL3.
0,PCT1.
0,orTLS.
ThemastersecretisthenassociatedwiththeresultinghashhandleandsessionkeysandMACkeysmaybederivedfromthishashhandle.
Themastersecretmaynotbeexportedorimportedfromthemodule.
ThekeydataassociatedwiththehashhandleiszeroizedwhenCryptDestroyHashiscalled.
CryptDestroyHashTheCryptDestroyHashfunctiondestroysthehashobjectreferencedbythehHashparameter.
Afterahashobjecthasbeendestroyed,itcannolongerbeused.
Whenahashobjectisdestroyed,thecryptomodulezeroizesthememorywithinthemodulewherethehashobjectwasheld.
Thememoryisthenfreed.
IfthehashhandlereferencesaCALG_SCHANNEL_MASTER_HASHkeythen,whenCryptDestroyHashiscalled,theassociatedkeymaterialiszeroizedalso.
AllhashobjectsshouldbedestroyedwiththeCryptDestroyHashfunctionwhentheapplicationisfinishedwiththem.
CryptGetHashParamTheCryptGetHashParamfunctionretrievesdatathatgovernstheoperationsofahashobject.
Theactualhashvaluecanalsoberetrievedbyusingthisfunction.
CryptHashDataTheCryptHashDatafunctionaddsdatatoaspecifiedhashobject.
ThisfunctionandCryptHashSessionKeycanbecalledmultipletimestocomputethehashonlongdatastreamsordiscontinuousdatastreams.
Beforecallingthisfunction,theCryptCreateHashfunctionmustbecalledtocreateahandleofahashobject.
12CryptHashSessionKeyTheCryptHashSessionKeyfunctioncomputesthecryptographichashofakeyobject.
Thisfunctioncanbecalledmultipletimeswiththesamehashhandletocomputethehashofmultiplekeys.
CallstoCryptHashSessionKeycanbeinterspersedwithcallstoCryptHashData.
Beforecallingthisfunction,theCryptCreateHashfunctionmustbecalledtocreatethehandleofahashobject.
CryptSetHashParamTheCryptSetHashParamfunctioncustomizestheoperationsofahashobject.
ForcreatingaHMAChashassociatedwithahashobjectidentifiedthehHashhandle,thecallerusestheCryptSetHashParamfunctionwiththeHP_HMAC_INFOflagtospecifythenecessarySHA-1algorithmusingtheCALG_SHA1flagintheinputHMAC_INFOstructure.
ThereisnoneedforthecallertospecifytheHMACinnerorouterstringsasthecryptographicserviceproviderisusingtheinnerandouterstringvaluesasdocumentedintheDraftFIPSforHMACasitsdefaultvalues.
CryptSignHashTheCryptSignHashfunctionsignsdata.
Becauseallsignaturealgorithmsareasymmetricandthusslow,theCryptoAPIdoesnotallowdatabesigneddirectly.
Instead,dataisfirsthashedandCryptSignHashisusedtosignthehash.
ThecryptomodulesupportssigningwithRSA.
TheX9.
31formatmaybespecifiedbyaflag.
CryptVerifySignatureTheCryptVerifySignaturefunctionverifiesthesignatureofahashobject.
Beforecallingthisfunction,theCryptCreateHashfunctionmustbecalledtocreatethehandleofahashobject.
CryptHashDataorCryptHashSessionKeyisthenusedtoadddataorsessionkeystothehashobject.
ThecryptomodulesupportsverifyingRSAsignatures.
TheX9.
31formatmaybespecifiedbyaflag.
Afterthisfunctionhasbeencompleted,onlyCryptDestroyHashcanbecalledusingthehHashhandle.
CryptDuplicateHashTheCryptDuplicateHashfunctionisusedtoduplicate,makeacopyof,thestateofahashandreturnsahandletothisnewhash.
TheCryptDestroyHashfunctionmustbeusedonboththehandletotheoriginalhashandthenewlyduplicatedhash.
13CRYPTOGRAPHICKEYMANAGEMENTTheRSAENHcryptomodulemanageskeysinthefollowingmanner.
KeyMaterialRSAENHcancreateandusekeysforthefollowingalgorithms:RSASignature,RSAKeyExchange,RC2,RC4,DES,Triple-DES,andAES3.
EachtimeanapplicationlinkswithRSAENH,theDLLisinstantiatedandnokeysexistwithin.
TheuserapplicationisresponsibleforimportingkeysintoRSAENHorusingRSAENH'sfunctionstogeneratekeys.
SeeMSDNLibrary\PlatformSDK\WindowsBaseServices\Security\CryptoAPI2.
0\CryptoAPIReference\CryptoAPIStructures\CryptographyStructuresformoreinformationaboutkeyformatsandstructures.
(MSDNHome>MSDNLibrary>Win32andCOMDevelopment>Security>Cryptography>CryptographyReference>GeneralCryptographyStructures)KeyGenerationRandomkeyscanbegeneratedbycallingtheCryptGenKey()function.
KeyscanalsobecreatedfromknownvaluesviatheCryptDeriveKey()function.
DES,Triple-DES,andAESkeys3aregeneratedfollowingthetechniquesgiveninFIPSPUB186-2,Appendix3,RandomNumberGenerationandinFIPS140-2RNGVSrequirements.
SeeMSDNLibrary\PlatformSDK\WindowsBaseServices\Security\CryptoAPI2.
0\CryptoAPIReference\CryptoAPIFunctions\BaseCryptographyFunctions\KeyGenerationandExchangeFunctionsformoreinformation.
(MSDNHome>MSDNLibrary>Win32andCOMDevelopment>Security>Cryptography>CryptographyReference>KeyGenerationandExchangeFunctions)KeyEntryandOutputKeyscanbebothexportedandimportedoutofandintoRSAENHviaCryptExportKey()andCryptImportKey().
ExportedprivatekeysmaybeencryptedwithasymmetrickeypassedintotheCryptExportKeyfunction.
Anyofthesymmetricalgorithmssupportedbythecryptomodulemaybeusedtoencryptprivatekeysforexport(AES,DES,Triple-DES,RC4orRC23).
Whenprivatekeysaregeneratedorimportedfromarchival,theyarecoveredwiththeMicrosoftWindowsServer2003DataProtectionAPI(DPAPI)andthenoutputtedtothefilesysteminthecoveredform.
Symmetrickeyentryandoutputisdonebyexchangingkeysusingtherecipient'sasymmetricpublickey.
Symmetrickeyentryandoutputmayalsobedonebyexportingasymmetrickeywrappedwithanothersymmetrickey.
SeeMSDNLibrary\PlatformSDK\WindowsBaseServices\Security\CryptoAPI2.
0\CryptoAPIReference\CryptoAPIFunctions\BaseCryptographyFunctions\KeyGenerationandExchangeFunctionsformoreinformation.
(MSDNHome>MSDNLibrary>Win32andCOMDevelopment>Security>Cryptography>Cryptography3NotethatDES,RC2andRC4maynotbeusedwhileoperatingRSAENHinFIPSApprovdemode.
14Reference>KeyGenerationandExchangeFunctions)KeyStorageRSAENHdoesnotprovidepersistentstorageofkeys.
While,itispossibletostorekeysinthefilesystem,thisfunctionalityisoutsidethescopeofthisvalidation.
Thetaskofprotecting(orencrypting)thekeyspriortostorageinthefilesystemisdelegatedtotheDataProtectionAPI(DPAPI)ofMicrosoftWindowsServer2003.
TheDPAPIisaseparatecomponentoftheoperatingsystemthatisoutsidetheboundariesofthecryptomodulebutreliesuponRSAENHforallcryptographicfunctionality.
Thissectiondescribesthisfunctionalityforinformationpurposesonly.
Whenakeycontainerisdeleted,thefileiszeroizedbeforebeingdeleted.
RSAENHoffloadsthekeystorageoperationstotheMicrosoftWindowsServer2003operatingsystem,whichisoutsidethecryptographicboundary.
Becausekeysarenotpersistentlystoredinsidethecryptographicmodule,privatekeysareinsteadencryptedbytheMicrosoftDataProtectionAPI(DPAPI)serviceandstoredintheMicrosoftWindowsServer2003filesystem.
Keysarezeroizedfrommemoryafteruse.
Asanexception,thekeyusedforpowerupself-testingisstoredinthecryptographicmodule.
WhenanoperatorrequestsakeyedcryptographicoperationfromRSAENH,his/herkeysareretrievedfromthefilesystembyRSAENHwiththesupportofDPAPI.
Thereadersmayrefertothetechnicalpaper"WindowsDataProtection"(http://msdn.
microsoft.
com/library/en-us/dnsecure/html/windataprotection-dpapi.
asp)forfurtherdetailofDPAPI.
KeyArchivalRSAENHdoesnotdirectlyarchivecryptographickeys.
Theoperatormaychoosetoexportacryptographickeylabeledasexportable(cf.
"KeyInputandOutput"above),butmanagementofthesecurearchivalofthatkeyistheresponsibilityoftheuser.
KeyDestructionAllkeysaredestroyedandtheirmemorylocationzeroizedwhentheoperatorcallsCryptDestroyKeyonthatkeyhandle.
Privatekeysthatresideoutsidethecryptographicboundary(onesstoredbytheoperatingsysteminencryptedformatintheWindowsServer2003DPAPIsystemportionoftheOS)aredestroyedwhentheoperatorcallsCryptAcquireContextwiththeCRYPT_DELETE_KEYSETflag.
15SELF-TESTSRSAENHprovidesalloftheFIPS140-2requiredself-tests.
Asrequired,themoduleperformssomeofitsself-testsuponpowerupandotherself-testsuponencounteringaspecificcondition(keypairorrandomnumbergeneration).
NotethatRSAENHalsoprovidesself-testsfornon-FIPSapprovedalgorithms,andthoughnotrequired,RSAENHprovidesthesetestsforextrasecurity.
Finally,itshouldbenotedthatnon-FIPSapprovedalgorithmsshouldnotbeusedifoperatingRSAENHinFIPSmode.
Power-upThefollowingFIPS-approvedalgorithmtestsareinitiateduponpower-upTriple-DESECBencrypt/decryptKATTriple-DESCBCencrypt/decryptKATTriple-DES112ECBencrypt/decryptKATTriple-DES112CBCencrypt/decryptKATSHA-1hashKATSHA-256KATSHA-384KATSHA-512KATSHA-1HMAChashKATSHA-256HMAChashKATSHA-384HMAChashKATSHA-512HMAChashKATRSAsign/verifypoweruptestSoftwareintegritytestviaaRSAsignatureverificationoftheDLLimageAES128ECBencrypt/decryptKATAES192ECBencrypt/decryptKATAES256ECBencrypt/decryptKATAES128CBCencrypt/decryptKATAES192CBCencrypt/decryptKATAES256CBCencrypt/decryptKATFIPS186-2GeneralPurposerandomgeneratorThefollowingnon-FIPSapprovedalgorithmspower-uptestsinclude(maynotbeusedinFIPS-mode)DESECBencrypt/decryptKATDESCBCencrypt/decryptKATRC4encrypt/decryptKATRC2CBCencrypt/decryptKATRC2ECBencrypt/decryptKATMD5hashKATConditionalThefollowingareinitiatedatkeygenerationandrandomnumbergenerationrespectively:RSApairwiseconsistencytestContinuousrandomnumbergeneratortest1617MISCELLANEOUSThefollowingitemsaddressrequirementsnotaddressedabove.
CryptographicBypassAcryptographicbypassisnotsupportedinRSAENH.
OperatorAuthenticationRSAENHprovidesnoauthenticationofoperators.
However,theMicrosoftWindowsServer2003operatingsystemuponwhichitrunsdoesprovideauthentication,butthisisoutsideofthescopeofRSAENH'sFIPSvalidation.
TheinformationabouttheauthenticationprovidedbyMicrosoftWindowsServer2003isforinformationalpurposesonly.
MicrosoftWindowsServer2003requiresauthenticationfromatrustedcomputerbase(TCB4)beforeauserisabletoaccesssystemservices.
OnceauserisauthenticatedfromtheTCB,aprocessiscreatedbearingtheoperator'ssecuritytoken.
Allsubsequentprocessesandthreadscreatedbythatoperatorareimplicitlyassignedtheparent's(thustheoperator's)securitytoken.
EveryuserthathasbeenauthenticatedbyMicrosoftWindowsServer2003isnaturallyassignedtheoperatorrolewhenhe/sheaccessesRSAENH.
ModularExpOffloadTheModularExpOffloadfunctionoffloadsmodularexponentiationfromacryptographicserviceprovidertoahardwareaccelerator.
ThecryptographicserviceproviderwillcheckintheregistryforthevalueHKLM\Software\Microsoft\Cryptography\ExpoOffloadthatcanbethenameofaDLL.
ThecryptographicserviceproviderusesLoadLibrarytoloadthatDLLandcallsGetProcAddresstogettheOffloadModExpoentrypointintheDLLspecifiedintheregistry.
Thecryptographicserviceproviderusestheentrypointtoperformallmodularexponentiationsforbothpublicandprivatekeyoperations.
Twochecksaremadebeforeaprivatekeyisoffloaded.
NotethattouseRSAENHinFIPSmode,thisfunctionshouldnotbeused.
OperatingSystemSecurityTheRSAENHcryptomoduleisintendedtorunonWindowsServer2003inSingleUserMode.
Whenanoperatingsystemprocessloadsthecryptomoduleintomemory,thecryptomodulerunsaRSAsignatureonthecryptomodule'sdiskimageofRSAENH.
DLL,excludingtheRSAsignature,checksum,andexportsignatureresources.
ThissignatureiscomparedtothevaluestoredintheRSAsignatureresource.
Initializationwillonlysucceedifthetwovaluesareequal.
Eachoperatingsystemprocesscreatesauniqueinstanceofthecryptomodulethatiswhollydedicatedtothatprocess.
Thecryptomoduleisnotsharedbetweenprocesses.
Eachprocessrequestingaccessisprovideditsowninstanceofthemodule.
Assuch,eachprocess4TheTCBisthepartoftheoperatingsystemthatisdesignedtomeetthesecurityfunctionalrequirementsoftheControlledAccessProtectionProfile,whichcanbefoundat.
Atthistime,WindowsServer2003hasnotbeenevaluated.
18hasfullaccesstoallinformationandkeyswithinthemodule.
NotethatnokeysorotherinformationaremaintainedupondetachmentfromtheDLL,thusaninstantiationofthemodulewillonlycontainkeysorinformationthattheprocesshasplacedinthemodule.
TheCollectionofDataUsedtoCreateaSeedforRandomNumberTheRSAEnhmoduleusestheFIPS186-2generalpurposeapprovedPRNGtogeneratetherandomdatarequiredforsymmetric&asymmetrickeygeneration.
ThePRNGconcatenatesmanydifferentsourcesofinformation(detailedbelow)andtheresultingbytestreamishashedwithSHA-1toproducea20-byteseedvalue.
User-supplieddataTheprocessIDofthecurrentprocessrequestingrandomdataThethreadIDofthecurrentthreadwithintheprocessrequestingrandomdataA32bittickcountsincethesystembootThecurrentlocaldateandtimeThecurrentsystemtimeofdayinformationconsistingoftheboottime,currenttime,timezonebias,timezoneID,boottimebias,andsleeptimebiasThecurrenthardware-platform-dependenthigh-resolutionperformance-countervalueTheinformationaboutthesystem'scurrentusageofbothphysicalandvirtualmemory,andpagefileThelocaldiskinformationincludingthenumbersofsectorspercluster,bytespersector,freeclusters,andclustersthatareavailabletotheuserassociatedwiththecallingthreadAhashoftheenvironmentblockforthecurrentprocessSomehardwareCPU-specificcyclecountersThesystemprocessorperformanceinformationconsistingofIdleProcessTime,IoReadTransferCount,IoWriteTransferCount,IoOtherTransferCount,IoReadOperationCount,IoWriteOperationCount,IoOtherOperationCount,AvailablePages,CommittedPages,CommitLimit,PeakCommitment,PageFaultCount,CopyOnWriteCount,TransitionCount,CacheTransitionCount,DemandZeroCount,PageReadCount,PageReadIoCount,CacheReadCount,CacheIoCount,DirtyPagesWriteCount,DirtyWriteIoCount,MappedPagesWriteCount,MappedWriteIoCount,PagedPoolPages,NonPagedPoolPages,PagedPoolAllocatedspace,PagedPoolFreespace,NonPagedPoolAllocatedspace,NonPagedPoolFreespace,FreeSystempagetableentry,ResidentSystemCodePage,TotalSystemDriverPages,TotalSystemCodePages,NonPagedPoolLookasideHits,PagedPoolLookasideHits,AvailablePagedPoolPages,ResidentSystemCachePage,ResidentPagedPoolPage,ResidentSystemDriverPage,CachemanagerFastReadwithNoWait,CachemanagerFastReadwithWait,CachemanagerFastReadResourceMissed,CachemanagerFastReadNotPossible,CachemanagerFastMemoryDescriptorListReadwithNoWait,CachemanagerFastMemoryDescriptorListReadwithWait,CachemanagerFastMemoryDescriptorListReadResourceMissed,CachemanagerFastMemoryDescriptorListReadNotPossible,CachemanagerMapDatawithNoWait,CachemanagerMapDatawithWait,CachemanagerMapDatawithNoWaitMiss,CachemanagerMapDataWaitMiss,CachemanagerPin-MappedDataCount,CachemanagerPin-ReadwithNoWait,CachemanagerPinReadwithWait,CachemanagerPin-ReadwithNoWaitMiss,CachemanagerPin-ReadWaitMiss,CachemanagerCopy-ReadwithNoWait,CachemanagerCopy-19ReadwithWait,CachemanagerCopy-ReadwithNoWaitMiss,CachemanagerCopy-ReadwithWaitMiss,CachemanagerMemoryDescriptorListReadwithNoWait,CachemanagerMemoryDescriptorListReadwithWait,CachemanagerMemoryDescriptorListReadwithNoWaitMiss,CachemanagerMemoryDescriptorListReadwithWaitMiss,CachemanagerReadAheadIOs,CachemanagerLazy-WriteIOs,CachemanagerLazy-WritePages,CachemanagerDataFlushes,CachemanagerDataPages,ContextSwitches,FirstLevelTranslationbufferFills,SecondLevelTranslationbufferFills,andSystemCallsThesystemexceptioninformationconsistingofAlignmentFixupCount,ExceptionDispatchCount,FloatingEmulationCount,andByteWordEmulationCountThesystemlookasideinformationconsistingofCurrentDepth,MaximumDepth,TotalAllocates,AllocateMisses,TotalFrees,FreeMisses,Type,Tag,andSizeThesysteminterruptinformationconsistingofcontextswitches,deferredprocedurecallcount,deferredprocedurecallrate,timeincrement,deferredprocedurecallbypasscount,andasynchronousprocedurecallbypasscountThesystemprocessinformationconsistingofNextEntryOffset,NumberOfThreads,CreateTime,UserTime,KernelTime,ImageName,BasePriority,UniqueProcessID,InheritedfromUniqueProcessID,HandleCount,SessionID,PageDirectoryBase,PeakVirtualSize,VirtualSize,PageFaultCount,PeakWorkingSetSize,WorkingSetSize,QuotaPeakPagedPoolUsage,QuotaPagedPoolUsage,QuotaPeakNonPagedPoolUsage,QuotaNonPagedPoolUsage,PagefileUsage,PeakPagefileUsage,PrivatePageCount,ReadOperationCount,WriteOperationCount,OtherOperationCount,ReadTransferCount,WriteTransferCount,andOtherTransferCount20FORMOREINFORMATIONForthelatestinformationonWindowsServer2003,checkoutourWorldWideWebsiteathttp://www.
microsoft.
com/windows.
InformationregardingFIPS140-2andFIPS186-2canbefoundontheCMVPwebsiteathttp://csrc.
nist.
gov/cryptval/.
说明一下:gcorelabs的俄罗斯远东机房“伯力”既有“Virtual servers”也有“CLOUD SERVICES”,前者是VPS,后者是云服务器,不是一回事;由于平日大家习惯把VPS和云服务器当做一回事儿,所以这里要特别说明一下。本次测评的是gcorelabs的cloud,也就是云服务器。 官方网站:https://gcorelabs.com 支持:数字加密货币、信用卡、PayPal...
RAKsmart 商家八月份的促销活动今天更新。基本上和上个月的产品套餐活动差不多的,不过也是有简单的微调。对于RAKsmart商家还是比较了解的,他们家产品虽然这两年增加多个机房,以及在VPS主机方案上有丰富的机房和调整到一些自营机房,他们家的策划能力还是有限,基本上每个月的套餐活动都差不多。RAKsmart 在八月份看到有新增香港高防服务器可选,最高100GB防御。同时原来上个月缺货的日本独立...
对于DMIT商家已经关注有一些时候,看到不少的隔壁朋友们都有分享到,但是这篇还是我第一次分享这个服务商。根据看介绍,DMIT是一家成立于2017年的美国商家,据说是由几位留美学生创立的,数据中心位于香港、伯力G-Core和洛杉矶,主打香港CN2直连云服务器、美国CN2直连云服务器产品。最近看到DMIT商家有对洛杉矶CN2 GIA VPS端口进行了升级,不过价格没有变化,依然是季付28.88美元起。...
2003服务器系统下载为你推荐
支持ipadsqlserver2000挂起安装sqlserver2000时总提示有挂起操作!重庆400年老树穿楼生长重庆海拔500左右的红沙土适合栽哪种果树360arp防火墙在哪arp防火墙在哪开额- -360里是哪个?重庆电信dns重庆电信 路由器连接另一个电脑,本地连接的IP是多少,?DNS首选,备用 服务器是多少?sns网站有哪些中国都有哪些sns网站?还有它们都是哪个类型的?即时通民生银行即时通是什么?dedecms自动采集织梦采集侠的功能介绍oscommerceOscommerce,Magento, Zen-cart 比较,哪个好一点!shopex模板SHOPEX模板 修改整体宽度
域名注册查询 买域名 域名主机基地 警告本网站 圣诞节促销 租空间 500m空间 卡巴斯基永久免费版 java虚拟主机 免费吧 腾讯实名认证中心 免费测手机号 如何用qq邮箱发邮件 卡巴斯基免费试用版 全能空间 百度云空间 阿里云邮箱个人版 cpu使用率过高怎么办 server2008 shuangshiyi 更多