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

31.18. SSL 지원

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

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

31.18.1. 서버의 클라이언트 확인 인증서

기본적으로,토토 사이트 순위하지 않을 것입니다 서버 인증서 확인을 수행합니다. 이는 다음을 의미합니다. 서버 ID를 스푸핑하는 것이 가능합니다(예: DNS 레코드를 수정하거나 서버 IP 주소를 인수함으로써) 클라이언트가 모르게. 스푸핑을 방지하기 위해, 클라이언트는 체인을 통해 서버의 신원을 확인할 수 있어야 합니다. 신뢰. 루트를 배치하여 신뢰 체인이 구축됩니다. (자체 서명) 인증 기관(캘리포니아) 컴퓨터 한 대와 리프의 인증서 인증서서명됨by 다른 컴퓨터의 루트 인증서. 다음을 사용하는 것도 가능합니다."중급"인증서는 다음과 같습니다. 루트 인증서로 서명되고 리프 인증서에 서명됩니다.

클라이언트가 서버의 신원을 확인하도록 허용하려면 클라이언트의 루트 인증서와 다음에 의해 서명된 리프 인증서 서버의 루트 인증서. 서버가 확인하도록 허용하려면 클라이언트의 신원을 확인하고 서버에 루트 인증서를 배치합니다. 및 루트 인증서가 서명한 리프 인증서 클라이언트. 하나 이상의 중간 인증서(일반적으로 리프 인증서)를 사용하여 리프 인증서를 연결할 수도 있습니다. 루트 인증서에.

신뢰 체인이 구축되면 두 가지 방법이 있습니다. 클라이언트가 서버에서 보낸 리프 인증서의 유효성을 검사하도록 합니다. 매개변수인 경우sslmode다음으로 설정됨verify-ca, libpq는 다음을 확인합니다. 서버는 인증서 체인까지 확인하여 신뢰할 수 있습니다. 클라이언트에 저장된 루트 인증서. 만일sslmode다음으로 설정됨확인-전체, libpq는또한서버 호스트 이름을 확인하세요 서버 인증서에 저장된 이름과 일치합니다. SSL 서버 인증서를 확인할 수 없으면 연결이 실패합니다.확인-전체대부분의 경우 권장됩니다. 보안에 민감한 환경.

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

서버 인증서 확인을 허용하려면 하나 이상의 루트 인증서는 파일에 있어야 합니다.~/.토토 사이트 순위/root.crt사용자의 집에서 디렉토리. (Microsoft Windows에서는 파일 이름이 지정됩니다.%APPDATA%\토토 사이트 순위\root.crt.) 중급 필요한 경우 인증서도 파일에 추가해야 합니다. 서버에서 보낸 인증서 체인을 루트에 연결 클라이언트에 저장된 인증서입니다.

인증서 해지 목록(CRL) 항목도 다음과 같은 경우 확인됩니다. 파일~/.토토 사이트 순위/root.crl존재합니다 (%APPDATA%\토토 사이트 순위\root.crl켜짐 마이크로소프트 윈도우즈).

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

참고:이전 버전과의 하위 호환성을 위해 토토 사이트 순위의 루트 CA 파일이 존재하는 경우 다음 동작은sslmode=요구이 될 것입니다 와 동일verify-ca, 즉 서버 인증서는 CA에 대해 검증됩니다. 이에 의지하여 동작은 권장되지 않으며 인증서가 필요한 응용 프로그램은 유효성 검사는 항상 사용해야 합니다.verify-ca또는확인-전체.

31.18.2. 클라이언트 인증서

서버가 클라이언트의 신원을 확인하려고 시도하는 경우 클라이언트의 리프 인증서를 요청합니다.libpq다음에 저장된 인증서를 보냅니다. 파일~/.토토 사이트 순위/토토 사이트 순위.crt에 사용자의 홈 디렉토리. 인증서는 루트에 연결되어야 합니다. 서버가 신뢰하는 인증서. 일치하는 개인 키 파일~/.토토 사이트 순위/토토 사이트 순위.key또한 있어야 합니다 현재. 개인 키 파일은 세계 또는 데이터에 대한 액세스를 허용해서는 안 됩니다. 그룹; 다음 명령으로 이를 달성합니다.chmod 0600 ~/.토토 사이트 순위/토토 사이트 순위.key. Microsoft Windows에서는 다음 파일 이름이 지정됨%APPDATA%\토토 사이트 순위\토토 사이트 순위.crt그리고%APPDATA%\토토 사이트 순위\토토 사이트 순위.key그리고 거기에 디렉토리가 추정되므로 특별한 권한 확인이 필요하지 않습니다. 안전하다. 인증서와 키 파일의 위치는 다음과 같습니다. 연결 매개변수에 의해 재정의됨sslcert그리고sslkey또는 환경 변수PGSSLCERT그리고PGSSLKEY.

