'https'에 해당되는 글 2건

반응형

로그인을 위해서 일반적으로 아이디와 패스워드를 입력한다.

이를 서버 측으로 전달하여 데이터베이스에서 검증 이후 해당 사용자로 로그인을 진행하는데 이 때, 서버 측으로 패스워드를 평문으로 전달하게 된다면 악의적인 사용자가 중간에 가로채 정보가 유출될 가능성이 존재한다.


뿐만 아니라 주소, 이메일, 전화번호 등의 개인정보들이 네트워크 상에 평문으로 노출될 가능성이 존재한다.


이에 대해서는 두가지 대응방안이 존재한다.



1. HTTPS 통신

 - HTTPS 통신을 위해서는 인증된 기관에서 발급한 SSL 인증서가 필요하다. 하지만 일반적으로 SSL 인증서는 유료이기 때문에 작은 규모의 사이트나 개인 블로그 같은 경우는 도입하지 않는 경우가 일반적이다. 

 - 하지만 유료가 아닌 무료로 SSL 인증서를 발급받아 적용이 가능한 경우도 있다.


1) 자체 발급한 인증서

 - 자체 발급한 인증서의 경우 처음 접근 시 아래와 같은 경고창이 뜨며, 계속 탐색합니다 클릭 시 웹 서비스 이용이 가능하지만 여전히 주소창에는 발간색으로 [인증서 오류]가 노출된다.

     

 

2) 인증서 기관이 무료로 배포한 인증서

 - 개인적으로 추천하는 방식으로 HTTPS 사용을 권장하기 위해 무료로 배포하는 것으로 대표적으로 Let's Encrypt가 있다.

 - Let's Encrypt의 경우 모질라와 시스코 등 다수 굵직한 기업이 후원하는 것으로 믿을만하며 대표 사이트는 다음과 같다. ( https://letsencrypt.org/ko/ )

 - 설치 과정은 이미 다수의 블로그에서 다루고 있기 때문에 패스합니다.



