HTTPS(Hyper Text Tranfer Protocol Secure)

네트워크 서비스(웹 사이트, 금융, 공인인증서 ...)를 안전하게 이용할 수 있게 해주는 역할을 하는 방식으로
대부분 네트워크 패킷 전송에 사용되는 TCP 프로토콜에 많은 보안기법을 제공하여 데이터 송수신 시 보안을 향상시켜준다.

TLS(Transport Layer Security)와 SSL(Secure Socket Layer)가 가장 대표적으로 알려져있는데,
SSL의 취약점을 보완되어 보다 안정성이 좋은 버전이 TLS 이다.

평소에 누구나 웹 브라우저(Chrome, Firefox, Whale ...)를 사용한다면 쉽게 접해볼 수 있는 HTTPS와 HTTP의 차이점을 확인

* 해당 실습에서는 Fedora36(10.211.55.20)이 이용되었음


▼ 보안 인증서(*.crt)관련 참고자료

[Security]Digital_Certificate

디지털 인증서(Digital Certifiate) 우리가 웹 사이트나 모바일 뱅킹 등의 서비스를 이용할 때 안전하게 사용할 수 있는 이유로는 TLS(Transport Layer Security) 방식으로 서버와 노드간 주고받는 내용을 암

for-security.tistory.com


● HTTP와 HTTPS

# 웹 사이트 실습을 위한 준비

sudo dnf install -y httpd 
# 로컬 웹 사이트를 활성화하기 위한 httpd 패키지를 다운로드

echo "<h1>This is HTTPS Test Web Site</h1>" > /var/www/html/index.html
# 관리자 권한으로 간단하게 HTML 작성 후 해당 경로로 리다이렉트하여 웹 페이지 생성
# 에디터로 직접 수정해주어도 상관 X

sudo systemctl start firewalld
# 방화벽 설정을 위한 firewalld 서비스 시작

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firweall-cmd --reload
firewall-cmd --list-service
# 로컬 및 외부에서 Fedora(.20)머신의 웹 페이지 접근을 허용하기 위한 방화벽 설정

sudo systemctl restart httpd
# 설정사항 적용을 위하여 서비스를 재시작



먼저 "firefox http://www.google.com"을 일반 사용자의 콘솔창에 입력하여 Google 사이트로 접속

firefox http://www.google.com

일반 사용자 콘솔에서 해당 명령어로 Google 사이트에 접속하면 정상적으로 진입되는 것을 확인
TLS 방식을 사용한 접속이기에 빨간색 네모칸 안에 있는 자물쇠로 해당 사이트에 대한
인증서를 확인해볼 수 있다.

* 'http'로 입력을 요청했지만 접속 시 'https' 로 강제 리다이렉트 되는 것은 ssl.conf 등의 설정으로 인한 이유이다.
해당 내용에 대해서는 추후 기술

자물쇠 버튼 클릭 후 인증서에 대한 내용을 확인

Firefox의 Certificate Manager로 인증서의 정보를 자세히 확인

'Google' 사에서 불특정 다수 이용자의 원활한 접속을 위해서
Firefox 웹 브라우저에 ~.crt(인증서)를 생성하여 클라이언트의 웹 브라우저에 넣어 둔 것인데,
클라이언트와 서버는 대칭키 방식으로 통신 간 데이터를 암호화하고, 공개키로 복호화 한다.

이 방식은 SSH에서 개인 키(Private Key)와 공개 키(Public Key)로
클라이언트와 서버 간 인증을 해주는 원리와 비슷하다.

이번에는 앞에서 미리 만들어 둔 로컬(인증서가 없는) 웹 페이지에 대한 접속방식을 확인해본다.

# 로컬에서 생성한 웹 페이지를 IP가 아닌 FQDN으로 접속하기 위한 /etc/hosts 파일을 수정

sudo vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
10.211.55.20    www.myhomepage.com www # 해당 부분을 추가함

# Name Resolving 시 가장 먼저 로컬에 정의된 /etc/hosts 파일을 참조하기 때문에
# URL 검색 창에 "www.myhomepage.com" 입력 시 앞에서 생성한 웹 페이지로 접근한다.



▼ Name Resolve 관련 참고자료

[Linux]DNS

DNS(Domain Name System) 우리가 흔히 구글링을 하러 구글 웹 사이트에 접속할 때, 123.123.123.123 ... 식의 ip주소를 입력해 웹 사이트에 접근하는 경우는 거의 없다. 이렇듯 복잡한 ip주소 대신 사람이 이용

for-security.tistory.com




"firefox http://www.myhomepage.com"을 일반 사용자의 콘솔창에 입력하여 로컬 웹 페이지로 접속

HTTP로 로컬 웹 페이지에 접속한 모습

해당 그림에서도 볼 수 있듯이 인증서가 없는 HTTP(Plain Text) 웹 페이지로
자물쇠 아이콘에 빨간색 사선이 표시되어 웹 사이트에 대한 인증서 정보가 웹 브라우저에 없다는 것을 확인해볼 수 있다.


이어서 "firefox https://www.myhomepage.com" 을 일반 사용자 콘솔에서 입력하여 웹 페이지 요청을 시도

HTTPS 접속을 시도한 모습

웹 브라우저에 인증서가 저장 되어있지 않은 웹 사이트에 HTTPS 접속 요청 시
해당 그림처럼 연결 불가(Unable to Connect)라는 경고문을 확인해볼 수 있다.

* Firefox 및 그 외 브라우저의 버전별로 경고문의 출력내용이 상이할 수 있음

다른 버전의 Firefox에서 동일한 조건으로 웹 페이지 요청을 시도

해당 버전의 웹 브라우저에서는 인증서 정보가 없는 웹 페이지에 대한 HTTPS 접근 요청 시
보안 연결 실패(Secure Connection Failed)라는 경고문이 출력되는 것을 확인해볼 수 있다.



---> 다음 포스트에서는 디지털 인증서(Digital Certificate) 생성 및 사용에 대한 포스트 진행

'System_Security' 카테고리의 다른 글

[Security]Digital_Certificate  (0) 2023.02.12
[Security]TrueCrypt  (0) 2023.02.02
[Security]SSH_Keygen  (0) 2023.02.01
[Security]chroot  (0) 2023.01.27
[Security]Snort  (0) 2023.01.26

+ Recent posts