Blender Collision Simulation Data
By using collision callbacks you can retrieve the hit object, point and normal (not sure about how to retrieve the impact force though). See the API reference for more info. Example file below.

def my_callback(object, point, normal):
    ''' Do whatever you want with your collision data '''
    print('Hit by', object.name, 'at', point, 'with normal', normal)

def register_callback(cont):
    ''' Run this with an always sensor (tap enabled) when the game starts '''
    own = cont.owner

    if not my_callback in own.collisionCallbacks:
        own.collisionCallbacks.append(my_callback)




Example file: