• 단방향 암호화

    Untitled

    • 단방향이라는 것은 복호화는 불가능하고, 암호화만 진행하는 것을 의미
      • 일반적인 비밀번호, 세션/토큰 등은 단방향 암호화 수행
    • 대표적인 암호화방식으로 SHA256
      • 데이터를 고정된 길이의 고유한 해시 값으로 변환하는 암호화 방식
  • 양방향 암호화

    • 양방향이라는 것은 한쪽방향에서는 암호화를 하고 한쪽방향에서는 복호화를 하는 방식
    • 양방향 암호화에는 대칭키 방식과 비대칭키 방식 등 크게는 방식이 두가지
      • 대칭키
        • 암호화, 복호화 모두 동일한 비밀키 사용(대칭). 해당키는 공개되어서는 안되는 비밀키로 관리되어야 하고, 암호화 주체와 복호화 주체간에 해당 키를 주고받아야 하는 상황이 발생.
      • 비대칭키
        • 암복호화시에 각각 공개키, 비밀키(개인키)를 두고, 이 두 키중 하나는 암호화 키로 또다른 하나는 복호화 키로 사용
        • 공개되는 것은 공개키 공개되지 않는 것은 개인키 또는 비밀키암복호화시 보통은 공개키가 암호화 모듈로 사용
        • 대표적으로 RSA, ECDSA 등의 알고리즘 사용
        • 비트코인은 비대칭키 암호화를 사용. https통신도 비대칭암호화 방식을 사용.
  • https통신은 SSL(TLS)인증서를 사용해 사용자가 서버에 보내는 데이터들을 비대칭 방식으로 암호화 처리

    • 사용자가 웹서버의 홈페이지에 접근을 하면 서버는 SSL인증서를 사용자의 웹브라우저에 전달
    • 해당 인증서에 공개된 암호화키가 들어있고, 이것을 사용해 사용자가 보내고자 하는 데이터를 암호화하여 서버에게 전달
    • 서버는 공개된 암호화키와 짝이 되는 복호화 비밀키를 사용하여 해당 암호화문을 복호화
      • form태그 또는 axios를 통한 body요청은 주소에 공개되지 않을뿐 암호화가 된것은 아니므로 https가 반드시 필요