관리 메뉴

사과하는 제라스

14강. 보안 기본 개념 본문

대학 전공 공부/네트워크 프로그래밍

14강. 보안 기본 개념

Xerath(제라스) 2022. 5. 21. 16:59

목차

    728x90
    반응형

    - 네트워크 관련 보안 protocol, 보안이 적용된 네트워크 프로그래밍을 배울 것임.

     

    1. 정보보호 기초

     

    - 암호기법(cryptography)

    : 과거 => 메시지의 기밀성(confidentiality)를 제공하기 위해 사용한 기술.

    / 현재 => 메시지를 공격자로부터 보호하기 위하여 메시지를 변화하는 기술.

    Key(uniformly distributed random string)를 사용함. => 랜덤한 바이너리 값으로 매우 중요한 것임.

    1) 암호화, 복호화 key = Symmetric key(대칭 키)

    2) 공개된 key = Asymmetric key, Public key

     

    - 암호학 관련 대표 용어

    1) Plaintext(평문) : 암호화되기 전의 메시지

    2) Encryption algorithm(암호화 알고리즘) : 평문을 암호화하는 알고리즘.

    3) Secret key : 암호화 키. 암호화에 사용되는 키임.

    4) Ciphertext(암호문) : 암호화된 후의 메시지.

    5) Decryption algorithm(복호화 알고리즘) : Ciphertext를 복호화하는 알고리즘.

    - k1과 k2가 같으면 대칭키, 다르면 공개키!

    - 안전한 암호란? 평문에 대한 유추가 불가능한 암호문이 안전함.

    ex) [비밀키가 공개 or 암호화 알고리즘이 취약하게 설계 or 암호문을 통해 평문을 유추 가능] => 이러면 안됨!

    ∴ 키를 잘 보관, 암호화 알고리즘을 안전한 것을 선택해야 함.

     

    - 3대 정보보호 서비스 (NIST) - 미국 표준협회에서 정의한 개념임(일명 C.I.A)

    1. 기밀성(Confidentiality) - 암호화 관련

    2. 무결성(Integrity) - 데이터가 위조(훼손)되었는지 여부 확인

    3. 가용성(Availability) - 시스템 사용에 있어서 원할 때 접근할 수 있는지 여부

    ex) myclass.ssu.ac.kr에 있는 컨텐츠들이...

    허용된 사람만 보게 접근제어(C)

    올려둔 영상, 강의교안, 과제 결과물 등이 훼손X(I)

    이 컨텐츠들을 원할 때 접근할 수 있어야 함(A)

     

    => 인증, 부인방지(전자 서명), 접근 제어를 제공함.

     

    2. 암호학적 해쉬 함수(Cryptographic Hash Function)

    : 메시지 무결성(I)을 제공할 수 있는 정보보호 솔루션

    => 무결성을 위해 원문을 암호화적 해쉬 함수를 통해 MDC(Modification Detection Code)를 만들어 사용.

    ex) SHA(Secure Hash Algorithm)-1 => 국제 해쉬 함수 표준으로 output이 20byte로 고정되어 있음.

     

    암호학적 해쉬 함수: h = H(M)

    1) 임의의 크기의 데이터 M을 입력 값으로 넣을 수 있음.

    2) 고정된 크기의 출력 값이 나옴. ex)SHA-1의 경우 20 bytes, SHA256의 경우 32bytes

    3) H/W, S/W의 적용이 쉬워야 하므로 엄청 빠르고 출력값 계산이 용이한 함수임.

    4) 공개된 함수이며, key가 사용되지 않음

    5) key를 간혹 사용하는 경우 있음. h = H(k,M) -> MAC(Message Authentication Code) => 이런 건 무결성 + 인증까지 제공해줌.

     

    - 다음 그림처럼 암호학적 해쉬 함수는 one-way function임.

    - Avalanche effect가 있는 함수임(즉, 인풋이 한 비트만 달라도 아웃풋이 모두 다르다!)

    - 대부분 SHA-256을 사용중, SHA-512는 많이 사용될 예정이고 SHA-1, SHA-224는 잘 사용 안하자는 주의임.

    - MDC는 디지털 포렌식에서도 많이 쓰임.

     

    - MAC은 key가 주어지기 때문에 key를 알고있는 사람만 해쉬함수를 돌려서 값을 얻을 수 있음.

    => key를 사용하기 때문에 안전한 채널로 보내지 않아도 문제없음.

     

    3. 대칭키 암호 시스템(Symmetric Crypto System) => 기밀성을 제공하는 알고리즘

    - AES 알고리즘 : 128bit(16bytes)로 쪼개서 각각을 암호화하는 방식의 알고리즘

    - AES 구조 : 블록 운용 암호화

     

     

    4. 공개키 암호 시스템(Public Crypto System) => 기밀성을 제공하는 공개키 암호화 기술, 인증을 제공하는 전자서명 기술.

    => 각 사람마다 한 쌍의 키(공개키, 개인키)를 갖고 있음.

    공개키를 가지고서 개인키를 도출하는 것은 계산적으로 불가능함.

     

    - 암호화 과정

    => A가 공개키와 그에 대한 개인키 만듦 - 공개키를 클라우드에 올려둠 - B가 A에게 전송할 메시지를 공개키로 해서 보냄 - 그걸 복호화할 수 있는 건 오직 A의 개인키임.

    - 공개키가 느리다는 단점을 보완하기 위해 하이브리드 암호시스템을 쓰기도 함.

    - 암호화 과정

    => A가 보내고자 하는 평문을 대칭키로 암호화 - A의 대칭키를 B의 공개키로 암호화 - 이 2개를 같이 보냄 - A의 대칭키를 B의 개인키로 복호화 - 복호화로 얻은 A의 대칭키로 암호화된 평문을 복호화

     

    - One-way Function(일방향 함수) => 복호화가 어려움.

    - Trapdoor One-way Function => 비밀키를 가진 자는 복호화가 가능함. (현재 많이 사용하는 함수임.)

    - RSA 암호 : 가장 많이 사용되고 있는 공개키 암호시스템

    - 전자서명

    : 개인키로 암호화(서명)하고 공개키로 복호화(검증)하는 방식.

    => 전자서명의 경우 서명하는 개인키가 매우 클 수 있음. 

    ∴해쉬함수로 원문을 쪼개어 해쉬하고 이를 통해 나온 작은 아웃풋 값을 개인키로 서명함.

    이는 하이브리드 암호시스템에서 원문을 대칭키로 암호화, 대칭키를 공개키로 암호화하는 과정과 차이점이 존재.

     

    5. 공개키 기반 구조(Public Key Infrastructure) => 공개키 암호 시스템을 위한구조.

    => 공개키를 모두 관리하는데에 안전성 문제가 생기고 과부하가 발생함.

    ∴인증서를 이용한 공개키 인증을 생각해냄.

    => A가 공개키, 개인키를 만듦 - 공개키를 CA(인증기관)으로 보내고 인증서를 받음 - B가 A에게 공개키 요청

    - B에게 공개키, 인증서 제공 - 인증서를 CA의 공개키를 통해서 B꺼가 맞는지 확인 -OCSP 프로토콜로 유효한 인증성인지 확인

     

    - 공개키 기반 구조(PKI 구조)는 우리나라는 계층적 구조임.

    -> 이런 구조를 각 나라들끼리 Mesh Model로 국가간 상호 인증을 함.

     

    인증서 과정 공부 다시 해야함 ㅠㅠㅠ

    728x90
    반응형

    '대학 전공 공부 > 네트워크 프로그래밍' 카테고리의 다른 글

    16. Basic OpenSSL  (0) 2022.06.08
    15. 네트워크 보안  (0) 2022.06.08
    13강. HTTP and Web Client  (0) 2022.05.13
    12강. DNS  (0) 2022.05.13
    11강. Error, IPv6 and Packet Socket  (0) 2022.05.12