할껀하고놀자
OpenSSL와 SSL 인증서 관련 용어정리 본문
1. OpenSSL이 뭘까??
보통의 경우 웹서비스에 https를 적용할 경우 SSL인증서를 VeriSign라는 곳에서 발급받아야 하는데, 이때 비용이 발생하기 때문에 실제 운영서버가 아니면 발급 받기에 부담이 될 수 있다.
이 때 OpenSSL을 사용하여 인증기관을 직접 만들고, Self Signed Certificate 를 생성하고, SSL인증서를 발급하면 된다.
발급된 SSL인증서는 Apache httpd 등의 웹서버에 설치해서 쉽게 https의 서비스를 이용할 수 있다.
2. https란?
인터넷 주소창 앞에 쓰여진 것입니다. https를 알기 전에 http를 먼저 아는 것이 좋습니다. http는 https와 s 단어 하나만 차이가 나는데, s는 Over Secure Socket Layer의 약어입니다. Secure, 보안 소켓 계층인 것으로 보아 https는 http + secure 정도로 생각하면
편하게 이해할 수 있을 것 같습니다. http는 암호화되지 않는 방법으로 데이터를 전송하기 때문에, 서버와 클라이언트가 주고 받는 메세지를 도중에 해킹하는 것이 매우 쉽습니다.
이것을 보안한 것이 https입니다. https는 SSL프로토콜 내부에서 돌아가는 프로토콜입니다.
3. SSL인증서란?
클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서입니다. 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서의 정보를 전달합니다. 클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증 한 후에 다음 절차를 수행하게 됩니다. SSL, 그리고 SSL인증서를 이용했을 때의 이점은 아래와 같습니다.
통신 내용이 공격자에게 노출되는 것을 막을 수 있습니다. 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지를 판단할 수 있습니다. 통신 내용의 악의적인 변경을 방지할 수 있습니다. |
*SSL인증서를 사용하여 웹서비스에 보안을 강화, https를 적용할 수 있다.
4. SSC(Self Signed Certificate)란?
공식적인 발급기관 이외에 Root CA의 개인키로 스스로의 인증서에 서명하여 최상위 인증기관
인증서를 만드는 행위. 이렇게 스스로 서명한 Root CA의
인증서를 Self Signed Certificate라고 한다. 이걸
이용하면 보통의 웹서버에서는 보안 경고를 발생시킬 수도 있지만, 테스트 사용시에는 지장이 없습니다.
5. CA
인증서의 역할은 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할을 합니다. 이 역할을 하는 민간기업들이 있는데 이런 기업들을 CA(Certificate Authority)은 Root Certificate라고 부릅니다. 이 단체는 신뢰성이 엄격하게 공인된 기업들만이 참여할 수 있습니다. SSL을 통해 암호화된 통신을 제공하려는 서비스는 이 CA를 통해서 인증서를 구입해야 한다.
6.CSR(Certificate Signing Request)란?
인증기관에 인증서 발급 요청을 하는 특별한 형식(ASN.1)의 파일이다. 내부에는 내 공개키 정보와 사용하는 알고리즘 정보등이 들어있습니다. 개인키가 외부에 유출되면 안되기 때문에 특별한 형식의 파일을 만들어서 인증기관에 전달, 인증서를 발급 받는다. 생성은 웹서버에서 이루어지는데, 웹서버마다 방식이 다르기 때문에 사용자들이 CSR생성을 어려워합니다. 그래서 인증서 발급 대행기관이 개인키까지 생성해서 보내주고는 합니다.
'[IT]' 카테고리의 다른 글
[SW역량테스트준비] 아기상어 (0) | 2019.10.13 |
---|---|
[C++]define와 typedef의 차이점 (0) | 2018.02.15 |
[Win32] visual studio 2017에 c++ winform 도구상자 띄우기 (7) | 2018.02.11 |
[Win32] visual studio 2017에 c++ winforms 창 띄우기 (14) | 2018.02.10 |
[Win32] 비주얼 스튜디오 2017에서 win32 실행하기 (0) | 2018.02.03 |