인프런 커뮤니티 질문&답변

김영빈님의 프로필 이미지
김영빈

작성한 질문수

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

DEEP DIVE : HTTPS와 TLS #1. 암호화 ★★☆

HTTPS 질문입니다.

작성

·

425

0

안녕하세요! 좋은 강의와 답변 감사드립니다 추석잘보내시구요!
HTTPS부분에 관하여 약간 헷갈리는 부분이 있어 질문드립니다

  1. 클라이언트에서 사이퍼슈트를 전달한 다는 게, 서버가 사이퍼슈트셋에 맞게 암호화가 가능한지를 먼저따지는 건가요??

    • 예를 들어 강의에서 설명한 'TLS_AES_128_GCM_SHA256'를 전달하는 건, 서버가 TLS프로토콜 & AES_128_GCM & SHA256방식으로 암호화를, 즉 HTTPS를 지원할 수 있는지를 먼저따져보는 건가요??

 

  1. 해싱알고리즘은 최초에 발생하는 1-rtt이후, 실질적 통신단계에서 데이터를 전송할때 암호화하는 방식을 말하는 건가요??

 

  1. 강의에서 해주신 말씀에 따르면, 실질적 통신이 발생하기전에 HTTPS를 위한 한 번의 통신(1-rtt)가 발생하는데요

    이때 사이퍼 슈트도 전달하고 > 서버에서 해당 알고리즘을 서빙할 수 있을 경우에 인증서를 보내고(??), 키교환 알고리즘, 해싱알고리즘, 보안세션 생성까지가 완료되는 것인가요???

    • 약간 이해가 안가는 부분이 인증서를 보낸다는 건데.. 한 번의 RTT에서 인증서를 보내고 추가적인 작업(키교환 알고리즘.. )을 어떻게 한다는 건지 잘 모르겠습니다...

    • 비슷한 맥락으로, 키교환 알고리즘 같은 경우도 최소한 한번의 교환이 있어야 PSK가 만들어지는 것 같은데 한번의 교환안에서 이모든 게 어떻게 가능한지 모르겠습니다ㅠㅠ

    • 아니면 혹시 1-RTT에서 서버가 클라이언트에게 통신을 보낼때, 인증서와 PSK생성을 위한 혼합키도 보내고 해서 문제가 없다면 한번의 통신만으로 인증메커니즘, 키교환, 보안세션생성까지 단번에 완성시켜버리는 건가요?? 그렇다면 이 경우에도 데이터가 암호화되어야 하니, 여기에 해싱알고리즘이 적용되는건가요??

       

  2. 디피헬만 알고리즘에 대해서 궁금합니다..

    • g,x,p를 알면 y값을 구하기 쉬운 반면, g,y,p를 알아도 x를 구하기 어렵다는 방식이라고 말씀해주셨는데요, 여기서 비밀키가 x에 해당하는 것 같은데 맞을까요?

    • 결국 디피헬만 알고리즘이 적용된 결과, 제가 생각할때의 장점은 '서버와 클라이언트가 서로의 비밀키를 공유하지 않고' + '서로만 아는 특정 키(PSK)를 안전하게 생성'인 것 같은데 맞을까요??

       

       

    감사합니다!!!

 

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 영빈님 ㅎㅎ

Q1.

HTTPS부분에 관하여 약간 헷갈리는 부분이 있어 질문드립니다

클라이언트에서 사이퍼슈트를 전달한 다는 게, 서버가 사이퍼슈트셋에 맞게 암호화가 가능한지를 먼저따지는 건가요??

A1.

넵 근데 그냥 HTTPS를 지원하는걸 따지는게 아니라 사이퍼슈트를 제공하는지를 확인하는 겁니다.

Q2.

약간 이해가 안가는 부분이 인증서를 보낸다는 건데.. 한 번의 RTT에서 인증서를 보내고 추가적인 작업(키교환 알고리즘.. )을 어떻게 한다는 건지 잘 모르겠습니다...

비슷한 맥락으로, 키교환 알고리즘 같은 경우도 최소한 한번의 교환이 있어야 PSK가 만들어지는 것 같은데 한번의 교환안에서 이모든 게 어떻게 가능한지 모르겠습니다ㅠㅠ

아니면 혹시 1-RTT에서 서버가 클라이언트에게 통신을 보낼때, 인증서와 PSK생성을 위한 혼합키도 보내고 해서 문제가 없다면 한번의 통신만으로 인증메커니즘, 키교환, 보안세션생성까지 단번에 완성시켜버리는 건가요??

그렇다면 이 경우에도 데이터가 암호화되어야 하니, 여기에 해싱알고리즘이 적용되는건가요??

A2.

1-RTT만에 보안세션이 완성됩니다. 보안세션은 다음과 같은 과정에 의해 생성됩니다.

- 키교환, 사이퍼슈트 확인, 서버에서 클라이언트로 인증서 전달.

- 이러한 과정중에 해싱알고리즘이 쓰입니다. 키들을 교환할 때 암호화, 복호화 할 때 해싱알고리즘이 쓰입니다.

이후에도 해싱알고리즘으로 암호화된 데이터의 송수신이 시작됩니다.

Q3.

디피헬만 알고리즘에 대해서 궁금합니다..

g,x,p를 알면 y값을 구하기 쉬운 반면, g,y,p를 알아도 x를 구하기 어렵다는 방식이라고 말씀해주셨는데요, 여기서 비밀키가 x에 해당하는 것 같은데 맞을까요?

결국 디피헬만 알고리즘이 적용된 결과, 제가 생각할때의 장점은 '서버와 클라이언트가 서로의 비밀키를 공유하지 않고' + '서로만 아는 특정 키(PSK)를 안전하게 생성'인 것 같은데 맞을까요??

A3.

장점은 개인키를 공격자에게 탈취당해서 각각의 탈취한 개인키로는 PSK를 만들 수 없기 때문에 보안에 강하다. 라고 보시면 됩니다.

또한,

서버와 클라이언트는 a와 b라는 비밀키를 생성한 후.

서버는 g^a mod p

클라이언트는 g^b mod p라는

것을 만듭니다. 그걸 기반으로 PSK를 만듭니다.

감사합니다.

김영빈님의 프로필 이미지
김영빈

작성한 질문수

질문하기