




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
lessonl信息安全講解lessonl信息安全講解lessonl信息安全講解安全協(xié)議基礎7/8/2003安全協(xié)議基礎7/8/2003Agenda何謂協(xié)議Base64編碼加密算法同明文相關的幾個問題一個簡單協(xié)議的分析7/8/20033Internet安全協(xié)議及標準安全消息系統(tǒng)-發(fā)送方7/8/20034Internet安全協(xié)議及標準安全消息系統(tǒng)-接收方7/8/20035Internet安全協(xié)議及標準安全消息系統(tǒng)-存在的問題對單條消息工作得很好可方便地用于電子郵件、文件等的安全傳送對要傳輸任意信息不適用交互式應用引入一個簡單的安全協(xié)議(TSP:ToySecurityProtocol)不需為每個數(shù)據包都動用昂貴的公開密鑰操作實現(xiàn)證書發(fā)現(xiàn)7/8/20036Internet安全協(xié)議及標準TSP(1)基本步驟假設通信雙方:Alice,Bob握手(Handshake)Alice和Bob使用他們的證書和私鑰來對對方進行身份鑒別并交換共享密鑰導出密鑰(Keyderivation)Alice和Bob使用他們達成一致的共享密鑰導出一組用于保護將要傳輸?shù)臄?shù)據的密鑰數(shù)據傳輸(Datatransfer)將要傳輸?shù)臄?shù)據分割成一系列的記錄,并對每條記錄加以保護關閉連接(Connectionclosure)使用特殊的、經過保護的關閉消息,安全地關閉連接7/8/20037Internet安全協(xié)議及標準TSP(2)握手階段(Handshake)AliceBobHelloCertificateEncrypt(Bob,MS)=EMS單向鑒別7/8/20038Internet安全協(xié)議及標準TSP(2)握手階段(Handshake)AliceBobHelloCertificate,nonceSign(Alice,Encrypt(Bob,MS))雙向鑒別7/8/20039Internet安全協(xié)議及標準TSP(3)制作一組密鑰原則上,使用同一個密鑰來完成不同類型的加密操作被認為是糟糕的思想每個方向上需要兩個密鑰,分別用于加密和消息鑒別(MAC)可通過密鑰導出函數(shù)(KDF)由MS和nonce導出KDF一般基于Hash算法一種最簡單的KDF可能(當然現(xiàn)實的協(xié)議應該用更好的)如下:Ecs=Hash(MS,nonce,”ECS”)Mcs=Hash(MS,nonce,”MCS”)Esc=Hash(MS,nonce,”ESC”)Msc=Hash(MS,nonce,”MSC”)7/8/200310Internet安全協(xié)議及標準TSP(4)數(shù)據記錄如何對數(shù)據打包設想成在傳輸數(shù)據時對恒定的數(shù)據流加密MAC如何處理?放最后嗎?解決方法將數(shù)據分割成一系列記錄,每個記錄自帶MAC記錄大小定長:不經濟理想的應是變長記錄,加上長度字段記錄格式長度+數(shù)據+MACMAC計算M=MAC(Mx,D)7/8/200311Internet安全協(xié)議及標準TSP(5)序號重放、刪除、重排攻擊需要增加序號序號必須是MAC輸入的一部分可以放在記錄中在基于TCP的連接中,也可以使用隱含序號MAC的計算M=MAC(Mx,Sequence||D)7/8/200312Internet安全協(xié)議及標準TSP(6)控制信息如何防止攻擊者惡意切斷連接需要有一種機制使得Alice能告訴Bob(或反之),她已完成數(shù)據傳送兩種方法傳送長度為0的記錄增加類型字段增加類型字段后的記錄格式長度+序號+類型+數(shù)據+MAC類型為0:普通數(shù)據類型為1:結束記錄類型為其他:報告錯誤信息MAC的計算M=MAC(Mx,Sequence||Type||D)7/8/200313Internet安全協(xié)議及標準TSP–完整圖示AliceBobHelloCertificate,nonceSign(Alice,Encrypt(Bob,MS))Type0,Seq1,DataType0,Seq2,DataType0,Seq1,DataType0,Seq3,DataType1,Seq4,CloseType1,Seq2,Close7/8/200314Internet安全協(xié)議及標準TSP–小結實際上,TSP已經包含了SSL絕大多數(shù)的核心功能握手密鑰交換雙向鑒別保密傳輸遺漏的部分不完整,不包括具體實現(xiàn)細節(jié)數(shù)據結構定義每一字段大小使用何種算法涉及到數(shù)據結構表示、翻譯等問題更重要的是缺少協(xié)商(negotiation)功能涉及到Policy/Mechanism的問題7/8/200315Internet安全協(xié)議及標準協(xié)議實現(xiàn)中的同消息傳遞有關的問題可靠傳輸/不可靠傳輸發(fā)送方能否知道傳輸中的錯誤如果不能保證可靠傳遞,應用程序必須自己處理應答阻塞/非阻塞(Blocking/Nonblocking)非阻塞發(fā)出消息,然后返回更加靈活,但難以調試阻塞發(fā)出消息,等待發(fā)送成功7/8/200316Internet安全協(xié)議及標準ASN.1初步7/8/2003AgendaAbstractSyntaxNotationOne(ASN.1)Overview類型和值定義簡單類型構造類型BasicEncodingRules(BER)OverviewType-Length-Value/Identifier-Length-Content編碼示例其他編碼方式DistinguishedEncodingRules(DER)ASN.1開發(fā)流程7/8/200318Internet安全協(xié)議及標準ASN.1-Overview一種獨立于機器的描述語言,用于描述在網絡上傳遞的消息ITU-T(X.680)和ISO(ISO8824-1)標準定義應用程序數(shù)據的抽象語法定義應用程序數(shù)據結構和表示協(xié)議數(shù)據單元(PDUs)獨立于機器、語言及應用程序內部表示ASN.1特別適合表示現(xiàn)代通信應用中那些復雜的、變化的及可擴展的數(shù)據結構類似標準有IDLXDRXMLASN.1可分為兩個部分語法規(guī)則:從數(shù)據類型、內容順序或結構等方面來描述消息的內容編碼規(guī)則:如何編碼實際消息中的數(shù)據7/8/200319Internet安全協(xié)議及標準ASN.1定義示例表達簡單和復雜類型的能力可對類型根據大小及(或)數(shù)值進行約束也可以施加更強的約束字段可標記為OPTIONAL大寫開頭表示類型名,小寫開頭的表示變量名/字段名Age::=INTEGER(0..120)User::=SEQUENCE{nameIA5String(SIZE(1..128)),ageAgeDEFAULT18,addressIA5StringOPTIONAL,... }7/8/200320Internet安全協(xié)議及標準使用ASN.1的標準及應用X.400消息處理系統(tǒng)/X.500目錄服務基于LDAP的目錄服務/X.509數(shù)字證書RSA公開密碼標準密鑰的存儲及傳遞/證書SET安全電子商務H.323/T.120多媒體通信標準Unicode標準簡單網絡管理協(xié)議(SNMP)MIBSNMPPDUs7/8/200321Internet安全協(xié)議及標準ASN.1術語抽象語法(AbstractSyntax)描述通用數(shù)據結構允許定義數(shù)據類型和值數(shù)據類型(DataType)值的集合,可以是簡單類型或結構類型可以對數(shù)據類型命名編碼(Encoding)用于表示數(shù)據值的字節(jié)序列編碼規(guī)則(EncodingRules)給出從一種語法到另一種的映射方法傳輸語法(TransferSyntax)位模式(Bitspattern)描述數(shù)據是在傳輸時是如何表示的7/8/200322Internet安全協(xié)議及標準Abstract&TransferSyntaxesApplicationcomponentdatatransfercomponent(e.g,TCP,OSIsession)datatransfercomponent(e.g,TCP,OSIsession)ApplicationcomponentLocalstorage(e.g,MIB)Localstorage(e.g,MIB)UserUserlocalmappinguserpresentationmappinguserpresentationmappingAbstractSyntax(e.g.,ASN.1)localmappingencodingrulesencodingrulesTransferSyntax(e.g.,BER)7/8/200323Internet安全協(xié)議及標準模塊(module):ASN.1規(guī)范中的基本構造塊模塊定義格式如下:<modulereference>DEFINITIONS::=BEGIN EXPORTS IMPORTS AssignmentListENDASN.1模塊定義Definitionsinthismodulethatmaybeimportedbyothermodules.Definitionsthataretobeimportedfromothermodules.Typeassignments,valueassignments,andmacrodefinitionsthataredefinedinthismodule.7/8/200324Internet安全協(xié)議及標準ASN.1簡單類型(1)基本類型BOOLEANINTEGERENUMERATEDREALBITSTRINGOCTETSTRING字符串類型(ISO10646-1的子集)NumericString(0-9,<space>)PrintableString(0-9,A-Z,a-z,<space>,<s[ecial>VisibleStringGraphicStringUTF8StringIA5String(ASCII)7/8/200325Internet安全協(xié)議及標準ASN.1簡單類型(2)對象類型OBJECTIDENTIFIER對象標識符:一個任意長的非負整數(shù)序列,用于標記對象(如算法等)ObjectDescriptor其它類型NULL空值UTCTimeyymmddhhmm[ss]<localoffsetfromUTC>GeneralizedTimeyyyymmddhhmm[ss]<localoffsetfromUTC>強制從2050年開始7/8/200326Internet安全協(xié)議及標準ASN.1類型定義語法:<typename>::=<type>示例:Counter ::=INTEGERIpAddress::=OCTETSTRINGMonths::=ENUMERATED{january(1),february(2),march(3),april(4),may(5),june(6),july(7),august(8),september(9),october(10),november(11),december(12)}7/8/200327Internet安全協(xié)議及標準ASN.1子類型定義語法:
<subtypename>::=<type>(<constraint>)示例:Counter ::=INTEGER(0..65536)IpAddress::=OCTETSTRING(SIZE(4))Spring::=Months(march|april|may)Summer::=Months(june|july|august)SmallPrime::=INTEGER(2|3|5|7|11)ExportKey::=BITSTRING(SIZE(40))7/8/200328Internet安全協(xié)議及標準ASN.1賦值(1)語法:
<valuename><type>::=<value>示例:ipInReceivesCounter::=2450ipRouteMaskIpAddress::=‘FFFFFF00’HcurrentMonthMonths::=julycurrentTimeUTCTime::=“030708094018+0800”nameVisibleString::=“John”marriedBOOLEAN::=TRUEfaxMessageBITSTRING::=‘01100001101’B7/8/200329Internet安全協(xié)議及標準ASN.1賦值(2)
OBJECTIDENTIFIERinternetOBJECTIDENTIFIER::={iso(1)org(3)dod(6)1}privateOBJECTIDENTIFIER::={internet4}RSA公司SecurityOID:{iso(1)member-body(2)US(840)113549}7/8/200330Internet安全協(xié)議及標準ASN.1結構類型(1)
SEQUENCE對應于C語言中的struct類型定義UserAccount::=SEQUENCE{usernamePrintableString,passwordPrintableString,accountNrINTEGER}賦值myAccountUserAccount::={username“tly”,password“guesswhat”,accountNr2345}7/8/200331Internet安全協(xié)議及標準ASN.1結構類型(2)
SEQUENCEOF對應于C語言中的數(shù)組類型定義MemberCountries::=SEQUENCEOFPrintableStringAccountRegistry::=SEQUENCEOFUserAccount賦值eastAsiaMemberCountries::={“China”,“Japan”,“Korean”,“DPR”}7/8/200332Internet安全協(xié)議及標準ASN.1結構類型(3)
SET類似于SEQUENCE,但不考慮分量順序類型定義UserAccount::=SET{username[0]PrintableString,password[1]PrintableString,accountNr[2]INTEGER}賦值myAccountUserAccount::={accountNr2345,username“tly”,password“guesswhat”}7/8/200333Internet安全協(xié)議及標準ASN.1結構類型(3)
SETOF集合類型,每一分量類型相同,不考慮順序類型定義Keywords::=SETOFPrintableString賦值someASN1KeywordsKeywords::={“INTEGER”,“BOOLEAN”,“REAL”}7/8/200334Internet安全協(xié)議及標準BER-OverviewBER–基本編碼規(guī)則(BasicEncodingRules)ITU-T(X.690)和ISO(8825-1)標準一種編碼規(guī)格說明描述如何將ASN.1類型的值編碼成字節(jié)串(stringofoctets)的方法基于一種稱為type-length-value(TLV)結構的方法,在ASN.1中,也稱identifier-length-content(ILC)7/8/200335Internet安全協(xié)議及標準BER基本編碼方法7/8/200336Internet安全協(xié)議及標準BasicEncodingRules
ASchematicRepresentation7/8/200337Internet安全協(xié)議及標準ASN.1類型標記(1)
UniversalClassTags7/8/200338Internet安全協(xié)議及標準ASN.1類型標記(2)
ApplicationClassTags7/8/200339Internet安全協(xié)議及標準BER中的Identifier字段(1)
Tagnumber<317/8/200340Internet安全協(xié)議及標準BER中的Identifier字段(2)
Tagnumber>=317/8/200341Internet安全協(xié)議及標準BER中的Length字段(1)7/8/200342Internet安全協(xié)議及標準BER中的Length字段(2)短格式既可用于基本類型,也可用于內容長度不超過128的構造類型長格式既可用于基本類型,也可用于構造類型通常內容長度大于或等于128不定長格式僅用于構造類型EOC字節(jié)可看作是tag為0的基本類型,內容長度為07/8/200343Internet安全協(xié)議及標準BER編碼示例(1)
INTEGER7/8/200344Internet安全協(xié)議及標準BER編碼示例(2)
INTEGERBERcodingoftwo’scomplementintegers-129:1111111101111111=02
02FF7F-128:1111111110000000=02
0180-127:1111111110000001=02
0181-1:1111111111111111=02
01FF0:0000000000000000=02
001:0000000001111111=02
0101127:0000000001111111=02
017F128:0000000010000000=02
020080129:0000000010000001=02
0200817/8/200345Internet安全協(xié)議及標準BER編碼示例(3)
SEQUENCE7/8/200346Internet安全協(xié)議及標準BER編碼示例(4)
OBJECTIDENTIFIER7/8/200347Internet安全協(xié)議及標準BER編碼示例(5)
OBJECTIDENTIFIERCodingofOIDRootccitt(0):Z=Y{0..39}iso(1):Z=40+Y{40..79}joint-iso-ccitt(2):Z=80+Y{80..119}CodingofOIDnudenumbers類似于Identifier字段中的Tag編碼Range{0..127}:0XXXXXXXRange{128..16383}:1XXXXXXX0XXXXXXXRange{16384..2097151}:1XXXXXXX1XXXXXXX0XXXXXXX例:RSA數(shù)據安全公司{12840113549}06
06
2a
8648
86f70d7/8/200348Internet安全協(xié)議及標準BER編碼存在的問題不唯一同一個值可能有超過1種合法的編碼;靈活,但容易造成混淆示例BITSTRING值011011100101110111BITSTRING編碼中,在長度字段后的第一個字節(jié)給出了最后一個字節(jié)中未用到的位數(shù)(本例中為6)03
04066e5dc0(用0填充,短格式)03
04066e5de0(用100000填充)03
8104066e5de0(長格式)23
09(構造式編碼)
03
03006e5d(“0110111001011101”+”11”)
03
0206c0解決方案(兩種方向)DER:BER子集,只使用定長編碼CER:BER子集,基于不定長編碼7/8/200349Internet安全協(xié)議及標準DER–DistinguishedEncodingRulesDER(DistinguishedEncodingRules)BER的子集,增加某些限制DER附加規(guī)則當長度在0到127之間時,長度字段必須使用短格式當長度是128或者更長時,長度字段必須使用長格式,同時長度必須以最小數(shù)目的八位組來編碼對于從簡單字符串類型衍生出來的簡單字符串類型和隱式標記類型,必須使用基本的定長方法對于結構類型、從結構類型衍生出來的隱式標記類型,以及從任何類型衍生出來的顯式標記類型,必須使用構造的定長方法對于特殊類型,另有限制BITSTRING:必須用0填充SEQUENCE[OF]中的OPTIONAL和DEFAULT限定符SET[OF]除同SEQUENCE相同的規(guī)定外,各分量要求以標記的升序排列7/8/200350Internet安全協(xié)議及標準ASN.1/DER示例(1)
X.509證書及其編碼使用makecert創(chuàng)建一個測試證書使用openssl顯示該證書可讀版本使用Asn1Viewer檢查該編碼7/8/200351Internet安全協(xié)議及標準ASN.1/DER示例(2)
X.509證書及其編碼X.509證書定義Certificate::=SEQUENCE{tbsCertificateTBSCertificate,--證書主體signatureAlgorithmAlgorithmIdentifier,--證書簽名算法標識signatureValueBITSTRING--證書簽名算法值}7/8/200352Internet安全協(xié)議及標準ASN.1/DER示例(3)
X.509證書及其編碼X.509證書定義(續(xù))TBSCertificate::=SEQUENCE{version[0]EXPLICITVersionDEFAULTv1,--證書版本號serialNumberCertificateSerialNumber,--證書序列號,對同一CA所頒發(fā)的證書,序列號唯一標識證書signatureAlgorithmIdentifier,--證書簽名算法標識issuerName,--證書發(fā)行者名稱validityValidity,--證書有效期subjectName,--證書主體名稱subjectPublicKeyInfoSubjectPublicKeyInfo,--證書公鑰issuerUniqueID[1]IMPLICITUniqueIdentifierOPTIONAL,--證書發(fā)行者ID(可選),只在證書版本2、3中才有subjectUniqueID[2]IMPLICITUniqueIdentifierOPTIONAL,--證書主體ID(可選),只在證書版本2、3中才有extensions[3]EXPLICITExtensionsOPTIONAL--證書擴展段(可選),只在證書版本2、3中才有}Version::=INTEGER{v1(0),v2(1),v3(2)}7/8/200353Internet安全協(xié)議及標準PER–PackedEncodingRulesApplication1Application2110Age::=INTEGER(0..7)firstGradeAge::=6totallengthof3bits同BER相同的是:PER也獨立于機器、語言及應用程序內部表示不同于BER的是:在PER中,tags從不傳送,length和value如果雙方都知道,也不需傳送可節(jié)約帶寬,適用于在Internet上傳送audio和video數(shù)據、air-ground通信等7/8/200354Internet安全協(xié)議及標準XER–XMLEncodingRules同BER/PER相同的是:XER也獨立于機器、語言及應用程序內部表示XER清晰,可讀性強,甚至可以不需要工具帶寬占用大Application1Application2<Age>6</Age>Age::=INTEGER(0..7)firstGradeAge::=6totallengthof12octets7/8/200355Internet安全協(xié)議及標準ASN.1的使用通過適當?shù)霓D換,ASN.1可以在常用語言中使用C/C++,Java,IDL,etc7/8/200356Internet安全協(xié)議及標準ASN.1開發(fā)流程ASN.1SyntaxASN.1CompilerCHeaderFileApplicationSourceCodeincludeC/C++CompilerEncoder/DecoderLibrariesLinkerExecutableApplication7/8/200357Internet安全協(xié)議及標準ASN.1的使用示例
ASN.1定義通過適當?shù)霓D換,ASN.1可以在常用語言中使用C/C++,Java,IDL,etc例:ASN.1定義:PersonalInfo::=SEQUENCE{marriedBOOLEAN,ageINTEGER(0..120),namePrintableString}TAnotherINT::=INTEGERTType1::=SEQUENCEOFPersonalInfoTType2::=SET{type1TType1,another[0]TAnotherINT,age[1]INTEGERDEFAULT123}TType3::=SETOFTType27/8/200358Internet安全協(xié)議及標準ASN.1的使用示例
生成的C語言數(shù)據結構例(續(xù)1):由esnacc生成的C語言數(shù)據結構:typedefstructPersonalInfo/*SEQUENCE*/{AsnBoolmarried;/*BOOLEAN*/AsnIntage;/*INTEGER(0..120)*/PrintableStringname;/*PrintableString*/}PersonalInfo;typedefAsnIntTAnotherINT;/*INTEGER*/typedefAsnListTType1;/*SEQUENCEOFPersonalInfo*/typedefstructTType2/*SET*/{TType1*type1;/*TType1*/TAnotherINTanother;/*[0]TAnotherINT*/AsnInt*age;/*[1]INTEGERDEFAULT123*/}TType2;typedefAsnListTType3;/*SETOFTType2*/7/8/200359Internet安全協(xié)議及標準ASN.1的使用示例
編碼/譯碼例(續(xù)2):編碼/譯碼:AsnLenDEncPersonalInfoContent(GenBuf*b,PersonalInfo*v);voidDDecPersonalInfoContent(GenBuf*b,AsnTagtagId0,
AsnLenelmtLen0,PersonalInfo*v,
AsnLen*bytesDecoded,ENV_TYPEenv);#defineDEncTAnotherINTContentDEncAsnIntContent#defineDDecTAnotherINTContentDDecAsnIntContentAsnLenDEncTType1Content(GenBuf*b,TType1*v);voidDDecTType1Content(GenBuf*b,AsnTagtagId0,
AsnLenelmtLen0,TType1*v,
AsnLen*bytesDecoded,ENV_TYPEenv);AsnLenDEncTType2Content(GenBuf*b,TType2*v);voidDDecTType2Content(GenBuf*b,AsnTagtagId0,
AsnLenelmtLen0,TType2*v,
AsnLen*bytesDecoded,ENV_TYPEenv);AsnLenDEncTType3Content(GenBuf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 親子教育居間勞務協(xié)議
- 2025年度北京市社區(qū)醫(yī)療服務合作協(xié)議范本
- 化妝品生產質量管理體系手冊
- 垃圾處理廠工程居間協(xié)議
- 季度銷售成績回顧與未來展望報告
- 煙葉項目可行性研究報告
- 循環(huán)經濟產業(yè)園項目可行性報告
- 電子雜志制作與推廣手冊
- 智能家居行業(yè)運營指南
- 個人學習成長計劃表之階段性目標
- 上海市建設工程施工圖設計文件勘察設計質量疑難問題匯編(2024 版)
- 危險化學品生產企業(yè)安全生產標準化標準2024
- 凸透鏡成像規(guī)律動畫可拖動最佳版swf
- 課件:企業(yè)經濟統(tǒng)計學
- PPT模板 上海外國語大學
- 共享充電寶項目服務合同
- 高中物理新課程標準解讀魯世波
- 小學食堂滿意度問卷調查表
- 包裝SOP作業(yè)指導書
- IC厭氧反應器計算方式
- 接待手冊(范本)
評論
0/150
提交評論