컴퓨터 네트워크 보안
네트워크 보안
- 안전한 통신이란
- 기밀성(confidentiality)
- 송신자와 송신자가 의도한 수신자만이 통신 내용을 이해할 수 있어야 한다.
- 암호화와 복호화를 위한 암호 기술이 필요하다.
- 메시지 무결성(message intergrity)
- 메시지가 변경되지 않음을 확인할 수 있어야 한다.
- 신뢰적인 전송 및 데이터 링크 프로토콜을 위해 사용했던 체크섬 기술을 확장함으로써 메시지 무결성을 제공할 수 있다.
- 종단점 인증(end-point authentication)
- 송신자와 수신자는 통신에 참여하는 상대방이 실제 누구인지 확인하기 위해 상대방의 신원을 확인할 수 있어야 한다.
- 운영 보안(operational security)
- 대부분의 기관들의 네트워크는 공공 인터넷에 연결되어 있으므로 외부로부터 공격받을 수 있다.
- 방화벽, 침입 감지 시스템이 필요하다.
- 기밀성(confidentiality)
- 암호화의 원리
- 기본적으로 송신자의 데이터를 암호화하여 침입자가 가로챈 데이터로부터 아무런 정보도 얻지 못하도록 하는 목적
- 오직 수신자만이 변형된 데이터를 복호화하여 온전한 데이터로 복원할 수 있어야한다.
- 인터넷에서 사용되는 암호화 기술 자체는 표준화되어 공개되어 있고 송신자와 수신자의 키를 통해 보안을 유지한다.
- 대칭키 암호화
- 송신자와 수신자는 같은 키를 가지고 암호화와 복호화를 수행하며 이 키는 둘 사이의 비밀이다.
- 블록 암호화
- 메시지가 K비트 블록 단위로 암호화된다.
- DES, AES
- 공개키 암호화
- 미리 비밀키를 공유하지 않고도 암호화 통신을 가능하게 함.
- 한쌍의 키가 사용된다. 키 중 하나는 모두에게 공개, 다른 하나는 한쪽만 알고 있다.
- RSA
- 메시지 무결성과 디지털 서명
- 메시지가 전송 중에 변경되지 않았다는 것만 보장하기 위해서 hash 함수를 이용해서 메시지 요약본(MAC, 메시지 인증 코드)을 생성 후 전달한다.
- 서로 다른 메시지가 같은 해시를 만들어내는 같은 2개의 메시지를 찾아낼 수 있을지는 몰라도 침입자가 특정 부분만을 바꿨을 때 동일한 hash 값이 나올 확률은 거의 없다.
- MD5, SHA-1 해쉬 알고리즘 사용
- 전자서명
- 공개키 암호화를 사용하는 방식
- 송신자가 메시지 요약본을 생성 후 개인키로 암호화하여 전송하면 수신자는 공개키로 복호화하여 메시지가 변경되지 않았다는 것을 확인할 수 있다.
- 공개키 인증
- 공개키가 어떤 특정한 통신 개체의 것인지 보증하는 일은 일반적으로 인증기관에서 담당하고 있다. 인증기관은 신원을 확인하고 인증서를 발급한다.
- 메시지가 전송 중에 변경되지 않았다는 것만 보장하기 위해서 hash 함수를 이용해서 메시지 요약본(MAC, 메시지 인증 코드)을 생성 후 전달한다.
- 종단점 인증
- 종단점 인증은 하나의 통신 개체가 다른 개체에게 자신의 신원을 컴퓨터 네트워크상으로 증명하는 작업이다.
- 인증 프로토콜은 두 통신 관계자가 어떤 다른 프로토콜(신뢰적인 데이터 전송 프로토콜, 라우팅 정보교환 프로토콜, 전자메일 프로토콜)을 수행하기 이전에 수행된다.
- 비밀번호로 인증하는 방식은 안전하지 않다. 비밀번호를 암호화하더라도 플레이백 어택(playback attack)의 위험에 노출되어 있다. 암호화된 비밀번호를 도청하여 저장했다가 제3자가 활용할 수 있기 때문이다.
- 어떻게 원래의 인증 요청 메시지와 재생한 메시지를 구별할 수 있을까?
- 서버는 구별하기 위해서 넌스(nonce)라는 프로토콜이 평생 당 단 한 번만 사용하는 숫자를 이용하여서 송신자와 실제로 통신 중임을 확인할 수 있다.
- 넌스와 공개키 암호를 사용할 수 있는가?
- TLS 프로토콜
- https
- TLS는 기밀성, 데이터무결성, 서버인증과 클라이언트 인증을 통해 TCP를 향상함으로써 보안 위험에 대처할 수 있다.
- TLS는 소켓을 사용하는 간단한 API를 제공하는데 이는 TCP의 API와 유사하다.
- TLS를 사용하기를 원할 때 애플리케이션은 SSL 클래스/라이브러리를 포함한다.
- handshake 단계
- TCP 연결 설립
- 서버가 클라이언트의 신원 확인
- 서버는 TLS 세션에 필요한 모든 대칭키를 생성하기 위해 클라이언트와 서버가 사용할 master secrect key(MS)를 생성하고 클라이언트의 공개키로 암호화하여 EMS로 전송한다.
- 클라이언트는 EMS를 자신의 개인키로 복호화하여 MS를 얻는다.
- 키 유도 단계
- MS를 이용하여 클라이언트와 서버는 각각 4개의 키를 생성한다.
- 데이터 전송 단계
- TLS는 데이터 스트림을 레코드로 쪼개고 각 레코드에 무결성 검사를 위한 HMAC를 덧붙인후 이 '레코드+HMAC를 암호화한다.
'Network > 컴퓨터 네트워킹 하향식 접근' 카테고리의 다른 글
| [컴퓨터 네트워킹 하향식 접근] 6. 무선 및 이동 네트워크 (1) | 2023.03.19 |
|---|---|
| [컴퓨터 네트워킹 하향식 접근] 4. 네트워크 계층 (0) | 2023.02.18 |
| [컴퓨터 네트워킹 하향식 접근] 3. 트랜스포트 계층 (0) | 2023.02.12 |
| [컴퓨터 네트워킹 하향식 접근] 2. 애플리케이션 계층 (1) | 2023.01.28 |
| [컴퓨터 네트워킹 하향식 접근] 1. 컴퓨터 네트워크와 인터넷 (0) | 2023.01.08 |
댓글