이 문서는 지원되지 않는 토토 사이트 추천 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 베이 : 문서 : 17 : 32.19. SSL 지원버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

31.17. SSL 지원하다

포스트그레SQL기본 지원 있음 사용을 위해SSL연결 대상 보안 강화를 위해 클라이언트/서버 통신을 암호화합니다. 보다섹션 17.8자세한 내용은 서버측SSL기능.

libpq시스템 전체를 읽습니다.오픈SSL구성 파일. 에 의해 기본값은 이 파일의 이름입니다.openssl.cnf그리고 다음에서 보고한 디렉토리에 있습니다.openssl 버전 -d. 이 기본값은 재정의될 수 있습니다. 환경 변수를 설정하여OPENSSL_CONF원하는 이름으로 구성 파일.

31.17.1. 자격증 확인

기본적으로,토토 사이트 추천할 것이다 서버 인증서 확인을 수행하지 마십시오. 이것 이는 서버 ID를 스푸핑할 수 있음을 의미합니다(예: 예를 들어 DNS 레코드를 수정하거나 서버를 인수하는 경우 IP 주소) 클라이언트가 모르게. 방지하기 위해 스푸핑,SSL인증서 확인을 사용해야 합니다.

매개변수인 경우sslmode다음으로 설정됨verify-ca, libpq는 다음을 확인합니다. 서버는 인증서 체인을 최대로 확인하여 신뢰할 수 있습니다. 신뢰할 수 있는 인증 기관(캘리포니아). 만약에sslmode이다 으로 설정됨확인-전체, libpq는또한다음을 확인하세요 서버 호스트 이름이 해당 인증서와 일치합니다. SSL 연결 서버 인증서를 확인할 수 없으면 실패합니다.확인-전체대부분의 경우 권장됩니다. 보안에 민감한 환경.

확인-전체모드, 그cn11902_11993cn속성은 별표(로 시작합니다.*), 와일드카드로 처리되며 모든 문자와 일치제외점(.). 이는 인증서가 일치하지 않음을 의미합니다. 하위 도메인. IP 주소를 사용하여 연결한 경우 호스트 이름 대신 IP 주소가 일치됩니다. DNS 조회 중).

서버 인증서 확인을 허용하려면 인증서 하나 이상의 신뢰할 수 있는캘리포니아s 파일에 배치해야 합니다.~/.토토 사이트 추천/root.crt사용자의 집에서 예배 규칙서. (Microsoft Windows에서는 파일 이름이 지정됩니다.%APPDATA%\토토 사이트 추천\root.crt.)

인증서 해지 목록(CRL) 항목도 확인됩니다. 파일인 경우~/.토토 사이트 추천/root.crl존재합니다 (%APPDATA%\토토 사이트 추천\root.crlMicrosoft Windows의 경우).

루트 인증서 파일과 CRL의 위치는 다음과 같습니다. 연결 매개변수를 설정하여 변경됨sslrootcert그리고sslcrl또는 환경 변수PGSSLROOTCERT그리고PGSSLCRL.

참고:이전 버전과의 하위 호환성을 위해 토토 사이트 추천 버전, 루트 CA 파일이 존재하는 경우 의 행동sslmode=요구다음과 동일합니다verify-ca, 서버를 의미 인증서는 CA에 대해 검증됩니다. 이에 의지하여 행동은 권장되지 않으며 필요한 애플리케이션은 인증서 유효성 검사는 항상 사용해야 합니다.verify-ca또는확인-전체.

31.17.2. 클라이언트 인증서

서버가 신뢰할 수 있는 클라이언트 인증서를 요청하는 경우,libpq다음을 보낼 것입니다 파일에 저장된 인증서~/.토토 사이트 추천/토토 사이트 추천.crt사용자의 집에서 예배 규칙서. 인증서에는 다음 중 한 사람의 서명이 있어야 합니다. 인증 기관(캘리포니아) 서버에서 신뢰합니다. 일치하는 개인 키 파일~/.토토 사이트 추천/토토 사이트 추천.key또한 있어야 합니다 현재의. 개인 키 파일은 다음에 대한 액세스를 허용해서는 안 됩니다. 세계 또는 그룹; 다음 명령으로 이를 달성합니다.chmod 0600 ~/.토토 사이트 추천/토토 사이트 추천.key. ~에 Microsoft Windows 이 파일의 이름은 다음과 같습니다.%APPDATA%\토토 사이트 추천\토토 사이트 추천.crt그리고%APPDATA%\토토 사이트 추천\토토 사이트 추천.key, 디렉토리 이후 특별한 권한 확인이 없습니다. 안전한 것으로 추정됩니다. 인증서와 키의 위치 파일은 연결 매개변수에 의해 재정의될 수 있습니다.sslcert그리고sslkey또는 환경 변수PGSSLCERT그리고PGSSLKEY.

