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
반응형