1 # 2 # This is the "master security properties file". 3 # 4 # In this file, various security properties are set for use by 5 # java.security classes. This is where users can statically register 6 # Cryptography Package Providers ("providers" for short). The term 7 # "provider" refers to a package or set of packages that supply a 8 # concrete implementation of a subset of the cryptography aspects of 9 # the Java Security API. A provider may, for example, implement one or 10 # more digital signature algorithms or message digest algorithms. 11 # 12 # Each provider must implement a subclass of the Provider class. 13 # To register a provider in this master security properties file, 14 # specify the Provider subclass name and priority in the format 15 # 16 # security.provider.<n>=<className> 17 # 18 # This declares a provider, and specifies its preference 19 # order n. The preference order is the order in which providers are 20 # searched for requested algorithms (when no specific provider is 21 # requested). The order is 1-based; 1 is the most preferred, followed 22 # by 2, and so on. 23 # 24 # <className> must specify the subclass of the Provider class whose 25 # constructor sets the values of various properties that are required 26 # for the Java Security API to look up the algorithms or other 27 # facilities implemented by the provider. 28 # 29 # There must be at least one provider specification in java.security. 30 # There is a default provider that comes standard with the JDK. It 31 # is called the "SUN" provider, and its Provider subclass 32 # named Sun appears in the sun.security.provider package. Thus, the 33 # "SUN" provider is registered via the following: 34 # 35 # security.provider.1=sun.security.provider.Sun 36 # 37 # (The number 1 is used for the default provider.) 38 # 39 # Note: Providers can be dynamically registered instead by calls to 40 # either the addProvider or insertProviderAt method in the Security 41 # class. 42 43 # 44 # List of providers and their preference orders (see above): 45 # 46 security.provider.1=sun.security.provider.Sun 47 security.provider.2=sun.security.rsa.SunRsaSign 48 security.provider.3=sun.security.ec.SunEC 49 security.provider.4=com.sun.net.ssl.internal.ssl.Provider 50 security.provider.5=com.sun.crypto.provider.SunJCE 51 security.provider.6=sun.security.jgss.SunProvider 52 security.provider.7=com.sun.security.sasl.Provider 53 security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI 54 security.provider.9=sun.security.smartcardio.SunPCSC 55 security.provider.10=apple.security.AppleProvider 56 57 # 58 # Select the source of seed data for SecureRandom. By default an 59 # attempt is made to use the entropy gathering device specified by 60 # the securerandom.source property. If an exception occurs when 61 # accessing the URL then the traditional system/thread activity 62 # algorithm is used. 63 # 64 # On Solaris and Linux systems, if file:/dev/urandom is specified and it 65 # exists, a special SecureRandom implementation is activated by default. 66 # This "NativePRNG" reads random bytes directly from /dev/urandom. 67 # 68 # On Windows systems, the URLs file:/dev/random and file:/dev/urandom 69 # enables use of the Microsoft CryptoAPI seed functionality. 70 # 71 securerandom.source=file:/dev/urandom 72 # 73 # The entropy gathering device is described as a URL and can also 74 # be specified with the system property "java.security.egd". For example, 75 # -Djava.security.egd=file:/dev/urandom 76 # Specifying this system property will override the securerandom.source 77 # setting. 78 79 # 80 # Class to instantiate as the javax.security.auth.login.Configuration 81 # provider. 82 # 83 login.configuration.provider=com.sun.security.auth.login.ConfigFile 84 85 # 86 # Default login configuration file 87 # 88 #login.config.url.1=file:${user.home}/.java.login.config 89 90 # 91 # Class to instantiate as the system Policy. This is the name of the class 92 # that will be used as the Policy object. 93 # 94 policy.provider=sun.security.provider.PolicyFile 95 96 # The default is to have a single system-wide policy file, 97 # and a policy file in the user's home directory. 98 policy.url.1=file:${java.home}/lib/security/java.policy 99 policy.url.2=file:${user.home}/.java.policy 100 101 # whether or not we expand properties in the policy file 102 # if this is set to false, properties (${...}) will not be expanded in policy 103 # files. 104 policy.expandProperties=true 105 106 # whether or not we allow an extra policy to be passed on the command line 107 # with -Djava.security.policy=somefile. Comment out this line to disable 108 # this feature. 109 policy.allowSystemProperty=true 110 111 # whether or not we look into the IdentityScope for trusted Identities 112 # when encountering a 1.1 signed JAR file. If the identity is found 113 # and is trusted, we grant it AllPermission. 114 policy.ignoreIdentityScope=false 115 116 # 117 # Default keystore type. 118 # 119 keystore.type=jks 120 121 # 122 # List of comma-separated packages that start with or equal this string 123 # will cause a security exception to be thrown when 124 # passed to checkPackageAccess unless the 125 # corresponding RuntimePermission ("accessClassInPackage."+package) has 126 # been granted. 127 package.access=sun.,\ 128 com.sun.xml.internal.,\ 129 com.sun.imageio.,\ 130 com.sun.istack.internal.,\ 131 com.sun.jmx.,\ 132 com.sun.proxy.,\ 133 com.sun.org.apache.bcel.internal.,\ 134 com.sun.org.apache.regexp.internal.,\ 135 com.sun.org.apache.xerces.internal.,\ 136 com.sun.org.apache.xpath.internal.,\ 137 com.sun.org.apache.xalan.internal.extensions.,\ 138 com.sun.org.apache.xalan.internal.lib.,\ 139 com.sun.org.apache.xalan.internal.res.,\ 140 com.sun.org.apache.xalan.internal.templates.,\ 141 com.sun.org.apache.xalan.internal.utils.,\ 142 com.sun.org.apache.xalan.internal.xslt.,\ 143 com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ 144 com.sun.org.apache.xalan.internal.xsltc.compiler.,\ 145 com.sun.org.apache.xalan.internal.xsltc.trax.,\ 146 com.sun.org.apache.xalan.internal.xsltc.util.,\ 147 com.sun.org.apache.xml.internal.res.,\ 148 com.sun.org.apache.xml.internal.serializer.utils.,\ 149 com.sun.org.apache.xml.internal.utils.,\ 150 com.sun.org.apache.xml.internal.security.,\ 151 com.sun.org.glassfish.,\ 152 org.jcp.xml.dsig.internal.,\ 153 oracle.jrockit.jfr.,\ 154 apple. 155 156 # 157 # List of comma-separated packages that start with or equal this string 158 # will cause a security exception to be thrown when 159 # passed to checkPackageDefinition unless the 160 # corresponding RuntimePermission ("defineClassInPackage."+package) has 161 # been granted. 162 # 163 # by default, none of the class loaders supplied with the JDK call 164 # checkPackageDefinition. 165 # 166 package.definition=sun.,\ 167 com.sun.xml.internal.,\ 168 com.sun.imageio.,\ 169 com.sun.istack.internal.,\ 170 com.sun.jmx.,\ 171 com.sun.proxy.,\ 172 com.sun.org.apache.bcel.internal.,\ 173 com.sun.org.apache.regexp.internal.,\ 174 com.sun.org.apache.xerces.internal.,\ 175 com.sun.org.apache.xpath.internal.,\ 176 com.sun.org.apache.xalan.internal.extensions.,\ 177 com.sun.org.apache.xalan.internal.lib.,\ 178 com.sun.org.apache.xalan.internal.res.,\ 179 com.sun.org.apache.xalan.internal.templates.,\ 180 com.sun.org.apache.xalan.internal.utils.,\ 181 com.sun.org.apache.xalan.internal.xslt.,\ 182 com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ 183 com.sun.org.apache.xalan.internal.xsltc.compiler.,\ 184 com.sun.org.apache.xalan.internal.xsltc.trax.,\ 185 com.sun.org.apache.xalan.internal.xsltc.util.,\ 186 com.sun.org.apache.xml.internal.res.,\ 187 com.sun.org.apache.xml.internal.serializer.utils.,\ 188 com.sun.org.apache.xml.internal.utils.,\ 189 com.sun.org.apache.xml.internal.security.,\ 190 com.sun.org.glassfish.,\ 191 org.jcp.xml.dsig.internal.,\ 192 oracle.jrockit.jfr.,\ 193 apple. 194 195 # 196 # Determines whether this properties file can be appended to 197 # or overridden on the command line via -Djava.security.properties 198 # 199 security.overridePropertiesFile=true 200 201 # 202 # Determines the default key and trust manager factory algorithms for 203 # the javax.net.ssl package. 204 # 205 ssl.KeyManagerFactory.algorithm=SunX509 206 ssl.TrustManagerFactory.algorithm=PKIX 207 208 # 209 # The Java-level namelookup cache policy for successful lookups: 210 # 211 # any negative value: caching forever 212 # any positive value: the number of seconds to cache an address for 213 # zero: do not cache 214 # 215 # default value is forever (FOREVER). For security reasons, this 216 # caching is made forever when a security manager is set. When a security 217 # manager is not set, the default behavior in this implementation 218 # is to cache for 30 seconds. 219 # 220 # NOTE: setting this to anything other than the default value can have 221 # serious security implications. Do not set it unless 222 # you are sure you are not exposed to DNS spoofing attack. 223 # 224 #networkaddress.cache.ttl=-1 225 226 # The Java-level namelookup cache policy for failed lookups: 227 # 228 # any negative value: cache forever 229 # any positive value: the number of seconds to cache negative lookup results 230 # zero: do not cache 231 # 232 # In some Microsoft Windows networking environments that employ 233 # the WINS name service in addition to DNS, name service lookups 234 # that fail may take a noticeably long time to return (approx. 5 seconds). 235 # For this reason the default caching policy is to maintain these 236 # results for 10 seconds. 237 # 238 # 239 networkaddress.cache.negative.ttl=10 240 241 # 242 # Properties to configure OCSP for certificate revocation checking 243 # 244 245 # Enable OCSP 246 # 247 # By default, OCSP is not used for certificate revocation checking. 248 # This property enables the use of OCSP when set to the value "true". 249 # 250 # NOTE: SocketPermission is required to connect to an OCSP responder. 251 # 252 # Example, 253 # ocsp.enable=true 254 255 # 256 # Location of the OCSP responder 257 # 258 # By default, the location of the OCSP responder is determined implicitly 259 # from the certificate being validated. This property explicitly specifies 260 # the location of the OCSP responder. The property is used when the 261 # Authority Information Access extension (defined in RFC 3280) is absent 262 # from the certificate or when it requires overriding. 263 # 264 # Example, 265 # ocsp.responderURL=http://ocsp.example.net:80 266 267 # 268 # Subject name of the OCSP responder's certificate 269 # 270 # By default, the certificate of the OCSP responder is that of the issuer 271 # of the certificate being validated. This property identifies the certificate 272 # of the OCSP responder when the default does not apply. Its value is a string 273 # distinguished name (defined in RFC 2253) which identifies a certificate in 274 # the set of certificates supplied during cert path validation. In cases where 275 # the subject name alone is not sufficient to uniquely identify the certificate 276 # then both the "ocsp.responderCertIssuerName" and 277 # "ocsp.responderCertSerialNumber" properties must be used instead. When this 278 # property is set then those two properties are ignored. 279 # 280 # Example, 281 # ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp" 282 283 # 284 # Issuer name of the OCSP responder's certificate 285 # 286 # By default, the certificate of the OCSP responder is that of the issuer 287 # of the certificate being validated. This property identifies the certificate 288 # of the OCSP responder when the default does not apply. Its value is a string 289 # distinguished name (defined in RFC 2253) which identifies a certificate in 290 # the set of certificates supplied during cert path validation. When this 291 # property is set then the "ocsp.responderCertSerialNumber" property must also 292 # be set. When the "ocsp.responderCertSubjectName" property is set then this 293 # property is ignored. 294 # 295 # Example, 296 # ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp" 297 298 # 299 # Serial number of the OCSP responder's certificate 300 # 301 # By default, the certificate of the OCSP responder is that of the issuer 302 # of the certificate being validated. This property identifies the certificate 303 # of the OCSP responder when the default does not apply. Its value is a string 304 # of hexadecimal digits (colon or space separators may be present) which 305 # identifies a certificate in the set of certificates supplied during cert path 306 # validation. When this property is set then the "ocsp.responderCertIssuerName" 307 # property must also be set. When the "ocsp.responderCertSubjectName" property 308 # is set then this property is ignored. 309 # 310 # Example, 311 # ocsp.responderCertSerialNumber=2A:FF:00 312 313 # 314 # Policy for failed Kerberos KDC lookups: 315 # 316 # When a KDC is unavailable (network error, service failure, etc), it is 317 # put inside a blacklist and accessed less often for future requests. The 318 # value (case-insensitive) for this policy can be: 319 # 320 # tryLast 321 # KDCs in the blacklist are always tried after those not on the list. 322 # 323 # tryLess[:max_retries,timeout] 324 # KDCs in the blacklist are still tried by their order in the configuration, 325 # but with smaller max_retries and timeout values. max_retries and timeout 326 # are optional numerical parameters (default 1 and 5000, which means once 327 # and 5 seconds). Please notes that if any of the values defined here is 328 # more than what is defined in krb5.conf, it will be ignored. 329 # 330 # Whenever a KDC is detected as available, it is removed from the blacklist. 331 # The blacklist is reset when krb5.conf is reloaded. You can add 332 # refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is 333 # reloaded whenever a JAAS authentication is attempted. 334 # 335 # Example, 336 # krb5.kdc.bad.policy = tryLast 337 # krb5.kdc.bad.policy = tryLess:2,2000 338 krb5.kdc.bad.policy = tryLast 339 340 # Algorithm restrictions for certification path (CertPath) processing 341 # 342 # In some environments, certain algorithms or key lengths may be undesirable 343 # for certification path building and validation. For example, "MD2" is 344 # generally no longer considered to be a secure hash algorithm. This section 345 # describes the mechanism for disabling algorithms based on algorithm name 346 # and/or key length. This includes algorithms used in certificates, as well 347 # as revocation information such as CRLs and signed OCSP Responses. 348 # 349 # The syntax of the disabled algorithm string is described as this Java 350 # BNF-style: 351 # DisabledAlgorithms: 352 # " DisabledAlgorithm { , DisabledAlgorithm } " 353 # 354 # DisabledAlgorithm: 355 # AlgorithmName [Constraint] 356 # 357 # AlgorithmName: 358 # (see below) 359 # 360 # Constraint: 361 # KeySizeConstraint 362 # 363 # KeySizeConstraint: 364 # keySize Operator DecimalInteger 365 # 366 # Operator: 367 # <= | < | == | != | >= | > 368 # 369 # DecimalInteger: 370 # DecimalDigits 371 # 372 # DecimalDigits: 373 # DecimalDigit {DecimalDigit} 374 # 375 # DecimalDigit: one of 376 # 1 2 3 4 5 6 7 8 9 0 377 # 378 # The "AlgorithmName" is the standard algorithm name of the disabled 379 # algorithm. See "Java Cryptography Architecture Standard Algorithm Name 380 # Documentation" for information about Standard Algorithm Names. Matching 381 # is performed using a case-insensitive sub-element matching rule. (For 382 # example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and 383 # "ECDSA" for signatures.) If the assertion "AlgorithmName" is a 384 # sub-element of the certificate algorithm name, the algorithm will be 385 # rejected during certification path building and validation. For example, 386 # the assertion algorithm name "DSA" will disable all certificate algorithms 387 # that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion 388 # will not disable algorithms related to "ECDSA". 389 # 390 # A "Constraint" provides further guidance for the algorithm being specified. 391 # The "KeySizeConstraint" requires a key of a valid size range if the 392 # "AlgorithmName" is of a key algorithm. The "DecimalInteger" indicates the 393 # key size specified in number of bits. For example, "RSA keySize <= 1024" 394 # indicates that any RSA key with key size less than or equal to 1024 bits 395 # should be disabled, and "RSA keySize < 1024, RSA keySize > 2048" indicates 396 # that any RSA key with key size less than 1024 or greater than 2048 should 397 # be disabled. Note that the "KeySizeConstraint" only makes sense to key 398 # algorithms. 399 # 400 # Note: This property is currently used by Oracle's PKIX implementation. It 401 # is not guaranteed to be examined and used by other implementations. 402 # 403 # Example: 404 # jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 405 # 406 # 407 jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024 408 409 # Algorithm restrictions for Secure Socket Layer/Transport Layer Security 410 # (SSL/TLS) processing 411 # 412 # In some environments, certain algorithms or key lengths may be undesirable 413 # when using SSL/TLS. This section describes the mechanism for disabling 414 # algorithms during SSL/TLS security parameters negotiation, including cipher 415 # suites selection, peer authentication and key exchange mechanisms. 416 # 417 # For PKI-based peer authentication and key exchange mechanisms, this list 418 # of disabled algorithms will also be checked during certification path 419 # building and validation, including algorithms used in certificates, as 420 # well as revocation information such as CRLs and signed OCSP Responses. 421 # This is in addition to the jdk.certpath.disabledAlgorithms property above. 422 # 423 # See the specification of "jdk.certpath.disabledAlgorithms" for the 424 # syntax of the disabled algorithm string. 425 # 426 # Note: This property is currently used by Oracle's JSSE implementation. 427 # It is not guaranteed to be examined and used by other implementations. 428 # 429 # Example: 430 # jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 431