def generateKeys(self):
		'''
		Genera le chiavi a partire dai pacchetti
		'''
		#genero psk a partire dal pms (pre master secret) e dall'SSID
		pskGenerator = passphraseToPSKMap(self.pms,self.ssid)
		psk = pskGenerator.getPsk()

		#print 'PMK = ' + str(packet_printer.stringInHex(psk))
		#estraggo i due Nonce e i due macAddress
		ANonce = self.getNonce(self.p1.scapyForm)
		SNonce = self.getNonce(self.p2.scapyForm)
		AA = self.getSrcAddress(self.p1.scapyForm)
		SPA = self.getSrcAddress(self.p2.scapyForm)

		#print 'AN = ' + ANonce
		#print 'SN = ' + SNonce
		#print 'AA = ' + str(AA)
		#print 'SA = ' + str(SPA)
		#genero le chiavi di sessione
		keyGen = keyGenerator(psk,self.mex,AA,SPA,ANonce,SNonce)
		[kck,kek,tk,authenticatorMicKey,supplicantMicKey] = keyGen.getKeys()
		self.kck = kck
		self.kek = kek
		self.tk = tk
		self.authenticatorMicKey = authenticatorMicKey
		self.supplicantMicKey = supplicantMicKey
Exemple #2
0
	def setUp(self):
		'''
		definisco il valore dell'input e dell'output in base ai valori della rfc (pag 1139)
		'''
		# Imposto i dati
		self.PMK = struct.pack('32B',0x0d,0xc0,0xd6,0xeb,0x90,0x55,0x5e,0xd6,0x41,0x97,0x56,0xb9,0xa1,0x5e,0xc3,0xe3,0x20,0x9b,0x63,0xdf,0x70,0x7d,0xd5,0x08,0xd1,0x45,0x81,0xf8,0x98,0x27,0x21,0xaf)
		self.AA = struct.pack('6B',0xa0,0xa1,0xa1,0xa3,0xa4,0xa5)
		self.SPA = struct.pack('6B',0xb0,0xb1,0xb2,0xb3,0xb4,0xb5)
		self.SNonce = struct.pack('32B',0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5)
		self.ANonce = struct.pack('32B',0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,0x00,0x01,0x02,0x03,0x04,0x05)
		self.mex = "Pairwise key expansion"
		# Genero le chiavi
		keyGen = keyGenerator(self.PMK,self.mex,self.AA,self.SPA,self.ANonce,self.SNonce)
		self.kck,self.kek,self.tk,self.authenticatorMicKey,self.supplicantMicKey = keyGen.getKeys()
		# Definisco i risultati corretti
		self.correctKCK = struct.pack('16B',0x37,0x9f,0x98,0x52,0xd0,0x19,0x92,0x36,0xb9,0x4e,0x40,0x7c,0xe4,0xc0,0x0e,0xc8)		
		self.correctKEK = struct.pack('16B',0x47,0xc9,0xed,0xc0,0x1c,0x2c,0x6e,0x5b,0x49,0x10,0xca,0xdd,0xfb,0x3e,0x51,0xa7)
		self.correctTK = struct.pack('32B',0xb2,0x36,0x0c,0x79,0xe9,0x71,0x0f,0xdd,0x58,0xbe,0xa9,0x3d,0xea,0xf0,0x65,0x99,0xdb,0x98,0x0a,0xfb,0xc2,0x9c,0x15,0x28,0x55,0x74,0x0a,0x6c,0xe5,0xae,0x38,0x27)
		self.correctAuthenticatorMicKey = struct.pack('8B',0xdb,0x98,0x0a,0xfb,0xc2,0x9c,0x15,0x28)
		self.correctSupplicantMicKey = struct.pack('8B',0x55,0x74,0x0a,0x6c,0xe5,0xae,0x38,0x27)
Exemple #3
0
	def generateKeys(self):
		'''
		Genera le chiavi a partire dai pacchetti
		'''
		#genero psk a partire dal pms (pre master secret) e dall'SSID
		pskGenerator = passphraseToPSKMap(self.pms,self.ssid)
		psk = pskGenerator.getPsk()

		#print 'PMK = ' + str(packet_printer.stringInHex(psk))
		#estraggo i due Nonce e i due macAddress
		ANonce = self.p1.objectForm.payload.payload.key_nonce
		SNonce = self.p2.objectForm.payload.payload.key_nonce
		AA = self.p1.objectForm.header.source_address
		SPA = self.p1.objectForm.header.destination_address

		#genero le chiavi di sessione
		keyGen = keyGenerator(psk,self.mex,AA,SPA,ANonce,SNonce)
		[kck,kek,tk,authenticatorMicKey,supplicantMicKey] = keyGen.getKeys()
		self.kck = kck
		self.kek = kek
		self.tk = tk
		self.authenticatorMicKey = authenticatorMicKey
		self.supplicantMicKey = supplicantMicKey