어떤 경우에는 클라이언트 인증서가 다음에 의해 서명될 수 있습니다."중급"인증서 직접적으로 신뢰받는 기관이 아닌 섬기는 사람. 이러한 인증서를 사용하려면 다음 인증서를 추가하세요. 서명 권한은토토 사이트 추천.crt파일, 그 다음 상위 파일 기관의 인증서 등 최대 a"루트"서버가 신뢰하는 권한입니다. 루트 인증서는 다음과 같은 모든 경우에 포함되어야 합니다.토토 사이트 추천.crt둘 이상 포함 자격증.

참고루트.crt목록을 나열합니다 서버 서명을 위해 신뢰할 수 있는 것으로 간주되는 최상위 CA 인증서. 원칙적으로 서명한 CA를 나열할 필요는 없습니다. 클라이언트의 인증서이지만 대부분의 경우 CA는 서버 인증서에 대해서도 신뢰할 수 있습니다.

31.17.3. 보호 제공 다른 모드

에 대한 다른 값sslmode매개변수는 다양한 수준의 보호. SSL은 세 가지 유형의 공격으로부터 보호할 수 있습니다. 공격:

표 31-2. SSL 공격

유형 설명
도청 제3자가 네트워크 트래픽을 검사할 수 있는 경우 클라이언트와 서버 사이에서 둘 다 읽을 수 있습니다. 연결 정보(사용자 이름 및 비밀번호) 및 전달되는 데이터.SSL암호화를 사용하여 방지합니다. 이것.
가운데에 있는 남자 (MITM) 제3자가 전달하는 동안 데이터를 수정할 수 있는 경우 클라이언트와 서버 사이에서 클라이언트인 것처럼 가장할 수 있습니다. 서버이므로 데이터를 보고 수정합니다.암호화되어 있더라도. 그러면 제3자가 연결을 전달할 수 있습니다. 정보와 데이터를 원본 서버로 전송하여 이 공격을 탐지하는 것은 불가능합니다. 해야 할 일반적인 벡터 여기에는 DNS 중독 및 주소 하이재킹이 포함됩니다. 클라이언트가 다른 서버로 연결되는 경우 의도한 것보다. 그 밖에도 다양한 공격이 있습니다 이를 달성할 수 있는 메서드입니다.SSL인증서 확인 사용 이를 방지하려면 서버를 인증하여 고객.
사칭 제3자가 승인된 사람인 것처럼 가장할 수 있는 경우 클라이언트는 보유해서는 안 되는 데이터에 간단히 액세스할 수 있습니다. 에 액세스합니다. 일반적으로 이는 안전하지 않은 경우 발생할 수 있습니다. 비밀번호 관리.SSL클라이언트 인증서를 사용하여 이를 방지하려면 유효한 인증서 보유자만 인증서는 서버에 액세스할 수 있습니다.

연결이 안전하려면 SSL 사용이 다음과 같아야 합니다. 구성됨둘 다 클라이언트와 서버연결이 이루어지기 전입니다. 만약에 서버에만 구성되어 있으므로 클라이언트가 종료될 수 있습니다. 민감한 정보(예: 비밀번호)를 알기 전에 보내기 서버에는 높은 보안이 필요합니다. libpq에서는 보안 연결은 다음을 설정하여 보장할 수 있습니다.sslmode매개변수 ~확인-전체또는verify-ca, 시스템에 루트 제공 확인할 인증서입니다. 이는를 사용하는 것과 유사합니다.https URL암호화된 웹 탐색용.

서버가 인증되면 클라이언트는 인증을 통과할 수 있습니다 민감한 데이터. 즉, 지금까지 클라이언트는 인증서가 다음 용도로 사용되는지 알 필요가 없습니다. 인증을 통해 이를 안전하게 지정할 수 있습니다. 서버 구성.

전체SSL옵션 캐리 암호화 및 키 교환 형태의 오버헤드가 발생하므로 성능과 성능 사이에 균형이 이루어져야 합니다. 보안. 다음 표는 다음과 같은 위험을 보여줍니다. 다른sslmode가치 보호 반대하며, 보안에 관해 어떤 진술을 하는지, 간접비:

표 31-3. SSL 모드 설명

