Skip to content

Commit 03a2716

Browse files
committed
AFSecurityPolicy分析完毕
1 parent 7cc8ca7 commit 03a2716

5 files changed

Lines changed: 53 additions & 32 deletions

File tree

AFNetWorking3.X源码阅读/AFNetWorking3.X源码阅读.xcodeproj/xcuserdata/huangchengdu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -982,7 +982,7 @@
982982
moduleName = "AFNetWorking3.X源码阅读"
983983
usesParentBreakpointCondition = "Yes"
984984
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
985-
timestampString = "514830659.503575"
985+
timestampString = "514860427.899726"
986986
startingColumnNumber = "9223372036854775807"
987987
endingColumnNumber = "9223372036854775807"
988988
startingLineNumber = "835"
@@ -997,7 +997,7 @@
997997
moduleName = "AFNetWorking3.X源码阅读"
998998
usesParentBreakpointCondition = "Yes"
999999
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
1000-
timestampString = "514830659.506015"
1000+
timestampString = "514860427.902612"
10011001
startingColumnNumber = "9223372036854775807"
10021002
endingColumnNumber = "9223372036854775807"
10031003
startingLineNumber = "835"
@@ -1012,7 +1012,7 @@
10121012
moduleName = "AFNetWorking3.X源码阅读"
10131013
usesParentBreakpointCondition = "Yes"
10141014
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
1015-
timestampString = "514830659.50846"
1015+
timestampString = "514860427.905404"
10161016
startingColumnNumber = "9223372036854775807"
10171017
endingColumnNumber = "9223372036854775807"
10181018
startingLineNumber = "835"
@@ -1109,7 +1109,7 @@
11091109
moduleName = "AFNetWorking3.X源码阅读"
11101110
usesParentBreakpointCondition = "Yes"
11111111
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
1112-
timestampString = "514830659.519167"
1112+
timestampString = "514860427.916407"
11131113
startingColumnNumber = "9223372036854775807"
11141114
endingColumnNumber = "9223372036854775807"
11151115
startingLineNumber = "889"
@@ -1124,7 +1124,7 @@
11241124
moduleName = "AFNetWorking3.X源码阅读"
11251125
usesParentBreakpointCondition = "Yes"
11261126
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
1127-
timestampString = "514830659.521762"
1127+
timestampString = "514860427.919004"
11281128
startingColumnNumber = "9223372036854775807"
11291129
endingColumnNumber = "9223372036854775807"
11301130
startingLineNumber = "889"
@@ -1205,7 +1205,7 @@
12051205
moduleName = "AFNetWorking3.X源码阅读"
12061206
usesParentBreakpointCondition = "Yes"
12071207
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
1208-
timestampString = "514830659.569999"
1208+
timestampString = "514860427.939037"
12091209
startingColumnNumber = "9223372036854775807"
12101210
endingColumnNumber = "9223372036854775807"
12111211
startingLineNumber = "906"
@@ -1220,7 +1220,7 @@
12201220
moduleName = "AFNetWorking3.X源码阅读"
12211221
usesParentBreakpointCondition = "Yes"
12221222
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
1223-
timestampString = "514830659.57188"
1223+
timestampString = "514860427.941651"
12241224
startingColumnNumber = "9223372036854775807"
12251225
endingColumnNumber = "9223372036854775807"
12261226
startingLineNumber = "906"
@@ -1235,7 +1235,7 @@
12351235
moduleName = "AFNetWorking3.X源码阅读"
12361236
usesParentBreakpointCondition = "Yes"
12371237
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLSessionManager.m"
1238-
timestampString = "514830659.57604"
1238+
timestampString = "514860427.944124"
12391239
startingColumnNumber = "9223372036854775807"
12401240
endingColumnNumber = "9223372036854775807"
12411241
startingLineNumber = "906"
@@ -2308,7 +2308,7 @@
23082308
moduleName = "AFNetWorking3.X源码阅读"
23092309
usesParentBreakpointCondition = "Yes"
23102310
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFURLSessionManagerViewController.m"
2311-
timestampString = "514830659.728786"
2311+
timestampString = "514860428.088405"
23122312
startingColumnNumber = "9223372036854775807"
23132313
endingColumnNumber = "9223372036854775807"
23142314
startingLineNumber = "42"
@@ -2323,7 +2323,7 @@
23232323
moduleName = "AFNetWorking3.X源码阅读"
23242324
usesParentBreakpointCondition = "Yes"
23252325
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFURLSessionManagerViewController.m"
2326-
timestampString = "514830659.730592"
2326+
timestampString = "514860428.091572"
23272327
startingColumnNumber = "9223372036854775807"
23282328
endingColumnNumber = "9223372036854775807"
23292329
startingLineNumber = "43"
@@ -2356,7 +2356,7 @@
23562356
moduleName = "AFNetWorking3.X源码阅读"
23572357
usesParentBreakpointCondition = "Yes"
23582358
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFURLSessionManagerViewController.m"
2359-
timestampString = "514830659.734993"
2359+
timestampString = "514860428.096894"
23602360
startingColumnNumber = "9223372036854775807"
23612361
endingColumnNumber = "9223372036854775807"
23622362
startingLineNumber = "40"
@@ -2371,7 +2371,7 @@
23712371
moduleName = "AFNetWorking3.X源码阅读"
23722372
usesParentBreakpointCondition = "Yes"
23732373
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFURLSessionManagerViewController.m"
2374-
timestampString = "514830659.737415"
2374+
timestampString = "514860428.099266"
23752375
startingColumnNumber = "9223372036854775807"
23762376
endingColumnNumber = "9223372036854775807"
23772377
startingLineNumber = "41"
@@ -3740,7 +3740,7 @@
37403740
moduleName = "AFNetWorking3.X源码阅读"
37413741
usesParentBreakpointCondition = "Yes"
37423742
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLRequestSerialization.m"
3743-
timestampString = "514830659.912885"
3743+
timestampString = "514860428.282048"
37443744
startingColumnNumber = "9223372036854775807"
37453745
endingColumnNumber = "9223372036854775807"
37463746
startingLineNumber = "1042"
@@ -3755,7 +3755,7 @@
37553755
moduleName = "AFNetWorking3.X源码阅读"
37563756
usesParentBreakpointCondition = "Yes"
37573757
urlString = "file:///Users/huangchengdu/Desktop/github/iOSSourceCodeStudy/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetWorking3.X%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB/AFNetworking/AFURLRequestSerialization.m"
3758-
timestampString = "514830659.914174"
3758+
timestampString = "514860428.284806"
37593759
startingColumnNumber = "9223372036854775807"
37603760
endingColumnNumber = "9223372036854775807"
37613761
startingLineNumber = "1042"
@@ -3932,11 +3932,11 @@
39323932
ignoreCount = "0"
39333933
continueAfterRunningActions = "No"
39343934
filePath = "AFNetWorking3.X源码阅读/AFSecurityPolicyViewController.m"
3935-
timestampString = "514828765.507119"
3935+
timestampString = "514860312.284742"
39363936
startingColumnNumber = "9223372036854775807"
39373937
endingColumnNumber = "9223372036854775807"
3938-
startingLineNumber = "36"
3939-
endingLineNumber = "36"
3938+
startingLineNumber = "34"
3939+
endingLineNumber = "34"
39403940
landmarkName = "-buttion1:"
39413941
landmarkType = "7">
39423942
</BreakpointContent>
@@ -3948,11 +3948,11 @@
39483948
ignoreCount = "0"
39493949
continueAfterRunningActions = "No"
39503950
filePath = "AFNetWorking3.X&#x6e90;&#x7801;&#x9605;&#x8bfb;/AFSecurityPolicyViewController.m"
3951-
timestampString = "514829273.453414"
3951+
timestampString = "514860312.284742"
39523952
startingColumnNumber = "9223372036854775807"
39533953
endingColumnNumber = "9223372036854775807"
3954-
startingLineNumber = "51"
3955-
endingLineNumber = "51"
3954+
startingLineNumber = "49"
3955+
endingLineNumber = "49"
39563956
landmarkName = "-ticketSecurityPolicy"
39573957
landmarkType = "7">
39583958
</BreakpointContent>
@@ -3964,11 +3964,11 @@
39643964
ignoreCount = "0"
39653965
continueAfterRunningActions = "No"
39663966
filePath = "AFNetWorking3.X&#x6e90;&#x7801;&#x9605;&#x8bfb;/AFSecurityPolicyViewController.m"
3967-
timestampString = "514829273.453414"
3967+
timestampString = "514860312.284742"
39683968
startingColumnNumber = "9223372036854775807"
39693969
endingColumnNumber = "9223372036854775807"
3970-
startingLineNumber = "62"
3971-
endingLineNumber = "62"
3970+
startingLineNumber = "61"
3971+
endingLineNumber = "61"
39723972
landmarkName = "-ticketSecurityPolicy"
39733973
landmarkType = "7">
39743974
</BreakpointContent>
@@ -4204,11 +4204,11 @@
42044204
ignoreCount = "0"
42054205
continueAfterRunningActions = "No"
42064206
filePath = "AFNetWorking3.X&#x6e90;&#x7801;&#x9605;&#x8bfb;/AFSecurityPolicyViewController.m"
4207-
timestampString = "514829423.849428"
4207+
timestampString = "514860312.284742"
42084208
startingColumnNumber = "9223372036854775807"
42094209
endingColumnNumber = "9223372036854775807"
4210-
startingLineNumber = "88"
4211-
endingLineNumber = "88"
4210+
startingLineNumber = "85"
4211+
endingLineNumber = "85"
42124212
landmarkName = "-button2:"
42134213
landmarkType = "7">
42144214
</BreakpointContent>
@@ -4261,5 +4261,21 @@
42614261
landmarkType = "7">
42624262
</BreakpointContent>
42634263
</BreakpointProxy>
4264+
<BreakpointProxy
4265+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
4266+
<BreakpointContent
4267+
shouldBeEnabled = "Yes"
4268+
ignoreCount = "0"
4269+
continueAfterRunningActions = "No"
4270+
filePath = "AFNetWorking3.X&#x6e90;&#x7801;&#x9605;&#x8bfb;/AFSecurityPolicyViewController.m"
4271+
timestampString = "514860312.284742"
4272+
startingColumnNumber = "9223372036854775807"
4273+
endingColumnNumber = "9223372036854775807"
4274+
startingLineNumber = "133"
4275+
endingLineNumber = "133"
4276+
landmarkName = "-button3:"
4277+
landmarkType = "7">
4278+
</BreakpointContent>
4279+
</BreakpointProxy>
42644280
</Breakpoints>
42654281
</Bucket>