첫 번째 인증서토토 사이트 순위.crt클라이언트의 인증서여야 합니다. 클라이언트의 개인 키와 일치해야 하기 때문입니다."중급"인증서는 선택적으로 가능 파일에 추가됩니다. 이렇게 하면 저장 공간이 필요하지 않습니다. 서버의 중간 인증서루트.crt파일.

인증서 생성에 대한 지침은 다음을 참조하세요.섹션 17.9.3.

31.18.3. 다양한 방식으로 제공되는 보호 모드

다음의 다른 값sslmode매개변수는 다양한 보호 수준을 제공합니다. SSL이 제공할 수 있는 세 가지 유형의 공격으로부터 보호합니다.

도청

제3자가 다음 사이의 네트워크 트래픽을 검사할 수 있는 경우 클라이언트와 서버 모두 연결 정보를 읽을 수 있습니다. (사용자 이름 및 비밀번호 포함) 및 전달되는 데이터.SSL암호화를 사용하여 방지합니다. 이.

가운데에 있는 남자 (MITM)

제3자가 데이터 사이를 전달하는 동안 데이터를 수정할 수 있는 경우 클라이언트와 서버 모두 서버인 것처럼 가장할 수 있으므로 데이터 보기 및 수정그렇더라도 암호화되었습니다. 그러면 제3자가 해당 정보를 전달할 수 있습니다. 정보와 데이터를 원본 서버에 연결하여 이를 이 공격을 탐지하는 것은 불가능합니다. 이를 수행하는 일반적인 벡터는 다음과 같습니다. 클라이언트를 연결하는 DNS 중독 및 주소 하이재킹 의도한 것과 다른 서버로. 그 밖에도 여러 가지가 있습니다 이를 달성할 수 있는 공격 방법입니다.SSL인증서 확인을 사용하여 방지합니다. 이는 서버를 클라이언트에 인증함으로써 이루어집니다.

사칭

제3자가 승인된 클라이언트인 척할 수 있는 경우, 단순히 접근해서는 안 되는 데이터에 접근하면 됩니다. 일반적으로 이렇게 할 수 있습니다. 안전하지 않은 비밀번호 관리로 인해 발생합니다.SSL이를 방지하기 위해 클라이언트 인증서를 사용합니다. 유효한 인증서 보유자만 접근할 수 있도록 함으로써 서버.

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

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

전체SSL옵션 운반 암호화 및 키 교환 형태의 오버헤드가 있으므로 성능과 보안 간에 절충이 이루어져야 합니다.테이블 31-1다양한 위험을 설명합니다sslmode값은 무엇으로부터 보호하고 어떤 설명을 제공합니까? 보안과 오버헤드가 발생합니다.

표 31-1. SSL 모드 설명

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

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

기본값sslmodeis선호. 표에 나와 있듯이 이는 보안 관점에서는 의미가 없으며 단지 약속만 할 뿐입니다. 가능한 경우 성능 오버헤드. 으로만 제공됩니다. 이전 버전과의 호환성을 위해 기본값이며 권장되지 않습니다. 보안 배포.

31.18.4. SSL 클라이언트 파일 사용

표 31-2다음의 SSL 설정과 관련된 파일을 요약합니다. 클라이언트.

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

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

31.18.5. SSL 라이브러리 초기화

애플리케이션이 초기화되는 경우libssl및/또는libcrypto라이브러리 및libpq다음으로 구축됨SSL지원, 전화로 문의하세요PQinitOpenSSL말하다libpq그것은libssl및/또는libcrypto라이브러리가 귀하의 애플리케이션에 의해 초기화되므로libpq또한 초기화하지 않습니다 도서관. 참조http://h41379.www4.hpe.com/doc/83final/ba554_90007/ch04.htmlSSL API에 대한 자세한 내용을 확인하세요.

PQinitOpenSSL

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

void PQinitOpenSSL(int do_ssl, int do_crypto);

언제do_ssl0이 아닙니다.libpq초기화하겠습니다오픈SSL먼저 열기 전 라이브러리 데이터베이스 연결. 언제do_crypto이다 0이 아닌,libcrypto라이브러리는 초기화되었습니다. 기본적으로(ifPQinitOpenSSL호출되지 않음), 두 라이브러리 모두 초기화되었습니다. SSL 지원이 컴파일되지 않은 경우 이 함수는 존재하지만 아무것도 하지 않습니다.

애플리케이션이 둘 중 하나를 사용하고 초기화하는 경우오픈SSL또는 그 기본libcrypto도서관, 당신반드시0으로 이 함수를 호출하세요 데이터베이스를 처음 열기 전에 적절한 매개변수에 대해 연결. 또한 초기화를 완료했는지 확인하십시오. 데이터베이스 연결을 열기 전에.

PQinitSSL

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

void PQinitSSL(int do_ssl);

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

PQinitSSL이후부터 존재했습니다.포스트그레SQL8.0, 동안PQinitOpenSSL추가되었습니다토토 사이트 순위8.4, 그러니까PQinitSSL응용프로그램에 적합할 수 있습니다. 이전 버전에서 작동해야 합니다.libpq.