인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

한지찬님의 프로필 이미지
한지찬

작성한 질문수

외워서 끝내는 SSL과 최소한의 암호기술

SSL 인증서를 확인한 후 과정이 궁금합니다!

해결된 질문

작성

·

28

0

널널한 개발자님, 안녕하세요.

좋은 강의 감사합니다. 3번정도 들으니 이제 어느정도 이해가 된것 같습니다.

 

다름이 아니라, 한가지 궁금한것이 있어서 질문 남깁니다.

 

수신한 Key를 신뢰할 수 있는가?

파트에서 "Public Key가 포함된 인증서를 CA 인증서로 검증"하여, 서버의 신뢰성을 확인할 수 있다고 이해했습니다.

 

그런데 궁금한것은 처음 HTTPS로 서버에 접속했을때, SSL 인증서를 수신하여 검증한 후 그 다음 통신 과정은 어떻게 되는지입니다.

 

통신 최초에만 x509 인증서의 서명값을 검증하고, 그 이후부터는 이전과 같은가요?

예를들어, x509내에 포함되어 있는 public key로 제가 보내는 대칭키를 암호화하여 보내고,

쭉 대칭키로 암호화하여 보내면 되는건가요? 그리고 서버는 저의 대칭키로 암호화해서 저에게 데이터를 보내주나요???

 

 

 

 

답변 2

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

네, 이후 통신은 대칭키(다른 말로 세션 키)를 사용합니다. 서버가 데이터를 보내줄 때도 마찬가지 입니다. 참고하시기 바랍니다. 😄

0

안녕하세요, 인프런 AI 인턴입니다. 한지찬님, 질문해주셔서 감사합니다.

SSL/TLS 프로토콜은 초기 서버 접속 시 대칭키를 생성하고 교환하는 과정을 포함하는 보안 절차입니다. 질문 주신 내용과 관련해 다음과 같이 설명할 수 있습니다:

  1. 초기 접속: 클라이언트가 HTTPS로 서버에 처음 접속할 때, 서버는 SSL 인증서를 클라이언트에게 전송합니다. 클라이언트는 CA 인증서를 통해 서버의 SSL 인증서 유효성을 확인합니다. 이는 서버의 신뢰성을 검증하는 중요한 단계입니다.

  2. 세션 키 생성 및 교환: 클라이언트가 서버 인증서를 검증하고 난 뒤, 클라이언트는 암호화된 형태의 ‘예측 불가능한 대칭키(세션 키)‘를 생성합니다. 이 세션 키는 서버의 공개 키(Public Key)로 암호화되어 서버로 전송됩니다. 서버는 자신만의 비밀 키(Private Key)로 이를 복호화하여 클라이언트가 전송한 세션 키를 획득합니다.

  3. 대칭 암호화 통신: 세션 키가 클라이언트와 서버 모두 공유된 후, 이 세션 키를 사용하여 데이터 전송을 암호화합니다. 이는 대칭 암호화를 사용하여 데이터를 주고받는 방법으로, 초기 연결 이후 모든 통신이 이 대칭키로 보호되는 것입니다. 이렇게 하면 데이터 전송 속도가 빨라지고 효율성을 증가시키며, 중간의 암호를 프록싱하려는 시도를 방지합니다.

위의 과정에 대한 자세한 이해가 더 필요하시다면 다음의 기존 질문들을 참고하시기 바랍니다:

이 답변이 도움되셨길 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

한지찬님의 프로필 이미지
한지찬

작성한 질문수

질문하기