웹 개발을 수행 할 때 SSL/TLS 암호화 된 연결은 데이터의 안전한 전송을 보장하는 중요한 측면입니다. PHP를 사용하여 개발할 때 Stream_Context_get_options 함수는 개발자가 SSL/TLS 연결, 특히 암호화 알고리즘 및 기타 옵션의 설정을 분석하는 데 도움이 될 수 있습니다. 이 기사에서는이 기능을 사용하여 SSL/TLS 설정의 암호화 알고리즘 및 옵션을 분석하는 방법을 자세히 설명합니다.
stream_context_get_options는 스트림 컨텍스트에서 모든 옵션을 얻기 위해 PHP의 내장 기능입니다. 이 함수는 SSL/TLS 연결, 인증서 확인 설정 등의 암호화 알고리즘을 포함하여 모든 컨텍스트 옵션을 포함하는 연관 배열을 반환합니다.이 옵션은 일반적으로 스트림을 만들 때 stream_context_create 기능에 의해 설정됩니다.
$context = stream_context_create([
'ssl' => [
'verify_peer' => true,
'verify_peer_name' => true,
'allow_self_signed' => false,
'ciphers' => 'TLSv1.2',
],
]);
$options = stream_context_get_options($context);
print_r($options);
위의 예에서는 SSL 스트림 컨텍스트를 작성하고 관련 SSL 옵션을 설정합니다. Stream_Context_get_options를 사용하여 현재 컨텍스트에서 모든 SSL 설정을보십시오.
SSL/TLS 설정에서 암호화 알고리즘 및 옵션을 분석하려면 먼저 stl 스트림의 컨텍스트를 Stream_Context_create를 통해 설정하고 Stream_Context_get_options를 통해 이러한 설정을 가져와야합니다. 다음은이 작업을 수행하는 방법에 대한 구체적인 단계입니다.
Stream_Context_create 함수를 사용하여 SSL 설정이 포함 된 컨텍스트를 만듭니다. 이러한 맥락에서, 우리는 암호 (사용 된 암호화 알고리즘 지정) 및 기타 SSL/TLS 매개 변수와 같은 여러 SSL 관련 옵션을 설정할 수 있습니다.
$context = stream_context_create([
'ssl' => [
'verify_peer' => true,
'verify_peer_name' => true,
'allow_self_signed' => false,
'ciphers' => 'TLSv1.2', // 암호화 알고리즘을 설정하십시오TLS 1.2
],
]);
그런 다음 Stream_Context_get_options를 사용하여 SSL/TLS 옵션을 얻으십시오. 이것은 모든 옵션이 포함 된 배열을 반환합니다.
$options = stream_context_get_options($context);
print_r($options);
출력은 다음과 유사합니다.
Array
(
[ssl] => Array
(
[verify_peer] => 1
[verify_peer_name] => 1
[allow_self_signed] =>
[ciphers] => TLSv1.2
)
)
이 배열에서는 모든 SSL 관련 설정이 SSL 키에 포함됩니다. 이 출력을 통해 암호 옵션이 TLSV1.2 로 설정되었음을 알 수 있습니다.
옵션 배열을 반환하면 사용 된 암호화 알고리즘을 분석 할 수 있습니다. 예를 들어, 암호 옵션이 설정되면 반환 된 배열에는이 값이 포함됩니다. 다른 암호화 알고리즘 또는 프로토콜 버전을 선택하기 위해 필요에 따라 값을 조정할 수 있습니다.
$cipher = $options['ssl']['ciphers'];
echo "Selected cipher: " . $cipher;
이 코드는 TLSV1.2 와 같은 선택된 암호화 알고리즘을 출력합니다.
특정 서버에 대한 SSL/TLS 연결을 분석하려면 Stream_Socket_Client를 사용하여 연결을 설정하고 컨텍스트 설정을 얻을 수 있습니다. 아래 그림과 같이 :