blob: f4b0a814b60028c1270cd4cf386f241e2a50420a [file]
<!doctype html>
<html class="no-js" lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Committer password policy - Apache Infrastructure Website</title>
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/fontawesome.all.min.css" rel="stylesheet">
<link href="/css/headerlink.css" rel="stylesheet">
<script src="/highlight/highlight.min.js"></script> </head>
<body class="d-flex flex-column h-100">
<main class="flex-shrink-0">
<div>
<!-- nav bar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark" aria-label="Fifth navbar example">
<div class="container-fluid">
<a class="navbar-brand" href="/"><img src="/images/feather.png" style="height: 32px;"/> Apache Infrastructure</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarADP" aria-controls="navbarADP" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarADP">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">About</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/team.html">About the team</a></li>
<li><a class="dropdown-item" href="/roundtable.html">The Infrastructure Roundtable</a></li>
<li><a class="dropdown-item" href="/blog/">The Infrastructure Blog</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/policies.html">Policies</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">Services and Tools</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/services.html">Services and Tools</a></li>
<li><a class="dropdown-item" href="/machines.html">Machines and Fingerprints</a></li>
<li><a class="dropdown-item" href="https://blocky.apache.org/">Blocky</a></li>
<li><a class="dropdown-item" href="https://app.datadoghq.com/account/login?next=%2Finfrastructure">DataDog</a></li>
<li><a class="dropdown-item" href="https://whimsy.apache.org/roster/committer/" target="_blank">Committer Search</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/doc.html">Contribute</a></li>
<li><a class="dropdown-item" href="/infra-volunteer.html">Volunteer with Infra</a></li>
<li><a class="dropdown-item" href="/how-to-mirror.html">Become an ASF download mirror</a></li>
<li><a class="dropdown-item" href="/hosting-external-agent.html">Host a Jenkins or Buildbot agent</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/stats.html">Status</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact.html">Contact Us</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- page contents -->
<div id="contents">
<div class="bg-white p-5 rounded">
<div class="col-sm-8 mx-auto">
<h1>
Committer password policy
</h1>
<p>This page outlines the policy on committer passwords for LDAP accounts, and explains a bit
about the logic behind it.</p>
<h3>Minimum password length: eight characters</h3>
<p>All passwords must have eight or more characters. You can use any combination of letters, numbers, special characters, and spaces, and there is no upper limit to the password length.</p>
<h3>Minimum password entropy size: 54 bits</h3>
<p>Entropy size is a measure of how many attempts if would potentially take to crack the password, whether
through brute-forcing, dictionary attacks or simply guessing. It is measured in bits that
correspond to the size of the maximum number of attempts required in binary format. Thus,
a password with an entropy size of 24 bits would require up to <code>2^24</code> == 16,777,216 attempts
to crack. Entropy size is calculated as the length of the password (in characters/bytes),
multiplied by the binary logarithmic (log2) of the alphabetical cardinality of the password,
meaning the number of unique characters in the password. </p>
<p>In the example password <code>I am Groot</code>, there are 10 characters in the string, and 8 unique
characters in total (`I,a,m,G,r,o,t, and a whitespace), thus the entropy size is:</p>
<p><img alt="entropy=10*\log{2}(8) =&gt; entropy=10 * 3 =&gt; entropy=30" src="../images/pwdpolicy-1.svg"></p>
<p>At the ASF, we require a minimum entropy size of <strong>54 bits</strong>, meaning it should require more than
approximately 18 quadrillion attempts to brute-force a password.</p>
<h3>Minimum password complexity: 0.60</h3>
<p>We also require a complexity degree of 0.60. Password complexity ranges from 0 to 1, where 0 is
a password consisting of only the same letters over and over, and 1 means a password is
long enough and with enough entropy to require quadrillions of computations to crack, and also
has enough sequential variety to negate any speed improvements a malicious actor might employ in
order to simplify or otherwise optimize an attempt at cracking a password.</p>
<p>The exact formula we use is as follows:</p>
<p><img alt="complexity=1-\frac{2}{3}(2^{(-\frac{-\log_{2}(\frac{1-0.950}{1-\frac{1}{3}})}{90}*(entropy-30)})" src="../images/pwdpolicy-2.svg"></p>
<p>Our <a href="https://id.apache.org" target="_blank">self-serve page for (re)setting passwords</a> can provide you with
an instant assessment of your password strength using these requirements, to help you find a
password that is sufficiently strong.</p>
</div>
</div>
</div>
<!-- footer -->
<div class="row">
<div class="large-12 medium-12 columns">
<p style="font-style: italic; font-size: 0.8rem; text-align: center;">
Copyright 2024, <a href="https://www.apache.org/">The Apache Software Foundation</a>, Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
Apache&reg; and the Apache feather logo are trademarks of The Apache Software Foundation...
</p>
</div>
</div>
<script type="application/ecmascript" src="/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3"></script> </div>
</main>
<script>hljs.initHighlightingOnLoad();</script>
</body>
</html>