다양한 기록

암호화: 양방향 - 대칭키, 공개키 / 단방향 - 암호학적 해시 함수 본문

보안개론

암호화: 양방향 - 대칭키, 공개키 / 단방향 - 암호학적 해시 함수

라구넹 2024. 4. 7. 23:21

암호화에는 단방향 암호화양방향 암호화 두 가지 방식이 존재하는데,

각각에도 종류가 있고 목적도 다릅니다.

 

양방향 암호화 (비밀성)

- 대칭 키 암호화

- 퍼블릭 키 암호화

 

평문(plain text) / 복문(cyper text)

입력 중 하나가 키가 되고 키를 이용해서 평문을 복문으로, 복문을 평문으로 변환하는게 양방향 암호화

 

대칭 키 암호화 방식

암호화하는 키와 복호화하는 키가 같으면 대칭키 암호화

키를 가진 사람만 복호화 가능, 키는 비밀이고 알고리즘은 오픈

 

DES(Data Encryption Standard)는 키가 58비트. 작아서 Broken된 알고리즘 취급

AES(Advanced Encryption Standard)는 128비트를 많이 쓰고 더 길게도 가능. 길게하면 속도가 문제

나라마다 하나씩 장만하는 경향이 있는데 한국은 SEED, 아리아..

 

키만 안전하면 누가 도청해도 일단 안전, 키도 주기적으로 교체함

** 비밀 유지를 위해서는 접근 제어도 좋다. (문서에 패스워드를 준다던가, 아니면 ls -l 하면 보이는 권한이 접근 제어)

** 데이터가 나타나는 장소를 제한하는 것도 중요. 비밀 유지를 위한다면 해당 정보는 챗 gpt에 올리면 안됨

 

좋은점: 속도가 빠름

문제: 시크릿 키를 상대방에게 어떻게 알려줄 것이냐

쉐어드 시크릿 키.. 안전하게 분배하는게 어려움. 도청이 문제

키 분배 문제(키 교환 문제)

 

퍼블릭(비대칭) 키 암호화 방식

암호화 키와 복호화 키가 다른데 하나는 공개, 하나는 비공개

앨리스와 밥이 있으면 각각 퍼블릭 키와 프라이빗 키 쌍을 따로 가지고 있음

 

앨리스가 밥의 퍼블릭 키를 가지고 암호화해서 보내면 밥은 프라이빗 키로 복호화

RSA가 이 방식을 만든 알고리즘. ECC는 RSA가 너무 복잡해서 느린 것때문에 안정성은 유지하고 속도를 상승

 

/*

위의 방식은 비밀 유지를 위해 사용하는 방법.

반대로 앨리스가 자기 개인키로 암호화해서 밥에게 자기 공개키로 해독하게 만드는 것도 가능

왜? -> 변조되었는지 아닌지 확인이 가능하고, 누가 보냈는지 확인이 가능

평문이랑 복문을 같이 보내면 변조되었는지 아닌지 알 수 있고, 누가 보냈는지 알 수 있음(인증)

 

공개키는 보통 공인 인증 기관(ex, 한국정보인증, 금융결제원)에서 관리

전자서명: 서명을 생성하는 키를 개인키, 검증하는 키는 공개키

암호화된 거랑 아닌거랑 비교해서 일치하면 누가 보냈는지 알 수 있음

*/

 

비밀 통신 기준 효율적으로 사용하는 법

RSA 방식으로 AES 키를 전송하면 키 배포 문제가 해결

암호화해야 하는 용량이 크면 속도가 빠른 대칭키 방법을 써야 하니 이 방식을 사용


단방향 암호화(무결성)

무결성을 어떻게 보장하는가?

> 접근 제어. 노 라이트, 노 어펜드가 기본

이랬는데도 변조가 됐으면 탐지를 해야 하니까 암호학적 해시 함수를 사용

- MAC

- MD5, SHA-256 ..

 

MAC (Message Authentication Code)

키를 사용하는 단방향 암호화

원본 메시지랑 암호화된 메시지를 같이 보내고 암호화된 메시지를 복호화하면 변조되었는지 아닌지 확인 가능

 

MD5 (Message Digest)

입력값의 길이는 가변적이나, 출력은 128비트

4기가 바이트를 넣어도 128비트로 줄여버리니(digest) 당연히 복호화는 안됨

출력값을 비교해서 변조가 되었는지 아닌지 체크..

만약 출력 비트가 너무 적으면 충돌이 발생

 

SHA (Secure Hash Algorithm)

버전 1은 출력 160비트, 충돌이 발생하여 바꿈

224, 256, 384, 512비트 가능 (SHA-2) 


그럼 가용성은 어떻게 해야하나

배달 서비스같은 건 다운되면 심해가 막심, 평판도 떨어지는 문제

US - CFAA(Computer Fraud and Abuse Act): 도스 공격과 관련..

캐나다도 Criminal Code of Canada, Section 342:Unauthorized Use of Computer

 

안티-디도스 시스템

시스템 서버를 위한 보호 기법과 데이터를 위한 보호 기법이 다름

데이터는 주기적으로 백업하는게 중요

 

시스템 서버를 위한 보호 기법

- CDNs (Content Delivery Network)

서버들의 집합. 전세계적으로 다운 받을 수 있는 동일한 기능을 하는 여러 서버(미러링)를 둠.

트래픽을 재분배하여 디도스 공격 방어에 좋다.

** 원래 컨텐츠 제공을 빠르게 하는 기능인데, 디도스에도 좋은 것

 

- Scrubbing Center

악의적인 트래픽을 분석하여 데이터를 거르는 중앙 스테이션

공격이 들어오면 (패킷이 문제가 있는 패킷이다, 어떤 서버를 대상르로 플루딩한다) 스크루빙 센터로 트래픽이 리다이렉션되고 걸러짐

사람이라면 1초에 100번 접속 요청을 하지는 않을 것

 

 

'보안개론' 카테고리의 다른 글

프로그램 버그 예시  (0) 2024.05.19
CIA / Authenticaion, Authorization, Non-repudiation  (0) 2024.04.10
보안의 목적, STRIDE / AINCAA  (0) 2024.04.07
Security Threat, Attack  (0) 2024.04.07
CVE, NVD, CWE  (0) 2024.04.07