CS/네트워크
#10 네트워크 보안 1 - 암호화
Scala0114
2021. 12. 6. 14:24
1. 대칭키 암호화(Private Key Cyptography)
- 하나의 비밀키를 사용하여 plain text 를 암호화하고 복호화하는 방식
- 구조가 매우 단순하여 구현이 쉬움
- 키를 공유하는 과정에서 유출될 경우 보안이 무의미해짐
2. 공개키 암호화(Public Key Cyptography)
- 남에게 공개하지 않는 개인키와 모두에게 공개하는 공개키를 사용
- 어떤 사람의 공개키를 사용하여 암호화된 데이터는 그 사람의 개인키를 사용해야 복호화할 수 있음
- 어떤 사람의 개인키를 사용하여 암호화된 데이터는 그 사람의 공개키를 사용해야 복호화할 수 있음
- 키를 교환할 필요 없이 상대의 공개키를 사용하여 암호화한 뒤 데이터를 전송하면 보안이 보장됨
- 암호화/복호화에 걸리는 시간이 대칭키 암호화방식에 비해 훨씬 길다
- DSA, RSA, ECC 등의 알고리즘이 있다.
3. 인증(Authentication) - 전자서명
- 통신중인 상대가 정말 본인이 맞는지 확인이 필요
- 공개키 암호화를 응용하여 본인을 인증
- 상대에게 랜덤 데이터를 보내고 상대는 이를 자신의 개인키로 암호화하여 전송
- 상대의 공개키로 이 데이터가 정상적으로 복호화된다면 상대가 본인임을 인증할 수 있음
4. 인증기관(Certificate Authority)
- 공개키 암호화를 사용한 인증방식에도 문제가 있음
- 만약 상대가 보낸 암호화된 랜덤데이터와 공개키 모두 전혀 다른사람의 것이어도 알아챌 수 없음
- 이를 보장해줄 신뢰성있는 제 3자가 필요 => 인증기관의 필요성
- 인증기관(CA)은 자신의 비밀키로 암호화된 인증서를 제공하고 사용자는 이를 CA의 공개키로 복호화,
인증기관이 발행한 인증서임을 확인함과 동시에 인증서를 통해 식별하고자 하는 상대방의 공개키와
정보를 얻게된다. 이를 통해 전자서명을 통한 상대방의 본인 여부를 확인할 수 있다.