해결된 질문
작성
·
28
0
널널한 개발자님, 안녕하세요.
좋은 강의 감사합니다. 3번정도 들으니 이제 어느정도 이해가 된것 같습니다.
다름이 아니라, 한가지 궁금한것이 있어서 질문 남깁니다.
파트에서 "Public Key가 포함된 인증서를 CA 인증서로 검증"하여, 서버의 신뢰성을 확인할 수 있다고 이해했습니다.
그런데 궁금한것은 처음 HTTPS로 서버에 접속했을때, SSL 인증서를 수신하여 검증한 후 그 다음 통신 과정은 어떻게 되는지입니다.
통신 최초에만 x509 인증서의 서명값을 검증하고, 그 이후부터는 이전과 같은가요?
예를들어, x509내에 포함되어 있는 public key로 제가 보내는 대칭키를 암호화하여 보내고,
쭉 대칭키로 암호화하여 보내면 되는건가요? 그리고 서버는 저의 대칭키로 암호화해서 저에게 데이터를 보내주나요???
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. 한지찬님, 질문해주셔서 감사합니다.
SSL/TLS 프로토콜은 초기 서버 접속 시 대칭키를 생성하고 교환하는 과정을 포함하는 보안 절차입니다. 질문 주신 내용과 관련해 다음과 같이 설명할 수 있습니다:
초기 접속: 클라이언트가 HTTPS로 서버에 처음 접속할 때, 서버는 SSL 인증서를 클라이언트에게 전송합니다. 클라이언트는 CA 인증서를 통해 서버의 SSL 인증서 유효성을 확인합니다. 이는 서버의 신뢰성을 검증하는 중요한 단계입니다.
세션 키 생성 및 교환: 클라이언트가 서버 인증서를 검증하고 난 뒤, 클라이언트는 암호화된 형태의 ‘예측 불가능한 대칭키(세션 키)‘를 생성합니다. 이 세션 키는 서버의 공개 키(Public Key)로 암호화되어 서버로 전송됩니다. 서버는 자신만의 비밀 키(Private Key)로 이를 복호화하여 클라이언트가 전송한 세션 키를 획득합니다.
대칭 암호화 통신: 세션 키가 클라이언트와 서버 모두 공유된 후, 이 세션 키를 사용하여 데이터 전송을 암호화합니다. 이는 대칭 암호화를 사용하여 데이터를 주고받는 방법으로, 초기 연결 이후 모든 통신이 이 대칭키로 보호되는 것입니다. 이렇게 하면 데이터 전송 속도가 빨라지고 효율성을 증가시키며, 중간의 암호를 프록싱하려는 시도를 방지합니다.
위의 과정에 대한 자세한 이해가 더 필요하시다면 다음의 기존 질문들을 참고하시기 바랍니다:
이 답변이 도움되셨길 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.