Project.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫ﭼﻜﻴﺪة ﻣﻮﺿﻮﻋﺎت ﭘﻴﺸﻨﻬﺎدي ﺑﺮاي ﭘﺮوژه درس اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫‪ --‬ﻣﺤﻤﺪ ﺻﺎدق دوﺳﺘﻲ‬
‫‪1‬‬
‫ﻣﻘﺪﻣﻪ‬
‫اﻳﻦ ﻣﺴﺘﻨﺪ ﺑﻪ ﻣﻨﻈﻮر ﻛﻤﻚ ﺑﻪ ﺷﻤﺎ در اﻧﺘﺨﺎب ﻣﻮﺿﻮع ﭘﺮوژة ﭘﺎﻳﺎﻧﻲ درس ﺗﻬﻴﻪ ﺷـﺪه اﺳـﺖ‪ .‬ﺷـﻤﺎ ﺑﺎﻳـﺪ ﻣﻮﺿـﻮع‬
‫دﻟﺨﻮاه ﺧﻮد را اﻧﺘﺨﺎب ﻛﺮده و ‪ proposal‬آن را ﺑﺮاي ﻣﻦ ارﺳﺎل ﻧﻤﺎﻳﻴﺪ‪ Proposal .‬ﺑﺎﻳﺪ ﺷﺎﻣﻞ ﻣﻮارد زﻳﺮ ﺑﺎﺷﺪ‪:‬‬
‫‪ .1‬ﻣﻮﺿﻮع ﭘﺮوژه‪ :‬ﻣﻮﺿﻮع ﭘﺮوژه را ﻣﻲﺗﻮاﻧﻴﺪ از ﻣﻴﺎن ﻣﻮﺿﻮﻋﺎت ﭘﻴﺸﻨﻬﺎدي اﻳﻦ ﻣﺴﺘﻨﺪ اﻧﺘﺨﺎب ﻛـﺮده و ﻳـﺎ‬
‫ﻣﻮﺿﻮع دﻟﺨﻮاه ﺧﻮد را اراﺋﻪ دﻫﻴﺪ‪ .‬در ﺣﺎﻟﺖ دوم‪ ،‬ﻣﻮﺿﻮع ﭘﻴﺸﻨﻬﺎدي ﺑﺎﻳﺪ )از ﻧﻈـﺮ ﭘﻴﭽﻴـﺪﮔﻲ( در ﺣـﺪ‬
‫ﭘﺮوژهﻫﺎي اﻳﻦ ﻣﺴﺘﻨﺪ ﺑﺎﺷﺪ‪ .‬‬
‫‪ .2‬ﻧﺎم‪ ،‬ﻧﺎم ﺧﺎﻧﻮادﮔﻲ‪ ،‬آدرس ‪ e‐mail‬و ﺷﻤﺎرة داﻧﺸﺠﻮﻳﻲ اﻋﻀﺎي ﮔﺮوه‪ :‬ﭘﺮوژهﻫﺎ را ﻣﻲﺗﻮاﻧﻴﺪ ﺑـﻪ ﺻـﻮرت‬
‫اﻧﻔﺮادي ﻳﺎ دو ﻧﻔﺮي اﻧﺠﺎم دﻫﻴﺪ‪ .‬اﻟﺒﺘﻪ در ﺻﻮرﺗﻲ ﻛﻪ ‪ proposal‬ﺷﻤﺎ ﭘﺮوژة ﭘﻴﭽﻴﺪهﺗﺮي را ﺗﻌﺮﻳـﻒ ﻛﻨـﺪ‪،‬‬
‫اﻣﻜﺎن اﻧﺠﺎم آن در ﮔﺮوﻫﻬﺎي ﺳﻪ ﻧﻔﺮه ﻫﻢ وﺟﻮد دارد‪ .‬‬
‫‪ .3‬ﭼﻜﻴﺪة ﭘﺮوژه‪ :‬اﮔﺮ ﭘﺮوژة ﺟﺪﻳﺪي ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﻴﺪ )ﻳﻌﻨﻲ ﭘﺮوژهاي ﻛـﻪ در اﻳـﻦ ﻣﺴـﺘﻨﺪ ﺑـﻪ آن اﺷـﺎرهاي‬
‫ﻧﺸﺪه اﺳﺖ( ﻻزم اﺳﺖ ﺑﺮاي آن ﭼﻜﻴﺪهاي ﺑﻨﻮﻳﺴﻴﺪ؛ ﻫﻤﺎﻧﻨﺪ آﻧﭽﻪ در اﻳﻦ ﻣﺴﺘﻨﺪ ﺧﻮاﻫﻴﺪ دﻳﺪ‪ .‬‬
‫‪ .4‬ﺗﻌﺮﻳﻒ ﻛﺎﻣﻞ ﭘﺮوژه‪ :‬وﻳﮋﮔﻴﻬﺎي ﭘﺮوژة ﺧـﻮد را ﺑـﻪ دﻗـﺖ ﺗﻮﺻـﻴﻒ ﻛﻨﻴـﺪ‪ .‬اﻳـﻦ ﺑﺨـﺶ ﻣﺒﻨـﺎي ﭘـﺬﻳﺮش‬
‫‪ ،proposal‬و ﻧﻴﺰ ﻣﺒﻨﺎي ارزﻳﺎﺑﻲ ﭘﺮوژة ﺷﻤﺎﺳﺖ‪ .‬در اﻳﻨﺠﺎ ﺑﺎﻳﺪ ﻧﺸﺎن دﻫﻴﺪ ﻛﻪ ﻣﺒﺎﻧﻲ ﺗﺌـﻮري ﭘـﺮوژه را ﺑـﻪ‬
‫درﺳﺘﻲ و در ﺣﺪ ﻗﺎﺑﻞ ﻗﺒﻮﻟﻲ ﻓﻬﻤﻴﺪهاﻳﺪ‪ .‬ﺗﻮﺻﻴﻪ ﻣﻲﺷﻮد ﻛﻪ ﻣﺮاﺟﻌـﻲ را ﻛـﻪ ﺑـﺮاي ﻧﻮﺷـﺘﻦ اﻳـﻦ ﺑﺨـﺶ‬
‫اﺳﺘﻔﺎده ﻛﺮدهاﻳﺪ ﺑﻨﻮﻳﺴﻴﺪ‪ .‬در اﻳﻦ ﺑﺨﺶ ﻣﻲﺗﻮاﻧﻴﺪ ﻣﻮاردي را ﺑﻪ ﺷﻜﻞ »اﺧﺘﻴﺎري« ﻣﺸﺨﺺ ﻛﻨﻴـﺪ؛ ﻛـﻪ در‬
‫در ﺻﻮرت ﭘﺬﻳﺮش ‪ ،proposal‬ﺑﺎ ﭘﻴﺎده ﺳﺎزي اﻳﻦ ﻣﻮارد ﺑﻪ ﺷﻤﺎ ﻧﻤﺮة اﺿﺎﻓﻲ ﺗﻌﻠﻖ ﻣﻲﮔﻴﺮد‪ .‬‬
‫‪ .5‬ﻣﺮاﺟﻊ‪ :‬در ﺻﻮرت وﺟﻮد‪ .‬‬
‫‪Proposal‬ﻫﺎ ﺑﺎﻳﺪ ﺗﺎ ﺗﺎرﻳﺦ ‪ 86/1/31‬ﺗﺼﻮﻳﺐ ﺷﻮﻧﺪ‪ .‬از آﻧﺠﺎ ﻛﻪ‪:‬‬
‫•‬
‫ﻣﻤﻜﻦ اﺳﺖ ﭘﻴﺸﻨﻬﺎد ﭘﺮوژة ﺷﻤﺎ رد ﺷﻮد؛ و ﻧﻴﺰ‪،‬‬
‫•‬
‫روي ﻫﺮ ﻣﻮﺿﻮع ﺣﺪاﻛﺜﺮ ‪ 5‬ﮔﺮوه ﻣﻲﺗﻮاﻧﻨﺪ ﻛﺎر ﻛﻨﻨﺪ؛ ‪ ‬‬
‫ﺑﻬﺘﺮ اﺳﺖ ‪ proposal‬ﺧﻮد را ﭘﻴﺶ از اﻳﻦ ﺗﺎرﻳﺦ ارﺳﺎل ﻛﻨﻴﺪ‪ .‬ﮔﺮوﻫﺎﻳﻲ ﻛﻪ ﺗﺎ ﭘﻴﺶ از ‪ 29‬اﺳﻔﻨﺪ ‪ proposal‬ﺧـﻮد را‬
‫ارﺳﺎل ﻛﻨﻨﺪ‪ ،‬اﺣﺘﻤﻼً ﻧﺘﻴﺠﺔ ﺗﺼﻮﻳﺐ ﻳﺎ ﻋﺪم ﺗﺼﻮﻳﺐ را در ﺗﺎرﻳﺦ ‪ 29‬اﺳﻔﻨﺪ درﻳﺎﻓﺖ ﻣﻲﻛﻨﻨﺪ‪ .‬در ﻏﻴﺮ اﻳـﻦ ﺻـﻮرت‬
‫اﺣﺘﻤﺎﻻً اﻋﻼم ﻧﺘﻴﺠﻪ ﺑﻪ ﺑﻌﺪ از ﻋﻴﺪ ﻧﻮروز ﻣﻮﻛﻮل ﻣﻲﺷﻮد‪.‬‬
‫‪ 1-1‬ﻗﻮاﻋﺪ ارﺳﺎل ‪Proposal‬‬
‫‪E‐mail‬ﻫﺎي ﺧﻮد را ﻣﻄﺎﺑﻖ ﻗﻮاﻋﺪ زﻳﺮ ارﺳﺎل ﻛﻨﻴﺪ‪:‬‬
‫‪To: dousti_AT_ce_DOT_sharif_DOT_edu ‬‬
‫•‬
‫‪Subject: [NetSec_Proj] Team Name‐Project Title‐Version of Proposal ‬‬
‫•‬
‫‪Body: Name, student ID, and e‐mail address of team members. ‬‬
‫•‬
‫‪Attachment: A RAR’ed PDF file. The name of both RAR and PDF files should be the same as ‬‬
‫‪subject. The PDF file is your proposal, in Farsi. ‬‬
‫•‬
‫ﻣﺜﻼً اﮔﺮ ﻧﺎم ﺗﻴﻤﻲ ‪ SecuNet‬ﺑﻮده و ﭘﺮوژة ‪ Firewall‬را اﻧﺘﺨﺎب ﻛﺮده ﺑﺎﺷﺪ‪ ،‬و ﺑﺨﻮاﻫـﺪ ﻧﺨﺴـﺘﻴﻦ ﻧﺴـﺨﺔ‬
‫‪proposal‬‬
‫ﺧﻮد را اراﺋﻪ دﻫﺪ‪:‬‬
‫‪Subject: [NetSec_Proj] SecuNet‐Firewall‐v1 ‬‬
‫•‬
‫‪Attachment: SecuNet‐Firewall‐v1.rar ‬‬
‫•‬
‫‪ 1-1‬زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ و ﭘﻠﺘﻔﺮم )‪(Platform‬‬
‫ﻫﻴﭻ ﻣﺤﺪودﻳﺘﻲ در اﺳﺘﻔﺎده از زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻳﺎ ﭘﻠﺘﻔﺮم )وﻳﻨﺪوز‪ ،‬ﻟﻴﻨـﻮﻛﺲ‪ ،‬و ‪ (...‬وﺟـﻮد ﻧـﺪارد‪ .‬اﻟﺒﺘـﻪ ﺑﺎﻳـﺪ‬
‫زﺑﺎن و ﭘﻠﺘﻔﺮﻣﻲ را اﻧﺘﺨﺎب ﻛﻨﻴﺪ ﻛﻪ ﻫﻨﮕﺎم ﺗﺤﻮﻳﻞ ﭘﺮوژه دﭼﺎر ﻣﺸﻜﻞ ﻧﺸﻮﻳﺪ‪.‬‬
‫‪ 2-1‬اﺳﺘﻔﺎده از ﻛﺪ ﻧﺮم اﻓﺰارﻫﺎي ﻣﻨﺒﻊ ﺑﺎز )‪ (Open Source‬ﻳﺎ ﻣﺆﻟﻔﻪﻫﺎي )‪ (Component‬ﺗﺠﺎري‬
‫ﻫﺪف از اﻧﺠﺎم اﻳﻦ ﭘﺮوژهﻫﺎ اراﺋﺔ ﻛﺎر ﺟﺪﻳﺪي ﻧﻴﺴﺖ؛ ﻣﻤﻜﻦ اﺳﺖ ﻧﻤﻮﻧﻪﻫﺎي راﻳﮕـﺎن ﻳـﺎ ﺗﺠـﺎري زﻳـﺎدي از ﻫـﺮ‬
‫ﻣﻮﺿﻮع ﭘﻴﺪا ﺷﻮد‪ .‬ﺑﻨﺎﺑﺮاﻳﻦ در ﺣﺎﻟﺖ ﻛﻠﻲ اﺳﺘﻔﺎده از ﻛﺪ ﻧﺮم اﻓﺰارﻫﺎي ﻣﻨﺒﻊ ﺑﺎز ﻳﺎ ﻣﺆﻟﻔﻪﻫﺎي ﺗﺠﺎري ﻣﺠﺎز ﻧﻴﺴـﺖ‪،‬‬
‫ﻣﮕﺮ اﻳﻨﻜﻪ ﻳﻜﻲ از دو ﺷﺮط زﻳﺮ ﺑﺮ ﻗﺮار ﺑﺎﺷﺪ‪:‬‬
‫•‬
‫ﺗﺄﺛﻴﺮ اﻳﻨﮕﻮﻧﻪ ﻧﺮماﻓﺰارﻫﺎ در ‪ Business Logic‬ﺑﺮﻧﺎﻣﺔ ﺷﻤﺎ ﺣﺪاﻛﺜﺮ ‪ %20‬ﺑﺎﺷﺪ؛ ‪ ‬‬
‫•‬
‫ﺷﻤﺎ در ‪ proposal‬ﺧﻮد ﻋﻨﻮان ﻛﺮده ﺑﺎﺷﻴﺪ ﻛﻪ ﻗﺼﺪﺗﺎن ﺑﻬﺒﻮد دادن ﻳﻚ ﻧﺮماﻓﺰار ﺧﺎص اﺳﺖ؛ و‬
‫‪proposal‬‬
‫ﺷﻤﺎ ﻣﻮرد ﭘﺬﻳﺮش ﻗﺮا ﮔﺮﻓﺘﻪ ﺑﺎﺷﺪ‪ .‬‬
‫در ﻫﺮ ﺣﺎﻟﺖ ﻻزم اﺳﺖ‪:‬‬
‫•‬
‫در ﻣﺴــﺘﻨﺪات ﻧﻬــﺎﻳﻲ ﭘــﺮوژة ﺧــﻮد )و در ﺻــﻮرت اﻣﻜــﺎن در ‪ (proposal‬ﺑــﻪ ﻫﺮﮔﻮﻧــﻪ اﺳــﺘﻔﺎده از ﻛــﺪ‬
‫ﻧﺮماﻓﺰارﻫﺎي ﻣﻨﺒﻊ ﺑﺎز ﻳﺎ ﻣﺆﻟﻔﻪﻫﺎي ﺗﺠﺎري اﺷﺎره ﻛﻨﻴﺪ؛ و‪ ،‬‬
‫•‬
‫ﻫﻨﮕﺎم ﺗﺤﻮﻳﻞ ﭘﺮوژه ﺗﺴﻠﻂ ﻛﺎﻓﻲ ﻫﻢ ﺑﺮ ﻛﺪ ﺧﻮد و ﻫﻢ ﺑﺮ ﻛﺪﻫﺎي ﺟﺎﻧﺒﻲ داﺷﺘﻪ ﺑﺎﺷﻴﺪ‪ .‬‬
‫‪ 3-1‬ﺗﺤﻮﻳﻞ ﭘﺮوژه‬
‫]اﺣﺘﻤﺎﻻً[ ﺗﺤﻮﻳﻞ ﭘﺮوژه در ﻧﻴﻤﺔ ﻧﺨﺴﺖ ﻣﺮداد ﻣﺎه‪ ،‬در ﺳﺎﻳﺖ داﻧﺸﻜﺪه و ﺑﻪ ﺻﻮرت ﺣﻀـﻮري ﺧﻮاﻫـﺪ ﺑـﻮد‪ .‬ﻫـﺮ‬
‫ﭘﺮوژه ﻋﻼوه ﺑﺮ ﻛﺪ‪ ،‬ﺑﺎﻳﺪ ﺷﺎﻣﻞ ﻣﺴـﺘﻨﺪاﺗﻲ ﺑـﻮده ﻛـﻪ در آن ﺗﻮﺻـﻴﻔﻲ از اﻟﮕﻮرﻳﺘﻤﻬـﺎ و ﭘﺮوﺗﻜﻠﻬـﺎ ﻣـﻮرد اﺳـﺘﻔﺎده‪،‬‬
‫ﻣﺸﻜﻼت اﺣﺘﻤﺎﻟﻲ و روﺷﻬﺎي ﺑﻬﺒﻮد آﻣﺪه ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻋﻼوه‪ ،‬ﻣﺴﺘﻨﺪ ﺑﺎﻳﺪ ﻧﻘﺶ ﻫﺮﻳﻚ از اﻋﻀﺎي ﺗﻴﻢ در ﺗﻮﻟﻴﺪ ﭘـﺮوژه‬
‫را ﻣﺸﺨﺺ ﻛﻨﺪ‪.‬‬
‫ﺟﺰﺋﻴﺎت ﺗﺤﻮﻳﻞ ﻣﺘﻌﺎﻗﺒﺎً اﻋﻼم ﻣﻲﺷﻮد‪.‬‬
‫‪ 4-1‬ارزﻳﺎﺑﻲ ‪ ‬‬
‫ارزﻳﺎﺑﻲ ﺑﺮ اﺳﺎس ﻣﻮارد زﻳﺮ اﻧﺠﺎم ﻣﻲﺷﻮد‪:‬‬
‫•‬
‫ارﺳﺎل ﺑﻪ ﻣﻮﻗﻊ ‪ proposal‬و ﻛﻴﻔﻴﺖ آن؛ ‪ ‬‬
‫•‬
‫ﻣﻴﺰان ﺗﻄﺎﺑﻖ ﭘﺮوژه ﺑﺎ ‪proposal‬؛ ‪ ‬‬
‫•‬
‫ﺗﺴﻠﻂ اﻋﻀﺎي ﮔﺮوه ﺑﺮ ﭘﺮوژه ﻫﻨﮕﺎم ﺗﺤﻮﻳﻞ )ﻫﺮ ﻋﻀﻮ ﺑﺎﻳﺪ ﺑﺮ ﺑﺨﺸﻲ ﻛﻪ ﺗﻘﺒﻞ ﻛﺮده ﻣﺴﻠﻂ ﺑﺎﺷﺪ(؛ ‪ ‬‬
‫•‬
‫اراﺋﺔ ﻣﺴﺘﻨﺪات ﻣﻨﺎﺳﺐ‪ .‬‬
‫ﻧﻜﺎت‪:‬‬
‫‪−‬‬
‫ﺑﺪﻳﻬﻲ اﺳﺖ ﻧﻤﺮة ﻫﻤﺔ اﻋﻀﺎي ﮔﺮوه اﻟﺰاﻣﺎً ﻳﻜﻲ ﻧﺨﻮاﻫﺪ ﺑﻮد‪ .‬‬
‫‪−‬‬
‫ﺑﻪ ﻓﻌﺎﻟﻴﺖ ﻣﻨﺎﺳﺐ در ﻫﺮﻳﻚ از ﻣﻮارد ﻓﻮق ﻧﻤﺮة اﺿﺎﻓﻲ ﺗﻌﻠﻖ ﻣﻲﮔﻴﺮد‪.‬‬
‫‪2‬‬
‫ﭼﻜﻴﺪة ﭘﺮوژهﻫﺎي ﭘﻴﺸﻨﻬﺎدي‬
‫در اﻳﻦ ﺑﺨﺶ ﺧﻼﺻﻪاي از ﺗﻌﺮﻳﻒ ﻫﺮ ﭘﺮوژه آورده ﺷﺪه اﺳﺖ‪ .‬ﺷـﻤﺎ ﻋـﻼوه ﺑـﺮ ﻧﻮﺷـﺘﻦ ﻛـﺪ ﭘـﺮوژه‪ ،‬ﺑﺎﻳـﺪ‬
‫‪Test ‬‬
‫‪Case‬ﻫﺎﻳﻲ را ﻧﻴﺰ ﺑﺮاي اﺛﺒﺎت درﺳﺘﻲ ﻛﺪ ﺧﻮد ﺗﻮﻟﻴﺪ ﻛﻨﻴﺪ‪ .‬ﺑﺮاي درﻳﺎﻓﺖ ﻣﺮاﺟﻌﻲ در ﻫﺮ ﻣـﻮرد ﻣـﻲﺗﻮاﻧﻴـﺪ ﺑـﻪ ﻣـﻦ‬
‫ﻣﺮاﺟﻌﻪ ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ 1-2‬ﺣﻔﺎظ ﺷﺨﺼﻲ )‪(Personal Firewall‬‬
‫ﺣﻔﺎﻇﻬﺎي ﺷﺨﺼﻲ ﻧﺮماﻓﺰارﻫﺎﻳﻲ ﻫﺴﺘﻨﺪ ﻛﻪ ﺗﺮاﻓﻴﻚ ورودي‪/‬ﺧﺮوﺟﻲ ﺑﻪ‪/‬از ﻳﻚ ﻣﻴﺰﺑﺎن ﻣﺘﺼﻞ ﺑﻪ ﺷـﺒﻜﻪ را ﭘـﻮﻳﺶ‬
‫ﻛﺮده و ﺑﺎ ﻳﻚ ﺳﺮي ﻗﻮاﻧﻴﻦ ﺗﻄﺒﻴﻖ ﻣﻲدﻫﻨﺪ‪ .‬ﺗﻨﻬﺎ ﺗﺮاﻓﻴﻜﻲ اﺟﺎزة ورود‪/‬ﺧﺮوج را داراﺳﺖ ﻛﻪ ﻣﻄﺎﺑﻖ ﻗـﻮاﻧﻴﻦ وﺿـﻊ‬
‫ﺷﺪه ﺗﻮﺳﻂ ﻛﺎرﺑﺮ ﺑﺎﺷﺪ‪.‬‬
‫ﺣﻔﺎﻇﻬﺎي ﺷﺨﺼﻲ ﻣﻲﺗﻮاﻧﻨﺪ در ﭼﻬﺎر ﻻﻳﻪ از ﭘﻨﺞ ﻻﻳﺔ ﻣﺪل ‪ TCP/IP‬ﻛﺎر ﻛﻨﻨﺪ‪ .‬ﻣﺜﺎﻟﻬﺎي زﻳﺮ اﻳﻦ ﻣﻮﺿـﻮع را روﺷـﻦ‬
‫ﻣﻲﻛﻨﻨﺪ‪:‬‬
‫•‬
‫ﻻﻳﺔ ‪ :Data Link‬ﺗﺮاﻓﻴﻚ ﻳﻚ آدرس ‪ MAC‬ﺧﺎص ﺑﻪ اﻳﻦ ﻣﻴﺰﺑﺎن ﻣﺴﺪود ﺷﻮد‪ .‬‬
‫•‬
‫ﻻﻳﺔ ﺷﺒﻜﻪ‪ :‬ﺗﺮاﻓﻴﻚ ﻳﻚ آدرس ‪ IP‬ﺧﺎص ﺑﻪ اﻳﻦ ﻣﻴﺰﺑﺎن ﻣﺴﺪود ﺷﻮد‪ .‬‬
‫•‬
‫ﻻﻳﺔ اﻧﺘﻘﺎل‪ :‬ﺗﺮاﻓﻴﻚ ‪ TCP‬ﺧﺮوﺟﻲ از اﻳﻦ ﻣﻴﺰﺑﺎن روي ﻳﻚ ﭘﻮرت ﺧﺎص ﻣﺴﺪود ﺷﻮد‪ .‬‬
‫•‬
‫ﻻﻳﺔ ﻛﺎرﺑﺮد‪ :‬ﺗﺮاﻓﻴﻚ ﻳﻚ ﺑﺮﻧﺎﻣﺔ ﺧﺎص ﺑﻪ ﺷﺒﻜﻪ ﻣﺴﺪود ﺷﻮد‪ .‬‬
‫ﺣﻔﺎﻇﻬﺎي ﺷﺨﺼﻲ اﻣﻜﺎن ﺗﻌﺮﻳﻒ ﻗﺎﻧﻮن روي ﭘﺮوﺗﻜﻠﻬﺎي ﻣﺸﻬﻮر را ﻧﻴﺰ دارﻧﺪ؛ ﻣـﺜﻼً ﻗـﺎﻧﻮﻧﻲ ﻛـﻪ ﺗﺮاﻓﻴـﻚ ورودي‬
‫‪) ECHO REQUEST‬ﻳﻌﻨﻲ ‪ (PING‬را ﻣﺴﺪود ﻛﻨﺪ‪.‬‬
‫ﺣﻔﺎﻇﻬﺎ ﻣﻤﻜﻦ اﺳﺖ داراي ﺣﺎﻟﺖ )‪ (Stateful‬ﺑﺎﺷﻨﺪ‪ .‬در اﻳﻦ ﺻﻮرت‪ ،‬اﮔﺮ ﺑﻪ ﺗﺮاﻓﻴـﻚ »رﻓـﺖ« اﺟـﺎزة ﺧـﺮوج داده‬
‫ﺷﻮد‪ ،‬ﻧﻴﺎزي ﺑﻪ ﺗﻌﺮﻳﻒ ﻗﺎﻧﻮن ﺑﺮاي ﺗﺮاﻓﻴﻚ »ﺑﺮﮔﺸﺖ« ﻧﻴﺴﺖ‪ ،‬و ﺣﻔﺎظ ﻣﻲﺗﻮاﻧﺪ ﺑﻪ ﻃﻮر ﻫﻮﺷﻤﻨﺪ ﺑـﻪ اﻳـﻦ ﺗﺮاﻓﻴـﻚ‬
‫اﺟﺎزة ورود دﻫﺪ )ﻣﻔﻬﻮم ‪.(session‬‬
‫ﻫﺪف از اﻳﻦ ﭘﺮوژه‪ ،‬ﭘﻴﺎده ﺳﺎزي ﻳﻚ ﺣﻔﺎظ ﺷﺨﺼﻲ ﺳﺎده اﺳﺖ‪ ،‬ﻛﻪ ﺑﻪ ﻛﺎرﺑﺮ اﺟﺎزه دﻫﺪ ﻗﻮاﻧﻴﻨﻲ را ﺑـﺮاي ﺑﺮرﺳـﻲ‬
‫ﺗﺮاﻓﻴﻚ وﺿﻊ ﻛﻨﺪ‪ .‬در ‪ proposal‬ﺧﻮد ﺑﺎﻳﺪ ﻧﻮع ﻗﻮاﻧﻴﻦ و ﭘﺮوﺗﻜﻠﻬﺎﻳﻲ را ﻛﻪ ﺣﻔﺎظ ﻗﺎدر اﺳﺖ ﺑﺎ آﻧﻬﺎ ﻛـﺎر ﻛﻨـﺪ‪ ،‬ﺑـﻪ‬
‫دﻗﺖ ﻣﺸﺨﺺ ﻛﻨﻴﺪ )ﺣﻔﺎظ ﺑﺎﻳﺪ در ‪ 4‬ﻻﻳﺔ ‪ TCP/IP‬ﻛﺎر ﻛﻨﺪ‪ ،‬و ﺣﺪاﻗﻞ ‪ 4‬ﭘﺮوﺗﻜﻞ ﻣﺸﻬﻮر را ﺗﺸـﺨﻴﺺ دﻫـﺪ(‪ .‬ﺑـﻪ‬
‫ﻣﻮارد زﻳﺮ ﻧﻤﺮة اﺿﺎﻓﻲ ﺗﻌﻠﻖ ﻣﻲﮔﻴﺮد‪:‬‬
‫•‬
‫ﺣﻔﺎظ ﺑﺘﻮاﻧﺪ ﺗﻘﺎﺿﺎي ﻳﻚ ﺑﺮﻧﺎﻣﺔ ﺟﺪﻳﺪ ﻣﺒﻨﻲ ﺑﺮ اﺗﺼﺎل ﺑﻪ ﺷﺒﻜﻪ را ﺗﺸﺨﻴﺺ داده و از ﻛﺎرﺑﺮ ﺳـﺆال ﻛﻨـﺪ‪.‬‬
‫ﻣﻨﻈﻮر از ﺑﺮﻧﺎﻣﺔ ﺟﺪﻳﺪ‪ ،‬ﺑﺮﻧﺎﻣﻪاي اﺳﺖ ﻛﻪ ﻛﺎرﺑﺮ اﺟﺎزة دﺳﺘﺮﺳﻲ ﻫﻤﻴﺸﮕﻲ آن ﺑﻪ ﺷـﺒﻜﻪ را ﺻـﺎدر ﻧﻜـﺮده‬
‫ﺑﺎﺷﺪ‪ .‬اﮔﺮ ﻛﺎرﺑﺮ ﭼﻨﻴﻦ اﺟﺎزهاي ﺻﺎدر ﻛﺮد‪ ،‬ﺣﻔﺎظ ﺑﺎﻳـﺪ ‪ signature‬ﺑﺮﻧﺎﻣـﻪ )ﻣﻨﻈـﻮر ‪ hash‬ﺑﺮﻧﺎﻣـﻪ اﺳـﺖ‪-‬‬
‫ﻓﺼﻞ ‪ 12‬ﻛﺘﺎب ‪ (Stallings‬را ﺑﻪ ﺟﺪول ﺑﺮﻧﺎﻣﻪﻫﺎي ﻣﺠﺎز ﺑﻴﻔﺰاﻳﺪ‪ .‬اﻳﻦ ﺟﺪول ﻧﺒﺎﻳﺪ ﺗﻮﺳﻂ ﺑﺮﻧﺎﻣﻪاي ﻏﻴـﺮ از‬
‫ﺣﻔﺎظ ﺗﻐﻴﻴﺮ داده ﺷﻮد )ﻣﺜﻼً ﺣﻔﺎظ ﻣﻲﺗﻮاﻧﺪ ‪ signature‬را اﻣﻀﺎ ﻛﻨﺪ(‪ .‬‬
‫•‬
‫ﺣﻔﺎظ داراي ﺣﺎﻟﺖ ﺑﺎﺷﺪ )در ‪ proposal‬ﻣﺸﺨﺺ ﻛﻨﻴﺪ ﻛﻪ ﺣﺎﻟﺖ ﭼﻪ ﻧﻮع ﺗﺮاﻓﻴﻚ ﻳﺎ ﭘﺮوﺗﻜﻠﻲ را ﻧﮕﻪ ﻣﻲ‪-‬‬
‫دارﻳﺪ(‪ .‬‬
‫•‬
‫ﺣﻔﺎظ ﺑﺘﻮاﻧﺪ ﻗﻮاﻧﻴﻦ را در ﻗﺎﻟﺐ ‪ XML‬ﺻﺎدر ﻳﺎ وارد ﻛﻨﺪ‪ .‬‬
‫راﻫﻨﻤﺎﻳﻲ‪ :‬ﺣﻔﺎظ ﻣﻨﺒﻊ ﺑﺎزي ﺑﻪ ﻧﺎم ‪ IPTables‬وﺟﻮد دارد ﻛﻪ ﻣﻲﺗﻮاﻧﻴﺪ از ﻛﺪ آن اﻟﻬﺎم ﺑﮕﻴﺮﻳﺪ‪ .‬ﻫﻤﭽﻨـﻴﻦ ﻣـﻲﺗﻮاﻧﻴـﺪ‬
‫ﻓﺼﻞ ‪ 20‬ﻛﺘﺎب ‪ Stallings‬را ﺑﺒﻴﻨﻴﺪ‪.‬‬
‫‪ 2-2‬ﺳﻴﺴﺘﻢ ﺗﺸﺨﻴﺺ ﻧﻔﻮذ )‪(IDS = Intrusion Detection System‬‬
‫‪ IDS‬اﺑﺰاري اﺳﺖ ﻛﻪ رﺧﻨﺔ )‪ (penetration‬ﻣﻬﺎﺟﻤﻴﻦ ﺑـﻪ ﺳﻴﺴـﺘﻢ ﻳـﺎ اﻧـﻮاع دﻳﮕـﺮي از ﻧﻘـﺾ ﺳﻴﺎﺳـﺘﻬﺎي اﻣﻨﻴﺘـﻲ‬
‫)‪ (security policies‬را اﻋﻼم ﻣﻲﻛﻨﺪ‪.‬‬
‫‪IDS‬ﻫـﺎ دو دﺳـﺘﻪاﻧـﺪ‪ IDS :‬ﻣﻴﺰﺑـﺎن )‪ ،(HIDS = Host‐based IDS‬و ‪ IDS‬ﺷـﺒﻜﻪ )‪ .(NIDS = Network‐based IDS‬ﻧـﻮع‬
‫ﻧﺨﺴﺖ‪ ،‬ﻧﻔﻮذ ﺑﻪ ﻳﻚ ﻣﻴﺰﺑﺎن ﺷﺒﻜﻪ را ﺗﺸﺨﻴﺺ ﻣﻲدﻫﺪ؛ ﺣﺎل آﻧﻜﻪ ﻧﻮع دوم ﻧﻔﻮذ ﺑﻪ ﺧﻮد ﺷﺒﻜﻪ را ﺗﺸﺨﻴﺺ ﻣـﻲ‪-‬‬
‫دﻫﺪ‪ .‬اﻳﻦ دو ﻣﻜﻤﻞ ﻳﻜﺪﻳﮕﺮﻧﺪ‪ ،‬و ﻫﻴﭻ ﻳﻚ ﺑﺮ دﻳﮕﺮي ﺑﺮﺗﺮي ﻧﺪارد‪.‬‬
‫از ﻳﻚ ﻧﻈﺮ دﻳﮕﺮ ﻣﻲﺗﻮان ‪IDS‬ﻫﺎ را ﺑﻪ دو دﺳﺘﺔ دﻳﮕﺮ ﺗﻘﺴﻴﻢ ﻛﺮد‪ ،Signature‐based :‬و ‪ .Anomaly‐based‬ﻧـﻮع اول‬
‫ﭘﺎﻳﮕﺎه دادهاي از ﻋﻼﺋﻢ )‪ (signatures‬ﺣﻤﻼت دارد‪ ،‬و ﺗﺮاﻓﻴﻚ را ﺑﺎ آن ﺗﻄﺎﺑﻖ ﻣﻲدﻫﺪ‪ .‬در ﻧﻮع دوم‪ ،‬ﻫﺮﮔﺎه ﺗﺮاﻓﻴﻚ‬
‫از ﺣﺎﻟﺖ ﻋﺎدي ﺧﺎرج ﺷﺪ )‪ (anomaly‬ﺑﻪ ﻛﺎرﺑﺮ ﻫﺸﺪار ﻣﻲدﻫﺪ‪.‬‬
‫ﻫﺪف از اﻳﻦ ﭘﺮوژه ﭘﻴﺎده ﺳﺎزي ﻳﻚ ‪ Signature‐based HIDS‬ﺳﺎده اﺳﺖ‪ .‬ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر ﺑﺎﻳﺪ ﻛﺪي ﺑﻨﻮﻳﺴـﻴﺪ ﻛـﻪ‬
‫ﺣﺪاﻗﻞ ‪ 4‬ﺣﻤﻠﺔ ﻣﺸﻬﻮر را ﺗﺸﺨﻴﺺ داده و ﺑﻪ ﻛﺎرﺑﺮ ﻫﺸﺪار دﻫﺪ‪ .‬ﻣﺜﺎﻟﻬﺎﻳﻲ از ﺣﻤﻼت ﻣﺸﻬﻮر ﻋﺒﺎرﺗﻨﺪ از‪:‬‬
‫‪Port Scans ‬‬
‫•‬
‫‪TCP SYN Flooding ‬‬
‫•‬
‫‪Smurf Attack ‬‬
‫•‬
‫‪Stacheldraht1 Attack ‬‬
‫•‬
‫در ‪ proposal‬ﺧﻮد ﻧﻮع ﺣﻤﻼﺗﻲ را ﻛﻪ ‪ HIDS‬ﺷﻤﺎ ﺗﺸﺨﻴﺺ ﺧﻮاﻫﺪ داد ذﻛﺮ ﻛﻨﻴﺪ‪ .‬ﺑﻪ ﻣﻮارد زﻳﺮ ﻧﻤﺮة اﺿﺎﻓﻲ ﺗﻌﻠـﻖ‬
‫ﻣﻲﮔﻴﺮد‪:‬‬
‫•‬
‫‪ signature DB‬اﺑﺰار ﺷﻤﺎ ‪ pluggable‬ﺑﺎﺷﺪ )ﻳﻌﻨﻲ ﺑﺘﻮان در ﺻـﻮرت ﻛﺸـﻒ ﺣﻤﻠـﺔ ﺟﺪﻳـﺪ‪ signature ،‬آن‬
‫ﺣﻤﻠﻪ را ﺑﻪ ﭘﺎﻳﮕﺎه دادة ‪ HIDS‬اﺿﺎﻓﻪ ﻛـﺮد(‪ .‬ﺑـﺮاي اﻳـﻦ ﻣﻨﻈـﻮر ﺑﺎﻳـﺪ از ﻗـﺎﻟﺒﻲ ﻧﻈﻴـﺮ ‪ XML‬ﺑـﺮاي ﺗﻌﺮﻳـﻒ‬
‫‪ signature‬ﻫﺎ اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﺪ‪ ،‬و اﻳﻦ ﻗﺎﻟﺐ را ﻣﺴﺘﻨﺪ ﻛﻨﻴﺪ‪ .‬‬
‫•‬
‫‪ HIDS‬ﺷﻤﺎ ﺑﺘﻮاﻧﺪ ﺑﺮﺧﻲ ﺣﻤﻼت را ﺧﻨﺜﻲ ﻛﻨﺪ‪ .‬ﻣﺜﻼً ﺑﺎ ارﺳـﺎل ﺑﺴـﺘﺔ ‪ ،TCP FIN‬ﻳـﻚ اﺗﺼـﺎل ‪ TCP‬را ﻗﻄـﻊ‬
‫ﻧﻤﺎﻳﺪ‪.‬‬
‫راﻫﻨﻤﺎﻳﻲ‪ IDS :‬ﻣﻨﺒﻊ ﺑﺎزي ﺑﻪ ﻧﺎم ‪ Snort‬وﺟﻮد دارد ﻛﻪ ﻣﻲﺗﻮاﻧﻴﺪ از ﻛﺪ آن اﻟﻬﺎم ﺑﮕﻴﺮﻳﺪ‪ .‬در ﻣﻮرد ارﺳﺎل ﺑﺴـﺘﻪﻫـﺎي‬
‫‪FIN‬‬
‫‪ ،TCP ‬ﻣﻲﺗﻮاﻧﻴﺪ اﺑﺰار ‪ cutter‬ﻳﺎ ‪ tcpkill‬را ﺑﺒﻴﻨﻴﺪ‪ .‬ﻫﻤﭽﻨﻴﻦ ﻣﻲﺗﻮاﻧﻴﺪ ﺑـﻪ ﻓﺼـﻞ ‪ 18‬ﻛﺘـﺎب ‪ Stallings‬را ﻣﺮاﺟﻌـﻪ‬
‫ﻛﻨﻴﺪ‪.‬‬
‫‪ 3-2‬اﺑﺰار ﭘﻮﻳﺶ آﺳﻴﺐ ﭘﺬﻳﺮي )‪(Vulnerability Scanning Tool‬‬
‫ﻋﻠﻴﺮﻏﻢ ﺗﻼﺷﻬﺎي ﺑﺴﻴﺎر ﺑﺮاي اﻳﻤﻦ ﻧﮕﻪ داﺷﺘﻦ ﺳﻴﺴﺘﻤﻬﺎ در ﺑﺮاﺑﺮ ﺧﻄﺮ ﺣﻤـﻼت‪ ،‬ﮔـﺎه ﺑﺮﺧـﻲ از آﺳـﻴﺐ ﭘـﺬﻳﺮﻳﻬﺎ‬
‫ﻧﺎدﻳﺪه ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮﻧﺪ‪ .‬ﺑﺮاي ﻛﻤﻚ ﺑﻪ ﻣﺴﺌﻮﻟﻴﻦ ﺳﻴﺴﺘﻢ‪/‬ﺷﺒﻜﻪ )و ﻧﻴﺰ‪ ،‬ﻧﻔﻮذﮔﺮﻫﺎ!(‪ ،‬اﺑﺰارﻫﺎﻳﻲ ﺑﻪ وﺟﻮد آﻣﺪهاﻧـﺪ ﻛـﻪ‬
‫ﻣﻴﺰﺑﺎن ﺟﺎري )‪ (local‬ﻳﺎ ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻣﻴﺰﺑﺎن راه دور )‪ (remote‬را ﭘـﻮﻳﺶ ﻛـﺮده و آﺳـﻴﺐ ﭘـﺬﻳﺮﻳﻬﺎي اﺣﺘﻤـﺎﻟﻲ را‬
‫ﮔﺰارش‬
‫ﻣﻲدﻫﻨﺪ‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ 1‬اﻳﻦ واژه آﻟﻤﺎﻧﻲ و ﺑﻪ ﻣﻌﻨﺎي »ﺳﻴﻢ ﺧﺎردار« اﺳﺖ‪ .‬ﺗﻠﻔﻆ آن »اﺷﺘﺨﻞ درات« ﻣﻲﺑﺎﺷﺪ‪.‬‬
‫ﻫﺪف از اﻳﻦ ﭘﺮوژه‪ ،‬ﻃﺮاﺣﻲ ﭼﻨﻴﻦ اﺑﺰاري اﺳﺖ‪ .‬اﺑﺰار ﭘﻮﻳﺶ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺘﻮاﻧﺪ ﺣﺪاﻗﻞ ‪ 4‬ﻣﻮرد آﺳﻴﺐ ﭘـﺬﻳﺮي را در‬
‫ﻣﻴﺰﺑﺎﻧﻬﺎي ﺟﺎري ﻳﺎ راه دور ﺑﺮرﺳﻲ و وﺟﻮد ﻳﺎ ﻋﺪم آﻧﻬﺎ را ﮔﺰارش ﻛﻨﺪ‪ .‬ﻣﺜﺎﻟﻬﺎي از آﺳﻴﺐ ﭘﺬﻳﺮي ﻋﺒﺎرﺗﻨﺪ از‪:‬‬
‫•‬
‫ﭘﻮرﺗﻬﺎي ﺑﺎز ‪ ‬‬
‫•‬
‫ﻋﺪم وﺟﻮد ﺿﺪ وﻳﺮوس )روي ﻣﻴﺰﺑﺎن ﺟﺎري( ‪ ‬‬
‫•‬
‫ﻋﺪم وﺟﻮد ﺣﻔﺎظ )روي ﻣﻴﺰﺑﺎن ﺟﺎري( ‪ ‬‬
‫•‬
‫ﻛﺸﻒ ﻧﺮم اﻓﺰار ﺧﺎﺻﻲ ﻛﻪ ﻣﺸﻬﻮر ﺑﻪ داﺷﺘﻦ اﻳﺮاد اﻣﻨﻴﺘﻲ اﺳﺖ )ﻣﺜﻼً ‪ Windows XP‬ﻗﺒﻞ از ‪ .(SP1‬‬
‫در ‪ proposal‬ﺧﻮد ﺑﻪ ﻧﻮع آﺳﻴﺐ ﭘﺬﻳﺮﻳﻬﺎﻳﻲ ﻛﻪ اﺑﺰار ﺷﻤﺎ ﻗﺎدر ﺑﻪ ﻛﺸﻒ آﻧﻬﺎﺳﺖ اﺷﺎره ﻛﻨﻴﺪ‪.‬‬
‫ﺑﻪ ﻣﻮارد زﻳﺮ ﻧﻤﺮة اﺿﺎﻓﻲ ﺗﻌﻠﻖ ﻣﻲﮔﻴﺮد‪:‬‬
‫•‬
‫ﭘﻮﻳﺶ ﺑﻪ ﺻﻮرت ‪ :Real Time‬اﺑﺰار ﺷﻤﺎ ﺑﺘﻮاﻧﺪ در ﭘﺸﺖ ﺻﺤﻨﻪ ﺳﻴﺴﺘﻢ ﺟﺎري را زﻳـﺮ ﻧﻈـﺮ ﺑﮕﻴـﺮد‪ ،‬و در‬
‫ﺻﻮرت ﻓﻌﺎل ﺷﺪن ﻳﻚ آﺳﻴﺐ ﭘﺬﻳﺮي )ﻣﺜﻼً ﺑﺎز ﺷﺪن ﭘﻮرت‪ ،‬ﻏﻴﺮ ﻓﻌﺎل ﻳﺎ ‪ uninstall‬ﺷﺪن ﺿﺪ وﻳﺮوس ﻳﺎ‬
‫ﺣﻔﺎظ‪ ،‬و ‪ (...‬آن را ﮔﺰارش ﻛﻨﺪ‪ .‬‬
‫•‬
‫‪ Vulnerability DB‬اﺑﺰار ﺷﻤﺎ ‪ pluggable‬ﺑﺎﺷﺪ )ﻳﻌﻨـﻲ ﺑﺘـﻮان در ﺻـﻮرت ﻛﺸـﻒ آﺳـﻴﺐ ﭘـﺬﻳﺮي ﺟﺪﻳـﺪ‪،‬‬
‫‪ signature‬آن را ﺑﻪ ﭘﺎﻳﮕﺎه دادة ﭘﻮﻳﺸﮕﺮ اﺿﺎﻓﻪ ﻛﺮد(‪ .‬ﺑﺮاي اﻳـﻦ ﻣﻨﻈـﻮر ﺑﺎﻳـﺪ از ﻗـﺎﻟﺒﻲ ﻧﻈﻴـﺮ ‪ XML‬ﺑـﺮاي‬
‫ﺗﻌﺮﻳﻒ ‪ signature‬ﻫﺎ اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﺪ‪ ،‬و اﻳﻦ ﻗﺎﻟﺐ را ﻣﺴﺘﻨﺪ ﻛﻨﻴﺪ‪ .‬‬
‫راﻫﻨﻤﺎﻳﻲ‪ :‬اﺑﺰارﻫﺎي ﭘﻮﻳﺸﻲ ﻧﻈﻴﺮ ‪ ،Nessus ،NMap‬و ‪ AOL Active Security Monitor‬وﺟﻮد دارﻧﺪ ﻛﻪ ﻣـﻲﺗﻮاﻧﻴـﺪ از‬
‫آﻧﻬﺎ اﻟﻬﺎم ﺑﮕﻴﺮﻳﺪ‪.‬‬
‫‪ 4-2‬اﺑﺰار ﺻﺪور ﮔﻮاﻫﻲ دﻳﺠﻴﺘﺎل )‪(Digital Certificate Issuing Tool‬‬
‫در اﻳﻦ ﭘﺮوژه اﺑﺰاري ﭘﻴﺎدهﺳﺎزي ﻣﻲﺷﻮد ﻛﻪ ﺑﺎ درﻳﺎﻓﺖ ﺑﺮﺧﻲ اﻗﻼم اﻃﻼﻋﺎﺗﻲ از ﻛﺎرﺑﺮ )ﻧﻈﻴﺮ ﻧـﺎم‪ ،‬ﻧـﺎم ﺧـﺎﻧﻮادﮔﻲ‪،‬‬
‫ﻧﺎم ﺳﺎزﻣﺎن‪ ،‬آدرس ‪ ،e‐mail‬و ‪ (...‬ﻳﻚ ﮔﻮاﻫﻲ ‪ X.509v1‬ﺑﺮاي او ﺻـﺎدر ﻛﻨـﺪ )ﺑﺨـﺶ ‪ 2-14‬از ﻛﺘـﺎب ‪ Stallings‬را‬
‫ﺑﺒﻴﻨﻴﺪ(‪ .‬اﻧﺘﺨﺎب ﻧﺴﺨﺔ ‪ 1‬اﺳﺘﺎﻧﺪارد ‪ X.509‬ﺑﻪ ﻣﻨﻈﻮر ﺳﺎدﮔﻲ آن ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ‪.‬‬
‫اﻗــﻼم اﻃﻼﻋــﺎﺗﻲ ﻳــﻚ ﮔــﻮاﻫﻲ ‪ X.509‬در ﻗﺎﻟــﺐ ‪ (Distinguished Encoding Rules) DER‬از اﺳــﺘﺎﻧﺪارد‬
‫‪ASN.1‬‬
‫)‪ (Abstract Syntax Notation One‬ﻛﺪ ﻣﻲﺷﻮﻧﺪ‪ ASN.1 .‬در ﺳﺎل ‪ 1984‬ﺑﺮاي ﻳﻜﭙﺎرﭼﻪ ﻧﻤـﻮدن ﻧﻤـﺎﻳﺶ و ﻛـﺪﻳﻨﮓ‬
‫اﻃﻼﻋﺎت ﺗﻮﺳﻂ ‪ ITU‐T‬و ‪ ISO‬ﺑﻪ وﺟﻮد آﻣﺪ‪ ،‬و اﻣـﺮوزه در ﺑﺴـﻴﺎري از اﺳـﺘﺎﻧﺪاردﻫﺎي ﻣﺨـﺎﺑﺮاﺗﻲ و ﻣﻮﺑﺎﻳـﻞ‪ ،‬و در‬
‫ﺗﻌﺮﻳﻒ ﭘﺮوﺗﻜﻠﻬﺎ )ﺑﺮﺧﻲ از ‪RFC‬ﻫﺎ( ﻛﺎرﺑﺮد دارد‪ .‬ﻫﺪف از اﻳـﻦ ﭘـﺮوژه آﺷـﻨﺎﻳﻲ ﺑـﺎ ‪ ،DER ،ASN.1‬و ‪ X.509‬اﺳـﺖ‪.‬‬
‫ﺑﻨﺎﺑﺮاﻳﻦ در اﻳﻦ ﭘﺮوژه ﻧﻤﻲﺗﻮاﻧﻴﺪ از ‪ API‬ﻫﺎي ﻣﻮﺟﻮد ﺑﺮاي ﺻﺪور ﮔﻮاﻫﻲ اﺳـﺘﻔﺎده ﻛﻨﻴـﺪ؛ و ﺑﺎﻳـﺪ ﻛـﺪ ﻣﺮﺑـﻮط ﺑـﻪ‬
‫‪ ،DER ،ASN.1‬و ‪ X.509‬را ﺧﻮدﺗﺎن ﺑﻨﻮﻳﺴﻴﺪ‪.‬‬
‫ﺑﻪ ﻣﻮارد زﻳﺮ ﻧﻤﺮة اﺿﺎﻓﻲ ﺗﻌﻠﻖ ﻣﻲﮔﻴﺮد‪:‬‬
‫•‬
‫ﭘﺸﺘﻴﺒﺎﻧﻲ از ‪Certificate Chains‬؛ ‪ ‬‬
‫•‬
‫ﭘﺸﺘﻴﺒﺎﻧﻲ از ‪X.509v3‬؛ ‪ ‬‬
‫•‬
‫ﭘﺸﺘﻴﺒﺎﻧﻲ از ‪CRL‬ﻫﺎ‪.‬‬
‫راﻫﻨﻤﺎﻳﻲ‪ :‬اﺑﺰار ﺻﺪور ﮔﻮاﻫﻲ دﻳﺠﻴﺘﺎل ﻣﻨﺒﻊ ﺑﺎزي ﺑﻪ ﻧﺎم ‪ OpenSSL‬وﺟﻮد دارد ﻛﻪ ﻣﻲﺗﻮاﻧﻴﺪ از ﻛﺪ آن اﻟﻬﺎم ﺑﮕﻴﺮﻳﺪ‪.‬‬
‫ﺑﺮاي ‪ ASN.1‬و ‪ DER‬ﻫﻢ ﻛﺘﺎﺑﺨﺎﻧﻪﻫﺎﻳﻲ ﻧﻮﺷﺘﻪ ﺷﺪهاﻧﺪ‪ ،‬ﻛﻪ ﻣﻲﺗﻮاﻧﻴﺪ ﻛﺪ آﻧﻬﺎ را ﻫﻢ ﺑﺒﻴﻨﻴﺪ‪ .‬ﺣﺘﻤﺎً ﻧﮕـﺎﻫﻲ ﺑـﻪ ﻣـﺪﺧﻞ‬
‫‪ ASN.1‬ﺳﺎﻳﺖ ‪ Wikipedia‬ﻫﻢ ﺑﻴﻨﺪازﻳﺪ‪.‬‬
‫‪ 5-2‬ﺳﺮوﻳﺲ ارﺳﺎل ﭘﻴﺎم ﻛﻮﺗﺎه اﻣﻦ )‪(Secure SMS‬‬
‫ﺗﻔﺎوت اﻳﻦ ﭘﺮوژه ﺑﺎ ﺑﻘﻴﻪ آن اﺳﺖ ﻛﻪ اﻳﻦ ﭘﺮوژه ﺑﺎﻳﺪ روي ﮔﻮﺷﻲ ﻣﻮﺑﺎﻳﻞ ﭘﻴﺎده ﺳﺎزي ﺷﻮد )ﺑـﺎ اﺳـﺘﻔﺎده از ‪،J2ME‬‬
‫‪ ،.NET Compact Framework‬ﻳﺎ ﻫﺮ اﺑﺰار دﻟﺨﻮاه دﻳﮕﺮ(‪ .‬‬
‫ﺑﻨﺎ ﺑﺮ اﻇﻬﺎرات ﻣﻘﺎﻣﺎت رﺳﻤﻲ وزارت ارﺗﺒﺎﻃﺎت و ﻓﻨﺎوري اﻃﻼﻋﺎت‪ ،‬ﻛﻠﻴﺔ ﭘﻴﺎﻣﻬﺎي ﻛﻮﺗﺎه ارﺳـﺎﻟﻲ ‪ log‬ﻣـﻲﺷـﻮﻧﺪ‪.‬‬
‫ﻫﺪف از اﻳﻦ ﭘﺮوژه آن اﺳﺖ ﻛﻪ ﻧﮕﺬارﻳﻢ ﭘﻴﺎﻣﻬﺎي ﻣﺎ ﺗﻮﺳﻂ اﻓﺮاد ﻧﺎﻣﺮﺑﻮط ﺧﻮاﻧﺪه ﺷﻮﻧﺪ‪ .‬اﻳـﻦ ﻛـﺎر ﻣﺸـﺎﺑﻪ ﭼﻴـﺰي‬
‫اﺳﺖ ﻛﻪ ‪ ،PGP ،PEM‬و ‪ S/MIME‬ﺑﺮاي ﺳﺮوﻳﺲ ﭘﺴﺖ اﻟﻜﺘﺮوﻧﻴﻜﻲ اﻧﺠﺎم ﻣﻲدﻫﻨـﺪ )ﻓﺼـﻞ ‪ 15‬ﻛﺘـﺎب ‪ Stallings‬را‬
‫ﺑﺒﻴﻨﻴﺪ(‪ ،‬ﺑﺎ اﻳﻦ ﺗﻔﺎوت ﻛﻪ ﺗﻮان ﭘﺮدازش ﻳﻚ ﮔﻮﺷﻲ ﺑﺴﻴﺎر ﻛﻤﺘﺮ از ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺷﺨﺼﻲ اﺳﺖ‪.‬‬
‫ﺣﺪاﻗﻞ ﻛﺎري ﻛﻪ در اﻳﻦ ﭘﺮوژه ﺑﺎﻳﺪ اﻧﺠﺎم دﻫﻴﺪ‪ ،‬رﻣﺰ ﻛﺮدن ﻳﻚ ﭘﻴﺎم ﻛﻮﺗﺎه ﭘﺲ از ‪ compose‬ﺷﺪن ﺑﻪ وﺳـﻴﻠﺔ ﻳـﻚ‬
‫رﻣﺰ ﻗﻄﻌﻪاي ﻣﺪرن )ﻧﻈﻴﺮ ‪ ،AES ،IDEA ،DES‬و ﻧﻈﺎﻳﺮ آن( اﺳﺖ‪ .‬ﻛﻠﻴﺪ رﻣﺰ ﺑﺎﻳﺪ ﺗﻮﺳـﻂ ﻛـﺎرﺑﺮ ﺗﻌﻴـﻴﻦ ﺷـﻮد‪ ،‬و ﺳـﻪ‬
‫ﻣﺮﺣﻠﺔ ‪ ،composition‬رﻣﺰﻧﮕﺎري‪ ،‬و ارﺳﺎل ﺑﺎﻳﺪ ﻣﺘﻮاﻟﻴﺎً و ﺑﺪون ﻧﻴﺎز ﺑﻪ اﻧﺠﺎم ﻋﻤﻞ اﺿـﺎﻓﻲ اﺟـﺮا ﺷـﻮﻧﺪ )ﻳﻌﻨـﻲ از‬
‫ﻛﺎرﺑﺮ ﻧﺨﻮاﻫﻴﺪ ﻛﻪ ﭘﻴﺎم را در ﺑﺮﻧﺎﻣﺔ ﺷﻤﺎ وارد ﻛﻨﺪ‪ ،‬رﻣﺰ را ﺗﺤﻮﻳـﻞ ﺑﮕﻴـﺮد‪ ،‬آن را وارد ‪ composer‬ﻛـﺮده و ارﺳـﺎل‬
‫ﻛﻨﺪ‪ .‬ﺑﻪ ﻋﺒﺎرت دﻳﮕﺮ‪ ،‬ﻣﺮﺣﻠﺔ رﻣﺰﻧﮕﺎري ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﺷﻔﺎف اﻧﺠﺎم ﺷﻮد(‪ .‬ﻣﻤﻜﻦ اﺳﺖ ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر ﻣﺠﺒـﻮر‬
‫ﺷﻮﻳﺪ ‪ message composer‬ﺧﺎص ﺧﻮد را ﺑﻨﻮﻳﺴﻴﺪ‪ ،‬و از ‪ API‬ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﮔﻮﺷﻲ ﺑﺮاي ارﺳﺎل ﭘﻴﺎم اﺳﺘﻔﺎده ﻛﻨﻴـﺪ‪.‬‬
‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ ﺑﺮﻧﺎﻣﺔ ﺷﻤﺎ ﺑﺎﻳﺪ روي ﮔﻮﺷﻲ ﻣﻘﺼﺪ ﻫﻢ وﺟﻮد داﺷﺘﻪ و ﺑﺎ درﻳﺎﻓﺖ ﭘﻴﻐﺎم رﻣـﺰ ﺷـﺪه و ﻛﻠﻴـﺪ‪،‬‬
‫آن را رﻣﺰﮔﺸﺎﻳﻲ ﻛﻨﺪ‪.‬‬
‫ﺑﻪ ﻣﻮارد زﻳﺮ ﻧﻤﺮة اﺿﺎﻓﻲ ﺗﻌﻠﻖ ﻣﻲﮔﻴﺮد‪:‬‬
‫•‬
‫اراﺋﺔ ﺳﺮوﻳﺴﻬﺎﻳﻲ ﻋﻼوه ﺑﺮ رﻣﺰﻧﮕﺎري؛ ﻣﺜﻼً ﺳﺮوﻳﺲ ﻓﺸﺮده ﺳﺎزي ﭘﻴﺎم ﻛﻮﺗﺎه )‪ .(message compression‬‬
‫•‬
‫اراﺋﺔ ﺳﺮوﻳﺲ ﺟﺎﻣﻌﻴﺖ ﭘﻴﺎم )‪ .(integrity‬‬
‫راﻫﻨﻤﺎﻳﻲ‪ :‬ﺳﺎﻳﺖ ‪ Bouncy Castle‬ﻛﻠﻴﺔ ‪ API‬ﻫﺎي ﻻزم ﺑﺮاي رﻣﺰﻧﮕﺎري روي ﻣﻮﺑﺎﻳﻞ را دارد )اﮔﺮﭼﻪ ﻧﻤـﻲﺗﻮاﻧﻴـﺪ از‬
‫آﻧﻬﺎ در ﻛﺪﺗﺎن اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ ،‬اﻣﺎ ﺑﺮاي ﺷﺮوع ﻣﺮﺟﻊ ﺧﻮﺑﻲ اﺳﺖ!( ﻫﻤﭽﻨﻴﻦ ﻣﻲﺗﻮاﻧﻴﺪ ﻣﻘﺎﻟﺔ زﻳـﺮ را از ﺳـﺎﻳﺖ ﻧﻮﻛﻴـﺎ‬
‫ﺑﮕﻴﺮﻳﺪ و ﻣﻄﺎﻟﻌﻪ ﻛﻨﻴﺪ‪:‬‬
‫‪A Brief Introduction to Secure SMS Messaging in MIDP ‬‬