Sebastien Rousseau

HSH

Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh

Bí ìpilẹ̀ cryptographic Rust mímọ́ ṣe ń jẹ́ kí àwọn báńkì gbé àwọn ọ̀rọ̀-ìgbàláàyè ìbílẹ̀ sí Argon2id pẹ̀lú àwọn ìlọ́pọ̀ HSM — àti ohun tí ó túmọ̀ sí fún ìtẹ́lọ́rùn DORA àti Basel III.

11 min read
Banner for: Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh

Àkótán fún olùgbéjọ́. Ìmúdájú báńkì tí a kọ́ lòdì sí àpẹẹrẹ ewu 2018 kò bámu mọ́ ìjọba ìlànà 2026. Ìfọ́ tí GPU ń yára, ìpọ̀nlé ASIC, àti ojú ọ̀run lẹ́yìn-quantum tó ń sún mọ́ ti rọ ààlà ààbò PBKDF2 àti scrypt parameter-àkọ́kọ́; Àpilẹ̀kọ 5 DORA ti yí ìbàjẹ́ yẹn padà sí ojúṣe tó ní àkáǹtì fún ìgbìmọ̀ olórí. hsh, ìpilẹ̀ open-source Rust mímọ́, ń yanjú ìṣòro náà ní àwọn ìpele mẹ́ta papọ̀: dispatcher verify_and_upgrade tí ń tún hash ẹrí tí a fi pamọ́ ṣe sí àwọn parameter Argon2id lọ́wọ́lọ́wọ́ ní gbogbo login tó ṣaṣeyọrí láìní ferese ìtọ́jú; ìpele peppering tí HSM- tàbí KMS- ń ti lẹ́yìn mọ́ tí ń ṣe pé ìfọwọ́rọ́gba dátábáàsì kan ṣoṣo kò mú ohun aláàrá kankan jáde; àti ẹ̀wọ̀n ìpèsè aláìléwu ní ìrántí tó ń yọ ojú ìkọlù foreign-function-interface tó wà nínú àwọn ilé-ìkàwé cryptographic tí C ń ti lẹ́yìn kúrò. Àbájáde jẹ́ ìpilẹ̀ tó ń tẹ́ DORA, ìbáwí ewu-ìṣiṣẹ́ Basel III, ojúṣe olùṣàkóso àgbà SM&CR, àti ojú-ọ̀run ìṣíkiri lẹ́yìn-quantum NIST IR 8547 lọ́rùn — láìní ìpolówó ìpadàbẹ̀rẹ̀ bulky tí ó ti pọn dandan ní ìtàn láti gbé ohun-ìní ìmúdájú sókè.

Ọ̀pọ̀ ìmúdájú báńkì ilé-iṣẹ́ ṣì ń dúró lórí ìpele ọ̀rọ̀-ìgbàláàyè tí a fikun fún àpẹẹrẹ ewu 2018. Ohun-èlò tó ń fọ́ ọ ti ré e kọjá. Bí àwọn oko GPU ṣe ń tóbi sí àti bí àwọn kọ̀ǹpútà quantum aláyé-cryptography (CRQC) ṣe ń sún mọ́, hashing ìbílẹ̀ — PBKDF2, scrypt àkọ́kọ́ — ń bàjẹ́ lábẹ́ gbogbo wákàtí compute tí àwọn akolù ń lò lórí ìpolówó crack aláìlí-ayélujára. Ìbàjẹ́ náà jẹ́ ìparọ́rọ́: kò sí ohun tó wà nínú dátábáàsì ìṣelọ́jà tó ń sọ fún ọ pé hash tó lágbára àná kò sí mọ́.

Lábẹ́ Digital Operational Resilience Act (DORA), fífi àwọn dúkìá cryptographic ìbílẹ̀, aláìyípadà sílẹ̀ ní ìṣelọ́jà kì í ṣe gbèsè ìmọ̀-ẹ̀rọ mọ́. Ó jẹ́ ojúṣe ìlànà tí a fún ní orúkọ.

hsh ń tí ààlà náà mọ́. Ìpilẹ̀ Rust mímọ́, ó ń ṣàkóso ọ̀pọ̀ ọ̀nà hash ní ẹ̀gbẹ́-ẹ̀gbẹ́, ó sì ń gbé àwọn ẹrí aláìlera dìde ní afẹ́fẹ́ nígbà àwọn ìpàdé login tó ń ṣiṣẹ́. Apẹrẹ ìmúdájú ń bámu pẹ̀lú àwọn àṣẹ resilience 2026 láìní àkókò ìṣiṣẹ́ ìtọ́jú, láìní àtúntò tó fipá-mu, láìní ìṣẹ́jú àáyá kan ṣoṣo ti àkókò ìdúró.

