[인공지능 보안을 배우다] 네트워크 추가공부_0210

daniayo·2025년 2월 10일

오늘이 마지막 날이다. 이제 내일..? 내일 모레..?부터 다시 인공지능 보안을 배우다 책으로 돌아가서 프로젝트를 이어서 진행할 것이다. 매우 오랜시간이 걸렸다ㅠ 반성해야겠다..

Ch.07 네트워크 보안 기술

인증

네트워크와 시스템을 이용하는 사용자와 기기가 정식으로 등록됐는 지 확인하기 위하여 '인증'이라는 방법을 사용한다.
인증을 통하여 정식 사용자 이외에는 네트워크나 시스템에 접근할 수 없게 한다.

  • 패스워드 인증 : 정식 사용자라면 당연히 자신의 패스워드를 알고 있을 것
  • 물건으로 인증 : 정식 사용자라면 당연히 IC 카드를 가지고 있을 것
  • 바이오메트릭스 인증 : 정식 사용자라면 당연히 미리 등록해 둔 신체의 특징과 같을 것

암호화

인터넷 상에서 전송되는 데이터는 제 3자에게 도청(유출)될 위험이 크다.
데이터를 암호화함으로써 정식 사용자 이외에 그 데이터 내용을 판별할 수 없게 한다.

  • 평문 : 암호화하기 전의 데이터
  • 암호키 : 평문을 암호화하기 위해서 사용, 특정한 비트 수로 된 수치
  • 암호화 : 평문과 암호키로 수학적 연산을 거쳐 암호화된 데이터인 암호문을 생성하는 것
  • 복호 : 암호화와 암호키를 이용해 반대로 연산하여 암호화된 것을 평문으로 되돌리는 조작
  • 암호화 알고리즘 : 암호화 및 복호화를 할 때의 수학적 연산

공통키 암호 방식

  • 공통키 암호 방식
    • 암호화와 복호화에 같은 암호키를 이용하는 암호화 방식
    • 대칭키 암호방식 & 비밀키 암호방식 등으로 불린다
    • 장점 : 데이터의 암호화와 복호화의 처리 부하가 작다
    • 단점 : 암호키의 공유가 어렵다

데이터를 암호화하고 복호화하기 위해서는, 데이터를 보내는 사람과 받는 사람 사이에 미리 암호키를 공유하고 있어야 한다. 암호키는 제 3자에게 알려져선 안된다.

계속 같은 암호키를 사용하면, 암호 데이터의 규칙성에서 암호가 해독될 위험이 커진다.
데이터의 송신자와 수신자 사이에서 어떻게 암호키를 공유하고 갱신하는 지를 가리켜 키 배송 문제라고 한다. 주요 공통키 암호 방식의 알고리즘으로는 3DES와 AES가 있다.

공개키 암호방식

공개키 암호 방식에서는 우선 암호키(공개키와 비밀키) 쌍을 만들어야 한다. 공개키는 공개해도 상관없지만, 비밀키는 제 3자에게 알려지지 않도록 엄중히 관리해야 한다.

데이터를 암호화해 송신할 경우, 송신자는 수신자가 공개한 공개키를 입수한다. 그리고, 그 공개키로 데이터를 암호화해서 전송한다. 수신자는 비밀키로 암호 데이터를 복호한다.
공개키로 누구나 암호화할 수 있지만, 복호할 수 있는 것은 비밀키를 가진 사용자뿐이다.

비밀키, RSA 암호, 타원곡선 암호

비밀키로 암호화하고 공개키로 복호할 수도 있다. 비밀키로 암호화한 데이터를 공개키로 복호할 수 있다는 것은 데이터를 암호화한 사용자가 공개키에 대응하는 비밀키를 갖고 있다는 말이 된다. 즉, 특정한 사용자가 암호화했다고 확인할 수 있는 것이다.

공개키 암호 방식의 알고리즘은 RSA 암호와 타원곡선 암호가 자주 이용된다.

  • RSA 암호 : 매우 큰 수의 소인수 분해가 어렵다는 점에 바탕을 두고, 공개키와 비밀키 쌍을 생성해 암호 데이터를 연산하는 알고리즘
  • 타원곡선 암호 : 타원곡선 상의 이산대수문제가 어렵다는 점에 바탕을 두고, 공개키와 비밀키 쌍을 생성해 암호 데이터를 연산하는 알고리즘

