diff --git a/src/Form/KeyEditForm.php b/src/Form/KeyEditForm.php
index 327c65e..136c631 100644
--- a/src/Form/KeyEditForm.php
+++ b/src/Form/KeyEditForm.php
@@ -12,6 +12,13 @@ use Drupal\Core\Form\FormStateInterface;
 class KeyEditForm extends KeyFormBase {
 
   /**
+   * Keeps track of extra confirmation step on key edit.
+   *
+   * @var bool
+   */
+  protected $editConfirmed = FALSE;
+
+  /**
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
@@ -63,8 +70,46 @@ class KeyEditForm extends KeyFormBase {
    * {@inheritdoc}
    */
   public function form(array $form, FormStateInterface $form_state) {
+    $form = parent::form($form, $form_state);
     $form['#title'] = $this->t('Edit key %label', ['%label' => $this->entity->label()]);
-    return parent::form($form, $form_state);
+
+    // Check if the user has confirmed for a key edit.
+    if (!$this->editConfirmed) {
+      // Disable all form elements.
+      foreach ($form as $key => $value) {
+        if (strpos($key, '#') === FALSE) {
+          $form[$key]['#disabled'] = TRUE;
+        }
+      }
+
+      // Add the checkbox for key edit confirmation.
+      $form['confirm_edit'] = array(
+        '#type' => 'checkbox',
+        '#title' => $this->t('I understand the risks of editing this key entity.'),
+        '#description' => $this->t('Please acknowledge that you understand editing this key entity could make data that was previously encrypted with this key <strong>unencryptable</strong>. After you checked this box and pressed the "Save" button, you will be able to edit this key entity.'),
+        '#weight' => -100,
+      );
+    }
+
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function validateForm(array &$form, FormStateInterface $form_state) {
+    parent::validateForm($form, $form_state);
+
+    // Check if we can enable full key editing, after explicit user
+    // confirmation.
+    if (!$this->editConfirmed) {
+      if ($form_state->getValue('confirm_edit') == TRUE) {
+        $form_state->setRebuild();
+        $this->editConfirmed = TRUE;
+        return;
+      }
+    }
+
   }
 
 }