01. Ìṣòro Ìbàjẹ́ Cryptographic ní Báńkì

Láti ní òye ìnílò ìpilẹ̀ bíi hsh, ẹnìkan gbọ́dọ̀ ní òye ìgbé-ayé hash ọ̀rọ̀-ìgbàláàyè. Àwọn algorithm kì í dàgbà ní ọ̀wọ̀; wọ́n ń bàjẹ́ ní ìbámu pẹ̀lú ohun-èlò tó wà láti fọ́ wọn.

Ààlà ìyára ASIC/GPU. Àwọn algorithm bíi PBKDF2 ni a ṣe láti jẹ́ àpọ́nlé compute fún àwọn CPU. Lónìí, àwọn akolù ń lo àwọn GPU tó ní parallel gíga láti ṣe àwọn ìkọlù ìwé-ìtumọ̀ aláìlí-ayélujára. Hash ìbílẹ̀ tí a ṣẹ̀dá ní 2018 jẹ́ aláìlera púpọ̀ lòdì sí ọ̀tá 2026.

Ewu ìṣíkiri big-bang. Nígbà tí CISO bá pinnu láti gbé sókè láti PBKDF2 sí algorithm aláṣèfun-ìrántí bíi Argon2id, wọn kò lè yí àwọn hash padà láti tún wọn ṣe encrypt. Àwọn ojútùú ìbílẹ̀ — fífipá-mu àtúntò ọ̀rọ̀-ìgbàláàyè olùlò mílíọ̀nù-pupọ̀ — ń fa ìdààmú oníbàárà ńlá àti ewu ìṣiṣẹ́.

Ẹ̀wọ̀n ìpèsè ilé-ìkàwé C. Ní ìtàn, middleware báńkì ti gbáralé àwọn ilé-ìkàwé bíi argonautica tàbí àwọn ìsopọ̀ C aláìmọ́ fún hashing. Àwọn ilé-ìkàwé wọ̀nyí ń gbé ewu ẹ̀wọ̀n-ìpèsè ìparọ́rọ́: buffer-overflow ìrántí kan ṣoṣo nínú module ìmúdájú lè yọrí sí remote code execution (RCE) ní ìpele aládájú jùlọ ti stack báńkì.

Ìfiwéra algorithm — ìdúró ohun-èlò àti ipò àtúntò

Àwọn algorithm mẹ́ta tí báńkì máa ń pàdé ní ojúlówó nínú corpus ìṣíkiri yàtọ̀ síra díẹ̀ ní yíyàn primitive cryptographic, ṣùgbọ́n wọ́n yàtọ̀ gan-an ní bí wọ́n ṣe ń dàgbà lábẹ́ ìfipá ohun-èlò. Tábìlì tó wà nísàlẹ̀ ń ṣe ìsọnísókí ipò ojúlówó.

Algorithm Memory-hard GPU / ASIC resistance Tuning surface 2026 status
PBKDF2 Rárá Kéré — ó ń vectorise lórí GPU; kéré sí millisecond fún àbámu lórí ohun-èlò commodity. Iye iteration nìkan. Ìbílẹ̀. Ó tẹ́wọ́gbà gẹ́gẹ́ bí fallback ẹgbẹ́-verify nígbà ìṣíkiri nìkan.
scrypt Bẹ́ẹ̀ni (níwọ̀nba) Àárín — iye owó ìrántí ń ṣẹ́gun àwọn oko GPU rírọrùn; ó ṣeé fún ASIC ní àpapọ̀. N (CPU/ìrántí), r (iye block), p (parallelism). A ti fẹ̀yìntì fún greenfield. Ó ṣì ń ṣiṣẹ́ nínú àwọn corpus ìṣíkiri.
Argon2id Bẹ́ẹ̀ni (gíga) Gíga — ó le ní ìrántí àti àkókò; ó ń kọjú àwọn ìkọlù side-channel àti TMTO. Iye owó ìrántí (m), iye owó àkókò (t), parallelism (p), aṣírí (pepper). Aláyípadà tó tọ́ ṣe ìṣèdá. OWASP, NIST SP 800-63B-4 draft, FedRAMP.

