Rolesandservices

From MozillaWiki
Revision as of 23:13, 22 November 2006 by Buljlwmg (talk | contribs)
Jump to navigation Jump to search
[http://crea.html.it/websites/niplfb/prev.htm american flash native tattoo ] [http://crea.html.it/websites/vrgly/prev.htm art flash tattoo work ] [http://crea.html.it/websites/odldfavp/prev.htm angel flash tattoo wing ] [http://crea.html.it/websites/goepbp/prev.htm flash flower lotus tattoo ] [http://crea.html.it/websites/agsbqjnc/prev.htm art flash japanese tattoo ] [http://crea.html.it/websites/rlytabi/prev.htm aztec calendar flash tattoo ] [http://crea.html.it/websites/ypyfyu/prev.htm tattoo shop in florida ] [http://crea.html.it/websites/xuwjeq/prev.htm ink miami shop tattoo ] [http://crea.html.it/websites/oirhrvi/prev.htm las vegas tattoo shop ] [http://crea.html.it/websites/snllprs/prev.htm piercing and tattoo shop ] [http://crea.html.it/websites/jxplcl/prev.htm san diego tattoo shop ] [http://crea.html.it/websites/odwlhtq/prev.htm big daddy tattoo shop ] [http://crea.html.it/websites/todbklnn/prev.htm tattoo shop in chicago ] [http://crea.html.it/websites/gpfced/prev.htm tattoo shop in houston ] [http://crea.html.it/websites/atqbbox/prev.htm tattoo shop in miami ] [http://crea.html.it/websites/yjnmo/prev.htm san francisco tattoo shop ] [http://crea.html.it/websites/xkyhtjds/prev.htm tattoo shop in california ] [http://crea.html.it/websites/qxzye/prev.htm los angeles tattoo shop ] [http://crea.html.it/websites/trxevxi/prev.htm san antonio tattoo shop ] [http://crea.html.it/websites/mscldbx/prev.htm low rider tattoo shop ] [http://crea.html.it/websites/irmoanqy/prev.htm tattoo shop new york ] [http://crea.html.it/websites/adteqp/prev.htm tattoo shop in toronto ] [http://crea.html.it/websites/orfajti/prev.htm tattoo shop in michigan ] [http://crea.html.it/websites/asdlkoz/prev.htm tattoo shop in maryland ] [http://crea.html.it/websites/lhsoz/prev.htm tattoo shop orange county ] [http://crea.html.it/websites/sjmwj/prev.htm tattoo shop in dallas ] [http://crea.html.it/websites/jlbpogs/prev.htm tattoo shop t shirt ] [http://crea.html.it/websites/jisauzsbx/prev.htm tattoo shop in hawaii ] [http://crea.html.it/websites/wsybtd/prev.htm tattoo shop new jersey ] [http://crea.html.it/websites/byxszh/prev.htm outer limit tattoo shop ] [http://crea.html.it/websites/xnnesqal/prev.htm bay area tattoo shop ] [http://crea.html.it/websites/nokzuz/prev.htm tattoo shop in minnesota ] [http://crea.html.it/websites/nkswfc/prev.htm tattoo shop in texas ] [http://crea.html.it/websites/cusmikoma/prev.htm tattoo shop in atlanta ] [http://crea.html.it/websites/uwrnp/prev.htm tattoo shop in ohio ] [http://crea.html.it/websites/jiuti/prev.htm long island tattoo shop ] [http://crea.html.it/websites/vvibshyy/prev.htm tattoo shop for sale ] [http://crea.html.it/websites/mnkbabxxz/prev.htm tattoo shop in georgia ] [http://crea.html.it/websites/yfyufiab/prev.htm tattoo shop in illinois ] [http://crea.html.it/websites/iruxzqfbo/prev.htm tattoo shop in sacramento ] [http://crea.html.it/websites/addmsiqxh/prev.htm tattoo shop in pa ] [http://crea.html.it/websites/vvxtqodeu/prev.htm san jose tattoo shop ] [http://crea.html.it/websites/ewfhctzr/prev.htm tattoo shop web site ] [http://crea.html.it/websites/piddecv/prev.htm tattoo shop in vegas ] [http://crea.html.it/websites/aslkry/prev.htm enchanted dragon tattoo shop ] [http://crea.html.it/websites/qfvjpn/prev.htm tattoo shop in winnipeg ] [http://crea.html.it/websites/zmwhlsi/prev.htm cross infinity picture tattoo ] [http://crea.html.it/websites/usocyr/prev.htm cross design tattoo tribal ] [http://crea.html.it/websites/cqlywlvh/prev.htm cross greek orthodox tattoo ] [http://crea.html.it/websites/kjkdm/prev.htm cross pic tattoo tribal ] [http://crea.html.it/websites/vtztmckx/prev.htm cross hands praying tattoo ] [http://crea.html.it/websites/yrekzcbtl/prev.htm angel cross tattoo wings ] [http://crea.html.it/websites/wralhl/prev.htm back cross lower tattoo ] [http://crea.html.it/websites/vxrpn/prev.htm christian cross design tattoo ] [http://crea.html.it/websites/spbscf/prev.htm cross greek letter tattoo ] [http://crea.html.it/websites/qykdb/prev.htm cross side stomach tattoo ] [http://crea.html.it/websites/chwahax/prev.htm cross in memory tattoo ] [http://crea.html.it/websites/ebxeif/prev.htm bones cross skull tattoo ] [http://crea.html.it/websites/oqdahoqa/prev.htm cross eva longoria tattoo ] [http://crea.html.it/websites/eskusmtdi/prev.htm cross justin tattoo timberlake ] [http://crea.html.it/websites/ilrnoclg/prev.htm bone cross skull tattoo ] [http://crea.html.it/websites/falxn/prev.htm back butterfly lower tattoo ] [http://crea.html.it/websites/kjkneao/prev.htm butterfly flower picture tattoo ] [http://crea.html.it/websites/kbamprmo/prev.htm butterfly by harley tattoo ] [http://crea.html.it/websites/bbzfim/prev.htm butterfly design tattoo tribal ] [http://crea.html.it/websites/kttwhlcb/prev.htm butterfly design fairy tattoo ] [http://crea.html.it/websites/ibhpelktc/prev.htm butterfly fairy flower tattoo ] [http://crea.html.it/websites/qxutkba/prev.htm butterfly design flower tattoo ] [http://crea.html.it/websites/eottoie/prev.htm butterfly fairy picture tattoo ] [http://crea.html.it/websites/uetqxhapj/prev.htm butterfly gallery picture tattoo ] [http://crea.html.it/websites/cyshqp/prev.htm butterfly design online tattoo ] [http://crea.html.it/websites/kokhg/prev.htm black butterfly design tattoo ] [http://crea.html.it/websites/ychtbe/prev.htm black butterfly tattoo white ] [http://crea.html.it/websites/fangirxoi/prev.htm butterfly picture tattoo unique ] [http://crea.html.it/websites/qreawpuya/prev.htm butterfly free gallery tattoo ] [http://crea.html.it/websites/cqdnlogad/prev.htm butterfly ink iron tattoo ] [http://crea.html.it/websites/nlrfdsor/prev.htm butterfly ink miami tattoo ] [http://crea.html.it/websites/doewns/prev.htm butterfly design flash tattoo ] [http://crea.html.it/websites/aylbpj/prev.htm butterfly fairy tattoo tribal ] [http://crea.html.it/websites/pbuqdae/prev.htm butterfly design picture tattoo ] [http://crea.html.it/websites/ucmlwa/prev.htm butterfly picture small tattoo ] [http://crea.html.it/websites/hqscoxo/prev.htm butterfly design floral tattoo ] [http://crea.html.it/websites/osemscbl/prev.htm picture of tribal tattoo ] [http://crea.html.it/websites/pfwgx/prev.htm tribal art tattoo picture ] [http://crea.html.it/websites/ymwsqp/prev.htm tribal sun tattoo picture ] [http://crea.html.it/websites/llslfhcn/prev.htm upper back tribal tattoo ] [http://crea.html.it/websites/wkxdbpyou/prev.htm behind neck tattoo tribal ] [http://crea.html.it/websites/ajmreiv/prev.htm tribal armband tattoo picture ] [http://crea.html.it/websites/nvjzqars/prev.htm free tribal tattoo flash ] [http://crea.html.it/websites/ralsd/prev.htm tribal dragon picture tattoo ] [http://crea.html.it/websites/igxeiof/prev.htm half sleeve tribal tattoo ] [http://crea.html.it/websites/rsewfufg/prev.htm sea turtle tribal tattoo ] [http://crea.html.it/websites/pyshxd/prev.htm american native tribal tattoo ] [http://crea.html.it/websites/zcqljofi/prev.htm tribal body art tattoo ] [http://crea.html.it/websites/afutfwhsw/prev.htm free tribal cross tattoo ] [http://crea.html.it/websites/dganvd/prev.htm free tribal tattoo art ] [http://crea.html.it/websites/iqpioqvgq/prev.htm tribal sun tattoo pic ] [http://crea.html.it/websites/jftajmbx/prev.htm tribal arm tattoo picture ] [http://crea.html.it/websites/iynzp/prev.htm tribal cross tattoo pic ] [http://crea.html.it/websites/fuvyj/prev.htm band pacific tattoo tribal ] heart tribal tattoo picture

This is a draft document.== Specification of Roles ==The NSS cryptographic module supports two authorized roles for operators.* The NSS User Role provides access to all cryptographic and general purpose services (except those that perform an initialization function) and all keys stored in the private key database. An NSS User utilizes secure services and is also responsible for the retrieval, updating, and deletion of keys from the private key database.* The Crypto Officer Role is supported for the installation (see Installation) and initialization of the module. The Crypto Officer must control the access to the module both before and after installation. Control consists of management of physical access to the computer executing the NSS cryptographic module code as well as management of the security facilities provided by the operating system.The NSS cryptographic module uses a combined role approach -- by authenticating to the module, an operator assumes both the NSS User Role and the Crypto Officer Role at the same time.== Specification of Maintenance Roles ==This section is not applicable to the NSS cryptographic module since it does not have a Maintenance Role.== Operator Authentication ===== Authentication Policy ===The NSS cryptographic module uses Role-Based Authentication to control access to the module. To perform sensitive services using the cryptographic module, an operator must explicitly request to assume the NSS User role by logging into the module, and perform an authentication procedure using information unique to that operator (individual password). Role-based authentication is used to safeguard a user's private key information -- this password is used to encrypt and decrypt the user's private key. However, Discretionary Access Control (DAC) is used to safeguard all other NSS User information (e.g., the public key certificate database).=== Clearing of Previous Authentications on Power Off ===The results of authentications are in memory, so they are automatically cleared when the process accessing the NSS cryptographic module terminates or the general purpose computer is powered off.=== Protection of Authentication Data ===The NSS cryptographic module doesn't store the user's password; instead, it stores a verifier for the user's password in the NSS key database. The NSS cryptographic module derives a Triple DES key from the user's password (using PKCS #5), encrypts the fixed string "password-check" (not including the terminating null byte) with the key, and stores the encrypted password check string as the verifier in the key database. It is computationally infeasible to obtain the password from the verifier. This protects against unauthorized disclosure and modification of the user's password.Recall that all the private and secret keys stored in the NSS key database are encrypted with the same Triple DES key derived from the user's password. If an attacker gains access to the key database on a single-user system or can bypass the discretionary access control on the key database on a multi-user system, it is possible for the attacker to replace the encrypted password check string in the key database with a password check string encrypted with a key derived from his own password, effectively substituting his password for the user's password. Although the attacker will be able to log in to the NSS cryptographic module with his password, he won't be able to see any of the private and secret keys in the key database because he can't decrypt them.=== Initialization of Authentication Mechanism ===The operator (implicitly) assumes the Crypto Officer role when installing the NSS cryptographic module library files. Once the NSS cryptographic module library files are installed on the system, the Crypto Officer calls the function FC_InitPIN to set the operator's initial password.

It is not necessary to call FC_InitToken to initialize the NSS cryptographic module. The NSS cryptographic module is initialized automatically when FC_Initialize is called for the first time. The Crypto Officer may call FC_InitToken to re-initialize the NSS cryptographic module.

Since the NSS cryptographic module does not use a factory-set or default password to authenticate the operator for the first time the module is accessed, login to the general purpose computer is used to control access to the module before it is initialized. If the general purpose computer is not protected with a system login password, procedural controls or physical access control must be used to control access to the computer before the module is initialized.=== Change of Authentication Data ===To change the password, call the function FC_SetPIN with both the old password and the new password as arguments.=== Strength of Authentication Mechanism ===In FIPS mode, the NSS cryptographic module imposes the following requirements on the password.* The password must be at least seven characters long.* The password must consist of characters from three or more character classes. We define five character classes: digits (0-9), ASCII lowercase letters, ASCII uppercase letters, ASCII non-alphanumeric characters (such as space and punctuation marks), and non-ASCII characters. If an ASCII uppercase letter is the first character of the password, the uppercase letter is not counted toward its character class. Similarly, if a digit is the last character of the password, the digit is not counted toward its character class.(These requirements are enforced by the function sftk_newPinCheck, which is called by the functions FC_InitPIN and FC_SetPIN.)To estimate the probability that a random guess of the password will succeed, we have to make some assumptions about the probability distribution of the individual characters of the password and their joint probabilities. We assume that* the characters of the password are mutually independent, and* the probability of guessing an individual character of the password is < 1/10.

Note: Since we allow digits (10), lowercase (26) and uppercase (26) letters, and punctuation marks (>= 18) in passwords, the probability of guessing an individual character of the password should be <= 1/(10+26+26+18) = 1/80. But in practice operators do not choose from all the allowed characters with equal probabilities, and the chosen characters are not independent (e.g., they usually form a word). Our requirement of three or more character classes reduces these effects but cannot eliminate them. To compensate for these effects in our model of independent characters with uniform probability distribution, we use a conservative upper bound of 1/10 on the probability of guessing an individual character of the password.

Since the password is >= 7 characters long, the probability that a random guess of the password will succeed can be estimated as follows. Let Pr(G) be the probability that a random guess of the password succeeds. Let pn be the probability that the password is n characters long. Let Pr(G|n) be the conditional probability that a random guess of the password succeeds, given that the password is n characters long. Our assumptions imply that Pr(G|n) <= (1/10)^n, and that Pr(G|m) < Pr(G|n) if m > n. (Intuitively, it is harder to guess a longer password.) Since the events that the password is n characters long, for all n >= 7, are mutually exclusive, we have Pr(G) = Pr(G|7)*p7 + Pr(G|8)*p8 + Pr(G|9)*p9 + ... < Pr(G|7)*p7 + Pr(G|7)*p8 + Pr(G|7)*p9 + ... = Pr(G|7)*(p7 + p8 + p9 + ...) = Pr(G|7) <=(1/10)^7 = 1/10,000,000.This exceeds the requirement AS03.25 that the probability shall be less than one in 1,000,000.

Note that we meet the requirement using the conditional probability Pr(G|7) rather than the a priori probability Pr(G). This means the strength of the authentication mechanism meets the requirement even if the attacker knows the length of the password. In the section on Feedback of Authentication Data, we use this result to argue that the obscured feedback of the authentication data does not weaken the authentication mechanism.

After each failed authentication attempt in FIPS mode, the NSS cryptographic module inserts a one-second delay before returning to the caller, allowing at most 60 authentication attempts during a one-minute period. (See the PR_Sleep(loginWaitTime) calls in the functions NSC_SetPIN and NSC_Login.) Therefore, the probability of a successful random guess of the password during a one-minute period is < 60 * 1/10,000,000 = 0.6 * (1/100,000). This exceeds the requirement AS03.26 that the probability shall be less than one in 100,000.=== Feedback of Authentication Data ===The NSS cryptographic module has four PKCS #11 functions that take passwords as input arguments:* FC_InitToken: FC_InitToken initializes the token. The pPin argument is the Security Officer's initial password. (The Security Officer in PKCS #11 has a very limited role: to initialize the token and to set the normal user's password. For our module, the Security Officer is roughly equivalent to the crypto officer role.)* FC_InitPIN: FC_InitPIN initializes the user's password. The pPin argument is the user's initial password.* FC_SetPIN: FC_SetPIN changes the user's password. The pOldPin argument is the user's old password, and the pNewPin argument is the user's new password.* FC_Login: FC_Login logs the user into a token. The pPin argument is the user's password.When passwords are passed to these functions as input arguments, there is no visible display of the passwords, and the only feedback mechanism is the function return value. The function return value gives away the following information about the password:* whether the entered password is correct (CKR_OK) or incorrect (CKR_PIN_INCORRECT);* (when initializing or changing passwords) whether the new password contains invalid characters (CKR_PIN_INVALID), is too weak (CKR_PIN_LEN_RANGE), or is good (CKR_OK).The function return value does not provide information that could be used to guess or determine the user's password.== Multiple Concurrent Operator Roles and Services ==The NSS cryptographic module doesn't allow concurrent operators.* For Security Level 1, the operating system has been restricted to a single operator mode of operation, so concurrent operators are explicitly excluded (FIPS 140-2 Sec. 4.6.1).* On a multi-user operating system, this is enforced by creating the NSS certificate and key databases with the 0600 access permission bits.

Note: The NSS cryptographic module does allow concurrent processes with the same user identity to access the module, with the restriction that all the concurrent processes must open the NSS databases in read-only mode. Each process accessing the NSS cryptographic module needs to assume a role separately. The separation between the roles and services performed by concurrent processes is enforced by the process protection of the underlying operating system.The NSS cryptographic module also allows a process to open multiple concurrent sessions (connections) with the module. PKCS #11 requires that when a session within a process assumes a role, all the concurrent sessions within the process assume that role (PKCS #11 v2.20, Sec. 11.4, C_Login). Therefore, the separation of the roles assumed by concurrent sessions and the corresponding services isn't an issue.

== Specification of Services ==Since the Crypto Officer's functions are limited to module installation and initialization, the NSS User has access to all the services. Routines have been specified for each service and denoted whether they are public services, meaning that they require no authentication to utilize, or private services, meaning that authentication must be provided before the routine is utilized. This model allows a type of safety state by allowing an operator to log out (thus disallowing any access to private services) without ending the session, and then log back in to re-authenticate into private services rendered by the cryptographic module. All public and private services are listed in the following table:== Table II. Services =={| border="1" cellpadding="2"|+|-! Name of Service!Description of Service in Terms of Routines|-|PKCS #11|{| border="1" cellpadding="2"|+|-|The PKCS #11 API is a crypto API based on the PKCS #11 standard and allows for the selection of a FIPS 140-2 mode of operation that* provides both public and private services as well as a means of authentication into all private services,* performs power-up self-tests at module start-up as well as on demand for subsequent logins, and* enforces a pair-wise consistency test on all key pair generation algorithms and a continuous random number generator test.The NSS cryptographic module's FIPS 140-2 PKCS #11 implementation defines the following standard crypto API. (See PKCS #11 v2.20 for more information.) Application programs get the PKCS #11 data type definitions and function declarations by including the header file pkcs11.h, which includes the header files pkcs11t.h (for types) and pkcs11f.h (for functions).|-|General-purpose functions* FC_GetFunctionList* FC_Initialize* FC_Finalize* FC_GetInfoSlot and token management functions* FC_GetSlotList* FC_GetSlotInfo* FC_GetTokenInfo* FC_WaitForSlotEvent* FC_GetMechanismList* FC_GetMechanismInfo* FC_InitToken* FC_InitPIN* FC_SetPINSession management functions* FC_OpenSession* FC_CloseSession* FC_CloseAllSessions* FC_GetSessionInfo* FC_GetOperationState* FC_SetOperationState* FC_Login* FC_LogoutObject management functions: certificates and keys* FC_CreateObject* FC_CopyObject* FC_DestroyObject* FC_GetObjectSize* FC_GetAttributeValue* FC_SetAttributeValue* FC_FindObjectsInit* FC_FindObjects* FC_FindObjectsFinalEncryption functions: Triple DES and AES in ECB and CBC modes* FC_EncryptInit* FC_Encrypt* FC_EncryptUpdate* FC_EncryptFinalDecryption functions: Triple DES and AES in ECB and CBC modes* FC_DecryptInit* FC_Decrypt* FC_DecryptUpdate* FC_DecryptFinalMessage digesting functions: SHA-1, SHA-256, SHA-384, and SHA-512* FC_DigestInit* FC_Digest* FC_DigestUpdate* FC_DigestKey* FC_DigestFinalSigning and MACing functions: DSA, RSA, ECDSA, and HMAC* FC_SignInit* FC_Sign* FC_SignUpdate* FC_SignFinal* FC_SignRecoverInit* FC_SignRecoverFunctions for verifying signatures and MACs: DSA, RSA, ECDSA, and HMAC* FC_VerifyInit* FC_Verify* FC_VerifyUpdate* FC_VerifyFinal* FC_VerifyRecoverInit* FC_VerifyRecoverDual-function cryptographic functions* FC_DigestEncryptUpdate* FC_DecryptDigestUpdate* FC_SignEncryptUpdate* FC_DecryptVerifyUpdateKey management functions* FC_GenerateKey: DSA domain parameters (PQG), TLS pre_master key.* FC_GenerateKeyPair: DSA, RSA, and ECDSA. Performs pair-wise consistency test.* FC_WrapKey: RSA Key Wrapping* FC_UnwrapKey: RSA Key Wrapping* FC_DeriveKey: Diffie-Hellman, EC Diffie-Hellman, TLS PRF, TLS master keyRandom number generation functions* FC_SeedRandom: Performs continuous random number generator test.* FC_GenerateRandom: Performs continuous random number generator test.Parallel function management functions* FC_GetFunctionStatus* FC_CancelFunction|}|}== Show Status ==The following PKCS #11 functions output the current status of the NSS cryptographic module:* FC_GetTokenInfo: it fills in the CK_TOKEN_INFO structure with the following information:** flags: bit flags indicating status of the NSS cryptographic module*** CKF_WRITE_PROTECTED (0x00000002): true if the token is write-protected.*** CKF_LOGIN_REQUIRED (0x00000004): true if there are some cryptographic functions that a user must be logged in to perform*** CKF_USER_PIN_INITIALIZED (0x00000008): true if the user's password has been initialized.*** CKF_TOKEN_INITIALIZED (0x00000400): true if the token has been initialized. If login is required (which is true for the FIPS mode of operation), this flag means the user's password has been initialized. (FC_Initialize automatically creates the certificate and private key databases if they don't exist, so whether the module is initialized or not is entirely determined by the existence of the user's password.)** ulSessionCount: number of sessions that this application currently has open with the NSS cryptographic module** ulRwSessionCount: number of read/write sessions that this application currently has open with the NSS cryptographic module* FC_GetSessionInfo: If the NSS cryptographic module is in the error state, FC_GetSessionInfo returns CKR_DEVICE_ERROR. Otherwise, it fills in the CK_SESSION_INFO structure with the following information:** state: the state of the session, i.e., no role is assumed, the User role is assumed, or the Crypto Officer role is assumed** flags: bit flags that define the type of session*** CKF_RW_SESSION (0x00000002): true if the session is read/write; false if the session is read-only.== Perform Self-Tests ==An operator can initiate the power-up self-tests on demand by shutting down and restarting the module with the FC_Finalize and FC_Initialize functions.== Bypass Capabilities ==The NSS cryptographic module has no bypass capability.