~에서이 블로그.
중간 CA는 루트 CA가 서명한 인증서이며 모든 웹사이트에 대한 모든 인증서에 서명할 수 있습니다.
루트 CA만큼 강력하지만 시스템 신뢰의 전체 목록이 없습니다. 왜냐하면 루트 CA는 마음대로 새 CA를 생성할 수 있고 시스템이 첫눈에 이를 신뢰하기 때문입니다. 수천명의 사람들이 CT에 로그인했습니다.
이번 달에는 2015년 9월에 생성된 것으로 보이는 흥미로운 문제가 나타났습니다. Symantec이 서명한 "Blue Coat Public Services Intermediate CA"입니다. (현재까지 이 CA에서 서명한 인증서는 CT Log 또는 Censys에 도달하지 않았습니다.)
저는 이것이 OS X에서 신뢰되는 중간 CA를 명시적으로 불신하는 방법을 기록할 수 있는 좋은 기회가 될 것이라고 생각했습니다. 루트 CA가 새로운 중간 CA를 동일한 조직에 넘겨주는 것을 막지는 못하지만 없는 것보다는 낫습니다.
Ubuntu에서 블로그의 단계를 시도했을 때 이 인증서를 다운로드했습니다.https://crt.sh/?id=19538258. .crt를 열면 Gnome 키링으로 가져오지만 가져온 후에 인증서를 "신뢰하지 않는" 방법을 찾을 수 없습니다.
답변1
설상가상으로 Linux에는 인증서 처리를 위한 여러 라이브러리가 있습니다.
Mozilla의 NSS를 사용하는 경우 다음을 사용하여 인증서를 적극적으로 불신할 수 있습니다.인증서 도구옵션 -t trustargs
:
$ certutil -d <path to directory containing database> -M -t p -n "Blue Coat Public Services Intermediate CA"
Firefox의 경우 일반적으로 무작위로 보이는 문자 입니다 <path to directory containing database>
. (certutil은 예를 들어 우분투의 libnss3-tools 패키지에 있습니다)~/.mozilla/firefox/<???>.profile
<???>
세부사항은 다음과 같습니다:
-M
데이터베이스 수정
-t p
신뢰를 "금지됨"으로 설정하세요.
-n
지정된 인증서에 대한 작업 수행
NSS 내에서도 모든 애플리케이션이 동일한 데이터베이스를 공유하는 것은 아니므로 이 프로세스를 반복해야 할 수도 있습니다. 예를 들어 Chrome에서도 동일한 작업을 수행하려면 -d <path>
로 변경하세요 -d sql:.pki/nssdb/
.
$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"
그러나 모든 애플리케이션이 NSS를 사용하는 것은 아니므로 이것이 완전한 솔루션은 아닙니다. 예를 들어 OpenSSL 라이브러리를 사용하면 이것이 가능하지 않다고 생각합니다.
따라서 OpenSSL을 사용하여 인증서 체인 빌드(TLS, IPSec 등)를 제공하는 모든 애플리케이션은 Blue Coat 인증서가 있는 체인을 신뢰하며 서명한 루트 CA를 제거하는 것 외에는 할 수 있는 일이 없습니다. 신뢰 앵커 저장소(인터넷의 절반을 신뢰하지 않게 되므로 시만텍 루트 CA라는 점을 고려하면 어리석은 일입니다)와 NSS에 의존하는 응용 프로그램은 Blue Coat의 모든 체인을 포함하는 응용 프로그램을 신뢰하지 않도록 보다 세밀하게 구성할 수 있습니다. 인증서.
예를 들어 OpenVPN은 OpenSSL을 인증서 저장소로 사용하므로 OpenVPN을 사용하는 상용 VPN 공급자에 연결하면 Big Brother가 사용자 모르게 OpenVPN 트래픽을 수신할 수 있습니다. 이것이 정말로 걱정된다면 상업용 VPN 제공업체의 루트 CA가 누구인지 확인하십시오. Symantec/VeriSign이라면 다른 사람을 위해 이를 버릴 때가 된 것일까요?
SSH는 X509 인증서를 사용하지 않으므로 Blue Coat MITM 공격에 대한 걱정 없이 SSH를 사용하여 연결 및 터널링할 수 있습니다.
답변2
아직 댓글을 달 수 없으므로 Ubuntu Gnome 15.10에서 @garethTheRed의 방법을 사용하면 다음과 같은 결과를 얻습니다.
~$ certutil -d ~/.mozilla/firefox/<directory>.default -M -t p -n "Blue Coat Public Services Intermediate CA"
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_BAD_DATABASE: security library: bad database.
~$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_UNRECOGNIZED_OID: Unrecognized Object Identifier.
"Bluecoat Systems"도 작동하지 않습니다.
(이것은 내가 가져온 인증서입니다.https://crt.sh/?id=19538258)