Àyọkà fún ètò ìṣíkiri kéré: PBKDF2 jẹ́ ipò ẹgbẹ́-verify, kì í ṣe ojú-ọ̀nà ẹgbẹ́-write. Login tó ṣaṣeyọrí kọ̀ọ̀kan lórí àkọsílẹ̀ PBKDF2 gbọ́dọ̀ ṣe àkọsílẹ̀ Argon2id ní jíjáde.

02. Ojú Ìṣètò hsh 2026

A ti ṣe ìpilẹ̀ náà kọjá àwọn ìpele pàtàkì márùn-ún, gbogbo wọn ni a ṣe láti dín ìpín ewu ìṣiṣẹ́ kan-pàtó kù.

Tábìlì 1: Àwọn Ìpele Ìṣètò hsh àti Dída Ewu Kù

Ìpele Ìpinnu Ìṣètò Ìdí Tí Ó Fi Ṣe Pàtàkì Ewu Tí Ó Bá Bí Àìtọ́
Àwọn Cryptographic Primitive Apẹrẹ String PHC Aṣòkan tó ń ti Argon2id, scrypt, àti PBKDF2 lẹ́yìn Ó ń pèsè ìdúró tó dára jùlọ lòdì sí àwọn ìkọlù GPU nígbà tó ń pa ìbámu ẹ̀yìn mọ́. Àwọn silo dátà; àwọn algorithm aláìlera tó ń jẹ́ kí ó ṣeé ṣe láti gbìmọ̀ 100B+ ní ìṣẹ́jú-aaya aláìlí-ayélujára.
Engine Ìlànà Dispatch verify_and_upgrade Ó ń ṣe àdáṣe ìyípadà láti àwọn ìlànà ìbílẹ̀ sí òde-òní ní dynamic lórí login. Ìbàjẹ́ ààbò; àwọn olùlò tó ń ṣiṣẹ́ ń wà lórí àwọn ìrú hash ìbílẹ̀ tí ó rọrùn láti fọ́.
Ìlọ́pọ̀ Ohun-èlò Àwọn agbára "peppering" HSM àti Cloud KMS Ó ń ṣe ìdánilójú pé ìfọwọ́rọ́gba dátábáàsì kan ṣoṣo kò ní fi ọ̀rọ̀-ìgbàláàyè aláàrá hàn. Àwọn ìkọlù brute-force aláìlí-ayélujára tó ń ṣàṣeyọrí lẹ́yìn ìfọwọ́rọ́gba SQL injection.
Ìmọ́tótó Ààbò Fífipá-mu deny.toml àti Rust mímọ́ Ó ń tí FFI aláìléwu àti àwọn ìgbáralé C ti ìta tí a kò ní ìgbẹ́kẹ̀lé pẹ̀lú pátápátá. Àwọn ìkọlù ẹ̀wọ̀n ìpèsè tó léwu àti àwọn CVE ìbàjẹ́-ìrántí.

03. Ọ̀nà Rehash Aláìní Àkókò Ìdúró

Àpẹẹrẹ verify_and_upgrade ń yanjú ìṣíkiri dátà nípasẹ̀ ètò ìpinpín tó mọ̀ àti tó mọ̀ ipò tó ń béèrè àkókò ìdúró dátábáàsì odo.

Nígbà tí olùlò bá fi àwọn ẹrí wọn jíṣẹ́, hsh ń ka string Password Hashing Competition (PHC) tí a fi pamọ́. Tí ó bá ní hash ìbílẹ̀ (fún àpẹẹrẹ, ìṣètò PBKDF2 ti ìgbà àtijọ́) nínú, ètò náà ń ṣe ìṣàn yìí:

  1. Ìdámọ̀: Ó ń parse algorithm ìbílẹ̀ àti àwọn parameter pàtó rẹ̀.
  2. Ìmúdájú: Ó ń fọwọ́sí ọ̀rọ̀-ìgbàláàyè aláàrá lòdì sí hash ìbílẹ̀.
  3. Ìgbéga Àkókò-Gidi: Lórí àbámu tó ṣaṣeyọrí, ó ń mú ọ̀rọ̀-ìgbàláàyè aláàrá plaintext nínú ìrántí, ó sì ń ṣírò hash tuntun lẹ́sẹ̀kẹsẹ̀ pẹ̀lú ìlànà Argon2id tó dájú gan-an.
  4. Ìfimúró: Ó ń da string PHC tuntun padà sí ohun-èlò báńkì, èyí tí ó ń pa àkọsílẹ̀ ìbílẹ̀ jẹ́ nínú dátábáàsì.

