Ejemplo n.º 1
0
def get_ticket(ip_Client,AD_Client,ip_Server,Key_cv,Key_server):
    ts4 = time.time()
    ts4 = tostr.ts_tostr(ts4)

    lifetime4 = 666
    lifetime4 = tostr.lifetime_tostr(lifetime4)

    ticket_Server = Key_cv + ip_Client + AD_Client + ip_Server + ts4 + lifetime4
    ticket_Server = des_en.test(ticket_Server, Key_server)
    print("ticket_server = ", ticket_Server)
    return ticket_Server,ts4
Ejemplo n.º 2
0
def get_Authencator(Key_ctgs):
    ip_Client = tostr.get_host_ip()
    ip_Client = tostr.ip_tostr(ip_Client)

    AD_c = ip_Client

    ts3 = time.time()
    ts3 = tostr.ts_tostr(ts3)

    authencator = ip_Client + AD_c + ts3
    authencator = des_en.test(authencator, Key_ctgs)

    return authencator,ts3
Ejemplo n.º 3
0
def TGS_to_Client(ip_Client, ip_Server, Key_ctgs):

    Key_server = 'bcdefgh'
    Key_server = tostr.ip_tostr(Key_server)
    Key_cv = get_key()
    Key_server = tostr.ip_tostr(Key_server)

    ip_Server = tostr.ip_tostr(ip_Server)
    ip_Client = tostr.ip_tostr(ip_Client)
    AD_Client = ip_Client
    ticket_Server,ts4 = get_ticket(ip_Client,AD_Client,ip_Server,Key_cv,Key_server)
    message = Key_cv + ip_Server + ts4 + ticket_Server
    message = des_en.test(message, Key_ctgs)
    print("message = ", message)
    return message
Ejemplo n.º 4
0
def Client_to_AS():
    ip_Client = tostr.get_host_ip()
    ip_Client = tostr.ip_tostr(ip_Client)
    print("ip = ", ip_Client)

    ip_TGS = "192.168.43.203"
    ip_TGS = tostr.ip_tostr(ip_TGS)
    print("ip_TGS = ", ip_TGS)

    ts1 = time.time()
    ts1 = tostr.ts_tostr(ts1)
    print("ts1 = ", ts1)

    #str_ClienttoAS = tostr.IntegrationMessage.ClientAS(ip_Client, ip_TGS, ts1)
    str_ClienttoAS = ip_Client + ip_TGS + ts1
    print("str_Client = ", str_ClienttoAS)

    return str_ClienttoAS
Ejemplo n.º 5
0
def Client_to_TGS(ticket_TGS, Key_ctgs):
    ip_Server = '192.168.43.204'  # 如何获取SERVER端的IP呢************************************************

    ip_Server = tostr.ip_tostr(ip_Server)

    Authenticator_c,ts = get_Authencator(Key_ctgs)

    message = ip_Server + ticket_TGS + Authenticator_c
    return message,str(len(ticket_TGS))
Ejemplo n.º 6
0
def AS():
    r = redis.Redis(host='localhost', port=6379, db=0)
    # 接受Client发送的报文
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    localhost = socket.gethostname()
    port = 10000
    s.bind((localhost,port))
    s.listen(5)

    cs,address = s.accept()
    print("got connection : ",address)

    try:
        message1 = cs.recv(1024)
    # message1 = '192.168.43.202*192.168.43.203*1556868720.719386*'
        receive = message1.decode()
        ip_Client = receive[0:15]
        ip_Client = tostr.takeout(ip_Client)
        print("ip_Client = ", ip_Client)  # 数据库判断是否合法的ip

        ip_TGS = receive[15:30]
        ip_TGS = tostr.takeout(ip_TGS)
        print("ip_TGS = ", ip_TGS)

        ts1 = receive[30:48]
        ts1 = tostr.takeout(ts1)
        print("ts1 = ", ts1)
        ip_c = (r.get('ip_Client')).decode()
        if ip_c == ip_Client:
            message2 = AS_to_Client(ip_Client, r)
            print("message2 = ", message2)
            # 发送message给Client
            cs.send(message2.encode())
        else:
            print("There is not ",ip_Client)
            s.close()
    except ConnectionResetError as e:
        print('关闭了正在占线的链接!')

    cs.close()
