Skip to content
On this page

2023년 07월 18일

수정하기
문서 생성 2023-07-18 08:20:36 최근 수정 2023-07-18 22:39:16
하늘에 구멍이 났다.

📚 오늘 도전하고, 배운 것

TypeScript-Access-Modifiers Inversion-of-Control

🤔 학습하면서 궁금하거나 어려웠던 점

사용자 비밀번호를 DB에 암호화해서 저장할 때 salt는 어떤 값을 넣어야 하는지 저번부터 궁금했었다. 일단 환경변수에 항상 같은 값을 넣어두고 사용했는데 오늘 다른 사람의 코드를 구경했다.
그 코드에서는 사용자마다 다르게 처리하고 있었다.
salt를 사용하지 않으면 공격자는 모든 사용자에 대해 '레인보우 테이블'을 재사용할 수 있다. 하지만 salt를 사용하면 공격자는 사용자마다 다른 salt를 사용하기 때문에 모든 사용자에 대한 레인보우 테이블을 생성해야 한다.

사용자 인증을 위해 salt 값이 필요하므로 salt + hash된 비밀번호를 DB에 저장해둔다. 만약 공격자가 DB에 접근해 salt를 알고 있어도 사용자마다 레인보우 테이블을 생성해야 하니 시간이 매우 많이 소요될 수 있는 것이다.

🌅 내일은 무엇을?

✒️ log

  • 좀 뛰다가 비가 너무 많이와서 집으로 들어왔다.