본문 바로가기

서비스 기획

회원 서비스 기획 ④ - 회원 정보 저장

반응형

여기서부터는 서비스 기획 영역인가, 아닌가 싶긴 하지만, 암호화 관련해서는 알고 있어야 할 것 같아 써봅니다. 

 

회원가입 시 입력한 유저의 정보인 ID, 비밀번호, 이름 전화번호, 이메일은 회원 서버의 DB에 저장되어 있을 거예요. 

 

이 정보중 아래와 같이 법령에 의해 암호화 대상이 있으며 저장을 할 경우에는 반드시 암호화를 해야 한다고 합니다. 

(개인정보보호위원회) 개인정보의 기술적·관리적 보호조치 기준
제6조(개인정보의 암호화) ① 정보통신서비스 제공자등은 비밀번호는 복호화 되지 아니하도록 일방향 암호화하여 저장한다. 
② 정보통신서비스 제공자등은 다음 각 호의 정보에 대해서는 안전한 암호알고리듬으로 암호화하여 저장한다. 
1. 주민등록번호 
2. 여권번호 
3. 운전면허번호 
4. 외국인등록번호 
5. 신용카드번호 
6. 계좌번호 
7. 바이오정보 
③ 정보통신서비스 제공자등은 정보통신망을 통해 이용자의 개인정보 및 인증정보를 송·수신할 때에는 안전한 보안서버 구축 등의 조치를 통해 이를 암호화해야 한다. 보안서버는 다음 각 호 중 하나의 기능을 갖추어야 한다. 
1. 웹서버에 SSL(Secure Socket Layer) 인증서를 설치하여 전송하는 정보를 암호화하여 송·수신하는 기능 
2. 웹서버에 암호화 응용프로그램을 설치하여 전송하는 정보를 암호화하여 송·수신하는 기능 

 

비밀번호는 일방향 암호화 처리를 해서 복호화가 불가능하도록 합니다.  

  • 일방향 암호화라고 말에 바로 떠오른 건 Hash 함수였는데, 진짜 비밀번호를 Hash로 쓰나 싶어서 찾아봤더니, '패스워드의 암호화와 저장 - Hash(해시)와 Salt(솔트) (참고자료 확인)'라는 글을 읽어보니, 일방향 Hash 함수의 한계점이 쓰여 있었습니다. 원래 해시 함수는 사용하는 이유는 빠르게 데이터를 검색을 위한 목적으로 만들어졌으며, Hash 함수를 통해 암호화된 값이 항상 같은 값을 가지고, 값이 변하지 않아 해커가 무차별 대입 공격할 경우 비교를 해서 비밀번호를 찾을 수 있다는 것입니다. 이를 보완하는 방법이 2가지가 있는데, Hash 함수를 여러 번 수행하는 것이고, (이 역시 Hash 함수를 몇 번 수행했는지만 확인하면 또 무차별 대입 공격을 할 수 있다고 하네요. ) 또 하나는 Salt를 하고 Hash 함수를 수행하는 것입니다. Salt란 Hash 함수를 돌리기 전에 원문에 임의의 문자열을 넣는 것인데, 사용자마다 다른 Salt를 사용하면 한 명의 비밀번호가 유출되었더라도 다른 사용자는 비교적 안전하다고 할 수 있다고 합니다. (요기는 사실 기획자가 알지 않아도 될 일이에요. 저도 오늘 제대로 알게 되네요.)   

 

비밀번호 이외 암호화 대상은 데이터와 함께 암호화 키가 사용하여 암호화를 시키고, 키를 이용하여 복호화를 처리를 합니다.

 

참고자료 : 

- 패스워드의 암호화와 저장 - Hash(해시)와 Salt(솔트) : https://st-lab.tistory.com/100

- (개인정보보호위원회) 개인정보의 기술적·관리적 보호조치 기준 : 

https://www.law.go.kr/%ED%96%89%EC%A0%95%EA%B7%9C%EC%B9%99/(%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EB%B3%B4%ED%98%B8%EC%9C%84%EC%9B%90%ED%9A%8C)%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EC%9D%98%EA%B8%B0%EC%88%A0%EC%A0%81%C2%B7%EA%B4%80%EB%A6%AC%EC%A0%81%EB%B3%B4%ED%98%B8%EC%A1%B0%EC%B9%98%EA%B8%B0%EC%A4%80/(2020-5,20200811) 

반응형