Ejemplo n.º 7
0
def AS_to_Client(ip_Client, r):
    Key_c = (r.get('Key_Client')).decode()
    Key_c = tostr.key_tostr(Key_c)

    Key_ctgs = (r.get('Key_ctgs')).decode()  # 理论上从数据库获取
    Key_ctgs = tostr.key_tostr(Key_ctgs)
    print("Key_ctgs = ", Key_ctgs)

    ip_TGS = (r.get('ip_TGS')).decode()  # 从数据库获取TGS的IP地址
    ip_TGS = tostr.ip_tostr(ip_TGS)
    ts2 = time.time()
    ts2 = tostr.ts_tostr(ts2)

    lifetime2 = 666
    lifetime2 = tostr.lifetime_tostr(lifetime2)

    ip_Client = tostr.ip_tostr(ip_Client)

    ticket_tgs = get_ticket(Key_ctgs, ip_Client, ip_TGS, ts2, lifetime2, r)

    message = Key_ctgs + ip_TGS + ts2 + lifetime2 + ticket_tgs
    message = des_en.test(message, Key_c)
    return message
Ejemplo n.º 8
0
def Server_to_Client(ts5, Key_cv):
    ts5 += 1
    ts5 = tostr.ts_tostr(ts5)
    message = des_en.test(ts5, Key_cv)
    return message
Ejemplo n.º 9
0
def SERVER():
    Key_server = 'bcdefgh'
    #message5 = '928F4FE9A2F3D3CED3D397336CC8B2EEEC307CAEB9A0471F8127A8CFD08E295189D108A74C4DD9D61666640358B672B00FBB826366B28F2BBC712109B4856D6EA4910B74D4E183C668ED77CEC893F50B9B2431C2F876C9CA2DDB21338EE8003F4421A988FA40BBB991D4E08E7FA7594CF47D82B5A28666B16460CABC8840EF21E9AB683C1432B9B0'
    #lenofticket_server = '160'
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    localhost = socket.gethostname()
    port = 10002
    s.bind(("localhost", port))
    s.listen(5)

    cs, address = s.accept()
    print("got connection : ", address)

    message5 = cs.recv(1024)
    message5 = message5.decode()
    print("messge5 = ", message5)
    lenofticket = cs.recv(1024)
    lenofticket_server = lenofticket.decode()
    print("len = ", lenofticket)

    ticket_server = message5[0:int(lenofticket_server)]
    ticket_server = des_de.test(ticket_server,Key_server)
    ticket_server = tostr.takeout(ticket_server)
    print("ticket_server = ", ticket_server)

    Key_cv = ticket_server[0:7]
    print("Key_cv = ", Key_cv)
    ip_Client = ticket_server[7:22]
    ip_Client = tostr.takeout(ip_Client)
    print("ip_Client = ", ip_Client)

    AD_client = ticket_server[22:37]
    AD_client = tostr.takeout(AD_client)
    print("AD_client = ", AD_client)

    ip_Server = ticket_server[37:52]
    ip_Server = tostr.takeout(ip_Server)
    print("ip_Server = ", ip_Server)

    ts4 = ticket_server[52:70]
    ts4 = tostr.takeout(ts4)
    print("ts4 = ", ts4)

    lifetime4 = ticket_server[70:78]
    lifetime4 = tostr.takeout_0(lifetime4)
    print("lifetime4 = ", lifetime4)

    Authencator_c = message5[int(lenofticket_server):len(message5)]
    Authencator_c = des_de.test(Authencator_c,Key_cv)
    print("Authencator_c = ",Authencator_c)

    ip_Client_fromAu = Authencator_c[0:15]
    ip_Client_fromAu = tostr.takeout(ip_Client_fromAu)
    print("ip_Client_fromAu = ", ip_Client_fromAu)

    AD_client_fromAu = Authencator_c[15:30]
    AD_client_fromAu = tostr.takeout(AD_client_fromAu)
    print("AD_client_fromAu = ", AD_client_fromAu)

    ts5 = Authencator_c[30:]
    ts5 = tostr.takeout(ts5)
    ts5 = float(ts5)
    print("ts5 = ",ts5)

    message6 = Server_to_Client(ts5,Key_cv)
    print("message6 = ", message6)

    cs.send(message6.encode())
    cs.close()
