Ejemplo de implementación de Bell-LaPadula

5

Actualmente estoy estudiando el modelo de Bell-LaPadula y necesito hacer una implementación como ejemplo.

Entiendo cómo funciona el modelo, pero tengo dificultades para implementarlo en un lenguaje de programación (por ejemplo, Java). Considero tener las siguientes clasificaciones:

  • Restringido,
  • Confidencial,
  • Secreto,
  • Top Secret

y las siguientes categorías:

  • Teniente,
  • Coronel,
  • Capitán,
  • Teniente General,
  • General.

¿Cómo represento la celosía?

    
pregunta user1019710 05.11.2011 - 14:11
fuente

3 respuestas

7

Sospecho que estás un poco confundido acerca de cómo funciona Bell-Lapadula y, en particular, cómo funcionan las categorías en Bell-Lapadula.

  • Las clasificaciones están necesariamente ordenadas. En su ejemplo, tenemos Restringido < Confidencial < Secreto < Ultra secreto. Hasta ahora, todo bien.

  • Las categorías son, en general, no ordenadas. A menudo, son un conjunto, sin orden entre ellos. Se utilizan para la compartimentación y son ortogonales a la clasificación. Se utiliza un compartimento para restringir aún más la diseminación a un grupo de personas con una necesidad de saber. Algunos ejemplos de compartimentos (categorías) pueden ser GAMMA (intercepción de las comunicaciones soviéticas), RUFF (imágenes obtenidas por satélite) o somesuch. Por ejemplo, el conjunto de categorías podría ser {GAMMA, RUFF}, sin ordenamiento implícito entre GAMMA vs RUFF.

Un documento podría estar sellado, por ejemplo, Top Secret GAMMA RUFF. Para que alguien tenga permiso para leer este documento, necesitan la autorización de Top Secret y necesitan autorización para acceder al material en el compartimiento GAMMA y para acceder al material en el compartimiento RUFF. En general, para leer un documento, su autorización debe ser al menos tan alta como la clasificación, y debe ser miembro de cada compartimento (categoría) con el que está etiquetado el documento.

Por lo tanto, en la práctica, los compartimentos nunca serían rangos como el teniente. Tu ejemplo no tiene sentido.

Con este fondo, cada documento / elemento de datos se etiqueta como sigue:

  • Tiene una clasificación.

  • Tiene un conjunto de categorías (compartimientos).

Puedes representar la clasificación como sugiere @Jeff Ferland. Para representar el conjunto de categorías, deberá modificar la sugerencia de @Jeff y almacenar un conjunto de categorías.

La parte más interesante no es la representación de etiquetas; La parte más interesante es averiguar cómo comparar dos etiquetas. Si un documento tiene la etiqueta L, y una persona tiene la etiqueta L ', ¿se le debe permitir a la persona leer el documento? Para verificar que comprende el modelo de Bell-Lapadula, le sugiero que codifique esta comprobación, por ejemplo. No te voy a decir cómo hacerlo. Está preguntando sobre la tarea, por lo que debe resolverla usted mismo: será una buena experiencia de aprendizaje para usted.

    
respondido por el D.W. 07.11.2011 - 08:22
fuente
6
[Restricted, Confidential, Secret, Top Secret] => [0, 1, 2, 3] //constants
[Lieutenant, Colonel, Captain, Lieutenant General, General] => [0, 1, 2, 3, 4] //constants

Configúralo en una clase estática similar a cómo funcionan Math.MAX_INT y otros ... Classification.RESTRICTED devolverá 0. Eso facilita la lectura desde el punto de vista de un programador.

Cómo se relacionan las categorías depende de usted. Sus pruebas de lectura / escritura son simples "es este valor más bajo / más alto que user.getClassification() ( user.setClassficiation(Classification.SECRET) )" (o donde sea que lo coloque).

Las categorías no están especificadas en Bell-LaPadula, así que tendrás que insinuar cómo planeas usarlas o descubrir cómo relacionarlas, ya que asumo que un rango no se relaciona directamente con una autorización.

    
respondido por el Jeff Ferland 05.11.2011 - 16:34
fuente
4

La forma más sencilla de recordar el modelo de Bell-LaPadula es: no leer, no escribir.

Una clasificación es la etiqueta y controla si el sujeto (persona) puede leer el objeto (documento, archivo, etc.). Para este ejemplo voy a ignorar los compartimentos.

Permite crear cuatro personas: Alice, Bob, Charlie, Diana y Eve. Ahora demos a cada uno una etiqueta: Alice es Confidencial, Bob está Restringido, Charlie es Confidencial, Diana es Secreto, Eve es Máxima Secreto. Cada persona crea un documento, y cuando crea un documento, el documento obtiene la misma etiqueta que la persona que lo creó. Alice crea el documento A, Bob crea el documento B, Charlie crea el documento C, Diana crea el documento D y Eve crea el documento E.

Ahora puede crear una tabla simple que muestre lo que sucede cuando alguien intenta leer un documento.

Para leer:

        | Doc A | Doc B | Doc C | Doc D | Doc E |
-------------------------------------------------
Alice   | allow | deny  | deny  | deny  | deny  |
Bob     | allow | allow | deny  | deny  | deny  | 
Charlie | allow | allow | allow | deny  | deny  | 
Diana   | allow | allow | allow | allow | deny  | 
Eve     | allow | allow | allow | allow | allow | 
    
respondido por el this.josh 07.11.2011 - 07:56
fuente