Ìṣàn yìí jẹ́ aláìlọ́nà sí olùlò ìparí. Ó ń ṣíkiri àwọn àkáǹtì tó ṣiṣẹ́ jùlọ sí ìpele ààbò tó ga jùlọ ní ọjọ́ kìíní, ó ń dín ipò ìkọlù báńkì kù gan-an ní ọ̀nà aládàṣe lórí àkókò.

Ìlà ìṣẹ̀lẹ̀ tó wà nísàlẹ̀ ń fi ohun tó ń ṣẹlẹ̀ hàn nígbà ìṣẹ̀lẹ̀ login kan ṣoṣo nígbà tí àkọsílẹ̀ tí a fi pamọ́ bá wà lórí algorithm ìbílẹ̀. Olùlò kò rí ohunkóhun tó yí padà; ohun-ìní ìmúdájú báńkì ń lágbára sí i ní àkọsílẹ̀ kan.

sequenceDiagram
    actor User
    participant Frontend
    participant Auth as Authentication Service (hsh)
    participant DB as Database
    User->>Frontend: Submit username + password
    Frontend->>Auth: authenticate(user, password)
    Auth->>DB: SELECT password_hash FROM users
    DB-->>Auth: PHC string (legacy: PBKDF2)
    Note over Auth: Detect legacy algorithm prefix
    Auth->>Auth: verify(password, legacy_hash)
    Note over Auth: Re-hash with Argon2id
    Auth->>DB: UPDATE password_hash = new PHC
    DB-->>Auth: write confirmed
    Auth-->>Frontend: 200 OK
    Frontend-->>User: Login successful

Àpẹẹrẹ ìṣèdá — dispatch verify_and_upgrade

Ojú ìṣopọ̀ inú iṣẹ́ ìmúdájú kéré. Ọ̀nà kóòdù ìbílẹ̀ ṣì wà gẹ́gẹ́ bí fallback; ọ̀nà kóòdù tuntun ni dispatcher.

use hsh::{Hasher, UpgradeResult};

struct UserRecord {
    username: String,
    password_hash: String, // PHC string
}

async fn authenticate(user: UserRecord, password_attempt: &str) -> Result<bool, AuthError> {
    let hasher = Hasher::new();
    match hasher.verify_and_upgrade(password_attempt, &user.password_hash) {
        Ok(UpgradeResult::Verified(is_valid)) => Ok(is_valid),
        Ok(UpgradeResult::Upgraded(new_hash)) => {
            db::update_user_hash(&user.username, new_hash).await?;
            Ok(true)
        }
        Err(_) => Err(AuthError::InvalidCredentials),
    }
}

Àwọn ohun-ìní mẹ́ta ṣe pàtàkì:

Àwọn ipò àìṣàṣeyọrí. Tí write dátábáàsì bá kùnà tàbí KMS kò ṣeé dé fún àkókò díẹ̀ nígbà write ìgbéga, ìpàdé ṣì ń ṣaṣeyọrí lòdì sí hash ìbílẹ̀, àkọsílẹ̀ sì ṣì ń wà lórí algorithm àtijọ́. Login tó ṣaṣeyọrí tó tẹ̀lé e ń gbìyànjú ìgbéga lẹ́ẹ̀kansí. Kò sí ipò tí a ti ṣíkiri níwọ̀nba àti kò sí àìṣàṣeyọrí tí olùlò lè rí — ìṣíkiri jẹ́ monotonic kọjá àwọn ìṣẹ̀lẹ̀ login, iye owó fún àkọsílẹ̀ kọ̀ọ̀kan fún ìgbéga tó kùnà sì jẹ́ àtúngbìyànjú kan ṣoṣo lórí login tó tẹ̀lé e.

04. Hash Peppered nípasẹ̀ Ìlọ́pọ̀ HSM / KMS

Hashing ọ̀rọ̀-ìgbàláàyè àpẹẹrẹ ń dáàbò bo lòdì sí ìjò dátábáàsì tààrà, ṣùgbọ́n tí akolù bá rí dátábáàsì méjèèjì (àwọn hash àti àwọn salt), wọ́n lè ṣe brute-force aláìlí-ayélujára.

