네트워크
8. Network Security
YJH3968
2021. 10. 6. 16:08
728x90
Network Security의 조건
- confidentiality : 메시지는 수신자와 송신자 이외에는 알 수 없어야 한다.
- authentication : 통신 상대가 실제 원하는 상대인지를 확인해야 한다. 즉, 인증을 말함
- message integrity : 메시지가 중간에 변형되지 않도록 해야 한다.
- access and availability : 사용자가 항상 접근 및 사용 가능해야 한다.
Cryptography
- 대칭키 암호
- 암호화와 복호화에 같은 키를 사용하는 방식
- 송신자와 수신자가 사전에 만나 키를 공유해야 한다는 단점이 있다.
- 공개키 암호
- 각 네트워크 edge는 모든 사람이 공유할 수 있는 공용 키와 각자가 가지고 있는 비밀 키가 있다.
- 수신자로부터 공용 키를 받아 암호화해 데이터를 보내고 수신자가 데이터를 받으면 비밀 키를 이용해 복호화한다.
- 이를 이용해 authentication을 구현할 수 있다.
- 메시지를 보내는 사람이 송신자 자신임을 증명한다고 하자.
- 수신자가 random 메시지를 보내면 해당 메시지를 자신이 가지고 있는 비밀 키로 암호화하고 수신자는 해당 메시지를 송신자의 공유 키로 복호화해 원래 메시지와 동일한지 확인하면 된다.
- 이를 이용해 message integrity를 구현할 수 있다. 이 방식을 digital signature라고 한다.
- 보내는 메시지를 hash function을 통해 작은 메시지로 만들어 이를 비밀 키로 암호화해 보내고 수신자는 송신자의 공용 키로 복호화한 결과가 원래 메시지에 hash function을 적용한 결과와 같은지를 확인한다.
SSL
- Secure Socket Layer
- TLS(Trasport Layer Security)라고도 한다.
- TCP에서는 Security 기능을 제공하지 않기 때문에 이를 별도로 만들었다.
- application layer에서 존재하는 library로 HTTP 메시지를 TCP 소켓을 통해 보내기 전에 보안과 관련된 처리를 해준다.
- HTTPS : HTTP 메시지를 SSL을 통해 TCP로 보낸다.
- TCP 연결을 시작한 뒤 클라이언트가 서버에게 SSL 연결을 요청하면 서버는 공용 키 인증서를 보내 서버의 공용 키를 알려준다. 이를 이용해 암호화된 메시지를 보낸다.
- HTTP 메시지를 SSL을 통해 record로 만든다. record는 length - type - data - MAC(Message Authentication Code)으로 구성된다. MAC은 data, 클라이언트와 서버 사이의 key, sequence(record의 순서를 바꾸는 것을 막음), type(보낼 데이터가 남아 있는지를 알려줌)을 hash function을 적용한 결과이다. TCP의 payload에는 이 record를 담는다.
Firewall
- gateway에서 모든 패킷을 감시하는 장치
- IP 뿐만 아니라 TCP port도 확인할 수 있어야 한다.(layering violation)
출처 : 컴퓨터네트워크 강의
728x90