은 ... 다음은 모든 서버 확인을 수행 하지 있습니다 제공 한 코드가 표시 Asp.net
에 사용되는 코드의 조각이다. 당신은 모든 것을 나쁜 사람 (공격자의 당신에게 감사)에서조차 위조 인증서를 받아들이는 것 : 나는 IOS에 대한 목표 C에서 이것을 달성 할 수있는 방법을 모르는
System.Net.ServicePointManager.ServerCertificateValidationCallback =
delegate(Object sender2, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{ return true; };
을 ..
NSURLConnectionDelegate
을 사용해야하고 -connection:didReceiveAuthenticationChallenge:
에 대한 구현을 제공해야합니다.
OWASP에는 공개 키 고정을 수행 할 수있는 몇 가지 샘플 코드가 있습니다. OWASP 코드는 여러분의 코드와 일종의 반대입니다. OWASP 코드는 코드와 같은 인증서로 응답하는 호스트가 아닌 예상 호스트와 항상 통신하고 있는지 확인합니다. Certificate and Public Key Pinning을 참조하십시오.
최소한 OWASP 코드는 인증서 확인에서 움직이는 부분을 보여줍니다.
여기에 하나의 CA를로드 일부 C# 코드의 다음 하나의 CA와 체인을 확인 : How to verify chain in RemoteCertificateValidationCallback?. 아마도 ASP.net에서 ServerCertificateValidationCallback
을 어떻게 수행해야할까요? 에이 없으면 어떤 상점에도 CA를 설치해야합니다. 또한 CA Zoo (서버 인증을 허용 한 수 백명의 CA)를 피합니다.
Merchantlink를 사용하려면 해당 CA를 받아야합니다. Merchantlink 또는 Merchanlink의 CA라고 주장하면 누구나 실패하게됩니다. 그것은 나쁜 사람이 될 것이기 때문에 좋은 일입니다.
은 CA를 발견하고 검증을 위해이 기능을 사용하려면, 당신은 Verisign의 클래스 3 CA를 사용할 필요 이상에서
$ openssl s_client -connect www.merchantlink.com:443
CONNECTED(00000003)
depth=2 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 2006 VeriSign, Inc. -
For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G5
verify error:num=20:unable to get local issuer certificate
verify return:0
...
따라서 Use of Root Certificates으로 이동하여 루트 3, VeriSign 클래스 3 주 CA - G5을 다운로드하십시오.
$ openssl s_client -connect www.merchantlink.com:443 -CAfile PCA-3G5.pem
CONNECTED(00000003)
depth=3 C = US, O = "VeriSign, Inc.", OU = Class 3 Public Primary Certification Authority
verify return:1
depth=2 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 2006 VeriSign, Inc. - For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G5
verify return:1
depth=1 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = Terms of use at https://www.verisign.com/rpa (c)06, CN = VeriSign Class 3 Extended Validation SSL SGC CA
verify return:1
depth=0 1.3.6.1.4.1.311.60.2.1.3 = US, 1.3.6.1.4.1.311.60.2.1.2 = Delaware, businessCategory = Private Organization, serialNumber = 2578637, C = US, postalCode = 10017, ST = New York, L = New York, street = 270 Park Avenue, O = "Chase Paymentech Solutions, LLC.", OU = Enterprise Web Architecture, CN = www.merchantlink.com
verify return:1
---
Certificate chain
0 s:/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/businessCategory=Private Organization/serialNumber=2578637/C=US/postalCode=10017/ST=New York/L=New York/street=270 Park Avenue/O=Chase Paymentech Solutions, LLC./OU=Enterprise Web Architecture/CN=www.merchantlink.com
i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL SGC CA
1 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL SGC CA
i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
2 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
...
Start Time: 1397396657
Timeout : 300 (sec)
Verify return code: 0 (ok)
...
:
적절한 루트로
, 당신은 은 OpenSSL에서 검증 오류 (-CAfile PCA-3G5.pem
의 사용에 주목을)하지 것