sslmode 도청 방지 MITM보호 성명
비활성화 아니요 아니요 나는 보안에 관심이 없고 원하지도 않습니다. 암호화 오버헤드를 지불합니다.
허용 어쩌면 아니요 나는 보안에 관심이 없지만 비용을 지불할 것입니다 서버가 암호화를 요구하는 경우 암호화 오버헤드 그것.
선호 어쩌면 아니요 나는 암호화에 관심이 없지만 지불하고 싶습니다. 서버가 지원하는 경우 암호화 오버헤드 그것.
요구 아니요 나는 내 데이터가 암호화되기를 원하며 다음 사항에 동의합니다. 간접비. 나는 네트워크가 내가 항상 내가 원하는 서버에 연결하세요.
verify-ca CA에 따라 다름-정책 나는 내 데이터를 암호화하길 원하며 다음 사항에 동의합니다. 간접비. 서버에 연결되었는지 확인하고 싶습니다. 내가 믿는 것.
확인-전체 나는 내 데이터를 암호화하길 원하며 이에 동의합니다. 간접비. 서버에 연결되었는지 확인하고 싶습니다. 나는 그것이 내가 지정한 것이라고 믿습니다.

차이점verify-ca그리고확인-전체정책에 따라 다름 루트의캘리포니아. 일반인인 경우캘리포니아사용됩니다.verify-ca서버에 대한 연결을 허용합니다.다른 사람5월 에 등록했습니다.캘리포니아. 이 경우,전체 확인해야 한다 항상 사용됩니다. 현지인 경우캘리포니아이 사용되거나 자체 서명된 인증서, 사용verify-ca자주 충분한 보호를 제공합니다.

기본값sslmodeis선호. 표에 나와 있듯이 이는 보안 관점에서는 의미가 없으며 단지 가능하다면 성능 오버헤드를 약속합니다. 만 제공됩니다 이전 버전과의 호환성을 위한 기본값으로, 보안 배포에 권장됩니다.

31.17.4. SSL 파일 사용

표 31-4. Libpq/클라이언트 SSL 파일 사용

파일 목차 효과
~/.토토 사이트 추천/토토 사이트 추천.crt 클라이언트 인증서 서버에서 요청함
~/.토토 사이트 추천/토토 사이트 추천.key 클라이언트 개인 키 소유자가 보낸 클라이언트 인증서를 증명합니다. 그렇지 않다 인증서 소유자가 신뢰할 수 있음을 나타냅니다.
~/.토토 사이트 추천/root.crt 신뢰할 수 있는 인증 기관 서버 인증서가 다음 사람에 의해 서명되었는지 확인합니다. 신뢰할 수 있는 인증 기관
~/.토토 사이트 추천/root.crl 인증서에 의해 취소된 인증서 당국 서버 인증서가 이 목록에 있어서는 안 됩니다

31.17.5. SSL 라이브러리 초기화

애플리케이션이 초기화되는 경우libssl및/또는libcrypto라이브러리 및libpq건설되었습니다 와 함께SSL지원하세요. 부르다PQinitOpenSSL말하다libpq그것은libssl및/또는libcrypto라이브러리가 귀하의 응용 프로그램에 의해 초기화되었으므로libpq또한 초기화되지 않습니다 그 도서관들. 보다http://h71000.www7.hp.com/doc/83final/ba554_90007/ch04.htmlSSL API에 대한 자세한 내용을 확인하세요.

PQinitOpenSSL

응용프로그램이 어떤 보안 라이브러리를 선택할 수 있도록 허용합니다. 초기화합니다.

void PQinitOpenSSL(int do_ssl, int do_crypto);

언제do_ssl0이 아닙니다.libpq초기화됩니다 그만큼오픈SSL도서관 데이터베이스 연결을 처음 열기 전에. 언제do_crypto0이 아닙니다.libcrypto라이브러리는 초기화되었습니다. 기본적으로(ifPQinitOpenSSL호출되지 않음), 둘 다 라이브러리가 초기화되었습니다. SSL 지원이 되지 않는 경우 컴파일된 경우 이 함수는 존재하지만 아무것도 아님.

응용 프로그램이 둘 중 하나를 사용하고 초기화하는 경우오픈SSL또는 그 밑에 있는libcrypto도서관, 너반드시전화 해당 함수에 대해 0이 있는 이 함수 데이터베이스 연결을 처음 열기 전의 매개변수입니다. 또한 초기화를 완료했는지 확인하십시오. 데이터베이스 연결을 열기 전에.

PQinitSSL

응용프로그램이 어떤 보안 라이브러리를 선택할 수 있도록 허용합니다. 초기화합니다.

void PQinitSSL(int do_ssl);

이 함수는 다음과 같습니다.PQinitOpenSSL(do_ssl, do_ssl). 그것은 둘 다 초기화하는 애플리케이션에는 충분합니다. 둘 다오픈SSL그리고libcrypto.

PQinitSSL이되었습니다 이후부터 존재함토토 사이트 추천8.0, 동안PQinitOpenSSL추가되었습니다토토 사이트 추천8.4, 그러니까PQinitSSL아마도 이전 버전과 함께 작동해야 하는 애플리케이션에 적합 버전libpq.