This article addresses the problem of computing stable grasps of three-dimensional polyhedral objects. We consider the case of a hand equipped with four hard fingers and assume point contact with friction. We prove new necessary and sufficient conditions for equilibrium and force closure, and present a geometric characterization of all possible types of four-finger equilibrium grasps. We then focus on concurrent grasps, for which the lines of action of the four contact forces all intersect in a point. In this case, the equilibrium conditions are linear in the unknown grasp parameters, which reduces the problem of computing the stable grasp regions in configuration space to the problem of constructing the eight-dimensional projection of an 11-dimensional polytope. We present two projection methods: the first one uses a simple Gaussian elimination approach, while the second one relies on a novel output-sensitive contour-tracking algorithm Finally, we use linear optimization within the valid configuration space regions to compute the maximal object regions where fingers can be positioned independently while ensuring force closure. We have implemented the proposed approach and present several examples.