본문 바로가기
개념/Study

OJT [4]

by Hwanii_ 2023. 12. 26.
728x90

[ 5 주차 ] WebSEAL의 Stanza 개념의 이해 + SSL 개념 및 ISVA SSL 인증서 관리

 

1. WebSEAL의 Stanza란 무엇인가 ?

 

더보기

 

 

 

* [ 참고 ]

 

 

 

2. SSL (Secure Socket Layer) 이란 ?

 

더보기

 

SSL은 Secure Socket Layer의 약어 이다.

SSL의 발전된 버전이 TLS (Transport Layer Security) 이다.

현재에는 TLS를 사용 하고 있지만, 통상적으로 SSL으로 많이 불러지고 있다.

(TLS 1.0 Ver은 SSL 3.0 Ver을 계층 한다)

 

SSL은 말 그대로 보안 계층 이다.

 

Netscape Communications라는 회사에서 WWW (World Wide Web) 의 통신을 안전하게 유지할 수 있도록 SSL을 개발 했다.

 

아래는 SSL 프로토콜의 구조 이다.

 

 

그림과 같이 SSL 프로토콜은 TCP 프로토콜 위에서 동작 하게 된다.

 

즉, TCP 프로토콜이 먼저 수립 되고 나서 진행되는 것을 의미 한다.

 

SSL Record Protocol :

상호 송/수신을 위한 암호화 Cipher Suite가 SSL / TLS HandShake 프로토콜에 의해 정해지고,

Cipher Suite에 따라 실제로 전송 되는 데이터를 TCP 패킷으로 변환 하기 위한 기능을 수행 하는 프로토콜 이다.

 

즉, 데이터를 TCP 패킷으로 변환 하는 놈 이라고 생각 하면 된다.

 

SSL Change Cipher Spec : 

서버 측 (받는 측 == 수신 측) 의 Cipher Suite에서, 

여러 목적의 알고리즘, 여러 종류의 키, 압축 방식 등을 알려주는 용도로 사용 된다.

 

SSL Alert Protocol :

SSL (Secure Sockets Layer) 의 동작 과정에서 발생할 수 있는 문제에 대해 경고를 전달 하기 위해 사용 된다.

 

Cipher Suite :

 

* Cipher : 암호

* Suite : 세트 (가구 등의 한 세트) / 모음곡 / 수트 (정장)

 

Cipher Suite는 네트워크 통신에서 암호화 및 인증 알고리즘의 조합을 나타내는 용어 이다.

한마디로, 통신 보안을 정의 하는 것 이라고 생각 하면 된다.

주로 TLS 및 SSL 프로토콜에서 사용 된다.

 

Cipher Suite를 통해 클라이언트와 서버 간의 통신에서 어떤 암호 알고리즘 및 키 교환 방법이 사용 되는지를 정의.

 

 

 

* [ 참고 ]

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security) (tistory.com)

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

https://hwanii96.tistory.com/536 HTTP vs HTTPS [2] & SSL https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평

hwanii96.tistory.com

 

3. SSL 인증서를 사용하는 이유

 

더보기

 

SSL 인증서를 사용 하는 목적은 다음과 같다.

 

사용자가 특정 서버와 데이터를 주고 받을 때, 수 많은 라우터와 스위치를 거치게 된다.

 

이렇게 라우터와 스위치를 거치는 과정에서 해커가 사용자의 패킷을 스니핑할 수 있게 된다.

 

* 패킷 : 네트워크를 통해 데이터를 주고받을 때 패킷이라는 단위로 주고 받음.

* 스니핑 : 송신자 및 수신자 사이 네트워크에서 패킷 정보를 도청 하는 행위.

 

따라서 해커가 패킷을 스니핑할 수 없도록 네트워크 상의 데이터를 암호화 해야 한다.

 

사용자가 이용하려고 하는 서버가 정말 신뢰할 수 있는 서버인지를 확인 하기 위한 방법이 바로 SSL 인증서 이다.

 

SSL 인증서를 전달 하고, 신뢰할 수 있는 서버임을 검증 했으면, 사용자와 서버는 안전하게 데이터를 교환할 수 있게 된다. 이는, 인증서를 전달할 때 서버의 공개 키를 함께 전달 하고, 이 공개 키를 사용 해서 양측 간의 대칭 키를 안전하게 교환하는 메커니즘으로 활용 되고, 최종적으로 대칭 키가 안전 하게 교환 되면 데이터를 안전 하게 암호화 해서 송수신 할 수 있게 된다.

 

