How to? point set registration with hard surfaces

Any hints? My challenge is that I have two non-corresponding point sets that should be registered without penetrating each others surface.

Point set registration such as ICP optimize via a cost function that is symmetric on both sides of the surface. (two soft surfaces) I’d like to be able to nest curved objects with hard surfaces. As to assemble Matryoshka dolls.