A second K2 secret is stored at LastPass, elsewhere than where the stolen safes were… I hope so 😉.
The 2 secrets are combined, iterated (see below with PBKDF2) and the result is the key to decipher the safe.
The combination is made as follows: Base64( SHA256( K1 xor K2 ))
The explanations are here (page 12 and 13 for Azure): https://support.lastpass.com/download/lastpass-technical-whitepaper
Why 2 secrets? Perhaps to avoid a compromise of the vault in the event of a compromise of an Azure account, an Azure admin account or LastPass, because to achieve this, you would then have to hack both Azure and LastPass.
Why change in 6 months?
It is defined at random but there is a chance that by then, safes have given way and/or have landed on several market places. In addition, password best practices now recommend very long passwords with a long life cycle too 😉. This is to avoid the famous changes every 30 days with users who only increment a number at the end: Toto1, Toto2, Toto3…
I recommend the ANSSI guide: << For accounts that are not very sensitive, imposing an expiration period that is too short (3 to 6 months for example) can be counterproductive>>, page 30 https://www.ssi.gouv.fr/guide/recommandations-relatives-a-lauthentication-multifactor-and-aux-mots-de-passe/.
The recommended times are:
- Non-sensitive accounts, no limit but I would still recommend a maximum of 2 years (ANSSI Guide page 30, R24).
- Privileged accounts, duration between 1 and 3 years (ANSSI Guide page 30, R25).
And above all, you must use a second authentication factor such as a one-time code (OTP), a notification on the smartphone… ( https://patrowl.io/lauthentification-forte-cest-bien-quand-elle-est-securisee-cest-mieux/)
Let’s say 6 months, to change passwords, this can fall into the life cycle defined above 😉. Knowing that changing passwords is restrictive because no site offers the same interface, the same system or standardized API.
Good luck to you and Merry Christmas 😉.