SSL 인증서를 사용함으로서 장점을 정리하자면 다음과 같다.

 

1) 사용자가 접속하려는 서버가 신뢰할 수 있는 서버인지를 판단할 수 있음.

 

2) 사용자와 서버간의 데이터 통신 내용이 해커에게 노출되는 것을 방지할 수 있음.

 

 

 

* [ 참고 ]

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security) (tistory.com)

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

https://hwanii96.tistory.com/536 HTTP vs HTTPS [2] & SSL https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평

hwanii96.tistory.com

 

 

4. HTTP (Hypertext Transfer Protocol) VS HTTPS (Hypertext Transfer Protocol Secure)

 

더보기

 

 

HTTP는 Hypertext Transfer Protocol의 약어이다.

 

서로 다른 시스템간의 통신을 하기 위한 규약이며, 오늘날 표준으로 가장 많이 사용되는 통신 방법이다.

 

하지만 HTTP는 전송되는 데이터가 암호화되지 않는 큰 문제점을 가진 프로토콜 이다.

 

따라서 데이터가 쉽게 도난당할 수 있는 큰 단점이 존재 한다.

 

이것을 해결 하기 위해 보안 (소켓) 계층을 추가한 HTTPS가 탄생 하게 되었다.

 

 

 

HTTPS는 Hypertext Transfer Protocol Secure의 약어이다.

 

기존 HTTP 프로토콜에 보안 계층을 추가한 프로토콜로, 여기서 사용되는 보안 계층은 SSL/TLS 이다.

 

SSL은 데이터를 송수신할 때 안전하게 암호화된 통신을 할 수 있도록 도와준다.

 

보안 계층을 추가함으로써 기존 HTTP 프로토콜의 보안 취약 문제를 해결할 수 있게 되었다.

 

 

 

* [ 참고 ]

 

https://hwanii96.tistory.com/535

 

HTTP vs HTTPS [1] & SSL

예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS1. HTTP 전송 정상적인 사용자에게 평문 (plaintext) 으로 암호화 하지 않은 중요한 정보를 전송 하게 될 때, 정상적인 사용

hwanii96.tistory.com

 

https://hwanii96.tistory.com/536

 

HTTP vs HTTPS [2] & SSL

https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평문 (plaintext) 으로 암호화 하지 않은 중요한

hwanii96.tistory.com

 

5. SSL 인증서를 생성할 때 사용되는 암호화 방식

 

더보기

 

SSL (Secure Socket Layer) 인증서란 클라이언트와 서버간의 통신을 제 3의 기관에서 보증해주는 전자화된 문서를 의미 한다.

 

제 3의 기관에서 보증해주는 전자화된 인증서를 SSL 인증서 라고 부르는 이유는 다음과 같다.

SSL/TLS 프로토콜을 사용해서 통신하는 웹 브라우저에서 사용되는 인증서이기 때문에 SSL 인증서라고 부른다.

 

즉, 다시말하면 SSL 프로토콜을 사용해서 통신한다는 말은 HTTPS 프로토콜을 사용한다는 것을 의미 하게 된다.

 

 

 

SSL 인증서를 생성할 때 사용되는 암호화 방식은 아래와 같다.

 

비대칭키 암호화 : Asymmetrice Key Cryptography

 

서로 다른 두 개의 키를 사용 해서 암호화 및 복호화를 수행 하는 방식이다.

SSL/TLS에서 주로 키 교환 및 디지털 서명을 위해 사용 된다.

안전한 키 교환 및 디지털 서명이 가능 하다. 하지만 대칭키에 비해 계산 비용이 증가 한다.

 

따라서 보통 SSL 인증서를 생성할 때 사용되는 암호화 방식을 공개 키 인프라라고 부른다.

 

* 공개 키 인프라 : Public Key Infrastructure == PKI

 

이렇게 SSL 인증서를 생성할 때 비대칭키 방식으로 암호화를 진행 하고, 여러 가지 종류가 존재 한다.

 

요즈음 웹브라우저 및 서버는 주로 RSA 및 ECC 기반의 암호화를 지원한다.

 

