Yes germanunkol i actually sent you links to a few papers about hit verification from valve, don't think it would be suited here though.
You say you create the shots at each players local position of the ships right? i guess this method can work for your game since its just empty open space, but i think it may be problematic otherwise. Sounds like you may have projectiles clipping through geometry in high latency situations, now that i think about it, it doesnt sound too bad at all.
Your method sounds like method 3 in this:
http://scionwars.blog.com/2011/04/06/multiplayereffects/I guess all methods have their pros and cons, none is perfect ...
What i do, though i use 'instant hit' weapons alot, is to send the start and end points of each shot when a client fires, each other client then creates the tracer at pointA and allows it to fly to pointB, muzzle flashes help hide the differences between it and where each client may see its supposed source. I had experimented with not sending pointA and just tracing from where each client sees the creation point(muzzle) however i thought it'd result in tracers clipping through objects under high latency, simply because each client may see the muzzle point at a different position.
I think for his game, what i'd do is use local c_move shots on each client that fires, if it makes a hit, i then let the server c_trace to verify if the shot hit possible, this also reduces some of the 'shooting a player that runs behind a wall' prob.
OR
You could send the position of both ships then use those positions to verify the shot on the server, i tried this before, it wasnt bad at all except i sent a timeID for both players, i'd then use the positions at those timeIDs for verifying the shot, i learnt this from valves method, they actually jumped all players back then retake the shot, but i figured some TEMPORARY object would achieve similar results, however i dont use it anymore, i use the method above