-
SSL/TLSEDI 관련 기술 용어 2022. 10. 14. 10:30
FTP에 SSL/TSL를 적용한 것은 FTPS라고 합니다.
오늘은 여기서 말하는 SSL/TSL을 알아보도록 하겠습니다.
(FTP, FTPS, SFTP에 대한 설명은 아래 포스팅에서 확인해주세요↓)
SSL/TLS 정의
SSL(Secure Sockets Layer)은 인터넷에서 데이터 통신 보안을 제공하는 암호 프로토콜입니다.
데이터를 송수신하는 두 컴퓨터 사이, TCP/IP 계층과 애플리케이션 계층(HTTP, TELNET, FTP 등) 사이에 위치하여 인증, 암호화, 무결성을 보장합니다.
인터넷 프로토콜이 보안면에서 기밀성을 유지하지 못한다는 문제를 극복하기 위해 개발되었습니다.
여기서 인증은 웹 브라우저와 웹 서버 간에 서로 상대의 신원을 확인하는 기능입니다.
암호화 기능을 사용하면 주고받는 데이터가 인터넷상에서 도난되는 위험성을 줄일 수 있습니다.
본래 SSL은 표준화되기 전의 이름으로, 표준화된 정식 명칭은 전송 계층 보안(TLS : Transport Layer Security)입니다.
TLS는 2015년에 SSL의 후속 기술로, 일반적으로 SSL이라고 하지만 최신 인증서는 TLS입니다.
미국 넷스케이프 커뮤니케이션스사가 개발했고, 마이크로소프트사 등 주요 웹 제품 업체가 채택하고 있습니다.
현재 전세계에서 사용되는 인터넷 상거래시 요구되는 주민등록번호와 같은 개인 정보와 신용 카드 정보, 로그인 자격 증명 같은 민감한 정보의 보안 유지 및 안전한 전송에 가장 많이 사용되고 있는 프로토콜입니다.
SSL/TLS Handshake
핸드쉐이크는 암호화를 사용하는 통신 세션을 실행하는 프로세스를 뜻합니다.
통신 양측은 핸드쉐이크 중에 메시를 교환하여 서로를 인식하고, 서로를 검증하며, 사용할 암호화 알고리즘을 구성하고, 세션 키를 합의합니다.
또한 앞서 말했다 싶이, SSL 핸드쉐이크는 TLS 핸드쉐이크와 같습니다.
SSL 또는 TLS 핸드쉐이크를 사용하면, SSL 또는 TLS 클라이언트와 서버가 통신하는 비밀 키를 설정할 수 있습니다.
대략적인 핸드쉐이크 단계는 다음과 같습니다.
1. 사용할 프로토콜 버전에 동의합니다.
2. 암호화 알고리즘을 선택합니다.
3. 디지털 인증서를 교환하고 검증하여 서로를 인증합니다.
4. 비대칭 암호화 기술을 사용하여 공유 비밀 키를 생성하여 키 배포 문제를 방지합니다.
5. SSL 또는 TLS는 비대칭 암호화보다 빠른 메시지의 대칭 암호화에 공유 키를 사용합니다.
SSL/TLS 핸드쉐이크 단계
(1) "클라이언트 헬로(client hello)" 메시지
클라이언트가 서버로 "헬로" 메시지를 전송하면, 핸드쉐이크를 개시합니다.
이 메시지에는 클라이언트가 지원하는 암호화 정보가 포함되어 있습니다.
(2) "서버 헬로(server hello)" 메시지
클라이언트 헬로 메시지에 대한 응답입니다.
서버의 SSL 인증서, 세션 ID, 무작위 바이트 문자열을 포함한 메시지로 전송합니다.
서버에서 클라이언트 인증을 위한 디지털 인증서가 필요한 경우, 서버는 "클라이언트 인증서 요청"을 보냅니다.
(3) 인증 확인
클라이언트가 서버의 SSL 인증서를 인증서 발행 기관을 통해 검증합니다.
이를 통해 서버가 인증서에 명시된 서버인지, 그리고 클라이언트가 상호작용 중인 서버가 실제 해당 도메인의 소유자인지를 확인합니다.
(4) 서버의 공개키로 암호화 된 클라이언트의 개인 키 송신
(5) 개인키 사용
" 클라이언트 인증서 요청 " 을 보낸 경우 클라이언트는 클라이언트의 디지털 인증서와 함께 클라이언트의 개인 키로 암호화된 임의의 바이트 문자열 또는 " 디지털 인증서 없음 경고 " 를 보냅니다.
이 경고는 경고일 뿐이지만 일부 구현에서는 클라이언트 인증이 필수인 경우가 있습니다.
(6) 클라이언트 인증서 확인
클라이언트와 서버가 암호를 이용해 키를 생성하고, 같은 결과가 나와야합니다.
(7) 클라이언트 완료 메시지
클라이언트가 부분이 완료되었음을 나타내는 비밀 키로 암호화된 "완료" 메시지를 전송합니다.
(8) 서버 완료 메시지 송신
서버는 핸드쉐이크의 서버 부분이 완료되었음을 나타내는 비밀 키로 암호화된 "완료" 메시지를 전송합니다.
(9) 안전한 대칭 암호화
서버와 클라이언트는 대칭 암호화에 성공했으므로, 공유 보안키로 대칭적으로 암호화되는 메시지를 교환할 수 있습니다.
이런 방식으로 데이터의 패킷을 암호화하여 주고 받기 때문에 안전합니다.
(대칭키와 비대칭키에 대한 내용이 궁금하시다면 아래 포스팅도 참고해보세요↓)
[참고 자료]
'EDI 관련 기술 용어' 카테고리의 다른 글
정규 표현식(Regular Expression) (0) 2022.12.02 TCP와 UDP (0) 2022.11.04 REST와 SOAP 비교 (1) 2022.10.07 XSD (XML Schema Definition language) (1) 2022.09.23 XPath (0) 2022.09.16