ECC가 더 높은 수준의 보안을 제공 하기 때문에 최근에는 특히 ECC 기반의 암호화 방식이 증가 하고 있다.

(일부 레거시 시스템 및 호환성의 문제로 여전히 RSA 방식이 사용 되고 있다)

 

1) RSA (Rivest-Shamir-Adleman) :

 

비대칭 키 (공개 키) 암호화 알고리즘 이다.

두 개의 키, 즉, 공개 키와 개인 키를 사용 해서 데이터를 암호화 하고 복호화 한다.

공개 키로 암호화된 데이터는 개인 키로만 복호화할 수 있다.

주로 키 교환 및 디지털 서명에 사용 된다.

SSL/TLS 프로토콜에서는 주로 키 교환으로 활용되는 암호화 알고리즘 이다.

 

 

 

2) ECC (Elliptic Curve Cryptography) :

 

비대칭 키 (공개 키) 암호화 알고리즘 이다.

타원 곡선 위의 연산을 기반으로 하는 알고리즘이다.

크기가 작은 키임에도 불구하고 높은 수준의 보안을 제공 한다.

작은 대역폭 및 연산 비용으로 빠른 성능을 제공 한다.

주로 키 교환 및 디지털 서명에 사용 된다.

 

 

 

3) ECDSA (Elliptic Curve Digital Signature Algorithm) :

 

말그대로 디지털 서명 알고리즘 이다.

ECC를 기반으로 하는 서명 알고리즘으로, 디지털 서명을 생성 하고 검증할 때 사용 된다.

서명을 생성할 때는 개인 키가 사용 되고, 서명을 검증할 때는 공개 키가 사용 된다.  

키의 크기가 작고 효율적인 디지털 서명 생성이 가능 하기 때문에 주로 디지털 서명에 사용 된다.

 

 

 

[ 참고 ]

4) AES (Advanced Encryption Standard) :

 

대칭 키 암호화 알고리즘 이다. (위에서는 모두 비대칭 키 (공개 키) 암호화 방식이었다)

하나의 키를 사용 한다. 이 하나의 키를 대칭 키라고 부른다. 이 대칭 키를 사용해서 암호화 및 복호화를 수행 한다.

주로 블록 암호화 방식을 사용 한다.

128, 192, 256 비트의 키 길이를 지원 한다.

데이터의 기밀성을 제공하기 위해서 사용 되고, SSL/TLS에서는 주로 대칭 키 암호화에 사용 된다.

 

 

 

* 대칭키 암호화 : Symmetric Key Cryptography

 

동일한 키를 사용 해서 암호화 및 복호화를 하는 방식을 의미 한다.

SSL/TLS 연결에서 데이터의 기밀성을 유지 하기 위해서 사용 된다.

빠르고 효율적인 방법이지만 키 교환시 보안에 어려움이 발생 한다.

 

 

 

* 해시 함수 : Hash Function

 

입력 데이터를 고정된 크기의 해시 값으로 변환 하는 함수 이다.

인증서의 무결성을 검증 하고 디지털 서명 생성에 사용 된다.

 

 

 

* [ 참고 ]

 

https://hwanii96.tistory.com/537

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

https://hwanii96.tistory.com/536 HTTP vs HTTPS [2] & SSL https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평

hwanii96.tistory.com

 

HTTP vs HTTPS [2] & SSL (tistory.com)

 

HTTP vs HTTPS [2] & SSL

https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평문 (plaintext) 으로 암호화 하지 않은 중요한

hwanii96.tistory.com

 

6. SSL Root 인증서란 ?

 

더보기

 

SSL Root 인증서의 개념은 다음과 같다.

 

인증서는 주로 3계층의 구조로 구성 되어 있다.

 

이때 가장 최상위에 위치하는 인증서를 일반적으로 Root 인증서라고 부른다.

 

Root 인증서는 세상 모든 사람들이 신뢰하기로 약속한 CA (Certificate Authority) 에서 발행한 인증서 이다.

 

Root 인증서는 웹 브라우저 내부에 이미 내장 되어 있다.

 

Root 인증서 내부에는 Root 인증 기관의 서명 / 인증 기관의 정보 / 인증 기관의 공개 키 / .. 등등 을 포함 한다.

 

