diff --git a/cryptography/hazmat/backends/__init__.py b/cryptography/hazmat/backends/__init__.py
index ae78822..663d1f5 100644
--- a/cryptography/hazmat/backends/__init__.py
+++ b/cryptography/hazmat/backends/__init__.py
@@ -13,13 +13,9 @@
 
 from __future__ import absolute_import, division, print_function
 
+import pkg_resources
+
 from cryptography.hazmat.backends.multibackend import MultiBackend
-from cryptography.hazmat.bindings.commoncrypto.binding import (
-    Binding as CommonCryptoBinding
-)
-from cryptography.hazmat.bindings.openssl.binding import (
-    Binding as OpenSSLBinding
-)
 
 
 _available_backends_list = None
@@ -31,17 +27,24 @@
     if _available_backends_list is None:
         _available_backends_list = []
 
-        if CommonCryptoBinding.is_available():
-            from cryptography.hazmat.backends import commoncrypto
-            _available_backends_list.append(commoncrypto.backend)
+        for backend in pkg_resources.iter_entry_points(
+            "cryptography.hazmat.backends"
+        ):
+            is_backend_available = pkg_resources.get_entry_info(
+                backend.dist,
+                "cryptography.hazmat.is_backend_available",
+                backend.name
+            )
 
-        if OpenSSLBinding.is_available():
-            from cryptography.hazmat.backends import openssl
-            _available_backends_list.append(openssl.backend)
+            if is_backend_available is not None:
+                is_backend_available = is_backend_available.load(require=False)
+                if not is_backend_available():
+                    continue
+
+            _available_backends_list.append(backend.load(require=False))
 
     return _available_backends_list
 
-
 _default_backend = None
 
 
diff --git a/setup.py b/setup.py
index f73394e..30146b7 100644
--- a/setup.py
+++ b/setup.py
@@ -32,13 +32,15 @@
     exec(f.read(), about)
 
 
+SETUPTOOLS_DEPENDENCY = "setuptools"
 CFFI_DEPENDENCY = "cffi>=0.8"
 SIX_DEPENDENCY = "six>=1.4.1"
 VECTORS_DEPENDENCY = "cryptography_vectors=={0}".format(about['__version__'])
 
 requirements = [
     CFFI_DEPENDENCY,
-    SIX_DEPENDENCY
+    SIX_DEPENDENCY,
+    SETUPTOOLS_DEPENDENCY
 ]
 
 # If you add a new dep here you probably need to add it in the tox.ini as well
@@ -173,5 +175,17 @@
         "build": CFFIBuild,
         "install": CFFIInstall,
         "test": PyTest,
+    },
+
+    entry_points={
+        "cryptography.hazmat.backends": [
+            "commoncrypto = cryptography.hazmat.backends.commoncrypto:backend",
+            "openssl = cryptography.hazmat.backends.openssl:backend"
+        ],
+
+        "cryptography.hazmat.is_backend_available": [
+            "commoncrypto = cryptography.hazmat.bindings.commoncrypto."
+            "binding:Binding.is_available"
+        ]
     }
 )
