https(3)
-
CLEARTEXT communication to [TARGET_ADDRESS] not permitted by network security policy
HTTP 통신 라이브러리를 Volley에서 Retrofit2로 변경한 뒤, targetSDKVersion값을 28로 변경하자 잘 되던 HTTP 통신이 동작하지 않는다. 이상하다싶어서 브레이크 포인트를 걸고 확인해보니 onResponse도 아닌 onFailure에 걸렸는데, CLEARTEXT communication to [TARGET_ADDRESS] not permitted by network security policy에러가 뜨고 있었다. 다른게 아니라 Android 9.0부터는 기본적으로 HTTP로 접속하는 것을 막기 때문이라고 한다. (참고: Protecting users with TLS by default in Android P 물론 서버에서 HTTPS로 설정할 수 있다면 만사 OK지만, 나의 경..
2019.11.08 -
[lighttpd] TLSv1.0, TLSv1.1 비활성화하기 (TLSv1.2 Only)
lighttpd를 사용하여 TLSv1.0, TLSv1.1을 사용하는 방법은 버전에 따라 갈리게 된다. [Docs SSL, lighttpd] 문서를 살펴보면 ssl.openssl.ssl-conf-cmd라는 녀석이 있다. lighttpd를 빌드할 때 openSSL을 사용하도록 빌드했다면, 이 옵션을 이용해서 openssl 설정 명령어를 설정해두는 게 가능하다. 문서의 예제에도 나와있듯이, TLSv1.2만 사용하고싶은 경우에는 아래와 같이 설정해두면 된다. ssl.openssl.ssl-conf-cmd=("Protocol" => "-ALL, TLSv1.2") 명령어를 보자마자 한눈에 알 수 있겠지만, 사족을 붙이자면 모든 프로토콜을 사용하지 않도록 설정한 뒤 TLSv1.2를 사용하도록 선언한다. 이렇게 되면 T..
2019.08.22 -
Wireshark로 SSL/TLS(HTTPS, HTTPS2) 트래픽을 복호화하기
참조: Walkthrough: Decrypt SSL/TLS traffic (HTTPS and HTTP/2) in Wireshark 최근 웹서버가 탑재된 카메라, NVR 장비의 TTA 인증으로 인해, 서버에 대한 보안 작업이 증가하고 있다. 문제는 보안을 적용하는 방법이 아니라, 제대로 적용됐는지를 TTA에 확인할 수 있는 방법이 필요했다. 장비를 최초 부팅할때마다 인증서를 생성하는 것은 문제가 없으나, 인증서를 장비 외부로 반출하여 '정말로 해당 인증서를 사용하여 HTTPS 통신을 하고 있는지'를 보여주는 게 문제였다. 여튼 테스트 중에 RSA키를 사용하여 TLSv1.2로 전송되는 패킷의 복호화를 시도했으나, 정상적으로 복호화가 진행되지 않았다. 서버에 대한 지식이 부족했던 나로써는 꽤나 골치아픈 일이었..
2018.07.02