Root 인증서는 스스로를 서명해 줄 상위 인증 기관이 존재 하지 않기 때문에 스스로를 셀프로 보증 하게 된다.

 

 

 

* [ 참고 ]

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security) (tistory.com)

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

https://hwanii96.tistory.com/536 HTTP vs HTTPS [2] & SSL https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평

hwanii96.tistory.com

 

7. SSL 인증서 (내용) 의 구조

 

더보기

 

상위 기관으로 부터 SSL 인증서가 생성 된다. 이 인증서는 다음과 같은 내용을 지니고 있다.

 

1) 서비스의 정보 (인증서를 발급한 CA (상위 기관), 서비스의 도메인, .. 등등)

 

서비스의 정보는 사용자가 의도한 서버가 정말 맞는지를 확인 하기 위한 정보라고 할 수 있다.

 

2) 서버측의 공개 키 (서버의 공개 키의 정보, 서버의 공개 키의 암호화 방법)

 

서버측의 공개 키는 인증서 내부의 서버의 공개 키에 대한 정보라고 볼 수 있다.

 

예시)

 

 

 

발급 대상 : 서비스의 정보에 해당 한다. 확인해보면 서비스의 도메인을 확인할 수 있다.

 

 

 

발급 기관 : 서비스의 정보에 해당 한다. 확인해보면 인증서를 발급한 상위 기관 (CA) 에 대해 확인할 수 있다.

 

 

 

SHA-256 지문 : SHA-256은 해시 함수 종류 중 하나 이다.

인증 기관이 사이트의 인증서를 고유한 지문으로 생성 하기 위해 사용 된다.

인증서의 전체 내용이 아니라 고정된 길이의 해시 값으로 표현 된다.

그래서 이 고정된 길이의 해시 값으로 표현된 고유한 지문을 통해 인증서의 무결성을 검증할 수 있게 된다.

 

 

 

인증서 7f692fa098dca0b5b801e25ba19e2dc1f784335b7446fbc55804d59426c773a7 :

256비트 (32바이트) 길이의 해시 값을 의미 한다.

SHA-256 해시 함수를 사용해서 생성된 해시 값을 의미 하게 된다.

해시 값은 상위 기관이 사이트의 인증서를 서명해줄 때 검증된 인증서라는 것을 확인 하기 위해 사용 된다.

즉, 인증서의 무결성을 확인 하기 위해서 사용 된다.

 

 

 

공개키 4bc9dfeba3a81967dead861aa26843666d8d6c4ee2e973ba090803845838b9c9 :

16진수 형식의 공개키 이다.

공개 키는 이후 안전한 통신을 위해 활용 하게 된다.

 

 

 

각각의 단일 인증서는 위와 같은 정보들을 담고 있는데, SSL 인증서 구조에 대한 개념은 아래와 같다.

 

 

* 위의 이미지의 Root 인증서 부분은 오타 이다. Self 서명 부분을 "자기 자신의 개인 키로 암호화" 로 변경 해야 한다.

* 위의 이미지의 중간 인증서 부분은 오타 이다. 서명 부분을 "Root 인증서의 개인 키로 암호화" 로 변경 해야 한다.

 

인증서는 위와 같이 계층 구조로 되어 있다.

2계층 또는 3계층의 형태로 이루어져 있는데, 주로 3계층의 형태로 구성 되어 있다고 보면 된다.

이러한 구조로 인증하는 방식을 인증서 체인 (Chain of Trust == 인증서 체이닝) 이라고 한다.

 

 

 

* [ 참고 ]

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security) (tistory.com)

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

https://hwanii96.tistory.com/536 HTTP vs HTTPS [2] & SSL https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평

hwanii96.tistory.com

 

8. SSL 인증서는 어떤 과정을 통해 사용자가 접속한 서버가 검증된 (클라이언트가 의도한) 서버가 맞는지를 확인 할까 ?

 

더보기

 

요약하자면 다음과 같다.

 

인증 기관 (상위 기관 == ROOT 기관 == ROOT CA) 은 하위 기관 또는 특정 서버에게 인증서를 발급해준다.

 

이때, 인증서가 발급되기 위해서는 서버가 본인의 서버의 정보와 본인의 공개 키를 상위 기관에게 전달 한다.

 

그러면 상위 기관은 본인의 개인 키를 사용 해서 서버 정보 + 서버 공개 키를 서명하여 인증서를 발급 한다.

 

