gpt4 book ai didi

security - Winhttp - 如果对等证书无效,则阻止成功握手

转载 作者:行者123 更新时间:2023-12-03 18:30:04 28 4
gpt4 key购买 nike

编辑:线程:https://security.stackexchange.com/questions/179352/winhttp-prevent-successful-handshake-if-peer-certificate-is-invalid讨论并回答问题。这可以暂时关闭

在 delphi 项目上使用 windows 平台提供的 WinHTTP 调用服务器。

脚本:

userAgent := 'TestClient.exe';
hsession := WinHttpOpen(pwidechar(userAgent), WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, nil, nil, 0);
if(hsession = nil) then ShowMessage('Failed WinhttpOpen');
p := 'https';
port := 443;
requestflags := WINHTTP_FLAG_SECURE;
server := '10.0.0.221';

hconnection := WinHttpConnect(hsession, PWideChar(server), port, 0);
if(hconnection = nil) then
begin
le := GetLastError;
ShowMessage('Failed to connect: ' + IntToStr(le));
end;

Action := 'GET';
hInetRequest := WinHttpOpenRequest(hconnection, pwidechar(Action), nil, nil, nil, nil, WINHTTP_FLAG_SECURE);
if(hInetRequest = nil) then
begin
le := GetLastError;
ShowMessage('Failed to connect: ' + IntToStr(le));
end;

WinResult:=WinHttpSendRequest(hInetRequest, nil,0, 0, 0,0,0);

if(not WinResult) then
begin
le := GetLastError;
WinHttpCloseHandle(hInetRequest);
ShowMessage('No result obtained : ' + IntToStr(le));
end;

必填;为了安全合规,连接必须在 SSL 握手后立即终止。以防对等证书被视为无效。

实际:发生的事情是,客户端(使用 winhttp)进行调用并成功确认 TLS 握手,即使证书无效也是如此。但是,在握手之后和完成请求之前,它终止了抛出 '12175' 的连接。错误。这是无效证书的错误。哪个是对的。

问题:为了通过合规性,WinHTTP 必须不允许成功的握手,从而提前终止连接。

下面附上 Wireshark 屏幕:(10.0.0.221 是服务器) enter image description here

最佳答案

我认为您在这里运气不佳,因为这就是 WinHTTP 的设计方式。在 WinHttpConnectnServerPort 参数的值 INTERNET_DEFAULT_HTTPS_PORT 中描述的方式会发生什么。函数文档(强调):

INTERNET_DEFAULT_HTTPS_PORT

Uses the default port for HTTPS servers (port 443). Selecting this port does not automatically establish a secure connection. You must still specify the use of secure transaction semantics by using the WINHTTP_FLAG_SECURE flag with WinHttpOpenRequest.

这意味着您需要使用指定的 WINHTTP_FLAG_SECURE 标志打开(并发送)请求以建立安全连接。

关于security - Winhttp - 如果对等证书无效,则阻止成功握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48644453/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com