개인정보의 암호화 - f-lab-edu/myinsta GitHub Wiki

#개인정보 암호화

비밀번호 암호화의 필요성

암호화 알고리즘의 종류

양방향 암호화 알고리즘

  • 암호화후 복호화가 가능한 알고리즘
  • 대표적으로 대칭키(비공개키)와 비대칭키(공개키) 알고리즘이 있다.

단방향 암호화 알고리즘

  • 암호화후 복호화가 불가능한 알고리즘
  • 대표적으로 Hash가 있다

대칭키 알고리즘

  • 비공개키 알고리즘이라고도 하며 한개의키로 암호화 복호화를 할수있는 알고리즘이다
  • 대표적으로 AES, DES가 있다.
  • 문제점으로는 복호화를 위해 키를 상대에게 공유(전송)하여야 하는 문제점이있다. 중간에 키가 공격자가 가로챌수있다. 이점을 해결 하기위해 나온것이 비대칭키(공개키) 알고리즘

비대칭키 알고리즘

  • 공개키 알고리즘이라고도 하며 두개의 키를 사용하여 각각 암호화 복호화에 사용한다.
  • 각각의 키를 A, B 라고 할때 A로 암호화한 정보는 B로만 복호화가 가능하고 B로 암호화한 정보는 A로만 복호화가 가능하다.
  • 둘중 한개의 키를 비밀키라고 하며 보관용으로 사용하고, 나머지 하나를 공개키라고 하며 상대방이 복호화에 사용할수있도록 전송된다.
  • 대칭키 알고리즘에 비해 암호화와 복호화가 느리다는 단점이 있다.
  • 중간자 공격법 ( 중간에서 상대방인척 키를 얻어내어 공격하는 공격법 )에 취약하다

단방향 알고리즘

  • 해시를 사용한다
  • 양방향과 다르게 한번 암호화 하면 복호화가 불가능하다
  • 비밀번호 같은 공개 되어서는 안되는 개인정보 저장시에 사용하며 값을 비교할때는 해시의 결과가 항상 같은 점을 이용 변화 시킨 값을 비교하여 한다.
  • 보통 SHA-2이상의 사용을 권고하며 MD5는 이미 쉽게 뚫린지 오래라고 한다.

비밀번호 암호화 알고리즘 종류

  • 위 기준에서 언급되어있다 시피 개인정보를 암호화 하는데에 사용되는 암호화 방법은 단방향 암호화로, 암호화 되고 나면 다시 원상태로 돌릴수 없는 암호화 방법을 사용할것을 권고 하고 있다.
  • 단방향 알고리즘의 종류로는 SHA(-1,-2,-3),BLAKE(2,3),WHIRPOOL,RIPEMD-160,MD5등이 있다.
  • 이 들은 Cryptographic Hash Function인 해시 함수를 사용하여 문자열을, digest라는 Hexadecimal의 결과로 만들어 주는 암호화 방식이다. 즉, 엄밀히 말하자면 암호화라기 보다는 해싱이라고 하여야 할것이다.
  • 개인정보 암호화에 Encryption이 아닌 hashing을 사용하는 이유는 '단방향'이어야 하기 때문이다. 변환후 복원이 될수 없는 해싱과 다르게 Encryption은 key를 사용하면 복호화가 되기 때문이다.

Hash

  • 입력값에 따라 해싱의 결과값은 항상 일정하다.
  • 해싱에 사용된 해시함수의 알고리즘을 모르는 이상 복호화가 불가능하다.
  • 암호화가 빠르다.

무엇을 사용해야 하는가

참고