[CryptokiMan] Random κΈ°λ₯ μ¬μ©λ²
μ΄λ²μλ PKCS#11 μμ μ 곡 νλ Random κΈ°λ₯μ CryptokiMan ν΄μ μ΄μ©ν΄ κ΅¬ν΄ λ³΄μ
PKCS#11 κΈ°λ₯μ ν
μ€νΈ νκΈ° μν΄ μ¬κΈ°μλ SoftHSM2 λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©νμλ€.
Random ν¨μλ₯Ό μ¬μ©νλ μ΄μ λ μμΈ‘ν μ μλ κ°μ λ§λ€κΈ° μν΄μ λ³΄ν΅ λμΉν€λ λΉλμΉν€λ₯Ό λ§λ€ λ μ¬μ©μ΄λλ€.
μ¬μ€ PKCS#11 μμλ Random κΈ°λ₯κ³Ό κ΄λ ¨ν ν¨μλ λκ°μ§ μ΄λ€.
C_SeedRandom κ³Ό C_GenerateRandom ν¨μμ΄λ€.
μ΄ λ ν¨μλ₯Ό μ¬μ©νκΈ° μν΄μλ PKCS#11 μμ C_OpenSession κΉμ§ μ§νμ΄ λμ΄ μμ΄μΌ νλ€.
νμ§λ§ λλ€ κ΄λ ¨ ν¨μλ₯Ό μ¬μ©νκΈ° μν΄μλ νΉλ³ν C_Login μ νμ§ μμλ λλ€.
μ¬μ€ Random κ° μ체μ κΈ°λ₯μ 보μμ μμ μ±μ΄ μμ΄λ λμ§λ§
λ§λ€μ΄μ§ λλ€κ°μ μ¬μ©ν λλ μμ νκ² μ¬μ©λμ΄μΌ νλ€.
κ·Έλ¦Όμ CryptokiMan->μνΈ->Random μ°½μ λ°μ΄ νλ©΄μ΄λ€.
- SetSeed : SEED κ°μ μ€μ νλ€.
- Randome Length : λ ꡬνλ €λ λλ€ κ°μ κΈΈμ΄λ₯Ό μ§μ νλ€.
μ°Έκ³ λ‘ SetSeed μ€μ μ νμ§ μμλ λλλ° μ΄ λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ§ μμΌλ©΄ λ΄λΆμ μ μ λ SEED κ°μ μ¬μ©νκ² λλ€.
κ·ΈλΌ C_GenerateRondom κ²½μ°λ λλ€ κ°μ λ§λ€κΈ° μν΄ μ¬μ©νλ€.
νμ§λ§ C_SeedRandom μ μ μ¬μ©νλκ²μΌκΉ?
μ¬μ€ Random κ°λ μ ν΄μ§ κ·μΉμΌλ‘ λ§λ€μ΄μ§λ€. μ¦ Pseudo-random μΌλ‘ determnistic λλ€μ΄λ€.
μ°λ¦¬κ° λ³΄ν΅ λ§νλ CTR DRBG λ HMAC DRBG κ°μ λ°©μμ΄ κ·Έ κ·μΉμ΄λ€.
μ¦ DRBGμμ SEED κ°μ μ¬μ©νλλ° SEED κ°μ΄ κ°μλ©΄ κ°μ λμλ₯Ό λ§λ€κΈ° λλ¬Έμ μ¬μ©μκ° SEEDλ₯Ό λ³κ²½ νμ¬ λ€λ₯Έ λμ κ°μ λ§λ€κΈ° μν¨μ΄λ€.
μ¦ κ°μ 쑰건μ SEEDμ νκ²½μ΄ λ§μΌλ©΄ κ°μ λλ€ κ°μ΄ λμ¨λ κ²μ΄λ€.
λ¬Όλ‘ SEED κ°μ λ΄λΆμμ λ§λ€μ΄μ§κ³ λ
ΈμΆμ λμ§ μμ§λ§ κ°μ μνλ₯Ό μ΄μ©νλ©΄ κ·Έλ§νΌ λμκ° κ°μ κ°μ΄ λμ¬ μ μμ΄μ
λ€λ₯Έ SEEDλ₯Ό μ¬μ© ν μ μλλ‘ νκΈ° μν¨μ΄λ€.