Fianl Projcet.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫داﻧﺸﻜﺪهي ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫ﭘﺮوژهي ﭘﺎﻳﺎنﺗﺮم‬
‫‪ 27‬آذر ‪89‬‬
‫راﻫﻨﻤﺎي اﻧﺠﺎم ﭘﺮوژه‬
‫ﻣﺮﺣﻠﻪي ﻧﺨﺴﺖ‪ :‬ﺗﻌﺮﻳﻒ ﭘﺮوژه‬
‫ﺧﺮوﺟﻲ اﻳﻦ ﻣﺮﺣﻠﻪ ﻣﺴﺘﻨﺪ ﺗﻌﺮﻳﻒ ﭘﺮوژه اﺳﺖ ﻛﻪ ﻣﻮارد زﻳﺮ را در ﺑﺮﻣﻲﮔﻴﺮد‪:‬‬
‫•‬
‫ﻣﻮﺿﻮع ﭘﺮوژه‬
‫ﺑﺎﻳﺴﺘﻲ ﺗﻮﺿﻴﺤﻲ در ﻣﻮرد ﻣﺤﺘﻮاي ﭘﺮوژه و اﻫﺪاف آن اراﺋﻪ ﺷﻮد‪ .‬ﻣﻮﺿﻮع ﭘﺮوژه ﻣﻲﺗﻮاﻧﺪ از ﻣﻮارد‬
‫ﭘﻴﺸﻨﻬﺎد ﺷﺪه ﺑﺎﺷﺪ‪ ،‬اﻣﺎ ﺳﺎﻳﺮ ﻣﻮﺿﻮﻋﺎت ﻧﻴﺰ در ﺻﻮرت ﻣﻮاﻓﻘﺖ اﺳﺘﺎد درس ﻣﻲﺗﻮاﻧﻨﺪ اراﺋﻪ ﺷﻮﻧﺪ‪.‬‬
‫ﻗﺎﺑﻠﻴﺖﻫﺎي اﺻﻠﻲ ﭘﺮوژه ﻛﻪ در ﻣﺮاﺣﻞ ﺑﻌﺪي ﭘﻴﺎدهﺳﺎزي ﺧﻮاﻫﻨﺪ ﺷﺪ‪ ،‬ﺑﺎﻳﺴﺘﻲ در اﻳﻦ ﻗﺴﻤﺖ‬
‫ﺑﻪ ﺻﻮرت روﺷﻦ و ﺑﺪون اﺑﻬﺎم ذﻛﺮ ﮔﺮدﻧﺪ‪.‬‬
‫•‬
‫اﻋﻀﺎي ﮔﺮوه‬
‫ﭘﺮوژهﻫﺎ ﻣﻲﺗﻮاﻧﻨﺪ ﺑﻪ ﺻﻮرت اﻧﻔﺮادي ﻳﺎ دو ﻧﻔﺮه اﻧﺠﺎم ﺷﻮﻧﺪ‪ .‬در ﺻﻮرت دو ﻧﻔﺮه ﺑﻮدن‪ ،‬در ﻫﻨﮕﺎم ﺗﺤﻮﻳﻞ‬
‫ﭘﺮوژه ﻫﺮ ﻳﻚ از اﻓﺮاد ﺑﺨﺶ ﻣﺮﺑﻮط ﺑﻪ ﺧﻮد را اراﺋﻪ ﻣﻲدﻫﻨﺪ و ﻧﻤﺮهي اﻋﻀﺎء ﻟﺰوﻣﺎً ﺑﺮاﺑﺮ ﻧﺨﻮاﻫﺪ ﺑﻮد‪.‬‬
‫•‬
‫زﺑﺎن ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ و ﻣﺤﻴﻂ اﺟﺮاي ﺑﺮﻧﺎﻣﻪ‬
‫اﺳﺘﻔﺎده از زﺑﺎنﻫﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ و ﻣﺤﻴﻂﻫﺎي ﻣﺨﺘﻠﻒ آزاد اﺳﺖ‪ ،‬اﻣﺎ در ﻫﻨﮕﺎم ﺗﻌﺮﻳﻒ ﭘﺮوژه ﺑﺎﻳﺴﺘﻲ‬
‫اﻳﻦ ﻣﻮارد ﻣﺸﺨﺺ ﺷﺪه ﺑﺎﺷﻨﺪ‪ .‬ﻫﻤﭽﻨﻴﻦ ﺗﻮاﺑﻊ ﻛﺘﺎبﺧﺎﻧﻪاي ﻣﺮﺗﺒﻂ ﺑﺎ رﻣﺰﻧﮕﺎري )ﻧﻈﻴﺮ‬
‫‪ security APIs‬ﺟﺎوا ﻳﺎ ‪ CryptAPI‬وﻳﻨﺪوز( ﻛﻪ در ﭘﻴﺎدهﺳﺎزي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲﮔﻴﺮﻧﺪ‪ ،‬ﺑﺎﻳﺴﺘﻲ‬
‫ﻧﺎم ﺑﺮده ﺷﻮﻧﺪ‪.‬‬
‫•‬
‫اﺳﺘﻔﺎده از ﻛﺪﻫﺎي ﻣﺘﻦﺑﺎز ﻣﻮﺟﻮد‬
‫اﺳﺘﻔﺎده از ﻣﻮﻟﻔﻪﻫﺎي ﻣﺘﻦﺑﺎز و ﭘﺮوژهﻫﺎي ﺳﺎﻳﺮ اﻓﺮاد در اﻧﺠﺎم ﭘﺮوژه ﻣﺠﺎز ﻧﻴﺴﺖ‪ ،‬ﻣﮕﺮ در ﻣﻮارد ﺧﺎص‬
‫ﻛﻪ ﭘﺮوژه ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ آن ﻣﻮﻟﻔﻪ و ﺑﺮ اﺳﺎس آن ﺗﻌﺮﻳﻒ ﺷﺪه ﺑﺎﺷﺪ‪ .‬در ﭼﻨﻴﻦ ﻣﻮاردي‪ ،‬ﻣﻮﻟﻔﻪ و ﻳﺎ ﺗﻮاﺑﻊ‬
‫ﻣﻮرد اﺳﺘﻔﺎده از ﺑﻴﺮون ﺑﺎﻳﺴﺘﻲ ﺑﻪ ﻃﻮر دﻗﻴﻖ در ﺗﻌﺮﻳﻒ ﭘﺮوژه ذﻛﺮ ﮔﺮدد‪.‬‬
‫ﻻزم ﺑﻪ ﺗﺬﻛﺮ اﺳﺖ در ﺻﻮرﺗﻲ ﻛﻪ ﺗﻌﺮﻳﻒ ﭘﺮوژه ﻣﻮرد ﺗﺎﻳﻴﺪ ﻗﺮار ﻧﮕﻴﺮد‪ ،‬ﺑﺎﻳﺴﺘﻲ ﺑﺎزﻧﻮﻳﺴﻲ ﺷﺪه و ﻣﺠﺪداً ارﺳﺎل ﮔﺮدد‪.‬‬
‫اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫‪ 27‬آذرﻣﺎه ‪89‬‬
‫ﭘﺮوژهي ﭘﺎﻳﺎن ﺗﺮم‬
‫ﻣﺮﺣﻠﻪي دوم‪ :‬ﺗﺤﻮﻳﻞ ﻧﺴﺨﻪي اوﻟﻴﻪ‬
‫ﺧﺮوﺟﻲ اﻳﻦ ﻣﺮﺣﻠﻪ ﻧﺴﺨﻪي اوﻟﻴﻪي ﭘﺮوژه ﺑﻪ ﻫﻤﺮاه ﻣﺴﺘﻨﺪات ﻣﺮﺑﻮﻃﻪ اﺳﺖ‪ .‬اﻳﻦ ﻧﺴﺨﻪ ﭼﺎرﭼﻮب اوﻟﻴﻪي ﭘﺮوژه ﺑﻪ ﻫﻤﺮاه‬
‫ﭘﻴﺎدهﺳﺎزي ﺑﺮﺧﻲ از وﻳﮋﮔﻲﻫﺎي اﺻﻠﻲ را ﺷﺎﻣﻞ ﻣﻲﺷﻮد‪ .‬ﻫﻤﭽﻨﻴﻦ ﮔﺰارش ﭘﺮوژه ﺗﻮﺿﻴﺤﺎﺗﻲ را در ﻣﻮرد ﺑﺨﺶﻫﺎي ﻓﻨﻲ ﭘﺮوژه و‬
‫ﺳﺎﺧﺘﺎر اوﻟﻴﻪ آن در ﺑﺮ ﻣﻲﮔﻴﺮد‪ .‬در ﺻﻮرﺗﻲ ﻛﻪ اﻧﺠﺎم ﭘﺮوژه ﻧﻴﺎز ﺑﻪ اﻧﺠﺎم ﺗﺤﻘﻴﻘﺎت و ﻃﺮاﺣﻲ ﻣﻮرد ﻧﻴﺎز ﺑﺎﺷﺪ‪ ،‬ﺑﺎﻳﺴﺘﻲ ﺗﺎ اﻳﻦ زﻣﺎن‬
‫ﺗﺎ ﺣﺪ ﻣﻨﺎﺳﺒﻲ اﻧﺠﺎم ﭘﺬﻳﺮﻓﺘﻪ ﺑﺎﺷﺪ و ﭼﻜﻴﺪهي آنﻫﺎ در ﮔﺰارش ﭘﺮوژه آورده ﺷﻮد‪ .‬ﻟﺰوﻣﻲ ﺑﻪ ﺑﺮرﺳﻲ ﺗﻤﺎﻣﻲ ﺟﺰﺋﻴﺎت در ﮔﺰارش‬
‫ﭘﺮوژه ﻧﻴﺴﺖ‪ ،‬اﻣﺎ ﺑﺎﻳﺴﺘﻲ ﺗﻮﺿﻴﺤﺎت ﻛﺎﻓﻲ ﺑﺮاي ﻣﺮور ﺑﺨﺶﻫﺎي ﻣﺨﺘﻠﻒ )از ﺗﺤﻘﻴﻘﺎت ﺗﺎ ﭘﻴﺎدهﺳﺎزي اوﻟﻴﻪ( در آن آﻣﺪه ﺑﺎﺷﺪ‪.‬‬
‫ﻣﺮﺣﻠﻪي ﺳﻮم‪ :‬ﺗﺤﻮﻳﻞ ﻧﺴﺨﻪي ﻧﻬﺎﻳﻲ‬
‫در اﻳﻦ ﺑﺨﺶ ﺑﺎﻳﺴﺘﻲ ﻧﺴﺨﻪي ﻧﻬﺎﻳﻲ ﭘﺮوژه ﺑﻪ ﻫﻤﺮاه ﻣﺴﺘﻨﺪات آن اراﺋﻪ ﺷﻮد‪ .‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﺗﻤﺎم ﭘﻴﺎدهﺳﺎزي ﭘﺮوژه‪ ،‬ﮔﺰارش اﻳﻦ‬
‫ﺑﺨﺶ ﻧﺴﺨﻪي ﻛﺎﻣﻞ ﺷﺪهي ﮔﺰارش ﺗﺤﻮﻳﻞ اوﻟﻴﻪ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫زﻣﺎنﺑﻨﺪي و ﻧﻤﺮهدﻫﻲ‬
‫ﺧﺮوﺟﻲﻫﺎ‬
‫درﺻﺪ ﻧﻤﺮه‬
‫ﻣﻬﻠﺖ ارﺳﺎل‬
‫ﻣﺮاﺣﻞ‬
‫ﻣﺮﺣﻠﻪي اول‬
‫ﺗﻌﺮﻳﻒ ﭘﺮوژه‬
‫‪5‬‬
‫‪ 7‬ديﻣﺎه‬
‫ﻣﺮﺣﻠﻪي دوم‬
‫ﻧﺴﺨﻪي اوﻟﻴﻪي ﭘﺮوژه‬
‫‪35‬‬
‫‪ 8‬ﺑﻬﻤﻦﻣﺎه‬
‫ﻣﺮﺣﻠﻪي ﺳﻮم‬
‫ﻧﺴﺨﻪي ﻧﻬﺎﻳﻲ ﭘﺮوژه‬
‫‪60‬‬
‫‪ 15‬ﺑﻬﻤﻦﻣﺎه‬
‫•‬
‫ﺗﺤﻮﻳﻞ ﺣﻀﻮري ﻣﺮاﺣﻞ دوم و ﺳﻮم ﺑﻪ ﺗﺮﺗﻴﺐ ﺻﺒﺢ روزﻫﺎي ‪ 9‬و ‪ 16‬ﺑﻬﻤﻦﻣﺎه ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫•‬
‫ﻫﻢزﻣﺎن ﺑﺎ ﺗﺤﻮﻳﻞ ﻣﺮﺣﻠﻪي دوم ﭘﺮوژه‪ ،‬ﺗﺤﻮﻳﻞ ﺣﻀﻮري ﺗﻤﺮﻳﻦﻫﺎي ﻋﻤﻠﻲ ﻧﻴﺰ ﺻﻮرت ﻣﻲﮔﻴﺮد‪.‬‬
‫•‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻦ ﻛﻪ آﺧﺮﻳﻦ ﻣﻬﻠﺖ ارﺳﺎل ﻧﻤﺮات ﺑﻪ آﻣﻮزش داﻧﺸﮕﺎه ‪ 16‬ﺑﻬﻤﻦﻣﺎه اﺳﺖ‪ ،‬زﻣﺎن ﺗﺤﻮﻳﻞ ﭘﺮوژهﻫﺎ ﺑﻪ ﻫﻴﭻ‬
‫ﻋﻨﻮان ﺗﻤﺪﻳﺪ ﻧﺨﻮاﻫﺪ ﺷﺪ‪ .‬اﮔﺮ اﺣﺘﻤﺎل ﻣﻲدﻫﻴﺪ ﺑﺮاي ﺣﻀﻮر در زﻣﺎنﻫﺎي ﺗﻌﻴﻴﻦ ﺷﺪه دﭼﺎر ﻣﺸﻜﻞ ﺷﻮﻳﺪ‪ ،‬ﭘﺮوژهي‬
‫ﺧﻮد را زودﺗﺮ ﺗﺤﻮﻳﻞ دﻫﻴﺪ‪.‬‬
‫‪٢‬‬
‫ﭘﺮوژهي ﭘﺎﻳﺎن ﺗﺮم‬
‫اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫‪ 27‬آذرﻣﺎه ‪89‬‬
‫ﭘﺮوژهﻫﺎي ﭘﻴﺸﻨﻬﺎدي‬
‫ﭘﺴﺖ اﻟﻜﺘﺮوﻧﻴﻜﻲ اﻣﻦ‬
‫ﻫﺪف اﻳﻦ ﭘﺮوژه اﻣﻦﺳﺎزي ﻧﺎﻣﻪﻫﺎي اﻟﻜﺘﺮوﻧﻴﻜﻲ اﺳﺖ‪ .‬ﺑﺮاي ﺷﺮوع اﺑﺘﺪا ﺑﺎﻳﺴﺘﻲ ﭘﺮوﺗﻜﻠﻲ ﻃﺮاﺣﻲ ﻧﻤﺎﻳﻴﺪ ﻛﻪ وﻳﮋﮔﻲﻫﺎي‬
‫ﻣﺤﺮﻣﺎﻧﮕﻲ‪ ،‬ﺻﺤﺖ و ﻋﺪم اﻧﻜﺎر را ﻓﺮاﻫﻢ آورد‪ .‬ﻳﻚ روش ﺳﺎده ﺑﺮاي اﻳﻦ ﻛﺎر اﺳﺘﻔﺎده از رﻣﺰﻧﮕﺎري ﺑﻪ ﻫﻤﺮاه اﻣﻀﺎي دﻳﺠﻴﺘﺎل‬
‫اﺳﺖ‪ .‬از آنﺟﺎ ﻛﻪ رﻣﺰﻧﮕﺎري دادهﻫﺎي ﺣﺠﻴﻢ ﺑﺎ رﻣﺰﻧﮕﺎري ﻧﺎﻣﺘﻘﺎرن ﺑﻬﻴﻨﻪ ﻧﻴﺴﺖ‪ ،‬راهﻛﺎر راﻳﺞ ﺑﺮاي اﻳﻦ ﻛﺎر اﺳﺘﻔﺎده از رﻣﺰﻧﮕﺎري‬
‫ﻛﻠﻴﺪ ﺧﺼﻮﺻﻲ و ﺳﭙﺲ ارﺳﺎل ﻛﻠﻴﺪ ﺑﻪ ﻛﻤﻚ رﻣﺰﻧﮕﺎري ﻧﺎﻣﺘﻘﺎرن اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﻳﻦ اﻳﻦ ﭘﺮوﺗﻜﻞ ﻣﺮاﺣﻞ اﺳﺎﺳﻲ زﻳﺮ را ﺧﻮاﻫﺪ داﺷﺖ‪:‬‬
‫•‬
‫درﻳﺎﻓﺖ دادهﻫﺎ ﺑﺮاي ارﺳﺎل‬
‫•‬
‫درﻳﺎﻓﺖ و ﻧﮕﻬﺪاري ﻛﻠﻴﺪﻫﺎي ﻋﻤﻮﻣﻲ ﻓﺮﺳﺘﻨﺪه و ﮔﻴﺮﻧﺪه در ﻗﺎﻟﺐ ﮔﻮاﻫﻲﻫﺎي ‪X.509‬‬
‫•‬
‫ﺗﻮﻟﻴﺪ ﻛﻠﻴﺪ رﻣﺰﻧﮕﺎري ﻣﺘﻘﺎرن و رﻣﺰﮔﺬاري دادهﻫﺎ از ﻃﺮﻳﻖ آن‬
‫•‬
‫رﻣﺰﻧﮕﺎري ﻛﻠﻴﺪ رﻣﺰ ﻣﺘﻘﺎرن ﺑﺎ ﻛﻠﻴﺪ ﺧﺼﻮﺻﻲ ﺑﺎ ﻛﻠﻴﺪ ﻋﻤﻮﻣﻲ ﮔﻴﺮﻧﺪه‬
‫•‬
‫اﻣﻀﺎي دﻳﺠﻴﺘﺎل دادهﻫﺎ ﺑﺎ ﻛﻠﻴﺪ ﺧﺼﻮﺻﻲ ﻓﺮﺳﺘﻨﺪه‬
‫•‬
‫ارﺳﺎل و درﻳﺎﻓﺖ دادهﻫﺎ و ﻛﻠﻴﺪ رﻣﺰﺷﺪه‬
‫•‬
‫رﻣﺰﮔﺸﺎﻳﻲ دادهﻫﺎ و ﺑﺮرﺳﻲ ﺻﺤﺖ اﻣﻀﺎ‬
‫ﻣﻲﺗﻮاﻧﻴﺪ ﺑﺮﻧﺎﻣﻪي ﺧﻮد را ﺑﺎ اﺳﺘﻔﺎده ﺗﻮاﺑﻊ ﻛﺘﺎبﺧﺎﻧﻪاي ارﺳﺎل اﻳﻤﻴﻞ )ﻏﻴﺮاﻣﻦ( ﻧﻈﻴﺮ ‪ JavaMail API‬ﻧﻮﺷﺘﻪ و ﻳﺎ از ﻳﻚ‬
‫ﺑﺮﻧﺎﻣﻪي ﻣﺘﻦﺑﺎز ارﺳﺎل و درﻳﺎﻓﺖ اﻳﻤﻴﻞ ﻧﻈﻴﺮ ‪ simplemail‬اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ .‬اﻳﻦ ﻧﺮماﻓﺰارﻫﺎ ﻧﺒﺎﻳﺴﺘﻲ در ﺣﺎل ﺣﺎﺿﺮ داراي ﻧﺴﺨﻪي‬
‫اﻣﻦ ﺷﺪه )ﭘﺸﺘﻴﺒﺎﻧﻲ از ‪ S/MIME‬و ‪ (PGP‬ﺑﺎﺷﻨﺪ‪ .‬اﺳﺘﻔﺎده از ﻛﺪﻫﺎي آﻣﺎده در ﺳﺎﻳﺮ ﺑﺨﺶﻫﺎ ﺑﻪ ﻫﻴﭻ ﻋﻨﻮان ﻣﺠﺎز ﻧﻴﺴﺖ‪.‬‬
‫ﺑﺮﻧﺎﻣﻪي ﺷﻤﺎ ﺑﺎﻳﺴﺘﻲ داراي واﺳﻂ ﮔﺮاﻓﻴﻜﻲ ﺳﺎده و راﺣﺖ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﻋﻨﻮان ﺑﺨﺶ اﺿﺎﻓﻪ ﻣﻲﺗﻮاﻧﻴﺪ ﭘﺸﺘﻴﺒﺎﻧﻲ از ﮔﻮاﻫﻲﻫﺎي‬
‫‪ OpenPGP‬و اﻳﺠﺎد ﺳﺎﺧﺘﺎر اﻋﺘﻤﺎد ﻣﻴﺎن اﻓﺮاد را ﻧﻴﺰ ﭘﻴﺎدهﺳﺎزي ﻛﻨﻴﺪ‪.‬‬
‫‪٣‬‬
‫اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫ﭘﺮوژهي ﭘﺎﻳﺎن ﺗﺮم‬
‫‪ 27‬آذرﻣﺎه ‪89‬‬
‫رﻣﺰ ﻋﺒﻮر ﻳﻚﺑﺎر ﻣﺼﺮف‬
‫رﻣﺰ ﻋﺒﻮر ﻳﻚﺑﺎر ﻣﺼﺮف‪ 1‬را ﻣﻲﺗﻮان ﻛﻠﻴﺪي در ﻧﻈﺮ ﮔﺮﻓﺖ ﻛﻪ اﻋﺘﺒﺎر آن ﺗﻨﻬﺎ ﺑﺮاي ﻳﻚﺑﺎر ورود ﺑﻪ ﻳﻚ ﺑﺨﺶ ﻳﺎ ﻳﻚﻣﺮﺗﺒﻪ اﻳﺠﺎد‬
‫ﻧﺸﺴﺖ اﺳﺖ‪ .‬ﻛﻠﻴﺪﻫﺎي داﺋﻤﻲ ﻣﻤﻜﻦ اﺳﺖ در ﻣﻌﺮض ﺧﻄﺮاﺗﻲ ﻫﻢﭼﻮن ﺣﻤﻠﻪي ﺗﻜﺮار ﻗﺮار ﮔﻴﺮﻧﺪ و اﻳﺪهي رﻣﺰﻋﺒﻮر ﻳﻚﺑﺎر‬
‫ﻣﺼﺮف ﺑﻪ ﻋﻨﻮان روﺷﻲ ﺑﺮاي ﺑﺮﻃﺮف ﺳﺎﺧﺘﻦ اﻳﻦ ﻣﻌﺎﻳﺐ ﻣﻮرد ﺗﻮﺟﻪ ﻗﺮار ﮔﺮﻓﺖ‪ .‬ﻫﺪف از اﻳﻦ ﭘﺮوژه آﺷﻨﺎﻳﻲ ﺑﺎ رﻣﺰ ﻋﺒﻮر ﻳﻚﺑﺎر‬
‫ﻣﺼﺮف و ﺑﻪﻛﺎرﮔﻴﺮي ﻋﻤﻠﻲ آن اﺳﺖ‪ .‬ﺻﻮرت ﻣﺴﺌﻠﻪ ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ‪:‬‬
‫ﻳﻚ ﺑﺎﻧﻚ ﺑﺮاي اﻣﻦﺳﺎزي ﺗﺮاﻛﻨﺶﻫﺎي اﻟﻜﺘﺮوﻧﻴﻜﻲ ﺧﻮد ﺗﺼﻤﻴﻢ ﮔﺮﻓﺘﻪ اﺳﺖ ﺗﺎ ورود ﻣﺸﺘﺮﻳﺎن ﺑﻪ وبﺳﺎﻳﺖ ﺧﻮد ﺑﻪ ﻛﻤﻚ‬
‫رﻣﺰﻋﺒﻮر ﻳﻚﺑﺎر ﻣﺼﺮف اﻧﺠﺎم ﭘﺬﻳﺮد‪ .‬ﺑﺪﻳﻦ ﻣﻨﻈﻮر ﻫﺮ ﻳﻚ از ﻣﺸﺘﺮﻳﺎن ﺑﺮ روي ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه ﺧﻮد ﺑﺮﻧﺎﻣﻪي ﺗﻮﻟﻴﺪ رﻣﺰﻋﺒﻮر را‬
‫را ﻧﺼﺐ ﻣﻲﻛﻨﺪ‪ .‬ﺳﻴﺴﺘﻢ ﻣﻮرد ﻧﻈﺮ ﺷﺎﻣﻞ دو ﺑﺨﺶ اﺳﺖ‪:‬‬
‫‪ -1‬ورود ﺑﻪ وبﺳﺎﻳﺖ ﺑﺎﻧﻚ‬
‫ﻣﺸﺘﺮي ﺑﻪ ﻣﻨﻈﻮر ورود ﺑﻪ وبﺳﺎﻳﺖ ﺑﺎﻧﻚ‪ ،‬از ﺑﺮﻧﺎﻣﻪي ذﺧﻴﺮه ﺷﺪه روي ﺗﻠﻔﻦ ﻫﻤﺮاه ﺧﻮد درﺧﻮاﺳﺖ رﻣﺰﻋﺒﻮر ﻣﻲﻛﻨﺪ‪.‬‬
‫اﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺑﻪ ازاي ﻫﺮ درﺧﻮاﺳﺖ ﻣﺸﺘﺮي‪ ،‬ﺑﺎ ﺗﺮﻛﻴﺐ ﺳﻪ ﭘﺎراﻣﺘﺮ زﻣﺎن‪ ،‬ﺷﻨﺎﺳﻪي ﻣﺤﺮﻣﺎﻧﻪي ﻛﺎرﺑﺮ )‪ (PIN code‬و ﻛﻠﻴﺪ‬
‫ﻣﺤﺮﻣﺎﻧﻪي ذﺧﻴﺮه ﺷﺪه در ﺑﺮﻧﺎﻣﻪ و اﻋﻤﺎل ﺗﺎﺑﻊ ﭼﻜﻴﺪهﺳﺎز ‪ ،SHA1‬ﻳﻚ رﻣﺰﻋﺒﻮر ﻳﻚﺑﺎر ﻣﺼﺮف )ﺑﻪ ﺷﻜﻞ رﺷﺘﻪاي‬
‫اﻟﻔﺒﺎﻳﻲ ﺑﺎ ﻃﻮل ‪ 8‬ﻛﺎراﻛﺘﺮ( ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﺪ ﻛﻪ ﺑﻪ ﻣﺪت ‪ 1‬دﻗﻴﻘﻪ داراي اﻋﺘﺒﺎر ﻣﻲﺑﺎﺷﺪ‪ .‬ﻣﺸﺘﺮي ﺑﺎ وارد ﻛﺮدن ﺣﺴﺎب‬
‫ﻛﺎرﺑﺮي ﺧﻮد و اﻳﻦ رﻣﺰ ﻋﺒﻮر ﻣﻲﺗﻮاﻧﺪ وارد وبﺳﺎﻳﺖ ﺑﺎﻧﻚ ﺷﻮد‪.‬‬
‫‪ -2‬اﻧﺠﺎم ﺗﺮاﻛﻨﺶ ﻣﺎﻟﻲ‬
‫ﻣﺸﺘﺮي ﺑﺎ ورود ﺑﻪ ﺻﻔﺤﻪي ﻣﺮﺑﻮط ﺑﻪ اﻧﺘﻘﺎل وﺟﻪ‪ ،‬ﺳﻪ ﻓﻴﻠﺪ ﺑﺮاي ورود ﻣﺒﻠﻎ اﻧﺘﻘﺎﻟﻲ‪ ،‬ﺷﻤﺎرهي ﺣﺴﺎب ﮔﻴﺮﻧﺪه و اﻣﻀﺎي‬
‫ﻣﺸﺘﺮي وﺟﻮد دارد‪ .‬ﻋﻼوه ﺑﺮ اﻳﻦ وبﺳﺎﻳﺖ ﺑﺮاي ﻫﺮ ﺗﺮاﻛﻨﺶ ﻳﻚ ﻛﺪ اﻣﻨﻴﺘﻲ ﻧﻴﺰ ﺗﻌﻴﻴﻦ ﻣﻲﻛﻨﺪ‪ .‬ﻣﺸﺘﺮي ﺑﺎﻳﺴﺘﻲ ﺑﺮاي‬
‫اﻣﻀﺎي ﺗﺮاﻛﻨﺶ‪ ،‬ﭘﺎراﻣﺘﺮﻫﺎي ﻣﺒﻠﻎ‪ ،‬ﺷﻤﺎرهي ﺣﺴﺎب و ﻛﺪ اﻣﻨﻴﺘﻲ را وارد ﺑﺮﻧﺎﻣﻪي ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه ﺧﻮد ﻣﻲﻛﻨﺪ‪.‬‬
‫ﺑﺮﻧﺎﻣﻪي ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ ﭘﺎراﻣﺘﺮﻫﺎ و ﻛﻠﻴﺪ ﻣﺤﺮﻣﺎﻧﻪي ذﺧﻴﺮه ﺷﺪه در ﺑﺮﻧﺎﻣﻪ‪ ،‬ﺧﺮوﺟﻲ ‪ HMAC‬را‬
‫ﻣﺤﺎﺳﺒﻪ ﻛﺮده و ﺑﻪ ﺻﻮرت رﺷﺘﻪاي از ﻛﺎراﻛﺘﺮﻫﺎ ﺑﻪ ﻣﺸﺘﺮي ﺑﺎز ﻣﻲﮔﺮداﻧﺪ‪ .‬ﻣﺸﺘﺮي اﻳﻦ ﺧﺮوﺟﻲ را ﺑﻪ ﻋﻨﻮان اﻣﻀﺎي‬
‫ﺧﻮد وارد وبﺳﺎﻳﺖ ﻣﻲﻛﻨﺪ‪.‬‬
‫ﺑﻨﺎﺑﺮاﻳﻦ ﭘﺮوژه ﺷﺎﻣﻞ دو ﺑﺨﺶ اﺳﺖ‪:‬‬
‫•‬
‫ﺑﺮﻧﺎﻣﻪي ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه‪ :‬ﺑﻪ ﻣﻨﻈﻮر ﺗﻮﻟﻴﺪ رﻣﺰﻋﺒﻮر ﻳﻚﺑﺎر ﻣﺼﺮف و اﻣﻀﺎي ﺗﺮاﻛﻨﺶ اﺳﺘﻔﺎده ﻣﻲﺷﻮد‪.‬‬
‫•‬
‫وبﺳﺎﻳﺖ و ﺳﺮور ﻣﺮﺑﻮط ﺑﻪ آن‪ :‬ﻫﻮﻳﺖ ﻛﺎرﺑﺮ در ﻫﻨﮕﺎم ورود ﺑﻪ ﺳﺎﻳﺖ و ﺻﺤﺖ اﻃﻼﻋﺎت ﺗﺮاﻛﻨﺶ را ﺑﺮرﺳﻲ ﻣﻲﻛﻨﺪ‪.‬‬
‫ﻋﻼوه ﺑﺮ اﻳﻦ ﻣﺪﻳﺮ ﺳﻴﺴﺘﻢ ﺗﻮاﻧﺎﻳﻲ ﺣﺬف و اﺿﺎﻓﻪي ﻛﺎرﺑﺮان را از ﻃﺮﻳﻖ وبﺳﺎﻳﺖ دارد‪.‬‬
‫ﻛﻠﻴﺪ ﻣﺤﺮﻣﺎﻧﻪي ذﺧﻴﺮه ﺷﺪه در ﮔﻮﺷﻲ ﻓﻘﻂ ﻳﻚ ﺑﺎر در ﻫﻨﮕﺎم راهاﻧﺪازي اوﻟﻴﻪ ﺑﺮﻧﺎﻣﻪ در آن ﻗﺮار داده ﻣﻲﺷﻮد‪ .‬در ﺳﻴﺴﺘﻢﻫﺎي‬
‫واﻗﻌﻲ اﻳﻦ ﻛﻠﻴﺪ ﺑﺎﻳﺴﺘﻲ ﺑﻪ ﻛﻤﻚ ﭘﺮوﺗﻜﻞ ﺗﻮاﻓﻖ ﻛﻠﻴﺪ‪ 2‬ﻣﻴﺎن ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه و ﺳﺮور ﻣﺮﻛﺰي ﺑﺎﻧﻚ ﺑﻪ دﺳﺖ آﻳﺪ‪ .‬ﺑﻪ اﻳﻦ‬
‫ﺻﻮرت ﻛﻪ ﮔﻮﺷﻲ از ﻃﺮﻳﻖ ارﺳﺎل ﭘﻴﺎﻣﻚ ﺑﻪ ﺳﺮور ﻣﺮﻛﺰي و درﻳﺎﻓﺖ ﺟﻮاب از آن‪ ،‬ﭘﺎراﻣﺘﺮﻫﺎي ﻻزم ﺑﺮاي ﺗﻮﻟﻴﺪ ﻛﻠﻴﺪ را ﺑﻪ دﺳﺖ‬
‫آورده و آن را اﻳﺠﺎد و ذﺧﻴﺮه ﻣﻲﻛﻨﺪ‪ .‬ﭘﻴﺎدهﺳﺎزي اﻳﻦ ﺑﺨﺶ ﻧﻤﺮهي اﺿﺎﻓﻪ ﺧﻮاﻫﺪ داﺷﺖ‪ .‬ﺑﺮاي ﺷﺒﻴﻪﺳﺎزي ارﺗﺒﺎط ﻣﻴﺎن ﮔﻮﺷﻲ و‬
‫‪١‬‬
‫‪One Time Password‬‬
‫‪٢‬‬
‫‪Key agreement‬‬
‫‪۴‬‬
‫اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫ﭘﺮوژهي ﭘﺎﻳﺎن ﺗﺮم‬
‫‪ 27‬آذرﻣﺎه ‪89‬‬
‫ﺳﺮور ﻣﺮﻛﺰي ﻣﻲﺗﻮاﻧﻴﺪ ﻳﻚ ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه دﻳﮕﺮ را ﺑﻪ ﻋﻨﻮان ﺳﺮور در ﻧﻈﺮ ﮔﺮﻓﺘﻪ و ﻛﺪ ﻣﺮﺑﻮط ﺑﻪ ﺳﺮور را ﺑﺮ روي آن ﻗﺮار‬
‫دﻫﻴﺪ‪.‬‬
‫ﻫﻤﺎنﻃﻮر ﻛﻪ ﻣﺸﺨﺺ اﺳﺖ‪ ،‬ﭘﻴﺎدهﺳﺎزي ﺑﺨﺸﻲ از ﭘﺮوژه ﺑﺮاي اﺳﺘﻔﺎده در ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه و ﺑﻪ ﻛﻤﻚ ﻣﺤﻴﻂﻫﺎي‬
‫ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻧﻈﻴﺮ ‪ Java ME‬اﻧﺠﺎم ﻣﻲﺷﻮد‪ .‬ﻫﻤﭽﻨﻴﻦ اﺳﺘﻔﺎده از ‪API‬ﻫﺎﻳﻲ ﻧﻈﻴﺮ ‪ Bouncy Castle‬ﻣﺠﺎز اﺳﺖ‪ .‬ﺗﺤﻮﻳﻞ ﭘﺮوژه‬
‫ﺑﺮ روي ﮔﻮﺷﻲ ﺗﻠﻔﻦ ﻫﻤﺮاه ﻳﺎ ﻳﻚ ﺷﺒﻴﻪﺳﺎز اﻧﺠﺎم ﺧﻮاﻫﺪ ﺷﺪ و ﺑﺮﻧﺎﻣﻪ ﺗﻮﻟﻴﺪ ﺷﺪه ﺑﺎﻳﺴﺘﻲ ﺑﻪ راﺣﺘﻲ و ﺑﺪون دردﺳﺮ ﺗﻮﺳﻂ‬
‫ﻣﺸﺘﺮي اﺳﺘﻔﺎده ﮔﺮدد‪ .‬ﺑﺴﺘﺮ اﺻﻠﻲ اﻳﻦ ﭘﺮوژه ﻣﻲﺗﻮاﻧﺪ ﻳﻜﻲ از ﭘﺮوژهﻫﺎي ﻣﺘﻦﺑﺎز زﻳﺮ و ﻳﺎ ﻣﻮارد ﻣﺸﺎﺑﻪ آنﻫﺎ )ﺑﺎ ﻗﺎﺑﻠﻴﺖﻫﺎي ﻛﻤﺘﺮ(‬
‫ﺑﺎﺷﺪ‪:‬‬
‫‪Mobile-OTP : http://motp.sourceforge.net/‬‬
‫‪S/Key Generator for J2ME architecture : http://sourceforge.net/projects/otp-j2me/‬‬
‫ﺑﻬﺮهﮔﻴﺮي از اﻳﻦ ﻣﻮﻟﻔﻪﻫﺎ )ﺑﻪ وﻳﮋه ‪ (Mobile-OTP‬ﻣﻲﺗﻮاﻧﺪ اﻧﺠﺎم اﻳﻦ ﭘﺮوژه را ﺑﺴﻴﺎر آﺳﺎن ﻛﻨﺪ!‬
‫‪۵‬‬
‫اﻣﻨﻴﺖ داده و ﺷﺒﻜﻪ‬
‫ﭘﺮوژهي ﭘﺎﻳﺎن ﺗﺮم‬
‫‪ 27‬آذرﻣﺎه ‪89‬‬
‫رﻣﺰﻧﮕﺎري آﺳﺘﺎﻧﻪاي و اﻣﻀﺎي ﭼﻨﺪﻧﻔﺮهي دﻳﺠﻴﺘﺎل‬
‫در ﺑﺮﺧﻲ از ﻣﻮارد ﺣﺴﺎس و ﺑﺤﺮاﻧﻲ ﻧﻴﺎز اﺳﺖ ﺗﺎ دﺳﺘﺮﺳﻲ ﺑﻪ دادهﻫﺎي ﻣﺤﺮﻣﺎﻧﻪ ﻳﺎ اﻣﻀﺎي ﻳﻚ ﺳﻨﺪ ﺗﻮﺳﻂ ﺑﻴﺶ از ﻳﻚ ﻧﻔﺮ اﻧﺠﺎم‬
‫ﭘﺬﻳﺮد‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺑﺮاي ﺑﺮداﺷﺖ از ﺣﺴﺎبﻫﺎي اﺷﺘﺮاﻛﻲ‪ ،‬ﻧﻴﺎز ﺑﻪ اﻣﻀﺎي ﻫﻤﻪ ﻳﺎ ﺑﺨﺸﻲ از ﺻﺎﺣﺒﺎن ﺣﺴﺎب اﺳﺖ‪ .‬ﻫﺪف اﻳﻦ‬
‫ﭘﺮوژه آﺷﻨﺎﻳﻲ ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎي رﻣﺰﻧﮕﺎري و اﻣﻀﺎي ﭼﻨﺪﻧﻔﺮهي دﻳﺠﻴﺘﺎل‪ 1‬و ﭘﻴﺎدهﺳﺎزي ﻧﻤﻮﻧﻪي ﺳﺎدهاي از آنﻫﺎﺳﺖ‪.‬‬
‫ﺳﻴﺴﺘﻢﻫﺎي رﻣﺰﻧﮕﺎري ﭼﻨﺪﻧﻔﺮه ﻋﻤﻮﻣﺎً از ﻃﺮحﻫﺎي ﻣﺒﺘﻨﻲ ﺑﺮ ﺗﺴﻬﻴﻢ راز‪ 2‬اﺳﺘﻔﺎده ﻣﻲﻛﻨﻨﺪ‪ .‬ﺗﺴﻬﻴﻢ راز روﺷﻲ اﺳﺖ ﺑﺮاي ﺑﻪ‬
‫اﺷﺘﺮاك ﮔﺬاﺷﺘﻦ ﻳﻚ راز ﻣﻴﺎن ﭼﻨﺪ ﺳﻬﺎمدار‪ ،‬ﺑﻪ ﮔﻮﻧﻪ اي ﻛﻪ ﺑﺎزﻳﺎﺑﻲ راز ﺗﻨﻬﺎ در ﻫﻨﮕﺎم ﻣﺸﺎرﻛﺖ ﺗﻤﺎم آنﻫﺎ ﻣﻤﻜﻦ ﺑﺎﺷﺪ‪ .‬ﺣﺎﻟﺘﻲ‬
‫ﻛﻪ ﺑﺮاي ﺑﺎزﻳﺎﺑﻲ راز ‪ ، s‬از ﻣﻴﺎن ‪ n‬ﺳﻬﺎمدار ﺣﻀﻮر ﺣﺪاﻗﻞ ‪ t‬ﻧﻔﺮ از آنﻫﺎ ﻛﺎﻓﻲ ﺑﺎﺷﺪ‪ ،‬ﻃﺮح ﺗﺴﻬﻴﻢ راز آﺳﺘﺎﻧﻪاي‪ (t,n) 3‬ﻧﺎﻣﻴﺪه‬
‫ﻣﻲﺷﻮد‪.‬‬
‫اﻳﻦ ﭘﺮوژه ﻫﺮ دو روﻳﻜﺮد رﻣﺰﻧﮕﺎري آﺳﺘﺎﻧﻪاي‪ 4‬و اﻣﻀﺎي ﭼﻨﺪﻧﻔﺮهي دﻳﺠﻴﺘﺎل را ﺷﺎﻣﻞ ﻣﻲﺷﻮد‪ .‬ﻫﺮﭼﻨﺪ ﻛﻪ ﻃﺮحﻫﺎي ﻣﺨﺘﻠﻔﻲ‬
‫ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر اراﺋﻪ ﺷﺪه اﺳﺖ‪ ،‬اﻣﺎ ﭘﻴﺸﻨﻬﺎد ﻣﻲﺷﻮد از ﻃﺮحﻫﺎي ﻣﺒﺘﻨﻲ ﺑﺮ رﻣﺰﻧﮕﺎري اﻟﺠﻤﺎل اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ .‬ﺑﺮﻧﺎﻣﻪي ﻣﺮﺑﻮﻃﻪ‬
‫ﺑﺎﻳﺴﺘﻲ در ﻳﻚ ﻣﺮﺣﻠﻪ ﻗﺎﺑﻠﻴﺖ ﺗﻮﻟﻴﺪ ﺳﻬﻢ ﺑﺮاي ﻫﺮ ﻓﺮد‪ ،‬و در ﻣﺮﺣﻠﻪي دﻳﮕﺮ ﻗﺎﺑﻠﻴﺖ درﻳﺎﻓﺖ ﺳﻬﻢ اﻓﺮاد ﺑﻪ ﻣﻨﻈﻮر رﻣﺰﮔﺸﺎﻳﻲ ﻳﺎ‬
‫اﻧﺠﺎم اﻣﻀﺎ ﺑﺮ روي ﻳﻚ ﭘﻴﺎم ﻳﺎ ﻓﺎﻳﻞ را داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻋﻼوه ﺑﺮ اﻳﻦ ﺑﺎﻳﺴﺘﻲ در ﺣﺪ ﺳﺎدهاي ﺗﻮاﻧﺎﻳﻲ ﺗﺸﺨﻴﺺ ﺗﻘﻠﺐ ﺳﻬﺎﻣﺪاران را ﻧﻴﺰ‬
‫داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻗﺎﺑﻠﻴﺖﻫﺎﻳﻲ ﻧﻈﻴﺮ ﻛﺎﻫﺶ و اﻓﺰاﻳﺶ ﺗﻌﺪاد ﺳﻬﺎﻣﺪاران ﻳﻚ راز‪ ،‬ﺑﻬﻨﮕﺎمﺳﺎزي ﺳﻬﺎمﻫﺎ‪ ،‬دادن ﺳﻬﻢﻫﺎي ﺑﻴﺸﺘﺮ ﺑﻪ ﻳﻚ‬
‫ﻓﺮد ﺑﺎ درﺟﻪي اﻫﻤﻴﺖ ﺑﺎﻻﺗﺮ و ‪ ...‬ﻧﻴﺰ ﻣﻲﺗﻮاﻧﻨﺪ ﺑﺮﺧﻲ از وﻳﮋﮔﻲﻫﺎي دﻳﮕﺮ اﻳﻦ ﻃﺮح ﺑﺎﺷﻨﺪ‪ .‬ﺑﺨﺶ ﻣﻄﺎﻟﻌﺎﺗﻲ اﻳﻦ ﭘﺮوژه ﺑﻴﺸﺘﺮ از‬
‫ﺑﺨﺶ ﭘﻴﺎدهﺳﺎزي آن اﺳﺖ و ﺑﺮاي آﺷﻨﺎﻳﻲ ﺑﺎ آن ﻣﻲﺗﻮاﻧﻴﺪ از ﻣﻨﺎﺑﻊ زﻳﺮ ﺷﺮوع ﻧﻤﺎﻳﻴﺪ‪:‬‬
‫‪http://en.wikipedia.org/wiki/Secret_sharing‬‬
‫‪http://www.cs.berkeley.edu/~daw/teaching/cs276-s06/l30-jm.pdf‬‬
‫‪http://www.tcs.hut.fi/Studies/T-79.159/2004/slides/L9.pdf‬‬
‫‪١‬‬
‫‪Digital multisignature‬‬
‫‪٢‬‬
‫‪Secret Sharing‬‬
‫‪٣‬‬
‫‪Threshold secret Sharing‬‬
‫‪٤‬‬
‫‪Threshold cryptosystem‬‬
‫‪۶‬‬