일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 1*1
- ML
- c
- Data # datamining #datascience #AI #ML
- 인공지능 #AI #ML #기계학습 #Lasso #Ridge #Regularization #Linear Regression
- 알고리즘
- Linear Regression #AI #ML #기계학습 #인공지능 #선형회귀
- dadtascience
- rolebinding
- datascience
- Ai
- embedded rest proxy
- xff
- CKA
- AI #ML #Data #datascience #data mining
- OS
- Datamining
- NFA #DFA #컴파일러 #Lexical
- rest proxy
- 기계학습#인공지능#AI#ML
- 컴파일러
- k8s
- https
- Kubernetes
- k9s
- TLS
- linux
- dadtamining
- 쿠버네티스 #도커 #MSA #Istio #Service Mesh
- Linear Regression #AI #기계학습 #인공지능 #Lasso #Ridge
- Today
- Total
solve-my-curiosity
TLS, SSL, HTTPS, 인증서 등에 대해 알아보자. 본문
쿠버네티스 자격증 공부 중 TLS에 대해 공부한 내용을 정리하는 글이다.
엄청 자세한 내용은 아니고 개념적으로 이해하는 글이다.
먼저 암호화 프로토콜에 대해 알아야 한다. 암호화 프로토콜 중 비대칭키 방식과 인증서가 합쳐져있는게 SSL 인증이고 그 중 하나가 TLS이고 그걸 이용하는게 HTTPS이기 때문이다.
** [대칭키 -> 비대칭키 -> 인증서]로 발전하는 암호화 프로토콜에 대해 이해해야한다. **
1. 대칭키 방식
암호화 프로토콜에는 대칭키 방식, 비대칭키 방식이 있다.
대칭키 방식은 하나의 키를 이용해서 Encrypt, Decrypt 둘다 한다.
문제는 송신자가 수신자한테 암호화 글을 전송할 때 수신자가 복호화하라고 키도 같이 주는데 이 키가 공격자한테도 똑같이 탈취 될 수 있기 때문에 키가 탈취되면 공격자도 복호화할 수 있다. 그래서 사실상 보안이 허술하다고 볼 수 있다.
그래서 나온게 비대칭키 방식이다.
2. 비대칭키 방식
비대칭키 방식에는 두개의 키가 있다.
Public Key와 Secret Key가 있다. 이 방식의 특징은 하나로 암호화했으면 그 키로는 복호화가 안되는 것이다. 즉 하나의 키로 암호화했으면 무조건 다른 하나의 키로만 복호화할 수 있다.
이 방식이 왜 대칭키 암호화 방식의 문제를 해결하냐면 공개키로 암호화해도 공격자가 그 공개키로 복호화할 수 없다는 점이다. 공개키로 암호화된 cipher text가 수신자한테 도착하면 수신자의 서버에서 수신자의 secret key로만 복호화하기 때문에 공격자가 탈취해도 복호화할 수 없다. 그렇기 때문에 원하는 수신자만 볼 수 있고 공격자가 알아낼 수 없다.
1. 수신자의 공개키로 나의 대칭키[대칭키 방식에서의 대칭키]를 암호화한다.
2. 그러면 수신자는 수신자의 개인키로 복호화해서 송신자의 대칭키를 얻는다.
3. 그리고 서로 둘이 송신자의 대칭키를 이용해서 암복호화를 진행하면 공격자가 송신자의 대칭키를 얻을 수 없고 안전한 통신이 가능하다.
결국 비대칭키 방식으로 송신자의 대칭키를 전달하고 암복호화는 송신자의 대칭키로 하는 것이다.
그런데 하나의 또다른 문제가 발생한다. 공격자가 우리가 보내고 싶어하는 수신자로 위장하면 공개키 비밀키 방식이 소용이 없어진다. 그래서 나온게 인증서 방식이다.
3. 인증서 방식
내가 보내고 싶어하는 서버가 실제로 그 서버가 맞는지를 비대칭키 방식으로 확인할 수 있다.
비대칭키의 방식 중 중요한 특성을 알아야 하는데 내가 비밀키로 암호화하고 공개키로 누군가 푼다면 그 문서는 내가 작성했다는 것이 방증이 되는 것이다.
내가 비밀키로 암호화했는데 다른 누군가의 공개키로 풀려고 하면 풀리지도 않을 것이기 때문에 만약에 "x의 공개키로 복호화된다면" x가 작성했다는 것이 인증되는 것이다. 그래서 이것을 이용한게 인증서 방식이다.
공격자의 위험한 사이트대신 우리가 보내고 싶어하는 예를 들어 은행 과 같은 돈을 보내야하는 중요한 사이트들은 CA라는 기관에서 이 사이트는 안전하고 믿어도 된다는 식의 인증서를 얻는다. 그 인증서는 어떤 것을 입증하냐면 너가 보내고 싶어하는 사이트가 확실하게 우리로부터 안전하다고 판명된 기관이야 라는 것을 입증한다. 그러면 이것을 어떻게 입증하냐..
먼저 그 사이트의 정보와 그 사이트의 공개키를 CA기관의 비밀키로 암호화 한 것이 인증서다.
그 인증서를 CA기관의 공개키로 복호화해서 풀리게 된다면? "CA기관으로부터 나온 인증서가 맞다는 것이 입증이 되고" 사이트의 정보와 사이트의 공개키가 나오게 된다.
그래서 그 공개키로 다시 송신자의 대칭키를 암호화 한채 보낸다. 이런식으로 인증서 방식과 대칭키 방식, 비대칭키 방식이 다 혼합해서 쓰이게 되고 이것을 SSL 암호화 방식이라고 하고 SSL 암호화 방식 중 최신 것을 TLS라고 하고 이 TLS를 이용해서 웹 통신을 하는 것이 HTTPS이다.
아래는 ChatGPT로 만든 문제이다. 딱히 이 내용들과는 관련이 없지만..
문제 1:
SSL은 어떤 목적으로 사용되는가?
A) 데이터 압축
B) 데이터 암호화 및 안전한 통신
C) 서버 간의 빠른 데이터 전송
D) 데이터 백업 및 복원
정답: B) 데이터 암호화 및 안전한 통신
문제 2:
SSL 인증서를 발급하는 기관을 무엇이라 하는가?
A) DNS 서버
B) ISP
C) CA (인증 기관)
D) FTP 서버
정답: C) CA (인증 기관)
문제 3:
다음 중 SSL 인증서의 주요 구성 요소가 아닌 것은?
A) 공개 키
B) 개인 키
C) 도메인 이름
D) 서버의 운영 체제 정보
정답: D) 서버의 운영 체제 정보
문제 4:
HTTPS에서 'S'는 무엇을 의미하는가?
A) Secure
B) Simple
C) Server
D) Speed
정답: A) Secure
문제 5:
다음 중 SSL 인증서의 유형이 아닌 것은?
A) 도메인 검증 (DV) 인증서
B) 조직 검증 (OV) 인증서
C) 확장 검증 (EV) 인증서
D) 운영 체제 검증 (OSV) 인증서
정답: D) 운영 체제 검증 (OSV) 인증서
문제 6:
SSL 인증서가 만료되면 웹사이트 방문자는 어떤 경고 메시지를 보게 되는가?
A) 페이지를 찾을 수 없음
B) 연결이 안전하지 않음
C) 404 에러
D) 서버가 응답하지 않음
정답: B) 연결이 안전하지 않음
문제 7:
SSL 핸드셰이크 과정에서 사용하는 주요 프로토콜은 무엇인가?
A) FTP
B) HTTP
C) TLS
D) UDP
정답: C) TLS
문제 8:
SSL/TLS 인증서에 포함된 '주체 정보'에는 무엇이 포함되는가?
A) 도메인 이름 및 조직 정보
B) SSL 프로토콜 버전
C) 서버의 IP 주소
D) 네트워크 트래픽 정보
정답: A) 도메인 이름 및 조직 정보
문제 9:
SSL 인증서의 유효성을 확인하는 방법은 무엇인가?
A) DNS 조회
B) 인증서 해지 목록(CRL) 확인
C) HTTP 요청
D) 서버 로그 분석
정답: B) 인증서 해지 목록(CRL) 확인
문제 10:
SSL 인증서를 사용하는 주요 이유는 무엇인가?
A) 웹사이트의 성능 향상
B) 웹사이트의 디자인 개선
C) 웹사이트 방문자의 데이터 보호
D) 검색 엔진 최적화
정답: C) 웹사이트 방문자의 데이터 보호
'Back-End' 카테고리의 다른 글
MSA, Docker, Kubernetes, Service Mesh, Istio에 대해 알아보자 (2) | 2024.02.05 |
---|---|
JWT 토큰에 대해 알아보자. (3) | 2024.01.23 |
Swagger에 대해 알아보자 (2) | 2024.01.23 |