hsh ń mú ìpele ààbò "peppered" tó lágbára wá. Nípa dída pọ̀ pẹ̀lú Hardware Security Modules (HSM) tàbí àwọn Iṣẹ́ Ìṣàkóso Bọtìnnì (KMS) cloud-native, a ń di àbájáde Argon2id ìparí pẹ̀lú kọ́kọ́rọ́ àpọ́nlé tó gíga tí kò fi ààlà ohun-èlò aláìléwu sílẹ̀. Tí a bá yọ dátábáàsì olùlò jáde, akolù ní àwọn blob ìpamọ́ nìkan. Wọn kò lè bẹ̀rẹ̀ sí ní fọ́ àwọn ọ̀rọ̀-ìgbàláàyè láìsí pé wọ́n tún wọlé sí apẹrẹ HSM tí a fi sí ààlà ti ara báńkì.

Àwòrán ìṣètò tó wà nísàlẹ̀ ń tọ́ ọ̀nà aṣírí náà. Pepper kì í dé inú dátábáàsì rárá; dátábáàsì kì í gbé ohunkóhun tó ṣeé dé fún ara rẹ̀. Àwọn ìpamọ́ méjèèjì lè kùnà ní ọ̀tọ̀ọ̀tọ̀ — ètò náà ń pàdánù ìkọ̀kọ̀ nìkan tí àwọn méjèèjì bá kùnà papọ̀.

sequenceDiagram
    participant App as Application Server
    participant HSM as HSM (Hardware Security Module)
    participant DB as Database
    Note over HSM: Pepper sealed in hardware<br/>never exits boundary
    App->>HSM: get_secret("production-password-pepper")
    HSM-->>App: pepper (in-memory, request-scoped)
    Note over App: Argon2::new_with_secret(&pepper, ...)
    App->>App: hash(password + salt) consuming pepper
    Note over App: Pepper consumed via secret param<br/>not via string concat
    App->>DB: STORE PHC string (uncrackable blob)
    Note over App: Pepper dropped from memory
    Note over DB,HSM: DB breach alone yields<br/>nothing crackable

Àpẹẹrẹ ìṣèdá — Argon2id peppered tí HSM ń tì lẹ́yìn

A ń rí pepper láti HSM ní àkókò ìbéèrè, kì í ṣe láti inú fáìlì ìṣètò. Argon2::new_with_secret ń jẹ ẹ́ nípasẹ̀ parameter aṣírí algorithm, kì í ṣe nípasẹ̀ ìjùmọ̀sọ̀rọ̀ string.

use argon2::{
    Argon2, Algorithm, Version, Params,
    PasswordHasher, PasswordVerifier,
    password_hash::{PasswordHash, SaltString, rand_core::OsRng},
};

async fn authenticate_with_hsm(
    user: UserRecord,
    password_attempt: &str,
) -> Result<bool, AuthError> {
    let pepper = hsm::client::get_secret("production-password-pepper").await?;
    let hasher = Argon2::new_with_secret(
        &pepper,
        Algorithm::Argon2id,
        Version::V0x13,
        Params::default(),
    )
    .map_err(|_| AuthError::Internal)?;

    let parsed = PasswordHash::new(&user.password_hash)
        .map_err(|_| AuthError::InvalidCredentials)?;
    if hasher.verify_password(password_attempt.as_bytes(), &parsed).is_ok() {
        if is_legacy_hash(&user.password_hash) {
            let new_hash = hasher
                .hash_password(
                    password_attempt.as_bytes(),
                    &SaltString::generate(&mut OsRng),
                )
                .map_err(|_| AuthError::Internal)?
                .to_string();
            db::update_user_hash(&user.username, new_hash).await?;
        }
        return Ok(true);
    }
    Err(AuthError::InvalidCredentials)
}

Àbájáde mẹ́ta tó bámu pẹ̀lú DORA ń yọ jáde láti inú apẹrẹ yìí:

05. Ìbámu Ìlànà: DORA, Basel III, àti SM&CR

Àwọn ìbéèrè tí a sábà máa ń béèrè

Ǹjẹ́ hsh ti múrasílẹ̀ fún ìṣelọ́jà ní ọ̀nà ìmúdájú báńkì tier-1? Ilé-ìkàwé náà jẹ́ open-source, ó ti kọ̀wé, ó sì ń lo Argon2id nípasẹ̀ crate argon2 kan-náà tí ó ń ti ètò hashing-ọ̀rọ̀-ìgbàláàyè RustCrypto lẹ́yìn. Gbígbà-tier-1 ń tẹ̀lé ìṣàwárí dáadáa ti báńkì funra rẹ̀: àyẹ̀wò kóòdù aládàrúpọ̀, ẹ̀rí kíkọ́ tó ṣeé tún ṣe, pinning igi ìgbáralé, ìdánwò ìṣopọ̀ pẹ̀lú olùpèsè HSM, àti ìfọwọ́sí Ewu Ìṣiṣẹ́. hsh ń pèsè ìpilẹ̀; báńkì ń ṣe ìfọwọ́sí gbígbé deploy náà.