2. 암호화

 - 만약 서버 측 제한 혹은 환경적인 제한으로 인해 HTTPS 적용이 힘들 경우 암호화를 통해 전송되는 데이터를 노출되지 않도록 할 수 있다.

 - 비밀번호같은 경우는 일반적으로 원본 데이터가 필요하지 않으므로 현재 가장 많은 분야에서 채택하여 사용되고 있는 암호 방식인 SHA256 혹은 그 이상의 알고리즘을 이용하여 Hash한 상태로 전송할 것을 권고한다.

 - 평문 데이터가 필요한 데이터의 경우는 복호화가 가능해야 한다. 복호화가 가능한 암호화 방식으로는 대표적으로 대칭형과 비대칭형 방식으로 나뉘는데 대칭형의 경우에는 암호화한 키를 통해 복호화가 이루어지기 때문에 보안적으로 안전하지 않다고 할 수 있다. 이에 따라 비대칭형 방식으로 암호화하기를 추천하며 대표적인 비대칭형 암호시스템으로는 RSA가 있다.

 - 다수의 고객사가 JSP로 이루어진 만큼 JAVA 기반으로 RSA 암호화를 적용하는 방법을 알아보았는데 개인적으로 권남님의 블로그(http://kwon37xi.egloos.com/4427199)가 잘 정리되어 있다고 생각한다.



 개인적으로 알아보며 정리한 것이니 잘못된 점이 있다면 댓글로 알려주시면 바로 확인하여 수정하도록 하겠습니다.


-----------------------------------------

※ 참고

- 암호화 알고리즘 : https://naleejang.tistory.com/218

반응형

'Hacking > Web' 카테고리의 다른 글

Sqlite Sql Injection Prevention  (0) 2019.12.30
HTTP 인증 우회  (0) 2019.12.16
0.0.0.0 의 의미  (0) 2019.11.20
Mysql Special Comment  (0) 2019.11.20
JWT algorithm modify code  (0) 2019.11.19
블로그 이미지

rootable

,
반응형

SSLv3이 취약한 HTTPS 프로토콜이라고 하여 어떤 취약점이 존재하는지 알아본 결과 POODLE 취약점(CVE-2014-3566)이 존재하여 취약하다고 하고 있다.


그래서 POODLE 취약점이 무엇인지, 어떤 식으로 동작하는지를 알아보았다.


1. POODLE이란 무엇인가?

 : POODLE은 Padding Oracle On Downgraded Legacy Encryption의 약자이다.

이를 해석하면 다운그레이드된 구식 암호화에 대한 패딩 오라클이라고 할 수 있다. 그렇다면 다운그레이드가 된다는 것은 무엇이며, 패딩 오라클이란 무엇인가에 대한 궁금점이 생긴다.


2. 다운그레이드의 의미와 POODLE 취약점 효과

 이에 대해서는 먼저 아래의 이미지를 보고 가자.


 SSL과 TLS는 서버와 클라이언트 중 한쪽이라도 최신 버전을 호환하지 않는 경우 이전 버전의 프로토콜로 연결을 재시도하는 동작이 있다.


 위의 이미지를 보면 Client에서 Browser를 이용하여 Server쪽으로 최신 버전의 암호화인 TLS를 이용하여 요청을 보내는데 이 때 공격자가 일부러 TLS에 대한 연결을 끊어 SSL 3.0까지 다운그레이드를 시킨다. 이 후 공격자는 패딩을 이용한 공격을 실행하여 Web 서버와 클라이언트 간의 통신을 Sniffing 할 수 있다.


3. Padding Oracle

 패딩 오라클에 대해서는 간단히 하나의 포스팅으로 넘어가기엔 방대한 설명이 필요하여 간단히만 설명하도록 하겠다.


 패딩 오라클이란 [복호화 시스템에 암호문을 넣었을 때 그에 대한 패딩의 올바름 유무를 보여주는 오라클]이라고 할 수 있다. 이 때, 바로 이 패딩이 올바른지에 따른 서버측의 응답을 이용해 암호화된 값을 평문으로 복호화할 수 있는 취약점이라고 할 수 있다.


부르트포싱을 통한 공격이라고는 하나 현재 Padding Oracle 공격을 위한 툴(https://github.com/iagox86/Poracle)도 존재할 뿐더러, 실제로 암호화된 값이 복호화가 되어 값 변경까지 가능하게 된다면 보안상 큰 구멍이 될 가능성이 존재하므로 많은 고객들을 관리하는 기업에서는 SSLv3가 아닌 TLS만을 사용할 것을 권고한다.


4. 대응방안

 대응방안이라고 하면 말그대로 보안상 취약한 SSLv3를 사용하지 않고 최신의 암호화 기법인 TLS(Transport Layer Security)를 이용할 것을 권고한다.


 아래는 서버 별 설정 정보이다.


☞ Apache

Apache SSL 설정 파일에 적용 후 서비스 재시작

- 파일 : /etc/apache2/mods-available/ssl.conf


SSLProtocol ALL -SSLv2 -SSLv3


☞ Nginx

nginx 설정 파일에 아래 내용을 추가한 후 서비스 재시작


ssl_protocols TLSv1 TLSv1.1 TLSv1.2


☞ IIS

regedit(레지스트리편집)을 통해 아래 레지스트리 키 편집

HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols registry key

-> 하위 키에서 SSL 3.0에 대해 "00 00 00 00"으로 설정


참고)

https://blog.trendmicro.com/trendlabs-security-intelligence/poodle-vulnerability-puts-online-transactions-at-risk/

https://www.opentext.com/file_source/OpenText/en_US/PDF/OpenText-POODLE-Vulnerability-FAQ-KO.pdf

https://www.hahwul.com/2015/10/exploit-sslv3-poodle-attack-check-and.html

- http://bperhaps.tistory.com/attachment/cfile30.uf@21B98D33597949BB36C50B.pdf


반응형

'Hacking > Network' 카테고리의 다른 글

SMTP Open Mail Relay vulnerability  (5) 2020.12.07
usage of Docker  (0) 2020.03.10
NIST, TDES 암호알고리즘의 사용제한 권고  (0) 2019.05.06
SSH Dynamic Port Forwarding with SOCKS  (0) 2017.03.10
WPE 활용 SQL Injection  (0) 2017.03.08
블로그 이미지

rootable

,