디지털 서명

비밀키로 암호화한 데이터는 공개키로 복호할 수 있는 원리를 이용하여, 데이터를 보낸 곳과 데이터가 변조되지 않았음을 확인하기 위해 디지털 서명이 있다. 데이터를 보낼 때 서명용 데이터를 추가해서 전송한다. 수신하는 쪽에서 서명 데이터를 체크하면, 데이터가 변조되지 않았으며 보낸 사람이 누구인지 명확해진다.

구체적인 디지털 서명의 내용은 데이터의 해시값을 비밀키로 암호화한 것이다.
해시값 : 데이터로부터 정해진 순서대로 계산하여 얻은 고정 길이의 값

디지털 서명의 원리
1. 송신자가 보낼 데이터에서 해시값을 생성한다
2. 생성한 해시값을 송신자의 비밀키로 암호화해 서명 데이터를 작성한다
3. 송신자는 데이터와 서명 데이터를 함께 수신자에게 전송한다
4. 수신자는 송신자의 공개키를 이용해 서명 데이터를 복호한다. 송신자의 공개키로 서명을 복호할 수 있다는 사실에서 송신자가 확실하게 대응하는 비밀키를 가지고 있음을 알 수 있다
5. 수신자는 수신한 데이터로부터 해시값을 생성한다.
6. 수신자가 생성한 해시값과 서명의 해시값으 비교한다. 해시값이 같으면 데이터가 변조되지 않았음을 알 수 있다.

디지털 인증서

공개키 암호를 안심하고 이용하기 위해서는 공개키가 진짜라는 것을 확인해야만 한다. 악의를 가진 제 3자가 수신자가 되어, 공개키를 공개할 가능성이 있기 때문이다.

공개키가 진짜인지 확인하고 공개키 암호를 안전하게 이용하기 위한 인프라로서 PKI( Public Key Authority )가 있다. PKI에서는 인증기관( CA, Certification Authority )에서 발행한 디지털 인증서로 공개키 암호를 안전하게 이용할 수 있도록 하고 있다. 디지털 인증서에는 공개키가 포함되며, 발행된 디지털 인증서는 서버 등에 설치해 이용한다.

SSL, 하이브리드 암호

SSL에서는 디지털 인증서로 통신 상대방이 진짜라는 것을 확인한다. 그리고, 상대방에게 보내는 데이터를 암호화해서 도청을 방지한다. SSL로 암호화한 웹사이트는 웹브라우저 주소창에 자물쇠 아이콘이 표시된다. 또한, URL은 'https://'로 시작한다.
SSL 암호화는 공개키 암호 방식과 공통키 암호 방식을 조합한 하이브리드 암호이다.
SSL 통신은 서버의 디지털 인증서를 가져온다. 디지털 인증서를 체크함으로써, 서버의 신원을 확인하고, 공개키 암호 방식을 사용하여 공통키(공통키 자체를 공개키로 암호화하는 것은 아니다. 공통키를 생성하는 기반이 되는 데이터를 공개키로 암호화한다)를 안전하게 배송한다. 주고받는 애플리케이션의 데이터는 공통키 암호 방식으로 암호화한다.

인터넷 VPN

기업의 복수 거점 LAN끼리 통신하기 위해서 WAN을 이용한다. WAN을 통해서 자사의 거점 LAN끼리만 통신할 수 있는 사설 네트워크를 만들 수 있다. WAN 구축 비용과 비교하면 인터넷 접속 비용은 훨씬 저렴하다.

인터넷을 경유해 거점 간 통신을 안전하게 할 수 있도록, 인터넷을 가상으로 사설 네트워크처럼 다루는 기술인 인터넷 VPN(Virtual Private Network)을 이용한다.

인터넷 VPN의 주요 구현 방법

  • 거점 LAN의 라우터 사이를 가상으로 연결한다. (터널링)
  • 거점 LAN 간의 통신은 터널을 경유하도록 라우팅한다.
  • 터널을 경유하는 데이터를 암호화한다.

데이터 암호화에는 IPSec이나 SSL과 같은 암호화 프로토콜을 이용한다. 일반 인터넷으로 보내는 데이터는 암호화하지 않은 채 그대로 전송한다.

profile
댜니에요

0개의 댓글