1. 암호화/복호화
1) 암호: 정보를 이해할 수 없도록 암호화하거나 다시 해독하기 위한 일련의 단계를 정의한 알고리즘
암호문: 암호 알고리즘을 이용하여 평문에 수행한 암호화한 결과
↔평문: 암호화되지 않은 정보
2) 암호화 종류
(1) 단방향 암호화: 암호화 후 복호화 할 수 없음(DB에 비밀번호 저장할 때 사용)
(2) 양방향 암호화: 암호화와 복호화 모두 가능(대부분의 정보는 양방향 암호화로 암호화 됨)
3) 대칭키와 비대칭키
(1) 대칭키(공통키): 암호화와 복호화에 같은 암호키를 이용
정보를 주고 받는 측이 같은 암호를 사용→ 보안적으로 문제가 됨(키 배송 문제)
* 키 배송 문제 : 사전에 키를 공유하지 않으면 암호화/복호화 불가능
: 중간에 탈취 당하면 데이터의 정보 보안이 되지 않음
(2) 비대칭키(공개키): 암호화와 복호화에 서로 다른 키를 사용
* 공개키와 비밀키 쌍을 생성하고 공개키는 공유, 비밀키는 생성자만 소유
* 데이터를 비밀키로 암호화하여 인증에 사용
→ 키 배송 문제 해결!
- 공개키와 비밀키 쌍을 만들어 공개키를 공유
- 공개키를 받은 상대가 공통키를 생성 후 공통키를 공개키로 암호화해 전달
* 중간자 공격의 위험(암호키 교환에 개입하여 암호화에 사용되는 키를 빼낼 수 있음)
→ 인증서를 이용한 SSL/TLS라는 인터넷 통신 암호화 방식을 통해 해결
* 배포하는 곳에서 비밀키까지 유출시킬 위험
→ 제 3의 인증기관 CA에 인증서를 요구
2. SSL 인증서
1) SSL 인증: SSL인증서가 있는 웹사이트만 실행할 수 있음
→ HTTPS를 이용한 인터넷 접속은 SSL(TLS)를 이용한 것!
2) SSL 인증서
: 네트워크를 통해 패킷을 주고 받을 때, 누군가가 패킷을 훔쳐볼(Sniffing) 수 있기 때문에 이를 미연에 방지하기 위해 사용
→ 신뢰할 수 있는 것인지 확인하기 위한 용도로 사용.
: SSL 인증서는 '공개 키'라는 것을 포함 → 공개키를 이용해서 클라이언트와 웹 서버가 안전하게 암호화 됨
(웹 서버에 기밀로 유지되는 개인키로 복호화)
3) 디지털 인증서 원리와 과정
→ 신뢰할 수 있는 제 3의 인증기관인 “CA”가 필요
(1) B는 CA에게 자신이 B임을 증명, 자신의 공개키가 B의 공개키가 맞음을 인증하는 인증서 발급
(2) A에게 B의 공개키가 포함된 이 인증서 전달
(3) A는 신뢰할 수 있는 CA에게 진짜 CA가 발급한 인증서인지 확인
(4) 맞다면, 그 인증서에 포함된 B의 공개키로 데이터를 암호화해서 B에게 전달
(5) 암호화된 데이터를 비밀키로 복호화해서 사용
4) 인증서 체인(Certificate Chain)
* CA는 3계층 구조 혹은 2계층 구조를 가짐
→ 클라이언트가 서버의 인증서를 가져오는 과정에서 해당 인증서가 올바른 Intermediate CA, Root CA를 가리키고 있다는 것을 증명
→ End-entity 는 Intermediate CA에게서 검증을 받고, Intermediate CA들은 Root CA에게 검증을 받으며, Root CA는 스스로를 검증
* 복호화된 해시 값 ≠ 인증서에 들어있는 내용물을 다시 해시값으로 만든 데이터
→ 누군가에 의해 변조되었음을 의미!
▶인증서 체인으로 알 수 있는 것
* 하위 인증서를 신뢰할 수 있는지
* 하위 인증서의 내용물이 변조되었는지
5) SSL Handshake
: 통신하는 브라우저와 웹 서버가 서로 암호화 통신을 시작할 수 있도록 신분을 확인
(1) Client Hello : 암호화 알고리즘 나열 및 전달
(2) Server Hello : 암호화 알고리즘 선택
(3) Server Certificate : 인증서 전달
(4) Client Key Exchange : 데이터를 암호화 할 대칭키 전달
(5) Client/Server Hello done : 정보전달 완료
(6) Finished : SSL Handshake 종료
3. 해싱
1) 해싱
: 데이터를 고정된 길이의 문자열(=해시)로 변환하는 일방향 함수(역으로 되돌릴 수 없음)
* 주로 데이터 무결성(=파일이 수정되었는지) 확인이 필요한 데이터를 저장하는 용도로 사용
2) 해싱이 필요한 이유
-. 비밀번호 저장
-. 데이터 무결성 검사
-. 디지털 서명
3) 해싱 VS. 암호화
* 해싱은 원본 데이터를 되돌릴 필요가 없고 데이터 무결성이 더 중요할 때 사용
* 암호화는 민감한 데이터를 보호하고 필요할 때 다시 복구해야될 때 사용
'CS' 카테고리의 다른 글
[CS] 클라우드 VS 온프레미스 (0) | 2025.03.12 |
---|---|
[CS] 컴퓨터 기초 - OS, Window, Linux, 커널 (0) | 2025.03.11 |
[정보처리기사 실기] 3. 통합구현 (0) | 2023.07.11 |
[정보처리기사 실기] 2. 데이터 입출력 구현 1, 2 (0) | 2023.07.11 |
[정보처리기사 실기] 1. 요구사항 확인 1, 2 (0) | 2023.07.11 |