상위 기관은 사용자에게 자신의 공개 키를 전달한다. 이는 사용자의 브라우저에 자동으로 내장 되어 있다.

 

사용자가 서버에게 특정 요청을 하기 전에 이미 위의 내용들은 모두 진행 되어 끝나 있는 상황 이다.

 

이제 사용자가 특정 서버에게 접근하려고 한다고 해보자.

 

사용자는 서버에게 요청을 보낸다.

이때, 서버는 본인의 인증서를 사용자에게 전달 한다.

서버에게 인증서를 전달 받은 사용자는 인증 기관의 공개 키를 사용 해서 해당 인증서를 복호화 한다.

이 인증서가 상위 기관이 서명 해준 인증서가 아닐 경우, 상위 기관의 공개 키로 해당 인증서를 복호화할 수 없다.

 

이렇게 사용자는 자신이 접근하려고 했던 특정 서버가 올바른 서버인지 아닌지를 판단할 수 있게 된다.

 

 

 

자세한 내용은 아래의 그림 및 설명을 통해 확인해보자.

 

 

위의 그림과 같이 인증 기관 / 사용자 / 서버의 관계를 가질 때, SSL 인증서가 어떻게 사용되는지를 확인해보자.

 

1) 사이트는 인증기관에게 본인의 사이트 정보와 공개 키를 전달 한다.

 

2) 인증기관은 사이트로부터 받은 사이트 정보와 사이트의 공개 키를 본인의 개인 키로 서명 한다.

 

3) 개인 키로 서명을 하면 사이트의 인증서가 생성 된다.

 

4) 생성된 인증서를 인증기관에서 사이트로 전달 해준다.

 

5) 사이트는 인증기관으로부터 생성된 인증서를 지니게 된다.

 

6) 사용자가 사이트를 이용하기 위해 HTTPS 프로토콜로 접근 요청을 보낸다. 

 

7) TCP 통신이 수립 되면, 곧바로 SSL/TLS 프로토콜을 수행 하게 된다. SSL/TLS 핸드셰이크 과정을 통해서 사이트의 인증서를 사용자에게 전달 하고, 검증된 인증서 였으면, 사용자와 사이트는 최종적으로 대칭키를 안전하게 교환하게 된다.

 

8) 위에서 사이트의 인증서를 검증 하기 위해서, 사용자는 인증기관으로부터 받은 공개 키를 가지고 확인 한다.

인증기관이 서명해준 올바른 인증서였다면 인증기관의 공개 키로 해당 인증서가 복호화 되게 된다.

 

9) 위에서 대칭키를 안전하게 교환 하기 위해서는 임시로 생성된 대칭키를 사이트로 받은 인증서의 공개 키를 사용 해서 암호화 하고 사이트로 전송 하게 된다.

이후, 암호화된 임시 대칭키를 사이트의 개인 키로 복호화 하게 되고, 최종적으로 사용자와 사이트는 최종적인 대칭키를 얻게 된다.

 

10) 대칭키를 사용 해서 사용자와 사이트는 암호화된 통신을 안전하게 할 수 있게 된다.

 

 

 

* [ 참고 ]

 

HTTP vs HTTPS [2] & SSL (tistory.com)

 

HTTP vs HTTPS [2] & SSL

https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평문 (plaintext) 으로 암호화 하지 않은 중요한

hwanii96.tistory.com

 

https://hwanii96.tistory.com/537

 

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

https://hwanii96.tistory.com/536 HTTP vs HTTPS [2] & SSL https://hwanii96.tistory.com/535 HTTP vs HTTPS [1]예전에 HTTPS에 대해서 간단하게 정리했었는데, https://hwanii96.tistory.com/453 HTTPS 1. HTTP 전송 정상적인 사용자에게 평

hwanii96.tistory.com

 

9. ISVA 내부에서 SSL 인증서는 어떻게 관리 (생성 및 저장) 될까 ?

 

반응형

'개념 > Study' 카테고리의 다른 글

ISVG 10.0 개념 및 기능 정리  (0) 2024.03.28
OJT [3]  (0) 2023.12.22
OJT [2]  (0) 2023.12.21
OJT [1]  (1) 2023.12.21
ISVA 내부 SSL 인증서 관리  (0) 2023.12.15