Ubuntu 12.04에서 자체 서명 된 DSA 인증서를 작성하기위한 매개 변수?


0

웹 서버 및 TLS 1.2 (HTTPS) 연결과 함께 사용하기 위해 Ubuntu 12.04에서 자체 서명 된 DSA 인증서를 만들고 싶습니다.

다음 명령을 실행하여 RSA 명령을 작성할 수 있음을 발견했습니다.

openssl genrsa -out server.key 3072

그러나 다음 속성이 필요합니다.

  • ECDSA가 아닌 일반 DSA 알고리즘을 사용하는 3072 비트 키 길이
  • 384 비트와 함께 SHA2 암호화 해시 기능 사용
  • "완벽한 앞으로 비밀"옵션 사용
  • 대칭 암호에 대한 첫 번째 우선 순위로 AES 256을 지정하십시오.
  • 무인 재부팅을 위해 개인 키에 대한 암호화가 필요하지 않습니다.

위의 다음 옵션을 수행하기 위해 매개 변수를 도와 줄 수 있습니까?

TLS 세션이 시작될 때 마다 매번 새로운 임의 서명 값 k를 생성하는지 어떻게 확인 합니까? 이것은 분명히 알고리즘 의 보안중요합니다 . 아니면 OpenSSL에서 자동입니까?

이 TLS 1.2 cipher suite를 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 여기서 어떻게 사용하도록 지시합니까?

미리 감사드립니다.

답변:


6

당신이 무엇을하든, 당신 이이 질문의 틀을 짜는 방식에 따라 잘못했을 가능성이 큽니다. 어딘가에서 블로그 게시물을 발견했다면 실제로 무엇을해야하는지 알지 못한 채 블로그를 따라 가지 마십시오. 내가 말한 이유는 요청한 대부분의 기능이 자체 서명 된 DSA 인증서 생성과 관련이 없기 때문입니다.

대신 실제로 달성하려는 것에 대한 질문을 게시하십시오. 해결책이 생각과 다를 수도 있습니다.

그러나 요청한 이후 3072 비트의 자체 서명 된 DSA 인증서를 생성하는 방법은 다음과 같습니다.

openssl dsaparam -out params.pem 3072
openssl gendsa -out key.pem params.pem
openssl req -new -key key.pem -out req.pem
openssl x509 -req -in req.pem -signkey key.pem -out certificate.cer

0

SHA-384를 DSA와 함께 사용할 수 있지만 이러한 조합에 대한 표준 OID가 없으므로 OpenSSL은 자체 서명 인증서의 "서명 알고리즘"부분 을 인코딩 할 수 없습니다 . 표준 OID는 SHA-1, SHA-224 및 SHA-256 만있는 DSA에 대해 정의되었습니다. 자기 서명의 경우 "SHA-384 전용"요구 사항을 완화해야합니다. 자체 서명 어쨌든 정확히 제로 암호 값을 가지고 있기 때문에 (이 거기 에만 약 적당한 크기의 어떤 임의의 바이트로 대체 할 수있는 인증서가 "서명"에 대한 비 선택적 필드를 가지고 있기 때문에)이 더 어려움 없을 것 .

마찬가지로, DSA 먼저 덜없이 정확히 1024 비트의 다음 계수, 범위 (512) 1024 비트의 계수를 사용하도록 정의되지 않은 한 . 최신 버전의 표준 (FIPS 186-4)에서는 1024, 2048 및 3072 비트 만 선택할 수 있으며 하위 그룹 크기는 160, 224 또는 256 비트 (제한된 조합은 15 페이지 참조)를 제외하고 더 긴 모듈러스를 사용할 수 있습니다. 기본적으로 1024 비트 이외의 크기의 모듈러스를 사용하면 상호 운용성 문제가 발생합니다 (DSA를 사용하면 상호 운용성 문제가 발생합니다. 실제로 아무도 그렇게하지 않기 때문에이 지원은 배포 된 구현에서 최상의 테스트를 거쳤습니다).

우연히 이것은 256 비트보다 큰 출력의 해시 함수를 DSA와 함께 사용하는 것은 전혀 쓸모가 없다는 것을 의미합니다. 보안은 256 비트 그룹의 보안 수준, 즉 매우 합리적인 "128 비트"보안 수준으로 제한되기 때문입니다.

각 서명 에 대한 임의의 k 값 생성은 OpenSSL에 의해 자동으로 수행되므로 걱정할 필요가 없습니다 (이미 올바르게 수행하기가 어렵습니다. 라이브러리 사용자가 직접 수행해야하는 경우 절대로 올바르게 수행 되지 않음).

OpenSSL을 사용하면 많은 암호 제품군을 구성 할 수 있습니다. 설명서를 참조하십시오 . SSL에서 전통적으로 서버는 암호화 스위트 선택에 대한 클라이언트 환경 설정을 따르지만 OpenSSL (라이브러리)은 서버 환경 설정을 강제합니다 (즉, 클라이언트가 지원하는 경우에도 암호화 스위트를 특정 환경으로 강제 설정하도록합니다). 클라이언트가 보낸 목록에서 처음에는 나타나지 않았습니다). OpenSSL은 라이브러리입니다 . OpenSSL 을 사용하는 일부 응용 프로그램 코드를 통해서만 사용하며 , 해당 응용 프로그램 코드의 구성 옵션을 통해서만 OpenSSL의 동작을 구성 할 수 있습니다. .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.