java.security 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378
  1. #
  2. # This is the "master security properties file".
  3. #
  4. # An alternate java.security properties file may be specified
  5. # from the command line via the system property
  6. #
  7. # -Djava.security.properties=<URL>
  8. #
  9. # This properties file appends to the master security properties file.
  10. # If both properties files specify values for the same key, the value
  11. # from the command-line properties file is selected, as it is the last
  12. # one loaded.
  13. #
  14. # Also, if you specify
  15. #
  16. # -Djava.security.properties==<URL> (2 equals),
  17. #
  18. # then that properties file completely overrides the master security
  19. # properties file.
  20. #
  21. # To disable the ability to specify an additional properties file from
  22. # the command line, set the key security.overridePropertiesFile
  23. # to false in the master security properties file. It is set to true
  24. # by default.
  25. #
  26. # If this properties file fails to load, the JDK implementation will throw
  27. # an unspecified error when initializing the java.security.Security class.
  28. # In this file, various security properties are set for use by
  29. # java.security classes. This is where users can statically register
  30. # Cryptography Package Providers ("providers" for short). The term
  31. # "provider" refers to a package or set of packages that supply a
  32. # concrete implementation of a subset of the cryptography aspects of
  33. # the Java Security API. A provider may, for example, implement one or
  34. # more digital signature algorithms or message digest algorithms.
  35. #
  36. # Each provider must implement a subclass of the Provider class.
  37. # To register a provider in this master security properties file,
  38. # specify the provider and priority in the format
  39. #
  40. # security.provider.<n>=<provName | className>
  41. #
  42. # This declares a provider, and specifies its preference
  43. # order n. The preference order is the order in which providers are
  44. # searched for requested algorithms (when no specific provider is
  45. # requested). The order is 1-based; 1 is the most preferred, followed
  46. # by 2, and so on.
  47. #
  48. # <provName> must specify the name of the Provider as passed to its super
  49. # class java.security.Provider constructor. This is for providers loaded
  50. # through the ServiceLoader mechanism.
  51. #
  52. # <className> must specify the subclass of the Provider class whose
  53. # constructor sets the values of various properties that are required
  54. # for the Java Security API to look up the algorithms or other
  55. # facilities implemented by the provider. This is for providers loaded
  56. # through classpath.
  57. #
  58. # Note: Providers can be dynamically registered instead by calls to
  59. # either the addProvider or insertProviderAt method in the Security
  60. # class.
  61. #
  62. # List of providers and their preference orders (see above):
  63. #
  64. security.provider.1=SUN
  65. security.provider.2=SunRsaSign
  66. security.provider.3=SunEC
  67. security.provider.4=SunJSSE
  68. security.provider.5=SunJCE
  69. security.provider.6=SunJGSS
  70. security.provider.7=SunSASL
  71. security.provider.8=XMLDSig
  72. security.provider.9=SunPCSC
  73. security.provider.10=JdkLDAP
  74. security.provider.11=JdkSASL
  75. security.provider.12=SunMSCAPI
  76. security.provider.13=SunPKCS11
  77. #
  78. # A list of preferred providers for specific algorithms. These providers will
  79. # be searched for matching algorithms before the list of registered providers.
  80. # Entries containing errors (parsing, etc) will be ignored. Use the
  81. # -Djava.security.debug=jca property to debug these errors.
  82. #
  83. # The property is a comma-separated list of serviceType.algorithm:provider
  84. # entries. The serviceType (example: "MessageDigest") is optional, and if
  85. # not specified, the algorithm applies to all service types that support it.
  86. # The algorithm is the standard algorithm name or transformation.
  87. # Transformations can be specified in their full standard name
  88. # (ex: AES/CBC/PKCS5Padding), or as partial matches (ex: AES, AES/CBC).
  89. # The provider is the name of the provider. Any provider that does not
  90. # also appear in the registered list will be ignored.
  91. #
  92. # There is a special serviceType for this property only to group a set of
  93. # algorithms together. The type is "Group" and is followed by an algorithm
  94. # keyword. Groups are to simplify and lessen the entries on the property
  95. # line. Current groups are:
  96. # Group.SHA2 = SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256
  97. # Group.HmacSHA2 = HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512
  98. # Group.SHA2RSA = SHA224withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA
  99. # Group.SHA2DSA = SHA224withDSA, SHA256withDSA, SHA384withDSA, SHA512withDSA
  100. # Group.SHA2ECDSA = SHA224withECDSA, SHA256withECDSA, SHA384withECDSA, \
  101. # SHA512withECDSA
  102. # Group.SHA3 = SHA3-224, SHA3-256, SHA3-384, SHA3-512
  103. # Group.HmacSHA3 = HmacSHA3-224, HmacSHA3-256, HmacSHA3-384, HmacSHA3-512
  104. #
  105. # Example:
  106. # jdk.security.provider.preferred=AES/GCM/NoPadding:SunJCE, \
  107. # MessageDigest.SHA-256:SUN, Group.HmacSHA2:SunJCE
  108. #
  109. #jdk.security.provider.preferred=
  110. #
  111. # Sun Provider SecureRandom seed source.
  112. #
  113. # Select the primary source of seed data for the "NativePRNG", "SHA1PRNG"
  114. # and "DRBG" SecureRandom implementations in the "Sun" provider.
  115. # (Other SecureRandom implementations might also use this property.)
  116. #
  117. # On Unix-like systems (for example, Linux/MacOS), the
  118. # "NativePRNG", "SHA1PRNG" and "DRBG" implementations obtains seed data from
  119. # special device files such as file:/dev/random.
  120. #
  121. # On Windows systems, specifying the URLs "file:/dev/random" or
  122. # "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding
  123. # mechanism for SHA1PRNG and DRBG.
  124. #
  125. # By default, an attempt is made to use the entropy gathering device
  126. # specified by the "securerandom.source" Security property. If an
  127. # exception occurs while accessing the specified URL:
  128. #
  129. # NativePRNG:
  130. # a default value of /dev/random will be used. If neither
  131. # are available, the implementation will be disabled.
  132. # "file" is the only currently supported protocol type.
  133. #
  134. # SHA1PRNG and DRBG:
  135. # the traditional system/thread activity algorithm will be used.
  136. #
  137. # The entropy gathering device can also be specified with the System
  138. # property "java.security.egd". For example:
  139. #
  140. # % java -Djava.security.egd=file:/dev/random MainClass
  141. #
  142. # Specifying this System property will override the
  143. # "securerandom.source" Security property.
  144. #
  145. # In addition, if "file:/dev/random" or "file:/dev/urandom" is
  146. # specified, the "NativePRNG" implementation will be more preferred than
  147. # DRBG and SHA1PRNG in the Sun provider.
  148. #
  149. securerandom.source=file:/dev/random
  150. #
  151. # A list of known strong SecureRandom implementations.
  152. #
  153. # To help guide applications in selecting a suitable strong
  154. # java.security.SecureRandom implementation, Java distributions should
  155. # indicate a list of known strong implementations using the property.
  156. #
  157. # This is a comma-separated list of algorithm and/or algorithm:provider
  158. # entries.
  159. #
  160. securerandom.strongAlgorithms=Windows-PRNG:SunMSCAPI,DRBG:SUN
  161. #
  162. # Sun provider DRBG configuration and default instantiation request.
  163. #
  164. # NIST SP 800-90Ar1 lists several DRBG mechanisms. Each can be configured
  165. # with a DRBG algorithm name, and can be instantiated with a security strength,
  166. # prediction resistance support, etc. This property defines the configuration
  167. # and the default instantiation request of "DRBG" SecureRandom implementations
  168. # in the SUN provider. (Other DRBG implementations can also use this property.)
  169. # Applications can request different instantiation parameters like security
  170. # strength, capability, personalization string using one of the
  171. # getInstance(...,SecureRandomParameters,...) methods with a
  172. # DrbgParameters.Instantiation argument, but other settings such as the
  173. # mechanism and DRBG algorithm names are not currently configurable by any API.
  174. #
  175. # Please note that the SUN implementation of DRBG always supports reseeding.
  176. #
  177. # The value of this property is a comma-separated list of all configurable
  178. # aspects. The aspects can appear in any order but the same aspect can only
  179. # appear at most once. Its BNF-style definition is:
  180. #
  181. # Value:
  182. # aspect { "," aspect }
  183. #
  184. # aspect:
  185. # mech_name | algorithm_name | strength | capability | df
  186. #
  187. # // The DRBG mechanism to use. Default "Hash_DRBG"
  188. # mech_name:
  189. # "Hash_DRBG" | "HMAC_DRBG" | "CTR_DRBG"
  190. #
  191. # // The DRBG algorithm name. The "SHA-***" names are for Hash_DRBG and
  192. # // HMAC_DRBG, default "SHA-256". The "AES-***" names are for CTR_DRBG,
  193. # // default "AES-128" when using the limited cryptographic or "AES-256"
  194. # // when using the unlimited.
  195. # algorithm_name:
  196. # "SHA-224" | "SHA-512/224" | "SHA-256" |
  197. # "SHA-512/256" | "SHA-384" | "SHA-512" |
  198. # "AES-128" | "AES-192" | "AES-256"
  199. #
  200. # // Security strength requested. Default "128"
  201. # strength:
  202. # "112" | "128" | "192" | "256"
  203. #
  204. # // Prediction resistance and reseeding request. Default "none"
  205. # // "pr_and_reseed" - Both prediction resistance and reseeding
  206. # // support requested
  207. # // "reseed_only" - Only reseeding support requested
  208. # // "none" - Neither prediction resistance not reseeding
  209. # // support requested
  210. # pr:
  211. # "pr_and_reseed" | "reseed_only" | "none"
  212. #
  213. # // Whether a derivation function should be used. only applicable
  214. # // to CTR_DRBG. Default "use_df"
  215. # df:
  216. # "use_df" | "no_df"
  217. #
  218. # Examples,
  219. # securerandom.drbg.config=Hash_DRBG,SHA-224,112,none
  220. # securerandom.drbg.config=CTR_DRBG,AES-256,192,pr_and_reseed,use_df
  221. #
  222. # The default value is an empty string, which is equivalent to
  223. # securerandom.drbg.config=Hash_DRBG,SHA-256,128,none
  224. #
  225. securerandom.drbg.config=
  226. #
  227. # Class to instantiate as the javax.security.auth.login.Configuration
  228. # provider.
  229. #
  230. login.configuration.provider=sun.security.provider.ConfigFile
  231. #
  232. # Default login configuration file
  233. #
  234. #login.config.url.1=file:${user.home}/.java.login.config
  235. #
  236. # Class to instantiate as the system Policy. This is the name of the class
  237. # that will be used as the Policy object. The system class loader is used to
  238. # locate this class.
  239. #
  240. policy.provider=sun.security.provider.PolicyFile
  241. # The default is to have a single system-wide policy file,
  242. # and a policy file in the user's home directory.
  243. #
  244. policy.url.1=file:${java.home}/conf/security/java.policy
  245. policy.url.2=file:${user.home}/.java.policy
  246. # Controls whether or not properties are expanded in policy and login
  247. # configuration files. If set to false, properties (${...}) will not
  248. # be expanded in policy and login configuration files. If commented out or
  249. # set to an empty string, the default value is "false" for policy files and
  250. # "true" for login configuration files.
  251. #
  252. policy.expandProperties=true
  253. # Controls whether or not an extra policy or login configuration file is
  254. # allowed to be passed on the command line with -Djava.security.policy=somefile
  255. # or -Djava.security.auth.login.config=somefile. If commented out or set to
  256. # an empty string, the default value is "false".
  257. #
  258. policy.allowSystemProperty=true
  259. # whether or not we look into the IdentityScope for trusted Identities
  260. # when encountering a 1.1 signed JAR file. If the identity is found
  261. # and is trusted, we grant it AllPermission. Note: the default policy
  262. # provider (sun.security.provider.PolicyFile) does not support this property.
  263. #
  264. policy.ignoreIdentityScope=false
  265. #
  266. # Default keystore type.
  267. #
  268. keystore.type=pkcs12
  269. #
  270. # Controls compatibility mode for JKS and PKCS12 keystore types.
  271. #
  272. # When set to 'true', both JKS and PKCS12 keystore types support loading
  273. # keystore files in either JKS or PKCS12 format. When set to 'false' the
  274. # JKS keystore type supports loading only JKS keystore files and the PKCS12
  275. # keystore type supports loading only PKCS12 keystore files.
  276. #
  277. keystore.type.compat=true
  278. #
  279. # List of comma-separated packages that start with or equal this string
  280. # will cause a security exception to be thrown when passed to the
  281. # SecurityManager::checkPackageAccess method unless the corresponding
  282. # RuntimePermission("accessClassInPackage."+package) has been granted.
  283. #
  284. package.access=sun.misc.,\
  285. sun.reflect.
  286. #
  287. # List of comma-separated packages that start with or equal this string
  288. # will cause a security exception to be thrown when passed to the
  289. # SecurityManager::checkPackageDefinition method unless the corresponding
  290. # RuntimePermission("defineClassInPackage."+package) has been granted.
  291. #
  292. # By default, none of the class loaders supplied with the JDK call
  293. # checkPackageDefinition.
  294. #
  295. package.definition=sun.misc.,\
  296. sun.reflect.
  297. #
  298. # Determines whether this properties file can be appended to
  299. # or overridden on the command line via -Djava.security.properties
  300. #
  301. security.overridePropertiesFile=true
  302. #
  303. # Determines the default key and trust manager factory algorithms for
  304. # the javax.net.ssl package.
  305. #
  306. ssl.KeyManagerFactory.algorithm=SunX509
  307. ssl.TrustManagerFactory.algorithm=PKIX
  308. #
  309. # The Java-level namelookup cache policy for successful lookups:
  310. #
  311. # any negative value: caching forever
  312. # any positive value: the number of seconds to cache an address for
  313. # zero: do not cache
  314. #
  315. # default value is forever (FOREVER). For security reasons, this
  316. # caching is made forever when a security manager is set. When a security
  317. # manager is not set, the default behavior in this implementation
  318. # is to cache for 30 seconds.
  319. #
  320. # NOTE: setting this to anything other than the default value can have
  321. # serious security implications. Do not set it unless
  322. # you are sure you are not exposed to DNS spoofing attack.
  323. #
  324. #networkaddress.cache.ttl=-1
  325. # The Java-level namelookup cache policy for failed lookups:
  326. #
  327. # any negative value: cache forever
  328. # any positive value: the number of seconds to cache negative lookup results
  329. # zero: do not cache
  330. #
  331. # In some Microsoft Windows networking environments that employ
  332. # the WINS name service in addition to DNS, name service lookups
  333. # that fail may take a noticeably long time to return (approx. 5 seconds).
  334. # For this reason the default caching policy is to maintain these
  335. # results for 10 seconds.
  336. #
  337. networkaddress.cache.negative.ttl=10
  338. #
  339. # Properties to configure OCSP for certificate revocation checking
  340. #
  341. # Enable OCSP
  342. #
  343. # By default, OCSP is not used for certificate revocation checking.
  344. # This property enables the use of OCSP when set to the value "true".
  345. #
  346. # NOTE: SocketPermission is required to connect to an OCSP responder.
  347. #
  348. # Example,
  349. # ocsp.enable=true
  350. #
  351. # Location of the OCSP responder
  352. #
  353. # By default, the location of the OCSP responder is determined implicitly
  354. # from the certificate being validated. This property explicitly specifies
  355. # the location of the OCSP responder. The property is used when the
  356. # Authority Information Access extension (defined in RFC 5280) is absent
  357. # from the certificate or when it requires overriding.
  358. #
  359. # Example,
  360. # ocsp.responderURL=http://ocsp.example.net:80
  361. #
  362. # Subject name of the OCSP responder's certificate
  363. #
  364. # By default, the certificate of the OCSP responder is that of the issuer
  365. # of the certificate being validated. This property identifies the certificate
  366. # of the OCSP responder when the default does not apply. Its value is a string
  367. # distinguished name (defined in RFC 2253) which identifies a certificate in
  368. # the set of certificates supplied during cert path validation. In cases where
  369. # the subject name alone is not sufficient to uniquely identify the certificate
  370. # then both the "ocsp.responderCertIssuerName" and
  371. # "ocsp.responderCertSerialNumber" properties must be used instead. When this
  372. # property is set then those two properties are ignored.
  373. #
  374. # Example,
  375. # ocsp.responderCertSubjectName=CN=OCSP Responder, O=XYZ Corp
  376. #
  377. # Issuer name of the OCSP responder's certificate
  378. #
  379. # By default, the certificate of the OCSP responder is that of the issuer
  380. # of the certificate being validated. This property identifies the certificate
  381. # of the OCSP responder when the default does not apply. Its value is a string
  382. # distinguished name (defined in RFC 2253) which identifies a certificate in
  383. # the set of certificates supplied during cert path validation. When this
  384. # property is set then the "ocsp.responderCertSerialNumber" property must also
  385. # be set. When the "ocsp.responderCertSubjectName" property is set then this
  386. # property is ignored.
  387. #
  388. # Example,
  389. # ocsp.responderCertIssuerName=CN=Enterprise CA, O=XYZ Corp
  390. #
  391. # Serial number of the OCSP responder's certificate
  392. #
  393. # By default, the certificate of the OCSP responder is that of the issuer
  394. # of the certificate being validated. This property identifies the certificate
  395. # of the OCSP responder when the default does not apply. Its value is a string
  396. # of hexadecimal digits (colon or space separators may be present) which
  397. # identifies a certificate in the set of certificates supplied during cert path
  398. # validation. When this property is set then the "ocsp.responderCertIssuerName"
  399. # property must also be set. When the "ocsp.responderCertSubjectName" property
  400. # is set then this property is ignored.
  401. #
  402. # Example,
  403. # ocsp.responderCertSerialNumber=2A:FF:00
  404. #
  405. # Policy for failed Kerberos KDC lookups:
  406. #
  407. # When a KDC is unavailable (network error, service failure, etc), it is
  408. # put inside a secondary list and accessed less often for future requests. The
  409. # value (case-insensitive) for this policy can be:
  410. #
  411. # tryLast
  412. # KDCs in the secondary list are always tried after those not on the list.
  413. #
  414. # tryLess[:max_retries,timeout]
  415. # KDCs in the secondary list are still tried by their order in the
  416. # configuration, but with smaller max_retries and timeout values.
  417. # max_retries and timeout are optional numerical parameters (default 1 and
  418. # 5000, which means once and 5 seconds). Please note that if any of the
  419. # values defined here are more than what is defined in krb5.conf, it will be
  420. # ignored.
  421. #
  422. # Whenever a KDC is detected as available, it is removed from the secondary
  423. # list. The secondary list is reset when krb5.conf is reloaded. You can add
  424. # refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is
  425. # reloaded whenever a JAAS authentication is attempted.
  426. #
  427. # Example,
  428. # krb5.kdc.bad.policy = tryLast
  429. # krb5.kdc.bad.policy = tryLess:2,2000
  430. #
  431. krb5.kdc.bad.policy = tryLast
  432. #
  433. # Kerberos cross-realm referrals (RFC 6806)
  434. #
  435. # OpenJDK's Kerberos client supports cross-realm referrals as defined in
  436. # RFC 6806. This allows to setup more dynamic environments in which clients
  437. # do not need to know in advance how to reach the realm of a target principal
  438. # (either a user or service).
  439. #
  440. # When a client issues an AS or a TGS request, the "canonicalize" option
  441. # is set to announce support of this feature. A KDC server may fulfill the
  442. # request or reply referring the client to a different one. If referred,
  443. # the client will issue a new request and the cycle repeats.
  444. #
  445. # In addition to referrals, the "canonicalize" option allows the KDC server
  446. # to change the client name in response to an AS request. For security reasons,
  447. # RFC 6806 (section 11) FAST scheme is enforced.
  448. #
  449. # Disable Kerberos cross-realm referrals. Value may be overwritten with a
  450. # System property (-Dsun.security.krb5.disableReferrals).
  451. sun.security.krb5.disableReferrals=false
  452. # Maximum number of AS or TGS referrals to avoid infinite loops. Value may
  453. # be overwritten with a System property (-Dsun.security.krb5.maxReferrals).
  454. sun.security.krb5.maxReferrals=5
  455. #
  456. # This property contains a list of disabled EC Named Curves that can be included
  457. # in the jdk.[tls|certpath|jar].disabledAlgorithms properties. To include this
  458. # list in any of the disabledAlgorithms properties, add the property name as
  459. # an entry.
  460. #jdk.disabled.namedCurves=
  461. #
  462. # Algorithm restrictions for certification path (CertPath) processing
  463. #
  464. # In some environments, certain algorithms or key lengths may be undesirable
  465. # for certification path building and validation. For example, "MD2" is
  466. # generally no longer considered to be a secure hash algorithm. This section
  467. # describes the mechanism for disabling algorithms based on algorithm name
  468. # and/or key length. This includes algorithms used in certificates, as well
  469. # as revocation information such as CRLs and signed OCSP Responses.
  470. # The syntax of the disabled algorithm string is described as follows:
  471. # DisabledAlgorithms:
  472. # " DisabledAlgorithm { , DisabledAlgorithm } "
  473. #
  474. # DisabledAlgorithm:
  475. # AlgorithmName [Constraint] { '&' Constraint } | IncludeProperty
  476. #
  477. # AlgorithmName:
  478. # (see below)
  479. #
  480. # Constraint:
  481. # KeySizeConstraint | CAConstraint | DenyAfterConstraint |
  482. # UsageConstraint
  483. #
  484. # KeySizeConstraint:
  485. # keySize Operator KeyLength
  486. #
  487. # Operator:
  488. # <= | < | == | != | >= | >
  489. #
  490. # KeyLength:
  491. # Integer value of the algorithm's key length in bits
  492. #
  493. # CAConstraint:
  494. # jdkCA
  495. #
  496. # DenyAfterConstraint:
  497. # denyAfter YYYY-MM-DD
  498. #
  499. # UsageConstraint:
  500. # usage [TLSServer] [TLSClient] [SignedJAR]
  501. #
  502. # IncludeProperty:
  503. # include <security property>
  504. #
  505. # The "AlgorithmName" is the standard algorithm name of the disabled
  506. # algorithm. See the Java Security Standard Algorithm Names Specification
  507. # for information about Standard Algorithm Names. Matching is
  508. # performed using a case-insensitive sub-element matching rule. (For
  509. # example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and
  510. # "ECDSA" for signatures.) If the assertion "AlgorithmName" is a
  511. # sub-element of the certificate algorithm name, the algorithm will be
  512. # rejected during certification path building and validation. For example,
  513. # the assertion algorithm name "DSA" will disable all certificate algorithms
  514. # that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion
  515. # will not disable algorithms related to "ECDSA".
  516. #
  517. # The "IncludeProperty" allows a implementation-defined security property that
  518. # can be included in the disabledAlgorithms properties. These properties are
  519. # to help manage common actions easier across multiple disabledAlgorithm
  520. # properties.
  521. # There is one defined security property: jdk.disabled.namedCurves
  522. # See the property for more specific details.
  523. #
  524. #
  525. # A "Constraint" defines restrictions on the keys and/or certificates for
  526. # a specified AlgorithmName:
  527. #
  528. # KeySizeConstraint:
  529. # keySize Operator KeyLength
  530. # The constraint requires a key of a valid size range if the
  531. # "AlgorithmName" is of a key algorithm. The "KeyLength" indicates
  532. # the key size specified in number of bits. For example,
  533. # "RSA keySize <= 1024" indicates that any RSA key with key size less
  534. # than or equal to 1024 bits should be disabled, and
  535. # "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key
  536. # with key size less than 1024 or greater than 2048 should be disabled.
  537. # This constraint is only used on algorithms that have a key size.
  538. #
  539. # CAConstraint:
  540. # jdkCA
  541. # This constraint prohibits the specified algorithm only if the
  542. # algorithm is used in a certificate chain that terminates at a marked
  543. # trust anchor in the lib/security/cacerts keystore. If the jdkCA
  544. # constraint is not set, then all chains using the specified algorithm
  545. # are restricted. jdkCA may only be used once in a DisabledAlgorithm
  546. # expression.
  547. # Example: To apply this constraint to SHA-1 certificates, include
  548. # the following: "SHA1 jdkCA"
  549. #
  550. # DenyAfterConstraint:
  551. # denyAfter YYYY-MM-DD
  552. # This constraint prohibits a certificate with the specified algorithm
  553. # from being used after the date regardless of the certificate's
  554. # validity. JAR files that are signed and timestamped before the
  555. # constraint date with certificates containing the disabled algorithm
  556. # will not be restricted. The date is processed in the UTC timezone.
  557. # This constraint can only be used once in a DisabledAlgorithm
  558. # expression.
  559. # Example: To deny usage of RSA 2048 bit certificates after Feb 3 2020,
  560. # use the following: "RSA keySize == 2048 & denyAfter 2020-02-03"
  561. #
  562. # UsageConstraint:
  563. # usage [TLSServer] [TLSClient] [SignedJAR]
  564. # This constraint prohibits the specified algorithm for
  565. # a specified usage. This should be used when disabling an algorithm
  566. # for all usages is not practical. 'TLSServer' restricts the algorithm
  567. # in TLS server certificate chains when server authentication is
  568. # performed. 'TLSClient' restricts the algorithm in TLS client
  569. # certificate chains when client authentication is performed.
  570. # 'SignedJAR' constrains use of certificates in signed jar files.
  571. # The usage type follows the keyword and more than one usage type can
  572. # be specified with a whitespace delimiter.
  573. # Example: "SHA1 usage TLSServer TLSClient"
  574. #
  575. # When an algorithm must satisfy more than one constraint, it must be
  576. # delimited by an ampersand '&'. For example, to restrict certificates in a
  577. # chain that terminate at a distribution provided trust anchor and contain
  578. # RSA keys that are less than or equal to 1024 bits, add the following
  579. # constraint: "RSA keySize <= 1024 & jdkCA".
  580. #
  581. # All DisabledAlgorithms expressions are processed in the order defined in the
  582. # property. This requires lower keysize constraints to be specified
  583. # before larger keysize constraints of the same algorithm. For example:
  584. # "RSA keySize < 1024 & jdkCA, RSA keySize < 2048".
  585. #
  586. # Note: The algorithm restrictions do not apply to trust anchors or
  587. # self-signed certificates.
  588. #
  589. # Note: This property is currently used by Oracle's PKIX implementation. It
  590. # is not guaranteed to be examined and used by other implementations.
  591. #
  592. # Example:
  593. # jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048
  594. #
  595. #
  596. jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \
  597. RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224, \
  598. SHA1 usage SignedJAR & denyAfter 2019-01-01
  599. #
  600. # Legacy algorithms for certification path (CertPath) processing and
  601. # signed JAR files.
  602. #
  603. # In some environments, a certain algorithm or key length may be undesirable
  604. # but is not yet disabled.
  605. #
  606. # Tools such as keytool and jarsigner may emit warnings when these legacy
  607. # algorithms are used. See the man pages for those tools for more information.
  608. #
  609. # The syntax is the same as the "jdk.certpath.disabledAlgorithms" and
  610. # "jdk.jar.disabledAlgorithms" security properties.
  611. #
  612. # Note: This property is currently used by the JDK Reference
  613. # implementation. It is not guaranteed to be examined and used by other
  614. # implementations.
  615. jdk.security.legacyAlgorithms=SHA1, \
  616. RSA keySize < 2048, DSA keySize < 2048
  617. #
  618. # Algorithm restrictions for signed JAR files
  619. #
  620. # In some environments, certain algorithms or key lengths may be undesirable
  621. # for signed JAR validation. For example, "MD2" is generally no longer
  622. # considered to be a secure hash algorithm. This section describes the
  623. # mechanism for disabling algorithms based on algorithm name and/or key length.
  624. # JARs signed with any of the disabled algorithms or key sizes will be treated
  625. # as unsigned.
  626. #
  627. # The syntax of the disabled algorithm string is described as follows:
  628. # DisabledAlgorithms:
  629. # " DisabledAlgorithm { , DisabledAlgorithm } "
  630. #
  631. # DisabledAlgorithm:
  632. # AlgorithmName [Constraint] { '&' Constraint }
  633. #
  634. # AlgorithmName:
  635. # (see below)
  636. #
  637. # Constraint:
  638. # KeySizeConstraint | DenyAfterConstraint
  639. #
  640. # KeySizeConstraint:
  641. # keySize Operator KeyLength
  642. #
  643. # DenyAfterConstraint:
  644. # denyAfter YYYY-MM-DD
  645. #
  646. # Operator:
  647. # <= | < | == | != | >= | >
  648. #
  649. # KeyLength:
  650. # Integer value of the algorithm's key length in bits
  651. #
  652. # Note: This property is currently used by the JDK Reference
  653. # implementation. It is not guaranteed to be examined and used by other
  654. # implementations.
  655. #
  656. # See "jdk.certpath.disabledAlgorithms" for syntax descriptions.
  657. #
  658. jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \
  659. DSA keySize < 1024, SHA1 denyAfter 2019-01-01
  660. #
  661. # Algorithm restrictions for Secure Socket Layer/Transport Layer Security
  662. # (SSL/TLS/DTLS) processing
  663. #
  664. # In some environments, certain algorithms or key lengths may be undesirable
  665. # when using SSL/TLS/DTLS. This section describes the mechanism for disabling
  666. # algorithms during SSL/TLS/DTLS security parameters negotiation, including
  667. # protocol version negotiation, cipher suites selection, named groups
  668. # selection, signature schemes selection, peer authentication and key
  669. # exchange mechanisms.
  670. #
  671. # Disabled algorithms will not be negotiated for SSL/TLS connections, even
  672. # if they are enabled explicitly in an application.
  673. #
  674. # For PKI-based peer authentication and key exchange mechanisms, this list
  675. # of disabled algorithms will also be checked during certification path
  676. # building and validation, including algorithms used in certificates, as
  677. # well as revocation information such as CRLs and signed OCSP Responses.
  678. # This is in addition to the jdk.certpath.disabledAlgorithms property above.
  679. #
  680. # See the specification of "jdk.certpath.disabledAlgorithms" for the
  681. # syntax of the disabled algorithm string.
  682. #
  683. # Note: The algorithm restrictions do not apply to trust anchors or
  684. # self-signed certificates.
  685. #
  686. # Note: This property is currently used by the JDK Reference implementation.
  687. # It is not guaranteed to be examined and used by other implementations.
  688. #
  689. # Example:
  690. # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048, \
  691. # rsa_pkcs1_sha1, secp224r1
  692. jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
  693. DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL
  694. #
  695. # Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS)
  696. # processing in JSSE implementation.
  697. #
  698. # In some environments, a certain algorithm may be undesirable but it
  699. # cannot be disabled because of its use in legacy applications. Legacy
  700. # algorithms may still be supported, but applications should not use them
  701. # as the security strength of legacy algorithms are usually not strong enough
  702. # in practice.
  703. #
  704. # During SSL/TLS security parameters negotiation, legacy algorithms will
  705. # not be negotiated unless there are no other candidates.
  706. #
  707. # The syntax of the legacy algorithms string is described as this Java
  708. # BNF-style:
  709. # LegacyAlgorithms:
  710. # " LegacyAlgorithm { , LegacyAlgorithm } "
  711. #
  712. # LegacyAlgorithm:
  713. # AlgorithmName (standard JSSE algorithm name)
  714. #
  715. # See the specification of security property "jdk.certpath.disabledAlgorithms"
  716. # for the syntax and description of the "AlgorithmName" notation.
  717. #
  718. # Per SSL/TLS specifications, cipher suites have the form:
  719. # SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg
  720. # or
  721. # TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg
  722. #
  723. # For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the
  724. # key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC
  725. # mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest
  726. # algorithm for HMAC.
  727. #
  728. # The LegacyAlgorithm can be one of the following standard algorithm names:
  729. # 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA
  730. # 2. JSSE key exchange algorithm name, e.g., RSA
  731. # 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC
  732. # 4. JSSE message digest algorithm name, e.g., SHA
  733. #
  734. # See SSL/TLS specifications and the Java Security Standard Algorithm Names
  735. # Specification for information about the algorithm names.
  736. #
  737. # Note: If a legacy algorithm is also restricted through the
  738. # jdk.tls.disabledAlgorithms property or the
  739. # java.security.AlgorithmConstraints API (See
  740. # javax.net.ssl.SSLParameters.setAlgorithmConstraints()),
  741. # then the algorithm is completely disabled and will not be negotiated.
  742. #
  743. # Note: This property is currently used by the JDK Reference implementation.
  744. # It is not guaranteed to be examined and used by other implementations.
  745. # There is no guarantee the property will continue to exist or be of the
  746. # same syntax in future releases.
  747. #
  748. # Example:
  749. # jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5
  750. #
  751. jdk.tls.legacyAlgorithms=NULL, anon, RC4, DES, 3DES_EDE_CBC
  752. #
  753. # The pre-defined default finite field Diffie-Hellman ephemeral (DHE)
  754. # parameters for Transport Layer Security (SSL/TLS/DTLS) processing.
  755. #
  756. # In traditional SSL/TLS/DTLS connections where finite field DHE parameters
  757. # negotiation mechanism is not used, the server offers the client group
  758. # parameters, base generator g and prime modulus p, for DHE key exchange.
  759. # It is recommended to use dynamic group parameters. This property defines
  760. # a mechanism that allows you to specify custom group parameters.
  761. #
  762. # The syntax of this property string is described as this Java BNF-style:
  763. # DefaultDHEParameters:
  764. # DefinedDHEParameters { , DefinedDHEParameters }
  765. #
  766. # DefinedDHEParameters:
  767. # "{" DHEPrimeModulus , DHEBaseGenerator "}"
  768. #
  769. # DHEPrimeModulus:
  770. # HexadecimalDigits
  771. #
  772. # DHEBaseGenerator:
  773. # HexadecimalDigits
  774. #
  775. # HexadecimalDigits:
  776. # HexadecimalDigit { HexadecimalDigit }
  777. #
  778. # HexadecimalDigit: one of
  779. # 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
  780. #
  781. # Whitespace characters are ignored.
  782. #
  783. # The "DefinedDHEParameters" defines the custom group parameters, prime
  784. # modulus p and base generator g, for a particular size of prime modulus p.
  785. # The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the
  786. # "DHEBaseGenerator" defines the hexadecimal base generator g of a group
  787. # parameter. It is recommended to use safe primes for the custom group
  788. # parameters.
  789. #
  790. # If this property is not defined or the value is empty, the underlying JSSE
  791. # provider's default group parameter is used for each connection.
  792. #
  793. # If the property value does not follow the grammar, or a particular group
  794. # parameter is not valid, the connection will fall back and use the
  795. # underlying JSSE provider's default group parameter.
  796. #
  797. # Note: This property is currently used by OpenJDK's JSSE implementation. It
  798. # is not guaranteed to be examined and used by other implementations.
  799. #
  800. # Example:
  801. # jdk.tls.server.defaultDHEParameters=
  802. # { \
  803. # FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \
  804. # 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \
  805. # EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \
  806. # E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \
  807. # EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \
  808. # FFFFFFFF FFFFFFFF, 2}
  809. #
  810. # TLS key limits on symmetric cryptographic algorithms
  811. #
  812. # This security property sets limits on algorithms key usage in TLS 1.3.
  813. # When the amount of data encrypted exceeds the algorithm value listed below,
  814. # a KeyUpdate message will trigger a key change. This is for symmetric ciphers
  815. # with TLS 1.3 only.
  816. #
  817. # The syntax for the property is described below:
  818. # KeyLimits:
  819. # " KeyLimit { , KeyLimit } "
  820. #
  821. # WeakKeyLimit:
  822. # AlgorithmName Action Length
  823. #
  824. # AlgorithmName:
  825. # A full algorithm transformation.
  826. #
  827. # Action:
  828. # KeyUpdate
  829. #
  830. # Length:
  831. # The amount of encrypted data in a session before the Action occurs
  832. # This value may be an integer value in bytes, or as a power of two, 2^29.
  833. #
  834. # KeyUpdate:
  835. # The TLS 1.3 KeyUpdate handshake process begins when the Length amount
  836. # is fulfilled.
  837. #
  838. # Note: This property is currently used by OpenJDK's JSSE implementation. It
  839. # is not guaranteed to be examined and used by other implementations.
  840. #
  841. jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37, \
  842. ChaCha20-Poly1305 KeyUpdate 2^37
  843. #
  844. # Cryptographic Jurisdiction Policy defaults
  845. #
  846. # Import and export control rules on cryptographic software vary from
  847. # country to country. By default, Java provides two different sets of
  848. # cryptographic policy files[1]:
  849. #
  850. # unlimited: These policy files contain no restrictions on cryptographic
  851. # strengths or algorithms
  852. #
  853. # limited: These policy files contain more restricted cryptographic
  854. # strengths
  855. #
  856. # The default setting is determined by the value of the "crypto.policy"
  857. # Security property below. If your country or usage requires the
  858. # traditional restrictive policy, the "limited" Java cryptographic
  859. # policy is still available and may be appropriate for your environment.
  860. #
  861. # If you have restrictions that do not fit either use case mentioned
  862. # above, Java provides the capability to customize these policy files.
  863. # The "crypto.policy" security property points to a subdirectory
  864. # within <java-home>/conf/security/policy/ which can be customized.
  865. # Please see the <java-home>/conf/security/policy/README.txt file or consult
  866. # the Java Security Guide/JCA documentation for more information.
  867. #
  868. # YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY
  869. # TO DETERMINE THE EXACT REQUIREMENTS.
  870. #
  871. # [1] Please note that the JCE for Java SE, including the JCE framework,
  872. # cryptographic policy files, and standard JCE providers provided with
  873. # the Java SE, have been reviewed and approved for export as mass market
  874. # encryption item by the US Bureau of Industry and Security.
  875. #
  876. # Note: This property is currently used by the JDK Reference implementation.
  877. # It is not guaranteed to be examined and used by other implementations.
  878. #
  879. crypto.policy=unlimited
  880. #
  881. # The policy for the XML Signature secure validation mode. Validation of
  882. # XML Signatures that violate any of these constraints will fail. The
  883. # mode is enforced by default. The mode can be disabled by setting the
  884. # property "org.jcp.xml.dsig.secureValidation" to Boolean.FALSE with the
  885. # javax.xml.crypto.XMLCryptoContext.setProperty() method.
  886. #
  887. # Policy:
  888. # Constraint {"," Constraint }
  889. # Constraint:
  890. # AlgConstraint | MaxTransformsConstraint | MaxReferencesConstraint |
  891. # ReferenceUriSchemeConstraint | KeySizeConstraint | OtherConstraint
  892. # AlgConstraint
  893. # "disallowAlg" Uri
  894. # MaxTransformsConstraint:
  895. # "maxTransforms" Integer
  896. # MaxReferencesConstraint:
  897. # "maxReferences" Integer
  898. # ReferenceUriSchemeConstraint:
  899. # "disallowReferenceUriSchemes" String { String }
  900. # KeySizeConstraint:
  901. # "minKeySize" KeyAlg Integer
  902. # OtherConstraint:
  903. # "noDuplicateIds" | "noRetrievalMethodLoops"
  904. #
  905. # For AlgConstraint, Uri is the algorithm URI String that is not allowed.
  906. # See the XML Signature Recommendation for more information on algorithm
  907. # URI Identifiers. For KeySizeConstraint, KeyAlg is the standard algorithm
  908. # name of the key type (ex: "RSA"). If the MaxTransformsConstraint,
  909. # MaxReferencesConstraint or KeySizeConstraint (for the same key type) is
  910. # specified more than once, only the last entry is enforced.
  911. #
  912. # Note: This property is currently used by the JDK Reference implementation.
  913. # It is not guaranteed to be examined and used by other implementations.
  914. #
  915. jdk.xml.dsig.secureValidationPolicy=\
  916. disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\
  917. disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\
  918. disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\
  919. disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\
  920. disallowAlg http://www.w3.org/2000/09/xmldsig#sha1,\
  921. disallowAlg http://www.w3.org/2000/09/xmldsig#dsa-sha1,\
  922. disallowAlg http://www.w3.org/2000/09/xmldsig#rsa-sha1,\
  923. disallowAlg http://www.w3.org/2007/05/xmldsig-more#sha1-rsa-MGF1,\
  924. disallowAlg http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1,\
  925. maxTransforms 5,\
  926. maxReferences 30,\
  927. disallowReferenceUriSchemes file http https,\
  928. minKeySize RSA 1024,\
  929. minKeySize DSA 1024,\
  930. minKeySize EC 224,\
  931. noDuplicateIds,\
  932. noRetrievalMethodLoops
  933. #
  934. # Support for the here() function
  935. #
  936. # This security property determines whether the here() XPath function is
  937. # supported in XML Signature generation and verification.
  938. #
  939. # If this property is set to false, the here() function is not supported.
  940. # Generating an XML Signature that uses the here() function will throw an
  941. # XMLSignatureException. Validating an existing XML Signature that uses the
  942. # here() function will also throw an XMLSignatureException.
  943. #
  944. # The default value for this property is true.
  945. #
  946. # Note: This property is currently used by the JDK Reference implementation.
  947. # It is not guaranteed to be examined and used by other implementations.
  948. #
  949. #jdk.xml.dsig.hereFunctionSupported=true
  950. #
  951. # Deserialization JVM-wide filter factory
  952. #
  953. # A filter factory class name is used to configure the JVM-wide filter factory.
  954. # The class must be public, must have a public zero-argument constructor, implement the
  955. # java.util.function.BinaryOperator<java.io.ObjectInputFilter> interface, provide its
  956. # implementation and be accessible via the application class loader.
  957. # A builtin filter factory is used if no filter factory is defined.
  958. # See java.io.ObjectInputFilter.Config for more information.
  959. #
  960. # If the system property jdk.serialFilterFactory is also specified, it supersedes
  961. # the security property value defined here.
  962. #
  963. #jdk.serialFilterFactory=<classname>
  964. #
  965. # Deserialization JVM-wide filter
  966. #
  967. # A filter, if configured, is used by the filter factory to provide the filter used by
  968. # java.io.ObjectInputStream during deserialization to check the contents of the stream.
  969. # A filter is configured as a sequence of patterns, each pattern is either
  970. # matched against the name of a class in the stream or defines a limit.
  971. # Patterns are separated by ";" (semicolon).
  972. # Whitespace is significant and is considered part of the pattern.
  973. #
  974. # If the system property jdk.serialFilter is also specified, it supersedes
  975. # the security property value defined here.
  976. #
  977. # If a pattern includes a "=", it sets a limit.
  978. # If a limit appears more than once the last value is used.
  979. # Limits are checked before classes regardless of the order in the
  980. # sequence of patterns.
  981. # If any of the limits are exceeded, the filter status is REJECTED.
  982. #
  983. # maxdepth=value - the maximum depth of a graph
  984. # maxrefs=value - the maximum number of internal references
  985. # maxbytes=value - the maximum number of bytes in the input stream
  986. # maxarray=value - the maximum array length allowed
  987. #
  988. # Other patterns, from left to right, match the class or package name as
  989. # returned from Class.getName.
  990. # If the class is an array type, the class or package to be matched is the
  991. # element type.
  992. # Arrays of any number of dimensions are treated the same as the element type.
  993. # For example, a pattern of "!example.Foo", rejects creation of any instance or
  994. # array of example.Foo.
  995. #
  996. # If the pattern starts with "!", the status is REJECTED if the remaining
  997. # pattern is matched; otherwise the status is ALLOWED if the pattern matches.
  998. # If the pattern contains "/", the non-empty prefix up to the "/" is the
  999. # module name;
  1000. # if the module name matches the module name of the class then
  1001. # the remaining pattern is matched with the class name.
  1002. # If there is no "/", the module name is not compared.
  1003. # If the pattern ends with ".**" it matches any class in the package and all
  1004. # subpackages.
  1005. # If the pattern ends with ".*" it matches any class in the package.
  1006. # If the pattern ends with "*", it matches any class with the pattern as a
  1007. # prefix.
  1008. # If the pattern is equal to the class name, it matches.
  1009. # Otherwise, the status is UNDECIDED.
  1010. #
  1011. #jdk.serialFilter=pattern;pattern
  1012. #
  1013. # RMI Registry Serial Filter
  1014. #
  1015. # The filter pattern uses the same format as jdk.serialFilter.
  1016. # This filter can override the builtin filter if additional types need to be
  1017. # allowed or rejected from the RMI Registry or to decrease limits but not
  1018. # to increase limits.
  1019. # If the limits (maxdepth, maxrefs, or maxbytes) are exceeded, the object is rejected.
  1020. #
  1021. # Each non-array type is allowed or rejected if it matches one of the patterns,
  1022. # evaluated from left to right, and is otherwise allowed. Arrays of any
  1023. # component type, including subarrays and arrays of primitives, are allowed.
  1024. #
  1025. # Array construction of any component type, including subarrays and arrays of
  1026. # primitives, are allowed unless the length is greater than the maxarray limit.
  1027. # The filter is applied to each array element.
  1028. #
  1029. # Note: This property is currently used by the JDK Reference implementation.
  1030. # It is not guaranteed to be examined and used by other implementations.
  1031. #
  1032. # The built-in filter allows subclasses of allowed classes and
  1033. # can approximately be represented as the pattern:
  1034. #
  1035. #sun.rmi.registry.registryFilter=\
  1036. # maxarray=1000000;\
  1037. # maxdepth=20;\
  1038. # java.lang.String;\
  1039. # java.lang.Number;\
  1040. # java.lang.reflect.Proxy;\
  1041. # java.rmi.Remote;\
  1042. # sun.rmi.server.UnicastRef;\
  1043. # sun.rmi.server.RMIClientSocketFactory;\
  1044. # sun.rmi.server.RMIServerSocketFactory;\
  1045. # java.rmi.server.UID
  1046. #
  1047. # RMI Distributed Garbage Collector (DGC) Serial Filter
  1048. #
  1049. # The filter pattern uses the same format as jdk.serialFilter.
  1050. # This filter can override the builtin filter if additional types need to be
  1051. # allowed or rejected from the RMI DGC.
  1052. #
  1053. # Note: This property is currently used by the JDK Reference implementation.
  1054. # It is not guaranteed to be examined and used by other implementations.
  1055. #
  1056. # The builtin DGC filter can approximately be represented as the filter pattern:
  1057. #
  1058. #sun.rmi.transport.dgcFilter=\
  1059. # java.rmi.server.ObjID;\
  1060. # java.rmi.server.UID;\
  1061. # java.rmi.dgc.VMID;\
  1062. # java.rmi.dgc.Lease;\
  1063. # maxdepth=5;maxarray=10000
  1064. #
  1065. # JCEKS Encrypted Key Serial Filter
  1066. #
  1067. # This filter, if configured, is used by the JCEKS KeyStore during the
  1068. # deserialization of the encrypted Key object stored inside a key entry.
  1069. # If not configured or the filter result is UNDECIDED (i.e. none of the patterns
  1070. # matches), the filter configured by jdk.serialFilter will be consulted.
  1071. #
  1072. # If the system property jceks.key.serialFilter is also specified, it supersedes
  1073. # the security property value defined here.
  1074. #
  1075. # The filter pattern uses the same format as jdk.serialFilter. The default
  1076. # pattern allows java.lang.Enum, java.security.KeyRep, java.security.KeyRep$Type,
  1077. # and javax.crypto.spec.SecretKeySpec and rejects all the others.
  1078. jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\
  1079. java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!*
  1080. # The iteration count used for password-based encryption (PBE) in JCEKS
  1081. # keystores. Values in the range 10000 to 5000000 are considered valid.
  1082. # If the value is out of this range, or is not a number, or is unspecified;
  1083. # a default of 200000 is used.
  1084. #
  1085. # If the system property jdk.jceks.iterationCount is also specified, it
  1086. # supersedes the security property value defined here.
  1087. #
  1088. #jdk.jceks.iterationCount = 200000
  1089. #
  1090. # PKCS12 KeyStore properties
  1091. #
  1092. # The following properties, if configured, are used by the PKCS12 KeyStore
  1093. # implementation during the creation of a new keystore. Several of the
  1094. # properties may also be used when modifying an existing keystore. The
  1095. # properties can be overridden by a KeyStore API that specifies its own
  1096. # algorithms and parameters.
  1097. #
  1098. # If an existing PKCS12 keystore is loaded and then stored, the algorithm and
  1099. # parameter used to generate the existing Mac will be reused. If the existing
  1100. # keystore does not have a Mac, no Mac will be created while storing. If there
  1101. # is at least one certificate in the existing keystore, the algorithm and
  1102. # parameters used to encrypt the last certificate in the existing keystore will
  1103. # be reused to encrypt all certificates while storing. If the last certificate
  1104. # in the existing keystore is not encrypted, all certificates will be stored
  1105. # unencrypted. If there is no certificate in the existing keystore, any newly
  1106. # added certificate will be encrypted (or stored unencrypted if algorithm
  1107. # value is "NONE") using the "keystore.pkcs12.certProtectionAlgorithm" and
  1108. # "keystore.pkcs12.certPbeIterationCount" values defined here. Existing private
  1109. # and secret key(s) are not changed. Newly set private and secret key(s) will
  1110. # be encrypted using the "keystore.pkcs12.keyProtectionAlgorithm" and
  1111. # "keystore.pkcs12.keyPbeIterationCount" values defined here.
  1112. #
  1113. # In order to apply new algorithms and parameters to all entries in an
  1114. # existing keystore, one can create a new keystore and add entries in the
  1115. # existing keystore into the new keystore. This can be achieved by calling the
  1116. # "keytool -importkeystore" command.
  1117. #
  1118. # If a system property of the same name is also specified, it supersedes the
  1119. # security property value defined here.
  1120. #
  1121. # If the property is set to an illegal value,
  1122. # an iteration count that is not a positive integer, or an unknown algorithm
  1123. # name, an exception will be thrown when the property is used.
  1124. # If the property is not set or empty, a default value will be used.
  1125. #
  1126. # Note: These properties are currently used by the JDK Reference implementation.
  1127. # They are not guaranteed to be examined and used by other implementations.
  1128. # The algorithm used to encrypt a certificate. This can be any non-Hmac PBE
  1129. # algorithm defined in the Cipher section of the Java Security Standard
  1130. # Algorithm Names Specification. When set to "NONE", the certificate
  1131. # is not encrypted. The default value is "PBEWithHmacSHA256AndAES_256".
  1132. #keystore.pkcs12.certProtectionAlgorithm = PBEWithHmacSHA256AndAES_256
  1133. # The iteration count used by the PBE algorithm when encrypting a certificate.
  1134. # This value must be a positive integer. The default value is 10000.
  1135. #keystore.pkcs12.certPbeIterationCount = 10000
  1136. # The algorithm used to encrypt a private key or secret key. This can be
  1137. # any non-Hmac PBE algorithm defined in the Cipher section of the Java
  1138. # Security Standard Algorithm Names Specification. The value must not be "NONE".
  1139. # The default value is "PBEWithHmacSHA256AndAES_256".
  1140. #keystore.pkcs12.keyProtectionAlgorithm = PBEWithHmacSHA256AndAES_256
  1141. # The iteration count used by the PBE algorithm when encrypting a private key
  1142. # or a secret key. This value must be a positive integer. The default value
  1143. # is 10000.
  1144. #keystore.pkcs12.keyPbeIterationCount = 10000
  1145. # The algorithm used to calculate the optional MacData at the end of a PKCS12
  1146. # file. This can be any HmacPBE algorithm defined in the Mac section of the
  1147. # Java Security Standard Algorithm Names Specification. When set to "NONE",
  1148. # no Mac is generated. The default value is "HmacPBESHA256".
  1149. #keystore.pkcs12.macAlgorithm = HmacPBESHA256
  1150. # The iteration count used by the MacData algorithm. This value must be a
  1151. # positive integer. The default value is 10000.
  1152. #keystore.pkcs12.macIterationCount = 10000
  1153. #
  1154. # Enhanced exception message information
  1155. #
  1156. # By default, exception messages should not include potentially sensitive
  1157. # information such as file names, host names, or port numbers. This property
  1158. # accepts one or more comma separated values, each of which represents a
  1159. # category of enhanced exception message information to enable. Values are
  1160. # case-insensitive. Leading and trailing whitespaces, surrounding each value,
  1161. # are ignored. Unknown values are ignored.
  1162. #
  1163. # NOTE: Use caution before setting this property. Setting this property
  1164. # exposes sensitive information in Exceptions, which could, for example,
  1165. # propagate to untrusted code or be emitted in stack traces that are
  1166. # inadvertently disclosed and made accessible over a public network.
  1167. #
  1168. # The categories are:
  1169. #
  1170. # hostInfo - IOExceptions thrown by java.net.Socket and the socket types in the
  1171. # java.nio.channels package will contain enhanced exception
  1172. # message information
  1173. #
  1174. # jar - enables more detailed information in the IOExceptions thrown
  1175. # by classes in the java.util.jar package
  1176. #
  1177. # The property setting in this file can be overridden by a system property of
  1178. # the same name, with the same syntax and possible values.
  1179. #
  1180. #jdk.includeInExceptions=hostInfo,jar
  1181. #
  1182. # Disabled mechanisms for the Simple Authentication and Security Layer (SASL)
  1183. #
  1184. # Disabled mechanisms will not be negotiated by both SASL clients and servers.
  1185. # These mechanisms will be ignored if they are specified in the "mechanisms"
  1186. # argument of "Sasl.createSaslClient" or the "mechanism" argument of
  1187. # "Sasl.createSaslServer".
  1188. #
  1189. # The value of this property is a comma-separated list of SASL mechanisms.
  1190. # The mechanisms are case-sensitive. Whitespaces around the commas are ignored.
  1191. #
  1192. # Note: This property is currently used by the JDK Reference implementation.
  1193. # It is not guaranteed to be examined and used by other implementations.
  1194. #
  1195. # Example:
  1196. # jdk.sasl.disabledMechanisms=PLAIN, CRAM-MD5, DIGEST-MD5
  1197. jdk.sasl.disabledMechanisms=
  1198. #
  1199. # Policies for distrusting Certificate Authorities (CAs).
  1200. #
  1201. # This is a comma separated value of one or more case-sensitive strings, each
  1202. # of which represents a policy for determining if a CA should be distrusted.
  1203. # The supported values are:
  1204. #
  1205. # SYMANTEC_TLS : Distrust TLS Server certificates anchored by a Symantec
  1206. # root CA and issued after April 16, 2019 unless issued by one of the
  1207. # following subordinate CAs which have a later distrust date:
  1208. # 1. Apple IST CA 2 - G1, SHA-256 fingerprint:
  1209. # AC2B922ECFD5E01711772FEA8ED372DE9D1E2245FCE3F57A9CDBEC77296A424B
  1210. # Distrust after December 31, 2019.
  1211. # 2. Apple IST CA 8 - G1, SHA-256 fingerprint:
  1212. # A4FE7C7F15155F3F0AEF7AAA83CF6E06DEB97CA3F909DF920AC1490882D488ED
  1213. # Distrust after December 31, 2019.
  1214. #
  1215. # Leading and trailing whitespace surrounding each value are ignored.
  1216. # Unknown values are ignored. If the property is commented out or set to the
  1217. # empty String, no policies are enforced.
  1218. #
  1219. # Note: This property is currently used by the JDK Reference implementation.
  1220. # It is not guaranteed to be supported by other SE implementations. Also, this
  1221. # property does not override other security properties which can restrict
  1222. # certificates such as jdk.tls.disabledAlgorithms or
  1223. # jdk.certpath.disabledAlgorithms; those restrictions are still enforced even
  1224. # if this property is not enabled.
  1225. #
  1226. jdk.security.caDistrustPolicies=SYMANTEC_TLS
  1227. #
  1228. # FilePermission path canonicalization
  1229. #
  1230. # This security property dictates how the path argument is processed and stored
  1231. # while constructing a FilePermission object. If the value is set to true, the
  1232. # path argument is canonicalized and FilePermission methods (such as implies,
  1233. # equals, and hashCode) are implemented based on this canonicalized result.
  1234. # Otherwise, the path argument is not canonicalized and FilePermission methods are
  1235. # implemented based on the original input. See the implementation note of the
  1236. # FilePermission class for more details.
  1237. #
  1238. # If a system property of the same name is also specified, it supersedes the
  1239. # security property value defined here.
  1240. #
  1241. # The default value for this property is false.
  1242. #
  1243. jdk.io.permissionsUseCanonicalPath=false
  1244. #
  1245. # Policies for the proxy_impersonator Kerberos ccache configuration entry
  1246. #
  1247. # The proxy_impersonator ccache configuration entry indicates that the ccache
  1248. # is a synthetic delegated credential for use with S4U2Proxy by an intermediate
  1249. # server. The ccache file should also contain the TGT of this server and
  1250. # an evidence ticket from the default principal of the ccache to this server.
  1251. #
  1252. # This security property determines how Java uses this configuration entry.
  1253. # There are 3 possible values:
  1254. #
  1255. # no-impersonate - Ignore this configuration entry, and always act as
  1256. # the owner of the TGT (if it exists).
  1257. #
  1258. # try-impersonate - Try impersonation when this configuration entry exists.
  1259. # If no matching TGT or evidence ticket is found,
  1260. # fallback to no-impersonate.
  1261. #
  1262. # always-impersonate - Always impersonate when this configuration entry exists.
  1263. # If no matching TGT or evidence ticket is found,
  1264. # no initial credential is read from the ccache.
  1265. #
  1266. # The default value is "always-impersonate".
  1267. #
  1268. # If a system property of the same name is also specified, it supersedes the
  1269. # security property value defined here.
  1270. #
  1271. #jdk.security.krb5.default.initiate.credential=always-impersonate
  1272. #
  1273. # Trust Anchor Certificates - CA Basic Constraint check
  1274. #
  1275. # X.509 v3 certificates used as Trust Anchors (to validate signed code or TLS
  1276. # connections) must have the cA Basic Constraint field set to 'true'. Also, if
  1277. # they include a Key Usage extension, the keyCertSign bit must be set. These
  1278. # checks, enabled by default, can be disabled for backward-compatibility
  1279. # purposes with the jdk.security.allowNonCaAnchor System and Security
  1280. # properties. In the case that both properties are simultaneously set, the
  1281. # System value prevails. The default value of the property is "false".
  1282. #
  1283. #jdk.security.allowNonCaAnchor=true
  1284. #
  1285. # The default Character set name (java.nio.charset.Charset.forName())
  1286. # for converting TLS ALPN values between byte arrays and Strings.
  1287. # Prior versions of the JDK may use UTF-8 as the default charset. If
  1288. # you experience interoperability issues, setting this property to UTF-8
  1289. # may help.
  1290. #
  1291. # jdk.tls.alpnCharset=UTF-8
  1292. jdk.tls.alpnCharset=ISO_8859_1
  1293. #
  1294. # JNDI Object Factories Filter
  1295. #
  1296. # This filter is used by the JNDI runtime to control the set of object factory classes
  1297. # which will be allowed to instantiate objects from object references returned by
  1298. # naming/directory systems. The factory class named by the reference instance will be
  1299. # matched against this filter. The filter property supports pattern-based filter syntax
  1300. # with the same format as jdk.serialFilter.
  1301. #
  1302. # Each pattern is matched against the factory class name to allow or disallow it's
  1303. # instantiation. The access to a factory class is allowed unless the filter returns
  1304. # REJECTED.
  1305. #
  1306. # Note: This property is currently used by the JDK Reference implementation.
  1307. # It is not guaranteed to be examined and used by other implementations.
  1308. #
  1309. # If the system property jdk.jndi.object.factoriesFilter is also specified, it supersedes
  1310. # the security property value defined here. The default value of the property is "*".
  1311. #
  1312. # The default pattern value allows any object factory class specified by the reference
  1313. # instance to recreate the referenced object.
  1314. #jdk.jndi.object.factoriesFilter=*