Fingerprint verification is one of the most widespread techniques of personal identification. This paper describes the design of am minutiae-based fingerprint verification system including image preprocessing, feature extraction and fingerprint matching. Image preprocessing comprises the extraction of the region of interest, ridge segmentation, and ridge thinning. The features extracted from a fingerprint include fingerprint minutiae, i.e. ridge endings, and ridge bifurcations, as well as other related characteristics meant to improve the matching performances. The list of attributes of each minutia is extended with a feature vector, that resembles information extracted from the neighborhood region of the minutia. A measure of similarity between two minutiae can be expressed in terms of the distance between their corresponding feature vectors. We investigate two matching techniques based on the new approach of similar minutiae detection. A database containing 168 fingerprint images is used for experiments. The results reveal that the proposed system can achieve a good verification accuracy on this database. In addition, the proposed system meets the time requirements of practical acceptability as long as the average time for a verification is below 1.2 sec on a Sun ULTRA 1 workstation.