Ejemplo n.º 10
0
def TGS():
    Key_tgs = 'cdefghi'
    # 从Client接收message3
    # 从Client接收lenofticket(str型)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    localhost = socket.gethostname()
    port = 10001
    s.bind(("localhost", port))
    s.listen(5)

    cs, address = s.accept()
    print("got connection : ", address)

    message3 = cs.recv(1024)
    message3 = message3.decode()
    print("messge3 = ", message3)
    print("1")
    lenofticket = cs.recv(1024)
    print("2")
    lenofticket = lenofticket.decode()
    print("len = ", lenofticket)


    #message3 = '192.168.43.204*928F4FE9A2F3D3CED3D397336CC8B2EEEC307CAEB9A0471F8127A8CFD08E295189D108A74C4DD9D61666640358B672B03E3CE0B836AE132C175F44F4F1488D50072D6EE80E2A596368ED77CEC893F50B********6662F19DEF926DBD87A95C21E5C4C0D3D3D397336CC8B2EEFF08097D8012F6E2A02087B20DB77FE24536257798F303C3E9AB683C1432B9B0'
    lenofmessage = len(message3)
    # lenofticket = '168'
    ip_Server = message3[0:15]
    ip_Server = tostr.takeout(ip_Server)

    ticket_TGS = message3[15:int(lenofticket) + 15]
    ticket_TGS = tostr.takeout(ticket_TGS)
    ticket_TGS = des_de.test(ticket_TGS, Key_tgs)
    print("ticket_TGS = ", ticket_TGS)

    Key_ctgs_fromclient = ticket_TGS[0:7]
    ip_Client_fromclient = ticket_TGS[7:22]
    ip_Client_fromclient = tostr.takeout(ip_Client_fromclient)
    print("ip_Client_fromclient = ", ip_Client_fromclient)

    AD_Client_fromclient = ticket_TGS[22:37]
    AD_Client_fromclient = tostr.takeout(AD_Client_fromclient)
    print("AD_Client_fromclient = ", AD_Client_fromclient)

    ip_TGS_fromclient = ticket_TGS[37:52]
    ip_TGS_fromclient = tostr.takeout(ip_TGS_fromclient)
    print("ip_TGS_fromclient = ", ip_TGS_fromclient)

    ts2_fromclient = ticket_TGS[52:70]
    ts2_fromclient = tostr.takeout(ts2_fromclient)
    print("ts2_fromclient = ", ts2_fromclient)

    lifetime2_fromclient = ticket_TGS[70:78]
    lifetime2_fromclient = tostr.takeout_0(lifetime2_fromclient)
    print("lifetime2 = ", lifetime2_fromclient)

    Authencator_client = message3[int(lenofticket) + 15:lenofmessage]
    Authencator_client = tostr.takeout(Authencator_client)
    Authencator_client = des_de.test(Authencator_client, Key_ctgs_fromclient)
    print("Authencator_c = ", Authencator_client)

    ip_Client_fromclient2 = Authencator_client[0:15]
    ip_Client_fromclient2 = tostr.takeout(ip_Client_fromclient2)
    print("ip_Client_fromclient2 = ", ip_Client_fromclient2)

    AD_Client_fromclient2 = Authencator_client[15:30]
    AD_Client_fromclient2 = tostr.takeout(AD_Client_fromclient2)
    print("AD_Client_fromclient2 = ", AD_Client_fromclient2)

    ts3_fromclient = Authencator_client[30:48]
    ts3_fromclient = tostr.takeout(ts3_fromclient)
    print("ts3 = ", ts3_fromclient)

    message4 = TGS_to_Client(ip_Client_fromclient, ip_Server, Key_ctgs_fromclient)
    print("message4 = ", message4)

    cs.send(message4.encode())

    cs.close()