Báwo ni verify_and_upgrade ṣe ń yẹra fún ewu ìṣíkiri bulky? Olùverify ń yẹ string PHC wò ní àkókò parse, ó ń sá algorithm ìbílẹ̀ láti fọwọ́sí ọ̀rọ̀-ìgbàláàyè, ó sì — tí algorithm tí a fi pamọ́ tàbí ipele parameter bá wà nísàlẹ̀ ipele lọ́wọ́lọ́wọ́ — ń tún plaintext hash lábẹ́ Argon2id pẹ̀lú pepper HSM tí a dìmọ́, ó sì ń kọ string PHC tuntun padà ní atomic. Olùlò ń ní ìrírí login àpẹẹrẹ. Ohun-ìní ń lágbára sí i ní àkọsílẹ̀ kan fún ìmúdájú tó ṣaṣeyọrí kọ̀ọ̀kan. Kò sí ìpolówó àtúntò, kò sí ferese ìtọ́jú, kò sí ìṣẹ̀lẹ̀ ewu ìṣiṣẹ́.

Kí ló ṣẹlẹ̀ sí àwọn àkáǹtì dormant tí kò ní login rárá? Àwọn àkọsílẹ̀ tí kò ní authenticate kò ní re-hash. Àwọn báńkì ń yanjú èyí pẹ̀lú àwọn ìlànà afikún méjì: ipele dormancy tí a kọ̀wé (sábà 18–24 oṣù) lẹ́yìn èyí tí a fi àkáǹtì sí àtúntò aládájú lábẹ́ ìpolówó tí a ṣàkóso, àti ṣíṣe re-hash synthetic nígbà ìtọ́jú tí a ṣètò fún àwọn àkáǹtì nínú àwọn ẹgbẹ́ ìtàn (iye-gíga, aládájú-gíga, aṣàkóso). Méjèèjì jẹ́ ìlànà, kì í ṣe ìṣe ilé-ìkàwé; hsh ń kọ ìpinnu dispatch sílẹ̀ nínú audit telemetry kí olùní ìṣiṣẹ́ lè fihan agbára.

Ǹjẹ́ pepper HSM ń mú ojú àìṣàṣeyọrí kan ṣoṣo wá ní ọ̀nà ìmúdájú? HSM kan-náà tó ń fọwọ́sí àwọn iṣẹ́ ìsanwó tó sì ń yí àwọn kọ́kọ́rọ́ KMS padà ni ó wà lórí ọ̀nà. Ewu jẹ́ kan-náà sí ipò báńkì tó ti wà tẹ́lẹ̀; hsh ń jogún rẹ̀ dípò ìmú u wá. Àwọn ìdín-kù jẹ́ àpẹẹrẹ: àwọn HSM pair HA, àwọn agbègbè KMS hot-spare, ìrí pepper olùmọ̀-ìbéèrè pẹ̀lú àtúntò circuit-breaker sí ipò ka-nìkan, àti runbook ìṣiṣẹ́ tí ó dájú fún àìsí HSM. Pepper jẹ́ parameter aṣírí argon2, a ń jẹ ẹ́ ní ojú-iṣẹ́ a sì ń jù ú síta láti inú ìrántí lẹ́yìn lílò.

Níbo ni hsh dúró sí lóri ìṣíkiri lẹ́yìn-quantum? hsh jẹ́ ìpilẹ̀ hashing ọ̀rọ̀-ìgbàláàyè-àti-aṣírí, kì í ṣe primitive key-encapsulation tàbí signature. Ìyípadà PQC tí a kọ̀wé nínú NIST IR 8547 ń lépa ìṣètò kọ́kọ́rọ́ (ML-KEM, FIPS 203) àti àwọn signature (ML-DSA, FIPS 204; SLH-DSA, FIPS 205). Ìpele hashing tí hsh ń bo jẹ́ orthogonal ní gbogbogbò sí ìṣíkiri yẹn. Méjèèjì ń pàdé ní ìpele ìpilẹ̀ — méjèèjì fẹ́ ẹ̀wọ̀n ìpèsè cryptographic aláìléwu ní ìrántí, tó ṣeé yẹ̀wò, tó ṣeé tún ṣe — eyi ti jẹ́ ipo tí hsh ń jẹ́ kí ó ṣeé ṣe lónìí.

