이번 시간에는 지난 번 발표에서 다루지 못한 프로토콜들을 알아보도록 하겠습니다.
과제 발표에 사용한 ppt 파일을 첨부하겠습니다. 현재 진행하고 있는 과제는 AI 스쿨의 리팩토링 보안직무 과정의 일부입니다. 만약 해당 과정에 더 관심이 있으시다면 AI스쿨의 공식 카페에 방문하여 더많은 정보를 확인해 주시기 바랍니다.
https://cafe.naver.com/itscholar
HTTP
HTTP는 HyperText Transfer Protocol(하이퍼텍스트 전송 프로토콜)의 약자입니다. 하이퍼텍스트를 원활하게 통신하기 위한 프로토콜입니다. 사용자가 브라우저를 통하여 웹 서비스를 서버에 요청할 시 서버가 웹 페이지로 응답하는 방식으로 작동하며 웹을 구성하는 핵심 프로토콜이라고 볼 수 있습니다.
하지만 HTTP는 모든 데이터를 평문으로 전송하기 때문에 제 3자가 데이터를 중간에 따로 조회하여 보안문제가 발생할 수 있었습니다.
HTTPS
HTTPS는 HTTP Secured 의 약자입니다. 그 이름처럼 HTTP에 SSL 프로토콜을 이용하여 보안 기능을 적용한 것이 바로 HTTPS입니다. HTTPS에 적용된 보안 기능에 관해 알아보려면 공개키 암호화 방식과 SSL 인증서 기능에 대해서 알아야 합니다.
공개키 암호화
공개키 암호화는 대칭키 암호화와 비대칭키 암호화 기술로 만든 암호 체계입니다.
[이미지 1]
대칭키 암호화는 호스트와 서버 간에 데이터를 송·수신할 때 같은 키를 사용하여 데이터를 암호화, 복호화를 하는 것을 말합니다. 이런 대칭키 암호화는 키가 유출되지 않는다면 데이터 전송 속도와 보안성을 모두 잡을 수 있지만, 키가 유출된다면 보안에 치명적인 문제가 발생하게 됩니다.
[이미지 2]
비대칭키 암호화는 호스트와 서버간에 서로 다른 키(공개키, 비밀키)로 데이터를 암호화 복호화를 하는 것입니다. 공개된 키 A와 비공개 키 B가 있다고 할 때, A로 암호화한 데이터는 B로만 복호화 할 수 있고, B로 암호화한 데이터는 A로만 복호화 할 수 있도록 하는 것이 핵심입니다. 이런 방식으로 암호화를 적용한다면 여러 이점이 있습니다.
먼저 A를 이용해서 데이터를 복호화 할 수 있다면 상대방은 B 키를 가진 신뢰할 수 있는 대상이라는 걸 알 수 있습니다. 그리고 A를 이용해 암호화한 데이터는 B 만이 무엇인지 알아낼 수 있으니 데이터 전송의 보안성이 크게 향상됩니다.
하지만 아직까지는 비대칭키 암호화를 모든 부분에 적용하기에는 하드웨어에 큰 부담이 갑니다. 따라서 일반적인 HTTPS 환경에서는 비대칭키로 먼저 연결을 만들어 낸 뒤 서로 대칭키를 공유하여 차후에 보내는 데이터는 대칭키로 보내는 방식으로 데이터를 송신합니다.
HTTPS에서 인증서가 바로 이 일을 하는데 핵심적인 역할을 합니다. 인증서는 인증서 발급 기관에서 관리하는 전자상의 문서입니다. 인증서의 발급 기간은 언제인지, 인증서에 포함된 공개키는 무엇인지, 그리고 수많은 조건들을 고려해 이 사이트가 신뢰할 수 있는지 증명하는 것입니다. 그리고 사용자들은 브라우저에서 최초로 연결할 때 이 인증서 정보를 서버에서 받고 인증서 발급기관 상의 정보와 대조해 보는 것으로 이 사이트의 신뢰성을 결정하게 됩니다.
[이미지 3]
(예시 : 인증서가 만료되어 접속하기 어려운 사이트)
HTTP vs HTTPS
[이미지 4]
이러하듯이 HTTPS는 기존 HTTP 방식에 복잡한 과정을 거처 통신합니다. 그 결과로 더 나온 보안성을 얻었지만 여러 가지 문제점들이 발생했습니다. 암호화와 복호화 과정이 추가되었기에 HTTP에 비해 느려졌습니다. 인증서를 발급하고 관리해야 하기에 추가적인 비용이 발생합니다. 그리고 처리하는 데이터가 증가함에 따라 서버에 가해지는 부하가 늘어나고 이는 서버를 증설하고 관리하는 비용이 증가한다는 것을 의미합니다.
하지만 하드웨어의 발전으로 HTTP의 장점이 대부분 퇴색되었습니다. 이제 HTTP는 HTTPS에 비해 빠르긴 하지만 특출나게 빠르진 않습니다. 인증서 발급도 규모의 경제로 인하여 이전보다 훨씬 싸졌습니다. 하드웨어 발전으로 인해 서버 비용이 특별히 비싸지는 않습니다. 그렇기에 기존에 HTTP를 이용하던 사이트들 대부분이 HTTPS로 전환하였고 이제 HTTP로 접속하는 사이트들이 도리어 손에 꼽게 적어지게 된 것입니다.
Telnet
[이미지 5]
텔넷은 인터넷 초기 단계에 개발된 프로토콜로, 현재 사용되는 프로토콜중에 가장 오래된 프로토콜입니다. 장거리에 있는 컴퓨터나 서버에 접속하여 마치 자신의 컴퓨터를 사용하는 것처럼 사용하는 기술로, CMD 창에서 사용이 가능합니다.
SSH
SSH는 텔넷을 대체하기 위해 나온 프로토콜입니다. 기본적으로 텔넷을 사용하는 것처럼 원거리에 있는 컴퓨터/서버에 접속하는 기능을 가지고 있습니다. 그리고 텔넷과는 다르게 연결에 공개키 암호화 방식을 적용하여 보안을 강화한 것이 특징입니다.
SSH vs SSL
SSH와 SSL의 가장 큰 차이점은 SSH는 개발자를 위한 도구이고 SSL은 사용자를 위한 도구라는 점입니다.
[이미지 6]
FTP
FTP는 파일 전송 프로토콜이라는 뜻으로 HTTP와 다르게 파일 전송에 특화된 프로토콜입니다. FTP는 제어채널과 전송채널로 나뉘어서 작동하는데, 제어채널은 어떤 데이터를 보낼 수 있는지, 어떤 데이터를 보낼지 통신하여 결정하는 채널이고 실재로 파일이 전송되는 채널은 전송채널입니다.
이를 쉽게 비유하여 표현하자면 팩스기와 전화기의 비유를 댈 수 있습니다. 일단 전화를 걸어서 상대방과 연결 된 뒤, 필요한 자료는 전화기로 말하고 실제로 자료를 받는건 팩스기를 통해 받는 것입니다.
FTPS vs SFTP
[이미지 7]
FTPS와 SFTS는 둘 다 파일 전송 프로토콜이면서 보안을 적용한 것입니다. 하지만 차이점이 존재합니다. FTPS는 FTP에 SSL을 이용한 보안 기술을 적용한 것으로 기본적인 특징이 FTP와 같습니다. 하지만 SFTP는 SSH 기술을 이용하여 FTP와 유사한 서비스를 바닥부터 다시 만들어 낸 프로토콜입니다. 그렇기에 SFTP는 FTP의 주요한 특징인 두 가지의 채널로 통신하여 자료를 받는다는 특징이 없습니다.
'AI 스쿨 리팩토링 보안직무 과정' 카테고리의 다른 글
9주차 과제 - 악성코드 (0) | 2022.12.19 |
---|---|
8주차 과제 - Firewall, IPS, IDS, DDoS (0) | 2022.12.18 |
6주차 과제 - 계층별 프로토콜 (상) (0) | 2022.12.18 |
5주차 과제 - OSI 7 계층의 장비들 (0) | 2022.12.18 |
4주차 과제 – TCP와 UDP (0) | 2022.12.18 |
댓글