Ejemplo n.º 11
0
def CLIENT():
    Key_c = 'abcdefg'  # Key_Client
    message1 = Client_to_AS()
    localhost = socket.gethostname()
    port_AS = 10000
    port_TGS = 10001
    port_Server = 10002
    print("mesage1 = ", message1)

    """s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect((localhost,port_AS))
    s.send(message1.encode('utf-8'))
    message2 = s.recv(1024)
    message2 = message2.decode()
    print("message2 = ",message2)
    s.close()"""

    message2 = 'D3A41D74DCE667CA3EC5834761094B6107687B4A2EAAD82C7D6C097A8D60C4B35DF32FDC8FF799DE98B3A781D438F4A6D937FF4846783646DCB15C599E2C137B9D16D5F49BB06BDEB47FD74D78ED5812E0B93D9376E96BF7274E7E3D56629190EA06D02563EC5238CB237E0D07B3FBE21F2B042DAE997E4CF0A64B564FBB3B0D72912ACA208A52D0186ED178DC91FC91A411BF971D3D6122E8B5DEDAD7E7459C06C31C384C2E3E3CA0F0BBADF3CBF4010D5473F8A9F64FD5C684031231C9999BAD0E6439F7333D2E47AAA1EB7B5E0CDCE9AB683C1432B9B0'
    message2 = des_de.test(message2, Key_c)
    print("message2 = ", message2)
    Key_ctgs = message2[0:7]
    print("Key_ctgs = ", Key_ctgs)

    ip_TGS_fromAS = message2[7:22]
    ip_TGS_fromAS = tostr.takeout(ip_TGS_fromAS)
    print("ip_TGS = ", ip_TGS_fromAS)

    ts2 = message2[22:40]
    ts2 = tostr.takeout(ts2)
    ts2 = float(ts2)
    print("ts2 = ", ts2)

    lifetime2 = message2[40:48]
    lifetime2 = tostr.takeout_0(lifetime2)
    print("lifetime2 = ", lifetime2)

    ticket_TGS = message2[48:]
    print("ticket_TGS = ", ticket_TGS)
    # 给TGS发送报文

    message3,lenofticket_tgs = Client_to_TGS(ticket_TGS,Key_ctgs)
    print("message3 = ", message3)
    print("lenofticket = ", lenofticket_tgs)
    # 发送报文到TGS,再把lenofticket也发送过去
    """tgs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print("1")
    tgs.connect(("localhost", port_TGS))
    print("2")

    tgs.send(message3.encode('utf-8'))
    print("3")
    time.sleep(1)
    tgs.send(lenofticket_tgs.encode('utf-8'))
    message4 = tgs.recv(1024)
    message4 = message4.decode()
    print("message4 = ", message4)
    tgs.close()"""
    # 从TGS接收到message4
    message4 = '7ECB2D091E65A2B0D76FA69341FB845BEA16784472B24B61A4937E2B6F781BB20A7BB2D208888E679F9BC69CE2078306AE7A9BC210F3BE425BF00DC80C8355CFCCD728A6DF641CB97AF7F85421A0B79F3258DC5EEF1F640B3DF01E1B3537772D33F85F8265EF443CD1028570A2B639F434B4EFDECC61F27B65197A570A5E4DA5F7242F37BD68F4A81F69A771D36883CF0E533063C1E9428D9FB361FC1450E8717C5CBE5AF3B877E6BBFB26A32C116E1FBD161581C15540BACC130C743E83F60867D77BE9F9CC2B0E7358F0ED7796932F'
    message4 = des_de.test(message4, Key_ctgs)
    message4 = tostr.takeout(message4)
    print("message4 = ", message4)
    lenofmessage4 = len(message4)
    Key_cv = message4[0:7]
    print("Key_cv = ", Key_cv)

    ip_Server = message4[7:22]
    ip_Server = tostr.takeout(ip_Server)
    print("ip_Server = ", ip_Server)

    ts4 = message4[22:40]
    ts4 = tostr.takeout(ts4)
    print("ts4 = ", ts4)

    ticket_Server = message4[40:lenofmessage4]

    print("ticket_Server = ", ticket_Server)

    message5, lenofticket_server, ts5 = Client_to_Server(ticket_Server, Key_cv)
    lenofticket_server = str(lenofticket_server)
    print("message5 = ", message5)
    print("lenofticket_server = ", lenofticket_server)
    print("ts5 = ", ts5)

    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.connect(("localhost", port_Server))
    server.send(message5.encode('utf-8'))
    time.sleep(1)
    server.send(lenofticket_server.encode('utf-8'))
    message6 = server.recv(1024)
    message6 = message6.decode()
    print("message6 = ", message6)
    server.close()
    message6 = des_de.test(message6, Key_cv)
    ts6 = tostr.takeout(message6)
    print("ts6 = ", ts6)