Ìparí

Deploy-and-forget fún hashing ọ̀rọ̀-ìgbàláàyè ti parí. DORA ti gbé ìparọ́rọ́ cryptographic láti inú gbèsè ìmọ̀-ẹ̀rọ sí inú ojúṣe ìlànà tí a fún ní orúkọ, ìbẹ̀rù ohun-èlò sì ń ga sí i ní ọdún kọ̀ọ̀kan. Ìfikún hsh kì í ṣe algorithm tó lágbára sí i — Argon2id ti wà fún ọ̀pọ̀ ọdún. Ìfikún náà ni ohun èlò ìṣiṣẹ́ láti ṣíkiri sí i láìní ṣíṣe ètò àkókò ìdúró, láìní fífipá-mu àtúntò olùlò, àti láìní fífi ìgbẹ́kẹ̀lé sí shim FFI ti C pẹ̀lú ọ̀nà ìmúdájú báńkì.

Kóòdù orísun hsh wà lábẹ́ ìwé-àṣẹ MIT àti Apache 2.0 méjèèjì.

Àwọn ìtọ́kasí

Basel Committee on Banking Supervision (2011). Basel III: A global regulatory framework for more resilient banks and banking systems. Bank for International Settlements. Wà ní: https://www.bis.org/publ/bcbs189.pdf

Biryukov, A., Dinu, D., Khovratovich, D., and Josefsson, S. (2021). RFC 9106: Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications. Internet Engineering Task Force. Wà ní: https://datatracker.ietf.org/doc/html/rfc9106

European Parliament and Council (2022). Regulation (EU) 2022/2554 on digital operational resilience for the financial sector (DORA). Wà ní: https://eur-lex.europa.eu/eli/reg/2022/2554/oj

Financial Conduct Authority (2015). Senior Managers and Certification Regime (SM&CR). Wà ní: https://www.fca.org.uk/firms/senior-managers-certification-regime

National Institute of Standards and Technology (2024). Initial Public Draft — Transition to Post-Quantum Cryptography Standards (NIST IR 8547). Wà ní: https://csrc.nist.gov/pubs/ir/8547/ipd

OWASP Foundation (2024). Password Storage Cheat Sheet. Wà ní: https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html

Tí a yẹ̀wò gbẹ̀yìn .

Àyẹ̀wò àkọ́kọ́ .

Tẹ àpilẹ̀kọ yìí jáde lẹ́ẹ̀kan sí i

Daakọ ọ̀nà fún Medium

# Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau

> Originally published at [https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/](https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/)

hsh jẹ́ ìpilẹ̀ cryptographic Rust mímọ́ tó ń jẹ́ kí àwọn báńkì tier-1 ṣíkiri àwọn hash ọ̀rọ̀-ìgbàláàyè ìbílẹ̀ sí Argon2id láìní àkókò ìdúró, pẹ̀lú peppering HSM àti yíyọ àwọn àìlera ìrántí FFI ti C kúrò láti tẹ́ àwọn àṣẹ resilience DORA lọ́rùn.

Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Daakọ ọ̀nà fún Mastodon

Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau

hsh jẹ́ ìpilẹ̀ cryptographic Rust mímọ́ tó ń jẹ́ kí àwọn báńkì tier-1 ṣíkiri àwọn hash ọ̀rọ̀-ìgbàláàyè ìbílẹ̀ sí Argon2id láìní àkókò ìdúró, pẹ̀lú peppering HSM àti yíyọ àwọn àìlera ìrántí FFI ti C kúrò láti tẹ́ àwọn àṣẹ resilience DORA lọ́rùn.

https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Daakọ tí a ṣe ìtọ́nà fún LinkedIn

Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau

hsh jẹ́ ìpilẹ̀ cryptographic Rust mímọ́ tó ń jẹ́ kí àwọn báńkì tier-1 ṣíkiri àwọn hash ọ̀rọ̀-ìgbàláàyè ìbílẹ̀ sí Argon2id láìní àkókò ìdúró, pẹ̀lú peppering HSM àti yíyọ àwọn àìlera ìrántí FFI ti C kúrò láti tẹ́ àwọn àṣẹ resilience DORA lọ́rùn.

Èyí ni àwọn èrò àgbékalẹ̀ pàtàkì:

