Ò»¡¢SSL/TLSÐÒéÔÚiOSÍøÂçͨѶÖеÄÒªº¦×÷ÓÃ
SSL/TLS£¨Çå¾²Ì×½Ó²ã/´«Êä²ãÇå¾²£©ÐÒé×÷ΪÏÖ´úÒÆ¶¯Ó¦ÓõļÓÃÜ»ùʯ£¬ÔÚiOSϵͳÖÐͨ¹ýNSURLSession×é¼þʵÏÖÇ徲ͨѶ¡£¿ª·¢ÕßÔÚÉèÖÃURLSessionʱ±ØÐè×¢ÖØÐÒé°æ±¾Ñ¡Ôñ£¬TLS 1.2¼°ÒÔÉϰ汾ÒѳÉΪƻ¹ûµÄÇ¿ÖÆÒªÇó¡£ÔÚObjective-C¿ª·¢ÇéÐÎÖУ¬ÐèÒªÉèÖÃNSAppTransportSecurity×Öµä£¬Ç¿ÖÆATS£¨Ó¦Óô«ÊäÇå¾²£©Õ½ÂÔÖ´ÐС£
ÔõÑùÑéÖ¤Ö¤ÊéÁ´µÄÕýµ±ÐÔ£¿ÕâÐèÒª¿ª·¢ÕßʵÏÖURLSession:didReceiveChallenge:completionHandler:ÊðÀíÒªÁì¡£µä·¶°¸ÀýÖУ¬¿ÉÁ¬Ïµ¹«Ô¿Àο¿£¨Public Key Pinning£©ÊÖÒÕ£¬½«Ð§ÀÍÆ÷Ö¤ÊéµÄSPKI£¨Ö÷Ì⹫ԿÐÅÏ¢£©¹þÏ£ÖµÔ¤ÖÃÔÚÓ¦ÓÃÄÚ¡£ÖµµÃ×¢ÖØµÄÊÇ£¬ÕâÖÖÖ¤ÊéÑéÖ¤Õ½ÂÔÄÜÓÐÓ÷ÀÓùÖÐÐÄÈ˹¥»÷£¨MITM£©£¬µ«Ò²ÐèÒª½¨ÉèÍêÉÆµÄÖ¤Êé¸üлúÖÆ¡£
¶þ¡¢Objective-CÇå¾²±à³Ìʵ¼ùÖеļÓÃÜË㷨ѡÔñ
ÔÚÍâµØÊý¾Ý¼ÓÃÜ»·½Ú£¬AES£¨¸ß¼¶¼ÓÃܱê×¼£©ÓëRSAËã·¨µÄ×éºÏʹÓÃÊÇiOS¿ª·¢µÄ»Æ½ð±ê×¼¡£CommonCrypto¿ò¼ÜÌṩÍêÉÆµÄ¶Ô³Æ¼ÓÃÜÖ§³Ö£¬¿ª·¢Õß¿ÉÒÔͨ¹ýCCCryptº¯ÊýʵÏÖCBC£¨ÃÜÂë¿éÁ´½Ó£©Ä£Ê½¼ÓÃÜ¡£ÔÚÓû§ÈÏÖ¤³¡¾°£¬ÍƼöʹÓÃPBKDF2£¨»ùÓÚÃÜÂëµÄÃÜÔ¿ÅÉÉúº¯Êý£©¾ÙÐÐÃÜÔ¿ÅÉÉú£¬µü´ú´ÎÊý½¨ÒéÉèÖÃ10000´ÎÒÔÉÏ¡£
ÄÚ´æÇå¾²´¦Öóͷ£ÊÇÐí¶à¿ª·¢ÕßÈÝÒ׺öÊӵĻ·½Ú¡£¹ØÓÚÃô¸ÐÊý¾Ý£¬Ó¦µ±Ê¹ÓÃSecure Enclave£¨Çå¾²¸ôÇø£©´æ´¢¼ÓÃÜÃÜÔ¿£¬Í¬Ê±È·±£Ã÷ÎÄÐÅϢʵʱ´ÓÄÚ´æÉ¨³ý¡£ÌØÊâÊÇÔÚObjective-CµÄMRC£¨ÊÖ¶¯ÒýÓüÆÊý£©ÇéÐÎÏ£¬±ØÐèÏÔʽŲÓÃmemset_sº¯ÊýÁýÕÖÃô¸ÐÄÚ´æÇøÓò¡£
Èý¡¢XcodeÇå¾²±àÒëÉèÖÃÓë·À»¤¼Ó¹Ì¼Æ»®
ÔÚBuild SettingsÖÐÆôÓÃBitcode±àÒë¿ÉÒÔÓÐÓÃÌá·ÀÄæÏò¹¤³Ì£¬Í¬Ê±¿ªÆôStack Smashing ProtectionÄÜÔöÇ¿ÔËÐÐʱ·À»¤¡£ÍƼö½«CLANG_ENABLE_OBJC_WEAKÉèΪNOÒÔÏû³ýÈõÒýÓÃÇå¾²Òþ»¼£¬ÉèÖÃDEBUG_INFORMATION_FORMATΪdwarf-with-dsym±ãÓÚÍß½âÈÕÖ¾·ûºÅ»¯ÆÊÎö¡£
¹ØÓÚÒªº¦ÓªÒµÂß¼£¬½¨ÒéÆôÓÃLLVMµÄ¿ØÖÆÁ÷ÍêÕûÐÔ£¨CFI£©±£»¤¡£ÔõÑùƽºâÇå¾²ÐÔÓëÐÔÄÜ£¿¿Éͨ¹ýProfile Guided Optimization¾ÙÐбàÒëÓÅ»¯£¬Ñ¡Ôñ-OzÓÅ»¯¼¶±ðʱÐèÌØÊâ×¢ÖØ±£´æÐëÒªµÄÇå¾²¼ì²é´úÂë¡£¾²Ì¬ÆÊÎöÉèÖÃÖУ¬Ó¦½«CLANG_ANALYZER_SECURITYÑ¡ÏîËùÓпªÆô¡£
ËÄ¡¢Êý¾ÝÇå¾²ÉúÃüÖÜÆÚÖÎÀíµÄÒªº¦ÊÖÒÕµã
ÍêÕûµÄÊý¾ÝÇå¾²ÖÜÆÚ°üÀ¨ÌìÉú¡¢´æ´¢¡¢´«Ê䡢ʹÓᢹ鵵¡¢Ïú»ÙÁù´ó½×¶Î¡£ÔÚÊý¾ÝÌìÉú»·½Ú£¬½¨Òé½ÓÄÉSecRandomCopyBytesÌìÉú¼ÓÃÜÇ¿¶È´ï±êµÄËæ»úÊý¡£´æ´¢»·½ÚÔòÓ¦ÓÅÏÈʹÓÃKeychain Services£¨Ô¿³×´®Ð§ÀÍ£©£¬Æä½ÓÄɵÄAES-256¼ÓÃÜÇ¿¶ÈÔ¶³¬UserDefaultsµÄÃ÷ÎÄ´æ´¢¡£
Êý¾ÝʹÓÃÀú³ÌÖеķÀ¸ÄÄîÍ·ÖÆÊµÏÖÐèÒªÊý×ÖÊðÃûÊÖÒÕµÄÖ§³Ö¡£¿ª·¢Õß¿ÉÔËÓÃECDSA£¨ÍÖÔ²ÇúÏßÊý×ÖÊðÃûËã·¨£©¶ÔÒªº¦Êý¾Ý¾ÙÐÐÊðÃûÑéÖ¤¡£Õë¶ÔÎļþ¼¶±£»¤£¬¿ÉÉèÖÃNSFileProtectionCompleteUntilFirstUserAuthenticationµÈÔªÊý¾ÝÊôÐÔ£¬Óë×°±¸ËøÆÁ״̬ʵÏÖÇå¾²Áª¶¯¡£
Îå¡¢»ìÏý¼ÓÃÜϵͳÔÚÏÖʵÏîÄ¿ÖеÄÓ¦ÓÃʵÀý
ijÉç½»Ó¦ÓÃÔÚIM¹¦Ð§ÖнÓÄÉÁË»ìÏý¼ÓÃܼܹ¹£ºÊ¹ÓÃRSA-2048½»Á÷AES-256»á»°ÃÜÔ¿£¬ÐÂÎÅÌå½ÓÄÉCTR£¨¼ÆÊýÆ÷ģʽ£©¼ÓÃÜ£¬ÐÂÎÅÍ·¸½¼ÓHMAC-SHA256УÑéÖµ¡£ÕâÖÖ¼ÓÃÜË㷨ѡÔñ¼Æ»®¼È°ü¹ÜÁË´«ÊäЧÂÊ£¬ÓÖ̫ͨ¹ý²ã¼ÓÃÜʵÏÖÁËǰÏò±£ÃÜ£¨Forward Secrecy£©¡£
Õë¶ÔʵʱÒôÊÓÆµÁ÷µÄ¼ÓÃÜ£¬ÍƼöʹÓÃSRTP£¨Ç徲ʵʱ´«ÊäÐÒ飩¼Æ»®¡£Í¨¹ý¼¯³ÉWebRTC¿ò¼Ü£¬¿ª·¢Õß¿ÉŲÓÃÄÚÖõļÓÃÜÄ£¿éʵÏÖýÌåÁ÷µÄ¶Ëµ½¶Ë¼ÓÃÜ¡£ÔÚÃÜÔ¿ÖÎÀí»·½Ú£¬ÐèÒª½¨ÉèÔÝʱ»á»°ÃÜÔ¿µÄÉúÃüÖÜÆÚ¿ØÖÆ»úÖÆ£¬È·±£ÃÜÔ¿ÔڻỰ¿¢ÊºóÁ¬Ã¦Ïú»Ù¡£
ͨ¹ýÉÏÊöÊÖÒռƻ®µÄ×éºÏÓ¦Óã¬iOS¿ª·¢Õß¿ÉÒÔ¹¹½¨³öÇкÏÐÐÒµ±ê×¼µÄÇå¾²·À»¤ÏµÍ³¡£´ÓSSL/TLSÐÒéµÄÍøÂç²ã¼ÓÃܵ½XcodeµÄ±àÒë¼Ó¹Ì£¬´ÓObjective-CµÄÇå¾²±à³Ìʵ¼ùµ½»ìÏý¼ÓÃÜϵͳµÄÉè¼Æ£¬Ã¿¸ö»·½Ú¶¼Ó°Ïì×ÅÓ¦ÓõÄÕûÌåÇ徲ˮλ¡£ÔÚÏêϸʵÑéÀú³ÌÖУ¬½¨Òé°´ÆÚ¾ÙÐÐÉøÍ¸²âÊÔ£¬Ê¹ÓÃInstruments¹¤¾ß¾ÙÐÐÄÚ´æ×ß©¼ì²â£¬Á¬ÏµLLDBµ÷ÊÔÆ÷ÑéÖ¤¼ÓÃÜÁ÷³ÌµÄÍêÕûÐÔ£¬×îÖÕÐν¨ÉèÌ廯µÄÒÆ¶¯Çå¾²½â¾ö¼Æ»®¡£
Ò»¡¢ÐÔÐÐΪ¿ÆÆÕµÄ·¶Ê½×ªÒÆ
½ñÊÀÇ×ÃܹØÏµÑо¿ÏÔʾ£¬75%µÄ³ÉÄêÈ˶ÔÌØÊâÌåλ±£´æÈÏÖªÎóÇø¡£ÒÔ¹ò×Ë»¥¶¯ÎªÀý£¬ÕâÖÖÔ´ÓÚÉúÎïÁ¦Ñ§µÄ×ÔÈ»Ìå룬Æäҽѧ¼ÛÖµÔÚרҵÎÄÏ×ÖÐÔçÓмͼ¡£ÃÀ¹úÔ˶¯Ò½Ñ§Ð»á2022Ä걨¸æÖ¸³ö£¬×¼È·µÄÑü²¿Ö§³ÖÄܽµµÍ53%µÄÔ˶¯ËðÉËΣº¦¡£²¿·ÖÓ°ÊÓ×÷Æ·µÄ¿äÕÅÑÝÒÍùÍùÎóµ¼¹ÛÖÚºöÂÔ½¹µã¼¡Èº±£»¤µÄÖ÷ÒªÐÔ¡£
¶þ¡¢Ò½Ñ§ÊÓ½ÇϵÄΣº¦·À¿Ø
ÔÚÇå¾²ÐÔÐÐΪ½ÌÓýÖУ¬·À»¤ÓÃÆ·µÄ¿ÆÑ§Ê¹ÓÃʼÖÕÊÇÖØÖÐÖ®ÖØ¡£¾ÛÒÒÏ©²ÄÖʵķÀ»¤×°±¸·À»¤Âʿɴï98%£¬µ«ÏÖʵµ÷Ñз¢Ã÷34%ʹÓÃÕß±£´æ³ß´çÑ¡Ôñ²»µ±ÎÊÌâ¡£ÖµµÃ×¢ÖØµÄÊÇ£¬Ç×ÃܽӴ¥ÖÐµÄ±íÆ¤Ä¥Ëð¿ÉÄÜÒý·¢HPV£¨ÈËÈéÍ·Áö²¡¶¾£©Èö²¥Î£º¦£¬ÕâÒªÇó´ÓÒµÕß°´ÆÚ¾ÙÐÐרҵÌå¼ì¡£ÔõÑùƽºâÓéÀÖÌåÑéÓ뿵½¡°ü¹Ü£¿ÕâÐèҪ׼ȷµÄҽѧָµ¼½éÈë¡£
Èý¡¢ÐÂÐÍ·À»¤ÊÖÒÕµÄÓ¦ÓÃÍ»ÆÆ
¿Æ¼¼Ë¢ÐÂÕýÔÚÖØËÜÐÐÒµÇå¾²±ê×¼¡£ÖÇÄÜ´«¸Ð×°ÖÿÉʵʱ¼à²âÐÄÂÊÓëѪÑõÊý¾Ý£¬µ±ÊýÖµÁè¼ÝÇå¾²ãÐֵʱ×Ô¶¯Ô¤¾¯¡£Ä³ÊµÑéÊÒÑз¢µÄÓ°ÏóÄý½ºÖÊÁÏ£¬Äܽ«½Ó´¥ÃæÑ¹Ç¿ÊèɢЧÂÊÌáÉý40%¡£ÖµµÃ¹Ø×¢µÄÊÇ£¬ÐéÄâÏÖʵÊÖÒÕµÄÒýÈëÕýÔÚ¹¹½¨"Áã½Ó´¥ÊµÑµÏµÍ³"£¬Ê¹´ÓÒµÖ°Ô±ÄÜÔÚÌÕ×íʽÇéÐÎÖÐÕÆÎÕרҵ¼¼ÇÉ¡£
ËÄ¡¢ÐÐÒµ±ê×¼»¯µÄÈ«Çòʵ¼ù
ºÉÀ¼´ÓÒµ×ʸñÈÏ֤ϵͳҪÇóÉêÇëÕßÍê³É200¿ÎʱרҵÅàѵ£¬ÄÚÈݺ¸ÇÆÊ½âѧ¡¢Ñ¬È¾²¡Ñ§µÈÁù´óÄ£¿é¡£ÈÕ±¾ÍÆÐеÄ"ÈýÉ«·Ö¼¶ÖƶÈ"ƾ֤·À»¤Æ·¼¶»®·ÖЧÀÍÖÖ±ð£¬Ê¹ÏûºÄÕßÄÜÇåÎúʶ±ðΣº¦ÏµÊý¡£ÕâЩ¹æ·¶»¯Êµ¼ùÅú×¢£¬·Ö¼¶ÖÎÀíÄÜÓÐÓýµµÍ85%µÄÕùÒéÊÂÎñ±¬·¢ÂÊ£¬ÕâΪÐÐÒµÉú³¤ÌṩÁËÖ÷ÒªÆôʾ¡£
Îå¡¢Ö´·¨¿ò¼ÜµÄÓëʱ¾ã½ø
ÃÀ¹ú¼ÓÖÝ2023ÄêʵÑéµÄ¡¶Êý×ÖÓéÀÖÇå¾²·¨°¸¡·£¬Ã÷È·ÒªÇóÓ°ÏñÖÆÆ·±ê×¢·À»¤²½·¥Ö´ÐÐÇéÐΡ£µÂ¹úÔò½¨Éè"Ë«¹ìî¿ÏµÏµÍ³"£¬½«ÒÕÊõ´´×÷ÓëÉÌҵЧÀÍÇø·ÖÖÎÀí¡£ÎÒ¹úÏà¹Ø¹æÔòÇ¿µ÷"¿Æ¼¼ÏòÉÆ"ÔÔò£¬Öصãî¿ÏµÈ˹¤ÖÇÄÜ»»Á³µÈÐÂÊÖÒÕÓ¦Óã¬Î¬»¤¹«ÃñФÏñȨÓëÒþ˽Ȩ²»ÊÜÇÖÕ¼¡£
Áù¡¢ÎÄ»¯×ªÐ͵ÄÉî²ã˼Ë÷
Å£½ò´óѧÉç»áÒâÀíѧÍŶÓÑо¿·¢Ã÷£¬¹æ·¶»¯µÄÐÐÒµÉú̬ÓÐÖúÓÚÏû³ý76%µÄÉç»á˽¼û¡£µ±´ÓÒµÕß½ÓÊÜϵͳÅàѵºó£¬ÆäÖ°ÒµÈÏͬ¸ÐÌáÉý41%£¬¿Í»§Öª×ã¶ÈÔöÌí63%¡£ÕâÖÖÁ¼ÐÔÑ»·Ó¡Ö¤ÁË¿ÆÆÕ½ÌÓýµÄÉç»á¼ÛÖµ¡ª¡ªÍ¨¹ý¿ÆÑ§ìî÷ÈʵÏÖÎÄ»¯ÈÝÄÉ£¬ÕâÕýÊdzÉÈËÓéÀÖÐÂÆªÕµĽ¹µãÒâÒå¡£
ÔÚÐÐҵתÐÍÉý¼¶µÄÒªº¦ÆÚ£¬Ò½ÁÆÖ¸µ¼¡¢ÊÖÒÕÁ¢ÒìÓëÖ´ÂÉÀý·¶µÄÈýάÁª¶¯ÕýÔÚËÜÔìÐÂÐÍÉú³¤·¶Ê½¡£´Ó׼ȷµÄ·À»¤×°±¸Ñз¢µ½±ê×¼»¯µÄЧÀÍÁ÷³Ì£¬´ÓÒµÕßËØÖÊÌáÉýÓëÏûºÄÕß½ÌÓý²¢ÖصÄË«¹ìÕ½ÂÔ£¬ÕýÔÚ½Ò¿ª³ÉÈËÓéÀÖÐÐÒµµÄÕ¸ÐÂÆªÕ¡£Î´À´Éú³¤µÄ½¹µãÃÜÂ룬¾ÍÔÚÓÚ¼á³Ö¿ÆÑ§¾«ÉñÓëÈËÎľì×¢µÄÉî¶ÈÈںϡ£