AFNetWorking3.X源码阅读/AFNetWorking3.X源码阅读/AFNetworking/AFSecurityPolicy.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@
2222
#import <Foundation/Foundation.h>
2323
#import <Security/Security.h>
2424

25+
/**
26+
证书的验证类型
27+
28+
- AFSSLPinningModeNone: 不使用`pinned certificates`来验证证书
29+
- AFSSLPinningModePublicKey: 使用`pinned certificates`来验证证书的公钥
30+
- AFSSLPinningModeCertificate: 使用`pinned certificates`来验证整个证书
31+
*/
2532
typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {
2633
AFSSLPinningModeNone,
2734
AFSSLPinningModePublicKey,

AFNetWorking3.X源码阅读/AFNetWorking3.X源码阅读/AFNetworking/AFSecurityPolicy.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ - (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
324324
} else if (!AFServerTrustIsValid(serverTrust) && !self.allowInvalidCertificates) {
325325
return NO;
326326
}
327-
//根据证书验证策略、公钥认证策略、其他认证策略来处理不同情况
327+
//根据证书验证策略、数字签名认证策略、其他认证策略来处理不同情况
328328
switch (self.SSLPinningMode) {
329329
case AFSSLPinningModeNone://不验证公钥和证书
330330
default:
@@ -354,7 +354,7 @@ - (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
354354

355355
return NO;
356356
}
357-
case AFSSLPinningModePublicKey: {//只验证证书里面的公钥
357+
case AFSSLPinningModePublicKey: {//只验证证书里面的数字签名
358358
NSUInteger trustedPublicKeyCount = 0;
359359
//根据serverTrust对象和SecPolicyCreateBasicX509认证策略,获取对应的公钥集合
360360
NSArray *publicKeys = AFPublicKeyTrustChainForServerTrust(serverTrust);

AFNetWorking3.X源码阅读/AFNetWorking3.X源码阅读/AFSecurityPolicyViewController.m

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ - (void)viewDidLoad {
2121
//自建证书认证
2222
- (IBAction)buttion1:(id)sender {
2323
NSURL *url = [NSURL URLWithString:@"https://kyfw.12306.cn/otn/leftTicket/init"];
24-
// NSURL *url = [NSURL URLWithString:@"https://www.apple.com/"];
25-
// NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
2624
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
2725
// [request setValue:@"text/html" forHTTPHeaderField:@"Accept"];
2826
AFURLSessionManager *manager = [[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
@@ -52,6 +50,7 @@ -(AFSecurityPolicy*)ticketSecurityPolicy {
5250

5351
AFSecurityPolicy *securityPolicy;
5452
if (true) {
53+
//对于自签名证书,这里只能是
5554
securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:set];
5655
}else{
5756
// AFSSLPinningModeCertificate 使用证书验证模式。下面这个方法会默认使用项目里面的所有证书
@@ -72,8 +71,6 @@ -(AFSecurityPolicy*)ticketSecurityPolicy {
7271

7372
//认证证书认证
7473
- (IBAction)button2:(id)sender {
75-
76-
// NSURL *url = [NSURL URLWithString:@"https://www.apple.com/"];
7774
NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];
7875
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
7976
//[request setValue:@"text/html" forHTTPHeaderField:@"Accept"];
@@ -103,6 +100,7 @@ -(AFSecurityPolicy*)baiduSecurityPolicy {
103100

104101
AFSecurityPolicy *securityPolicy;
105102
if (true) {
103+
//这里只能用AFSSLPinningModeNone才能成功,而且我系统的证书列表里面已经有百度的证书了
106104
securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone withPinnedCertificates:set];
107105
}else{
108106
// AFSSLPinningModeCertificate 使用证书验证模式。下面这个方法会默认使用项目里面的所有证书

0 commit comments

Comments
 (0)