SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(47일차)

Challenge programmers 2024. 1. 8. 13:05

오늘 학습 주제

1. 암호화

 

 

암호화


- 암호화의 역할 -

 

기밀성: 인가된 사용자만이 사용 가능

신뢰성: 신원 보장

무결성: 데이터의 변조(오염도)가 없음

 

 

- 대칭키(Symmetric Key) -

암호화 및 복호화 시에 비밀번호를 입력

 

 

 

- 비대칭키(Public Key, 기밀성과 신뢰성) -

Public Key와 Private Key로 구성

Public Key: 공개되는 키

Private Key: 발행자만이 가지는 개인적인 키

   
개인키 생성 openssl genrsa -out private.pem 1024
RSA 방식으로 개인키인 'private.pem' 생성
키의 길이가 높을수록 안전(해당 키의 길이는 1024, 안전을 위해서는 보다 높은 길이 필요)
공개키 생성 openssl rsa -in private.pem -out public.pem -outform PEM -pubout
개인키에 대한 공개키'public.pem' 생성
공개키를 자신에게 데이터를 제공할 사람에게 전송
공개키로 암호화 echo 'some text' > file.txt
openssl rsautl -encrype -inkey public.pem -pubin -in file.txt -out file.ssl
[ file.txt ]의 내용을 RSA 방식으로 암호화한 [ file.ssl ] 생성
개인키로 복호화 openssl rsautl -decrype -inkey private.pem -in file.ssl -out decryp.txt
개인키로 [ file.ssl ]를 복호화한 결과를 [ decryp.txt ]로 생성

 

 

Public Key 암호화(Confidentiality 제공)

개인키와 공개키를 Bob()이 생성

인가된 자(개인키를 가진 자)만이 데이터 열람이 가능하여 기밀성이 보장된다

 

Private Key 암호화(Authenticity 제공)

개인키로 데이터를 암호화 하여 Bob에게 전달하여 신뢰성 보장(기밀성은 보장 X)

Bob은 받은 데이터를 공용키로 복호화

 

 

- Hash Function & Digest(무결성) -

송신자: 원본과 백업본을 전송수신자: 원본과 백업본의 동일성을 점검하여 무결성 확인

 

전자 서명: 원본의 Hash값 + 개인키 암호화 → 무결성과 신뢰성 보장

 

 

- Hash Algorithm-

 

해쉬(Hash): 평문을 일정한 길이의 문자열로 변환시키는 것으로 복원이 불가능

암호화와 해쉬의 차이점은 복원의 가능 여부

오픈 소소 사이트에서는 원본 파일의 무결성을 보장하기 위해

파일의 해쉬값을 같이 제공

 

MD 알고리즘

MD2, MD4, MD5가 존재하며MD5는 MD4의 확장판으로 속도가 빠르지는 않지만 데이터 보안성에 더 많은 확신을 제

 

SHA 알고리즘

160비트의 값을 생성하는 해시 함수로 MD4가 발전한 형태MD5보다 느리지만 안전성은 더 좋음

알고리즘 블록 크기 해시 결과값 길이 해시 강도
SHA-1 512비트 160비트 0.625
SHA-256 512비트 256비트 1
SHA-384 1024비트 384비트 1.5
SHA-512 1024비트 512비트 2

 

 

- SSL/TLS-

응용계층을 보호하는 프로토콜

 

암호화 프로토콜

2계층: PPTP, L2TPO

3계층: IPSec

4계층: SSL 3.0 > TLS

5계층: SSL

 

 

- SSL/TLS Protocol Stack-

 

 

- SSL/TLS Processing -

서버가 클라이언트에게 공개키를 제공

클라이언트가 공개키를 이용하여 세션키를 생성

서버와 클라이언트는 동일한 대칭키(세션키)를 보유

 

SSL은 대칭키와 비대칭키 모두 소유

대칭키: 데이터 암호화

비대칭키: 공개키(대칭키를 암호화 시키는 용도)

 

 

- 인증서 -

 

인증서 발급 기관(CA)이 웹브라우저 회사에 인증서(CA 공개키 포함)를 배포

클라이언트가 웹 브라우저를 설치하면 인증서도 같이 설치

 

Web 서버는 개인키와 공개키를 생성

인증기관(CA)에 공개키를 전송하여 인증서 발급(CA전자서명 + Web서버 공개키)

 

인증서를 클라이언트에게 제출

클라이언트는 신뢰를 확인하고 암호화된 데이터 제공

 

 

인증서의 유효성은 클라이언트가 판단(CA의 공개키 이용)

인증서 유효성 검증이 어려운 경우