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
- 좀 뛰다가 비가 너무 많이와서 집으로 들어왔다.