본문 바로가기
42cursus/server

ssl

by 인듯아닌듯 2020. 8. 4.

마지막으로 ft_server에서 해주어야하는 처리

1. SSL(=TLS)

SSL이란 보안 소켓 계층을 이르는 것으로, 인터넷 상에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜을 말합니다.

SSL은 전자상거래 등의 보안을 위해 넷스케이프에서 처음 개발되었는데요,

시간이 지나 인터넷상의 표준 프로토콜로 자리매김하면서 SSL이라는 명칭이 특정 회사의 제품 이름 같다하여, IETF(Internet Engineering Task Force)에 의해 TLS(Transport Layer Security)로 표준화 되었습니다.

 

[보안용어] SSL(Secure Socket Layer)의 개념과 동작원리

최근, 개인정보보호법의 시행과 함께, 데이터 암호화의 필요성 및 SSL의 개념이 강조되고 있습니다. 이...

blog.naver.com

https://12bme.tistory.com/80 

 

[정보보안] SSL(Secure Socket Layer) 이란

현재 근무 중인 업체에서 SSL 인증서 적용 작업이 필요하다고 합니다. SSL 인증서관련 필요한 것이 무엇인지에 대한 요청이 있었습니다. 간단하게 SSL에 대해 정리해보겠습니다. 1. SSL 개념 잡기 SSL

12bme.tistory.com


https://www.youtube.com/watch?v=7Lh0aT_15b8

https://www.youtube.com/watch?v=H6lpFRpyl14

ssl 인증 및 정보전송과정

1. 클라이언트가 서버에게 request할 때, Diffie-hellman방식으로 무작위한 숫자값을 보낸다.

2. 서버도 Diffie-hellman 방식으로 숫자값과 함께 인증서를 보낸다. (이때 이 인증서는 CA가 준 공개키로 암호화 된 것 같다.)

3. 서버로 부터 받은 인증서는 브라우저에서 CA list에 존재하는 거라면, CA에 의해서 복호화되고, 이 인증서안에는 서버의 개인키에 대응하는 공개키가 담아져있다.

4. 클라이언트가 Diffie-hellman으로 만들어진 공개키를 서버에 전송할 때, 서버의 공개키로 암호화하고, 서버는 받은 정보를 개인키로 복호화한다.



실습(생활코딩)

대칭 키 암호(symmetric-key algorithm) vs 비대칭키(asymmetric-key)

비대칭키는 공개키(Public Key)와 개인키(Private Key)가 하나의 쌍을 이루고 있다. 

생활코딩 명령어에는 알 수 없고, 설명되지않은 옵션들이 많이 들어가있는데 이를 수정하고자한다.

https://opentutorials.org/course/228/4894

 

HTTPS와 SSL 인증서 - 생활코딩

HTTPS VS HTTP HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이

opentutorials.org

1. 대칭키로 파일 암호화, 복호화하기

openssl des3 -in raw.txt -out encry.txt

openssl des3 -d -in encry.txt -out decry.txt

 

2. 공개키로 파일 암호화, 복호화하기

openssl genrsa -out private.pem 1024; (사설키 생성)

openssl rsa -pubout -in private.pem -out public.pem

openssl rsautl -encrypt -pubin -inkey public.pem -in raw.txt -out encry.ssl

openssl rsautl -decrypt -inkey private.pem -in encry.ssl -out decry.txt

 

-pubin, -pubout 명령어는 꼭 들어가야함

 

http://egloos.zum.com/repository/v/5882065

 

리눅스에서 암/복호화(openssl)

리눅스에서 파일과 스트링을 암/복호화 한다. 아주 간단하다. [ 파일 암/복호화 ] 암호화 명령 # openssl des3 -in a.txt -out a.txt.des3 enter des-ede3-cbc encryption password: => 암호입력 Verifying - enter des-ede3-cbc encr

egloos.zum.com

https://www.hahwul.com/2014/08/05/ssl-openssl-rsa-create-rsa-key-in/

 

[SSL] OpenSSL을 이용한 RSA 공개키, 개인키 생성 (Create RSA Key in OpenSSL/Windows)

Security engineer, Bugbounty hunter, Developer and... H4cker

www.hahwul.com

 

 



생활코딩의 내용요약 및 정리

ssl의 기능(암호화, 인증)

1. 통신내용이 감청당하지 않도록 -> 암호화

2. 통신내용이 변경당하지 안하도록(?) -> 암호화

3. 인증서 발급을 통해 클라이언트 안심시키기 -> 인증

 

ssl -> 대칭키과 공개키(비대칭키)의 혼합 메커니즘

통신내용을 암호화하는 것은 제3자는 복호화하지못하고, 제2자는 복호화할 수 있도록 열쇠를 건내줘야하는데, 열쇠또한 통신중에 감청 및 변조 당하는 문제를 해결하기위해 만든 ssl

"금고를 여는 키는 대칭키로, 그 금고를 열 수 있는 키는 공개키로 암호화한다.

 

cipher = algorithm + key

 

'42cursus > server' 카테고리의 다른 글

docker toolbox 설치에러 해결하기  (0) 2020.08.27
server_name  (0) 2020.08.06
SSL, redirecct, autoindex, etc  (0) 2020.08.02
dockerfile  (0) 2020.07.30
서버 시행착오  (0) 2020.07.30