OpenSSL의 SHA1 다이제스트 이름: 오래된 목록이 뜻하는 것
오래된 SHA1 이름은 라이브러리 등록을 설명할 뿐, OpenVPN이 패킷에 무엇을 했는지는 말하지 않습니다. 등록된 이름, 다이제스트, 그것을 소비하는 작업을 구분하세요.
오래된 다이제스트 목록은 암호 결정의 기록처럼 읽히지만 그렇지 않습니다. SHA1, DSA-SHA1-old, RSA-SHA1-2 같은 이름이 오래된 OpenSSL 빌드에서 나란히 있는 것은 라이브러리가 관련 해시 장치 주변에 여러 진입점을 등록했기 때문입니다. 그 목록의 RSA나 DSA 레이블은 OpenVPN 이 패킷에 무엇을 했는지에 대해 아무것도 말하지 않습니다. 당신이 읽고 있는 것은 라이브러리의 목록이며, 세션의 기록이 아닙니다.
어떤 결론이든 의미가 있으려면 등록된 이름, 그 아래의 다이제스트 계산, 그리고 그것을 소비하는 작업을 분리해야 합니다.
등록은 인터페이스이지 강도의 평가가 아닙니다
OpenSSL 1.0.2에서는 다이제스트 등록 표가 이름, 별칭, 구현을 하나의 파일로 묶는데, 오래된 DSS1 서술자가 가장 분명한 사례입니다. SHA-1의 출력 길이를 보고하고 SHA-1의 마무리 루틴을 호출하면서도 전혀 다른 알고리즘을 암시하는 이름을 달고 있습니다. 따라서 등록에 글자가 더 있다고 해서 다른 해시, 더 긴 출력, 새로운 보안 수준을 뜻하지는 않습니다.
같은 소스는 오래된 호출자를 위해 별칭 관계를 유지하며, 목록이 빽빽해 보이는 이유도 여기에 있습니다. 이는 호환성 문서일 뿐, 현재 OpenSSL 공급자가 동일한 이름을 노출한다는 약속이 아닙니다.
서명 이름은 서명을 만들지 않습니다
서명 프레임워크는 기존 호출자가 계속 컴파일되도록 다이제스트를 다른 알고리즘의 인터페이스에 묶을 수 있습니다. 실제 공개 키 서명에는 키와 그것을 사용하는 서명 단계가 모두 필요하며, 메뉴의 이름이 둘 중 어느 것도 제공하지 않습니다. RSA 색채를 띤 다이제스트 항목은 호출자가 사용할 수 있는 이름일 뿐, 모든 VPN 패킷이 RSA 서명을 실었다는 증거가 아닙니다.
바로 이 단계에서 오래된 글들이 민간 설화로 미끄러집니다. 패킷이 어떻게 인증되었는지 알아야 한다면 그 메커니즘을 선택한 옵션을 찾아 실제로 실행하는 버전에서 그것이 무엇을 하는지 읽으십시오. 그 릴리스와 함께 배포된 매뉴얼 페이지만이 눈앞의 프로그램과 일치하는 설명입니다. 보관된 안내서는 그것이 쓰인 릴리스를 설명하며, 그 릴리스는 여러 명명 관례만큼 뒤처져 있을 수 있습니다.
이름을 소비한 옵션을 찾으십시오
OpenVPN 2.6이 문서화한 패킷 인증 사례에서 auth은 HMAC이 사용하는 다이제스트를 선택하며, 이는 인증서 서명이 아니라 키 기반 메시지 인증 구성입니다. TLS 인증서의 서명 알고리즘은 핸드셰이크의 별도 속성입니다.
AEAD 데이터 암호에서는 별도의 auth 설정이 데이터 채널에 적용되지 않지만, tls-auth에 대한 역할은 별개의 문제로 남습니다. 따라서 다이제스트 목록은 현재 패킷을 어떤 해시가 보호했는지, 어떤 TLS 스위트가 협상되었는지, 피어 인증서가 어떻게 서명되었는지 알려 줄 수 없습니다. 유효한 구성과 버전만이 그것에 답할 수 있으며, 눈앞의 연결에 대해서만 가능합니다.
실제로 가진 것을 기록하십시오
OpenVPN 버전, 연결된 암호 라이브러리, 프로필의 정확한 옵션, 실제 연결의 결과를 적으십시오. 그 집합은 다이제스트 메뉴의 스크린샷으로는 답할 수 없는 질문에 답하며, 인상이 아니라 버전을 지목하므로 다음 업그레이드 후에도 살아남습니다.
무엇보다도 이름이 더 강하거나 더 구체적으로 들린다는 이유로 오래된 별칭을 고르지 마십시오. 연결 전체에 대해 지원되는 정책을 선택하고, 오래된 이름은 라이브러리가 예전에 스스로를 어떻게 제시했는지에 대한 기록으로 다루십시오.