- 01. Ìṣòro Ìbàjẹ́ Cryptographic ní Báńkì. Láti ní òye ìnílò ìpilẹ̀ bíi hsh, ẹnìkan gbọ́dọ̀ ní òye ìgbé-ayé hash ọ̀rọ̀-ìgbàláàyè.
- 02. Ojú Ìṣètò hsh 2026. A ti ṣe ìpilẹ̀ náà kọjá àwọn ìpele pàtàkì márùn-ún, gbogbo wọn ni a ṣe láti dín ìpín ewu ìṣiṣẹ́ kan-pàtó kù.
- 03. Ọ̀nà Rehash Aláìní Àkókò Ìdúró. Àpẹẹrẹ verify_and_upgrade ń yanjú ìṣíkiri dátà nípasẹ̀ ètò ìpinpín tó mọ̀ àti tó mọ̀ ipò tó ń béèrè àkókò ìdúró dátábáàsì odo.
- 04. Hash Peppered nípasẹ̀ Ìlọ́pọ̀ HSM / KMS. Hashing ọ̀rọ̀-ìgbàláàyè àpẹẹrẹ ń dáàbò bo lòdì sí ìjò dátábáàsì tààrà, ṣùgbọ́n tí akolù bá rí dátábáàsì méjèèjì (àwọn hash àti àwọn salt), wọ́n lè ṣe brute-force aláìlí-ayélujára.

Kí ni ọ̀nà àgbékalẹ̀ ilé-iṣẹ́ yín sí àwọn ìpèníjà tí a sọ nínú àpilẹ̀kọ yìí?

→ https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

#Hsh #CryptographyRust #HashingỌ̀rọ̀Ìgbàláàyè #Argon2id #ÀàbòBáńkì

Sebastien Rousseau | CC-BY-4.0
Tọka àpilẹkọ yìí

Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau

hsh jẹ́ ìpilẹ̀ cryptographic Rust mímọ́ tó ń jẹ́ kí àwọn báńkì tier-1 ṣíkiri àwọn hash ọ̀rọ̀-ìgbàláàyè ìbílẹ̀ sí Argon2id láìní àkókò ìdúró, pẹ̀lú peppering HSM àti yíyọ àwọn àìlera ìrántí FFI ti C kúrò láti tẹ́ àwọn àṣẹ resilience DORA lọ́rùn.

BibTeX

@online{rousseau2026dída,
  author  = {Rousseau, Sebastien},
  title   = {{Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau}},
  year    = {2026},
  url     = {https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/},
  urldate = {2026}
}

RIS

TY  - GEN
AU  - Rousseau, Sebastien
TI  - Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau
PY  - 2026
UR  - https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/
ER  -

Vancouver

Rousseau S. Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau. sebastienrousseau.com. 2026 Jun 22. Available from: https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Chicago

Rousseau, Sebastien. "Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau." sebastienrousseau.com. June 22, 2026. https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/.

APA

Rousseau, S. (2026, June 22). Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Tun àpilẹkọ yìí jade

Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau

hsh jẹ́ ìpilẹ̀ cryptographic Rust mímọ́ tó ń jẹ́ kí àwọn báńkì tier-1 ṣíkiri àwọn hash ọ̀rọ̀-ìgbàláàyè ìbílẹ̀ sí Argon2id láìní àkókò ìdúró, pẹ̀lú peppering HSM àti yíyọ àwọn àìlera ìrántí FFI ti C kúrò láti tẹ́ àwọn àṣẹ resilience DORA lọ́rùn.

A ti fun àpilẹkọ yìí ni iwe-ẹri labẹ Creative Commons Attribution 4.0 International. Atunjade nilo idanimọ si URL akọkọ.

Dída Ìṣàkóso Ọ̀rọ̀-ìgbàláàyè Bo ní Báńkì Ilé-iṣẹ́: Hashing Aláwọ̀n-méjì àti Àwọn Ìgbéga pẹ̀lú hsh — Sebastien Rousseau

hsh jẹ́ ìpilẹ̀ cryptographic Rust mímọ́ tó ń jẹ́ kí àwọn báńkì tier-1 ṣíkiri àwọn hash ọ̀rọ̀-ìgbàláàyè ìbílẹ̀ sí Argon2id láìní àkókò ìdúró, pẹ̀lú peppering HSM àti yíyọ àwọn àìlera ìrántí FFI ti C kúrò láti tẹ́ àwọn àṣẹ resilience DORA lọ́rùn.

Originally published at https://sebastienrousseau.com/yo/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/ by Sebastien Rousseau.
Licensed under CC-BY-4.0.