<h2>Deep Dive into Password Reset Process - Security score </h2><br/><div style="overflow-x:auto"><article><div ><h3 >Summary</h3><section><p style="padding-left: 40px;">This article aims to provide insights into the Security score calculation of password reset processes</p> <ul style="list-style-position: inside;"><li>Will provide insights on which Business rules and script includes used for the score calculation.</li><li>Will give a clear understanding of the individual calculation parameters and overall score calculation logic.</li></ul></section></div><div ><h3 >Release</h3><section><p style="padding-left: 40px;">Any version</p></section></div><div ><h3 >Instructions</h3><section><p style="padding-left: 40px;">The security score of the password reset process is one of the key metrics for system administrators to gauge how strong the password reset process is configured. </p> <p style="padding-left: 40px;"><strong><span style="font-size: 10pt;">Please find the total flow Security score calculation logic:</span></strong><br /><br /><strong>Business Rule: </strong>Calculate security score<br /><br />Script Includes called when the above business rule is triggered:</p> <ul style="list-style-position: inside;"><li style="font-weight: bold;"><strong>PwdProcessStrengthCalculatorUtil</strong></li><li><strong>PwdProcessStrengthCalculatorUtilSNC</strong><br /><br />In the script include <strong>PwdProcessStrengthCalculatorUtilSNC</strong> The calculation flow is as below:<br /><br /><strong>_getIdentificationScore()</strong><br />This will validate if the process is using multiple identification methods like email+phone.<br /><br /><strong>_getverificationScore()</strong><br />This calculates the score for the verification methods like SMS, security code, and security questions.<br /><br /><strong>_getconfigurationScore()</strong><br />This will validate the configuration settings if an email/sms reset URL or autogenerated password is used.<br /><br /><strong>_getpolicyScore()</strong><br />This calculates the password policies like enforcing the history policy, and the strength of the password(length, complexity etc)<br /><br /><strong>_getpolicystrength()</strong><br />-->This will evaluate the individual policy settings like disallowing user data, repetition/sequence thresholds etc.</li></ul> <p style="padding-left: 40px;">Using all the above scores we will calculate the overall security score of the password process.</p> <p style="padding-left: 40px;"><br /><br /><strong>Deep Dive into Security Score Calculation:</strong><br /><br /><strong>1. Identification Score</strong><br /><strong>Max: 20 points</strong></p> <ul style="list-style-position: inside;"><li>Enable multiple identification methods.<br />If customer is using only one, Add another (e.g., username + email).<br /><strong>Adds ~5 points</strong></li><li>Enable <strong>CAPTCHA</strong>.</li><li>If it's not enabled, enabling it adds 10 points.<br />It also helps prevent bots from exploiting the reset flow.<br /><br /><br /><strong>2. Verification Score</strong><br /><strong>Max: 40 points</strong></li><li>Use at least two verification methods with medium or high security level.</li><li>Each method can add 15 (medium) or 25 (high) points.</li><li>Avoid using only low-level (10 or 0) methods like basic email or SMS without URL.</li><li>Ensure the minimum number of verifications configured is met.</li><li>Use the Email Password Reset URL (or SMS with URL):</li><li>This gives low-level verifications 10 points instead of 0.<br /><strong>Tip:</strong> Balance mandatory and optional verifications to meet or exceed the min_verifications value.<br /><br /><strong>3. Configuration Score</strong><br /><strong>Max: 20 points</strong></li><li>Enable either: Email/SMS Password Reset URL Or auto-generate passwords<br />If neither is enabled, you're capped at 10 points here. Enabling either gives you the full 20.<br /><br /><strong>4. Password Policy Score</strong><br /><strong>Max: 15 points</strong></li><li>Enable Password Policy on the Credential Store (if not already).</li><li>Enable Enforce History Policy (e.g., last 5 passwords can't be reused).</li><li>Use a "High" strength password policy.<br /><strong>Enable:</strong></li><li>Disallow user data in the password</li><li>Repetition threshold</li><li>Sequence threshold<br /><strong>These add up quickly and push the score closer to the max.<br /><br /><br /></strong>Using the above calculation logic we can achieve the required security score of the password reset process.</li></ul></section></div></article></div>