Subsurf modifier rounding sharp edges
In order to keep hard your edges, use the Crease. You find it on the right



The crease makes your edges purple, in order to show you wich one will remain hard or not.

Usually is set on 0.00 . . . Max it from 0.00 to 1.00 and your edges will keep their shape after a subdivision surface.

For example:
Before subdivision



After