전송 계층에는 어떤 프로토콜이 있습니까?
1.SSL (secure sockets layer) 은 Netscape 에서 설계한 개방형 프로토콜입니다. 애플리케이션 프로토콜 (예: NNTP, FTP) 과 TCP/IP 간에 데이터 보안 계층화를 제공하는 메커니즘을 지정합니다. TCP/IP 접속을 위한 데이터 암호화, 서버 인증, 메시지 무결성 및 클라이언트 인증 (옵션) 을 제공합니다. SSL 의 주요 목적은 두 통신 응용 프로그램 간에 기밀성과 신뢰성을 제공하는 것입니다. 이 프로세스는 다음 세 가지 요소로 수행됩니다.
L 핸드셰이크 프로토콜. 이 프로토콜은 클라이언트와 서버 간 세션에 사용되는 암호화 매개변수를 협상합니다. SSL 클라이언트와 서버가 처음 통신을 시작하면 프로토콜 버전에 동의하고 암호화 알고리즘을 선택하고 상호 인증을 선택한 다음 공개 키 기술을 사용하여 * * * 공유 키를 생성합니다.
L 레코드 프로토콜. 이 프로토콜은 응용 프로그램 계층 데이터를 교환하는 데 사용됩니다. 적용 메시지는 관리 가능한 데이터 블록으로 분할되고 압축될 수 있으며 MAC (메시지 인증 코드) 를 적용할 수 있습니다. 그런 다음 결과를 암호화하고 전송합니다. 수신자는 데이터를 수락하고 해독하고, MAC 를 검사하고, 데이터 압축을 풀고 재구성하며, 결과를 응용 프로그램 프로토콜에 제출합니다.
L 경고 프로토콜. 이 프로토콜은 오류가 발생한 시기 또는 두 호스트 간의 세션이 종료된 시기를 나타내는 데 사용됩니다.
웹 클라이언트 및 서버 사용의 예를 살펴보겠습니다. 웹 클라이언트는 SSL 을 지원하는 서버에 연결하여 SSL 세션을 시작합니다. SSL 을 지원하는 일반 웹 서버는 SSL 연결 요청을 수락하는 포트 (기본값 443) 가 표준 HTTP 요청의 포트 (기본값 80) 와 다릅니다. 클라이언트가 이 포트에 연결되면 악수를 시작하여 SSL 세션을 설정합니다. 핸드셰이크가 완료되면 통신 내용이 암호화되고 SSL 세션이 만료될 때까지 메시지 무결성 검사가 수행됩니다. SSL 은 핸드셰이크가 한 번만 발생할 수 있는 세션을 생성합니다.
SSL 핸드쉐이킹 프로세스를 수행하려면:
1: SSL 클라이언트가 SSL 서버에 접속하고 서버에 자신의 id 를 인증하도록 요청합니다.
2 단계: 서버는 디지털 인증서를 전송하여 id 를 증명합니다. 이 교환에는 루트 인증 기관 (CA) 까지 전체 인증서 체인도 포함될 수 있습니다. 만료 날짜를 확인하고 인증서에 트러스트된 CA 의 디지털 서명이 포함되어 있는지 확인하여 인증서를 확인합니다.
3 단계: 그런 다음 서버는 클라이언트의 인증서를 확인하는 요청을 보냅니다. 그러나 오늘날 대부분의 서버는 공개 키 아키텍처가 없기 때문에 클라이언트를 인증하지 않습니다.
단계 4: 암호화를 위한 메시지 암호화 알고리즘 및 무결성 검사를 위한 해시 함수를 협상합니다. 일반적으로 클라이언트는 지원하는 모든 알고리즘의 목록을 제공하고 서버는 가장 강력한 암호화 알고리즘을 선택합니다.
5 단계: 클라이언트와 서버는 다음 단계를 통해 세션 키를 생성합니다. a. 클라이언트는 난수를 생성하고 서버의 인증서에서 가져온 서버의 공개 키로 암호화하여 서버에 보냅니다. B. 서버는 더 많은 임의 데이터를 사용합니다 (클라이언트의 키를 사용할 수 있을 때 클라이언트 키 사용 : 그렇지 않으면 데이터가 일반 텍스트로 전송됩니다.) C. 해시 함수를 사용하여 무작위 데이터에서 키를 생성합니다.
SSL 프로토콜의 장점은 연결 보안을 제공한다는 것입니다. L 연결은 비공개입니다. 초기 핸드셰이크가 키를 정의한 후 암호화 알고리즘이 사용됩니다. DES 및 RC4 와 같은 대칭 암호화는 데이터 암호화에 사용됩니다. L 비대칭 암호화 또는 RSA 및 DSS 와 같은 공개 키 암호화를 사용하여 피어 엔티티의 id 를 확인할 수 있습니다. L 연결 시 신뢰할 수 있습니다. 메시지 전송은 메시지 무결성 검사를 포함한 키 MAC 를 사용합니다. 여기서 보안 해시 함수 (예: SHA 및 MD5) 는 MAC 계산에 사용됩니다.
SSL 에 대한 수락은 HTTP 로 제한됩니다. 그것은 이미 다른 협정에서 사용할 수 있는 것으로 증명되었지만, 아직 널리 사용되지 않았다.
참고: IETF 는 전송 계층 보안 (TLS) 이라는 새 프로토콜을 정의하고 있습니다. Netscape 가 제안한 SSL3.0 프로토콜 사양을 기반으로 합니다. 전송 계층의 안전한 사용을 위한 표준 프로토콜의 경우 업계 전체가 TLS 로 발전하고 있는 것 같습니다. 그러나 TLS 와 SSL3.0 은 크게 다르므로 (주로 다른 암호화 알고리즘을 지원함) TLS 1.0 과 SSL3.0 은 상호 운용할 수 없습니다.
2.SSH (secure shell protocol) SSH 는 보안 원격 로그인 및 비보안 네트워크의 다른 보안 네트워크 서비스에 사용되는 프로토콜입니다. 보안 원격 로그인, 보안 파일 전송, 보안 TCP/IP 및 X-Window 시스템 트래픽 전달을 지원합니다. 전송된 데이터를 자동으로 암호화, 인증 및 압축합니다. 진행 중인 SSH 프로토콜 정의 작업은 SSH 프로토콜이 강력한 보안을 제공하고 비밀번호 분석 및 프로토콜 공격을 방지하며 글로벌 키 관리 또는 인증서 인프라 없이 잘 작동합니다. 사용 가능한 경우 기존 인증서 인프라 (예: DNSSEC 및 X.509) 를 사용합니다.
SSH 프로토콜은 서버 인증, 기밀성 및 무결성을 제공하는 L 전송 계층 프로토콜로 구성되며 완벽한 전달 기밀성을 갖추고 있습니다. 때로는 압축 기능도 제공합니다. 서버에서 클라이언트 인증을 담당하는 사용자 인증 프로토콜입니다. L 연결 프로토콜, 암호화 채널을 여러 논리 채널로 멀티플렉싱합니다.
SSH 전송 계층은 안전한 기본 전송 프로토콜입니다. 강력한 암호화, 암호화된 호스트 인증 및 무결성 보호 기능을 제공합니다. SSH 의 인증은 호스트 기반입니다. 이 프로토콜은 사용자 인증을 수행하지 않습니다. SSH 상위 계층의 사용자 인증을 위한 고급 프로토콜을 설계할 수 있습니다.
이 프로토콜은 매개변수 협상을 허용하고 왕복 전송 횟수를 최소화할 수 있도록 매우 간단하고 유연하게 설계되었습니다. 키 교환 방법, 공개 키 알고리즘, 대칭 암호화 알고리즘, 메시지 인증 알고리즘, 해시 알고리즘 모두 협상이 필요합니다.
각 패킷에 메시지 인증 코드 (MAC) 를 포함시켜 데이터 무결성을 보호합니다. 메시지 인증 코드는 * * * 공유 키, 패킷 일련 번호 및 패킷 내용을 기준으로 계산됩니다.
SSH 구현은 UNIX, Windows 및 Macintosh 시스템에서 찾을 수 있습니다. 이것은 잘 알려진 암호화, 무결성 및 공개 키 알고리즘을 사용하는 널리 사용되는 프로토콜입니다.
3. 소켓 프로토콜
SOCKS (Socket security) 는 전송 계층 기반 네트워크 프록시 프로토콜입니다. TCP 및 UDP 분야의 클라이언트/서버 애플리케이션을 위한 프레임워크를 제공하여 네트워크 방화벽 서비스를 쉽고 안전하게 사용할 수 있도록 설계되었습니다.
SOCKS 는 처음에 데이비드와 미셸 코블라스가 개발했습니다. 그 코드는 인터넷에서 무료로 받을 수 있다. 그 이후로 몇 차례 중대한 수정이 있었지만, 이 소프트웨어는 여전히 무료이다. SOCKS 버전 4 는 telnet, FTP 및 FTP, finger, whois 와 같은 널리 사용되는 정보 검색 프로토콜을 포함한 TCP 기반 클라이언트/서버 어플리케이션으로, 이미 소켓이 있으며 많은 공급업체들이 상용 어플리케이션에 SOCKS 지원을 포함하고 있습니다.