SHA-256
SHA
SHA(Secure Hash Algorithm)μ NISTμ μν΄μ κ΄λ¦¬λλ μμ ν ν΄μ νμ€ ν¨μλ€μ λͺ¨μμ΄λ©° νμ¬λ NIST FIPS 180-3 κ·κ²©μ SHA-2λ₯Ό κΆμ₯ν΄μ μ¬μ©νκ³ μμ΅λλ€. ν΄μ ν¨μλ μ΄λ ν λ¬Έμμ΄μ μΌμ ν κΈΈμ΄λ₯Ό κ°μ§ μμμ λ¬Έμμ΄λ‘ λ³ννλ κ²μ λ§ν©λλ€. μ λ§μ μ°κ΅¬μ μν΄ λ§λ€μ΄μ§ μ¬λ¬κ°μ§ ν΄μ ν¨μ μ€μμ μΌλ°μ μΌλ‘ SHA-256μ μ¬μ©νλ μ΄μ λ ν΄μ ν¨μλ₯Ό μ¬μ©νκ² λλ λͺ©μ μ μλ€κ³ λ³Ό μ μμ΅λλ€. νΉμ ν λ¬Έμμ΄μ λν΄μλ λμΌν ν΄μκ°(λ€μ΄μ μ€νΈ)μΌλ‘ λ³νλλ©° ν΄μκ°μ κΈ°μ€μΌλ‘λ λμΌν ν¨ν΄μ μ°Ύμ μ μμ΄μ λ³Έλμ λ¬Έμμ΄μ μ μΆν μ μλλ‘ νκ³ μ νλ κ²μ μμ΅λλ€.
SHA-256 ν΄μ ν¨μμ λμ κ³Όμ μ Sha256 Algorithm Explainedλ₯Ό μ΄μ©νλ©΄ λμΌλ‘ νμΈν μ μμΌλ μ°Έκ³ ν΄λ³΄λ©΄ μ’μ κ² κ°μ΅λλ€.
λ©μμ§ λ€μ΄μ μ€νΈ
ν΄μ ν¨μλ μ΄λ ν μ λ ₯μ λν΄μ μΌμ ν κΈΈμ΄μ λΉνΈλ‘ μ΄λ£¨μ΄μ§ κ²°κ³Όλ₯Ό κ°μ Έμ€κΈ° μν λͺ©μ μΌλ‘ μ¬μ©λ©λλ€. λ©μμ§ λ€μ΄μ μ€νΈλ μ΄λ€ λ¬Έμμ΄ λ°μ΄ν°λ₯Ό μΌμ ν κΈΈμ΄μ λ€μ΄μ μ€νΈλ‘ λ³νν κ²μ λ§νλ©° λ¨μνκ² ν΄μ ν¨μλ‘ μ²λ¦¬λ ν΄μκ°μΌ λΏμ λλ€.
package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
)
func main() {
plain := "HelloWorld"
hash := sha256.New()
hash.Write([]byte(plain))
hashed := hash.Sum(nil)
fmt.Println("plain:", plain)
fmt.Println("hashed:", hex.EncodeToString(hashed))
}
plain: HelloWorld
hashed: 872e4e50ce9990d8b041330c47c9ddd11bec6b503ae9386a99da8584e9bb12c4
νμΌ μ²΄ν¬μ¬
μ λ©μμ§ λ€μ΄μ μ€νΈλ₯Ό λ°μ΄λ리 νμΌμ νμ©ν λΆλΆμ΄ νμΌ μ²΄ν¬μ¬μ λλ€. how-to-verify-ubuntuμμ μ²λΌ λ€μ΄λ‘λ λ°μ νμΌμ μλ³μ‘° μ¬λΆλ₯Ό κ²μ¦νκΈ° μν΄μ MD5 λλ SHA-256λ‘ ν΄μλ λ€μ΄μ μ€νΈλ₯Ό μ 곡νλ©° μ΄λ₯Ό ν΅ν΄ μ¬λ°λ₯Έ λ°μ΄λ리 νμΌμμ κ²μ¦νκ³ μμ νλ€κ³ νλ¨ν μ μμ΅λλ€. μλμ μμλ μλμ° ν°λ―Έλμμ CertUtilμ μ¬μ©νμ¬ νμΌ μ²΄ν¬μ¬μ νμΈν κ²μ΄λ©° GtkHashμ κ°μ λꡬλ‘λ νμΈν μ μμ΅λλ€.
PS C:\> certutil -hashfile orig.txt sha256
SHA256μ orig.txt ν΄μ:
872e4e50ce9990d8b041330c47c9ddd11bec6b503ae9386a99da8584e9bb12c4
CertUtil: -hashfile λͺ
λ Ήμ΄ μ±κ³΅μ μΌλ‘ μλ£λμμ΅λλ€.
λΉλ°λ²νΈ μνΈν
μΌλ°μ μΌλ‘ λΉλ°λ²νΈλ₯Ό μνΈννμ¬ μ μ₯ν λλ μμ ν ν¨μ€μλ μ μ₯μμ μΈκΈλ PBKDF2 λλ bcryptλ₯Ό μ¬μ©νλ νΈμΈ κ²μΌλ‘ μκ³ μμ΅λλ€. bcryptλ NIST μμ κΆμ₯νλ μκ³ λ¦¬μ¦μ μνμ§λ μμμΌλ OpenBSDλ μ€νλ§ νλ μμν¬μ κΈ°λ³Έ ν¨μ€μλ μΈμ½λλ‘ μ§μ λ λΉκ΅μ μμ ν μκ³ λ¦¬μ¦ μ€ νλμ λλ€. μλ¬΄νΌ μκ³μ΄ λ°μ΄ν°λ² μ΄μ€ μ€ νλμΈ KDB+λ MD5 λλ SHA-1 μκ³ λ¦¬μ¦ λ°©μμΌλ‘ λΉλ°λ²νΈλ₯Ό μ§μνκΈ°μ μ¬μ©νλ μμ€ν λ§λ€ μ§μνλ λ°©μμ μ νμ΄ μμ μ μμ΅λλ€.
λΉλ°λ²νΈ μνΈν κ΄λ ¨ μ½μΌλ©΄ μ’μ κΈ
- μμ ν ν¨μ€μλ μ μ₯
- ν΄μ ν¨μ, μνΈν ν΄μ ν¨μ, κ·Έλ¦¬κ³ SHA
- Hashing in Action: Understanding bcrypt
ν€ μλͺ μ§λ¬Έ
SSH ν€ νμ΄ λ°κΈ λ° μ격 νΈμ€νΈ μ°κ²°νκΈ°μμμ²λΌ SSH ν€μ λν΄ μ§λ¬Έ(Fingerprint)μ μμ±ν΄λκ³ νΈμ€νΈμ λν 곡κ°ν€κ° λ³κ²½λμλμ§λ₯Ό νλ¨νλλ° μ¬μ©λκΈ°λ ν©λλ€. μ΄λ¬ν ν€ μλͺ μ§λ¬Έμ μλμ μ΄λ―Έμ§μ κ°μ΄ SSL μΈμ¦μ μ 보μλ μλͺ ν΄μ μκ³ λ¦¬μ¦μΌλ‘λ μ¬μ©νλ κ²μ νμΈν μ μμ΅λλ€.