본문 바로가기
  • 저희는 평생 개발할 운명이걸랑요
Tech.log/네트워크

[HTTP VS HTTPS]

by SpaciousKitchen 2021. 5. 17.

HTTP

하이퍼 텍스트 전송 프로토콜의 약자이다. 서로 다른 시스템들에서 통신을 주고받는 가장 기본적인 프로토콜입니다.웹서핑을 할때, 브라우저로 데이터를 전송해주는 용도로 사용된다.

HTTPS

하이퍼 텍스트 전송 프로토콜의 보안(Hypertext Transfer Protocol Secure)의 약자이다. HTTP의 암호화 되지않는  문제점을 보완하기 위해SSL(보안 소켓 계층)을 사용한 프로토콜이다.

두 프로토콜의 큰 차이점은 SSL인증서 이다. SSL인증서는  웹서버와 웹사이트에서 이루어지는 모든 정보전송을 암호화 하는  인증서 이다.

HTTPS도 SSL 프로토콜 위에서 돌아가는 프로토콜이고 이를 통해 안전하게 데이터를 전송한다.

 

*추가 )암호화의 방법

대칭키
암호화화 복호화를 동일한 키(대칭키)를 사용하는 기법이다.

예시

echo 'this is the plain text' > plaintext.txt;
openssl enc -e -des3 -salt -in plaintext.txt -out ciphertext.bin;
//  enc -e -des3 을 사용하여  'plaintext.txt'을 ciphertext.bin로 암호화
openssl enc -d -des3 -in ciphertext.bin -out plaintext2.txt;
//enc -e -des3 을 사용하여 ' ciphertext.bin'파일 'plaintext2.txt'로 복호화

 

단점은 암호를 주고 받은 사람 끼리 대칭키를 전달하는 것이 어렵다는 점이다. 만일 이것이 유출되면,
타인도 복호화를 할수 있기 때문이다.

 

공개키
해당 방식은 A라는 공개키(Public Key)로 암호화 하면 B 비공개 키(private key, 개인키)로 복호화 할수 있는 방식이다.
타인에게 공개키를 공개하면 해당 암호화된 정보를 복호화하기위해 비공개키(개인키)가 필요하다.
반대로 이러한 개인키를 통해 암호화 한 정보는 공개키로 복호화 할 수 있는데 이것을 전자 서명 이라고 하며, 개인의 신원을 보장해준다.

예시

openssl genrsa -out private.pem 1024;
// genrsa라는 공개키를 사용하여 암호화한다.이 키는 1024bit 길이을 갖는데 높을 수록 안전하다.
openssl rsa -in private.pem -out public.pem -outform PEM -pubout;
//private.pem이라는 이름의 비공개키에 대한 public.pem이라는 이름의 공개키를 생성한다
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl;
//. 아래의 예제는 file.txt의 내용을 RSA방식으로 암호화한 file.ssl이라는 이름의 파일을 생성한다. 이 때 사용된 공개키가 public.pem이다. 이제 안심하고 file.txt를 암호화한 결과인 file.ssl을 비공개키의 소유자에게 전송할 수 있다.
openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
//ile.ssl을  비공개키인 private.pem을 사용하여 복호화한 결과를 decrypted.txt로 만들어내는 방법이다.

 

'Tech.log > 네트워크' 카테고리의 다른 글

[CORS란]  (0) 2021.05.20
[HTTP 요청/응답 헤더]  (0) 2021.05.17
[TCP의 3-Handshake VS 4-Handshake ]  (0) 2021.05.12
[TCP/IP VS UDP]  (0) 2021.05.11
[OSI의 7 계층]  (0) 2021.05.11

댓글