Adam Retter. Security. in exist-db. Security in exist-db http://www.adamretter.org.uk adam.retter@googlemail.com



Similar documents
Computer Security: Principles and Practice

Windows Security. CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger.

UFTP AUTHENTICATION SERVICE

Centralized Oracle Database Authentication and Authorization in a Directory

Configuring User Identification via Active Directory

Integrating Lustre with User Security Administration. LAD 15 // Chris Gouge // 2015 Sep

USING USER ACCESS CONTROL LISTS (ACLS) TO MANAGE FILE PERMISSIONS WITH A LENOVO NETWORK STORAGE DEVICE

Distributed File Systems Part I. Issues in Centralized File Systems

INTEGRATION GUIDE. DIGIPASS Authentication for Salesforce using IDENTIKEY Federation Server

CSE543 - Introduction to Computer and Network Security. Module: Reference Monitor

ACE Names and UID/GID/SIDs

ONEFS MULTIPROTOCOL SECURITY UNTANGLED

Introduction to Directory Services

Manage Your Shop with Policy Based Management & Central Management Server

MySQL Security: Best Practices

CIS 551 / TCOM 401 Computer and Network Security

INTEGRATION GUIDE. DIGIPASS Authentication for Google Apps using IDENTIKEY Federation Server

Migrating Your Windows File Server to a CTERA Cloud Gateway. Cloud Attached Storage. February 2015 Version 4.1

CONFIGURING ACTIVE DIRECTORY IN LIFELINE

WebSphere Business Monitor V7.0 Installation and stand-alone server profile creation

In order to upload a VM you need to have a VM image in one of the following formats:

Configuring and Monitoring SiteMinder Policy Servers

IDENTITIES, ACCESS TOKENS, AND THE ISILON ONEFS USER MAPPING SERVICE

Red Hat Enterprise ipa

To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

Using Foundstone CookieDigger to Analyze Web Session Management

From the Intranet to Mobile. By Divya Mehra and Stian Thorgersen

Quick Start - NetApp File Archiver

<Insert Picture Here> Hudson Security Architecture. Winston Prakash. Click to edit Master subtitle style

WiNG5 CAPTIVE PORTAL DESIGN GUIDE

MS SQL Server Database Management

ACS 5.x and later: Integration with Microsoft Active Directory Configuration Example

WebLogic Server 6.1: How to configure SSL for PeopleSoft Application

Active Directory Integration

Xerox DocuShare Security Features. Security White Paper

Polar Help Desk Installation Guide

User and Group-Based Reporting in TRITON - Web Security: Best Practices and Troubleshooting

WebSphere Business Monitor V7.0: Clustering Single cluster deployment environment pattern

Open Source Identity Management

Allion Ingrasys Europe. NAStorage. Security policy under a UNIX/LINUX environment. Version 2.01

NAStorage. Administrator Guide. Security Policy Of NAStorage Under UNIX/LINUX Environment

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2

Video Administration Backup and Restore Procedures

SQL Server Setup for Assistant/Pro applications Compliance Information Systems

VMware Horizon Workspace Security Features WHITE PAPER

Training module 2 Installing VMware View

What s New in MySQL 5.7 Security Georgi Joro Kodinov Team Lead MySQL Server General Team

REBRANDING THE KBMMW REMOTE DESKTOP PAGE 1/4

Management, Logging and Troubleshooting

To integrate Oracle Application Server with Active Directory follow these steps.

Application Security Policy

QUANTIFY INSTALLATION GUIDE

4cast Server Specification and Installation

WirelessOffice Administrator LDAP/Active Directory Support

Qualtrics Single Sign-On Specification

Securing Data on Microsoft SQL Server 2012

Oracle Virtual Desktop Infrastructure. VDI Demo (Microsoft Remote Desktop Services) for Version 3.2

NT Authentication Configuration Guide

Protected Trust Directory Sync Guide

About Me. Software Architect with ShapeBlue Specialise in. 3 rd party integrations and features in CloudStack

Lucid Key Server v2 Installation Documentation.

Configuring Color Access on the WorkCentre 7120 Using Microsoft Active Directory Customer Tip

Cloud Services ADM. Agent Deployment Guide

If you examine a typical data exchange on the command connection between an FTP client and server, it would probably look something like this:

Getting Started with Attunity CloudBeam for Azure SQL Data Warehouse BYOL

Oracle Fusion Middleware 11gR2: Forms, and Reports ( ) Certification with SUSE Linux Enterprise Server 11 SP2 (GM) x86_64

Moving to Plesk Automation 11.5

EMC ISILON MULTIPROTOCOL DATA ACCESS WITH A UNIFIED SECURITY MODEL

Oracle BI EE 11g - Security Auditing

Active Directory Integration Notes. Introduction. Overview

TEL2821/IS2150: INTRODUCTION TO SECURITY Lab: Operating Systems and Access Control

WordPress Security Scan Configuration

Citrix EdgeSight for Load Testing Installation Guide. Citrix EdgeSight for Load Testing 3.5

INSTALLATION GUIDE VERSION

COS 318: Operating Systems. File Layout and Directories. Topics. File System Components. Steps to Open A File

Avatier Identity Management Suite

InfoRouter LDAP Authentication Web Service documentation for inforouter Versions 7.5.x & 8.x

Automated Process Center Installation and Configuration Guide for UNIX

INTEGRATION GUIDE. DIGIPASS Authentication for SimpleSAMLphp using IDENTIKEY Federation Server

MS-55096: Securing Data on Microsoft SQL Server 2012

TELE 301 Lecture 7: Linux/Unix file

SYMANTEC BACKUPEXEC2010 WITH StorTrends

Clustered Data ONTAP 8.2

Monitoring DoubleTake Availability

HELP DOCUMENTATION E-SSOM INSTALLATION GUIDE

QAD Enterprise Applications. Training Guide Demand Management 6.1 Technical Training


fåíéêåéí=péêîéê=^çãáåáëíê~íçêûë=dìáçé

McAfee Web Gateway 7.4.1

Experian Secure Transport Service

Identity. Provide. ...to Office 365 & Beyond

Thick Client Application Security

Configuring Sponsor Authentication

How To Login To The Mft Internet Server (Mft) On A Pc Or Macbook Or Macintosh (Macintosh) With A Password Protected (Macbook) Or Ipad (Macro) (For Macintosh) (Macros

The Mac OS X Server Essentials v10.5 Exam Skills Assessment Guide

CrashPlan Security SECURITY CONTEXT TECHNOLOGY

WebSphere Business Monitor V7.0 Configuring a remote CEI server

Getting Started with Clearlogin A Guide for Administrators V1.01

Transcription:

Adam Retter Security in exist-db

Flickr: CC-BY: security by protohiro

In the Past exist-db 1.4 and before Unix like Security Model (attempted) root user => admin user wheel group => DBA group Used rwu flags and not rwx Users and Groups All stored in an XML file in the database /db/system/users.xml

In the Past exist-db 1.4 and before Internally Each Permission Object (in memory): String for Username String for Password int for Permission mode Validation compares strings and int Stored on disk as (12 bytes): int for user id int for group id int for Permission mode

In the Past exist-db 1.4 and before Problems Validation - String comparison is slow Changing XML file could result in inconsistent state No control over execution of XQuery/XSLT Permissions checks incomplete or incorrect No centralised Security Manager No user/group metadata Too simple users often built their own!

So, back to the Lab Flickr: CC-BY: two female laboratory workers by BiblioArchives / LibraryArchives

Development was sponsored by: Karl-Jaspers Centre, University of Heidelberg Eric Palmer, University of Richmond Dmitriy Shabanov and Me (Adam Retter)! Thank You

Completely Redesigned exist-db 2.0 Features Centralised Security Manager* Multiple Realms (e.g. LDAP, OpenID, OAuth)* Unix Style Permissions (performance) Access Control Lists Permissions now follow the Unix Model (rwx) Permissions are correctly enforced Better Password Security Extensible

Centralised Security Manager All Security Tasks managed by Security Manager All authentication is through the Security Manager Configurable (/db/system/security/config.xml) Configure Realms Storage XML file per-user/group, per-realm e.g. /db/system/security/exist/accounts /db/system/security/exist/groups Transparently synced with in-memory model (safe) Metadata for user/group

Multiple Realms exist-db Internal Realm (default) LDAP (supports Microsoft Active Directory also) OpenID OAuth SM will authentication against each realm in turn User/Group appears in exist-db, postfixed with @realm e.g. adam.retter@ad.domain.com

Security Manager Con LDAP Real

Unix Style Permissions (performance) Approach: Every single bit counts Binary Math is very very fast Each Permission Object In Memory Model is same as on-disk int for UserId int for GroupId int for Permission mode Limit to 1048575 users and 1048575 groups Validation compares bit masks (very fast!) TOTAL 52 bits (4 spare for future) = 7 bytes. Saved 41% over 1.4.x

Unix Style Permission Bitmap 0 19 User ID 20 set UID rwx 21 23 Just 52 bits! 1.4.x was at least 96 bits 24 Group ID 43 rwx 45 47 rwx 49 51 44 set GID 48 Sticky

Access Control Lists (ACL) When Permissions are fast you can have more! Complement the Unix Style Permission Any Collection or Resource may have an ACL Resolve many limitations of exist-db user/group model. Access Control Lists consist of Access Control Entry(s) (ACE) ACL may have a maximum of 255 ACEs (just 1 byte itself!) Evaluation of ACEs is top-to-bottom Order in the ACL is significant! When present, ACL is evaluated before Unix Style Permission Very very powerful, but difficult to master!

Access Control Entrys (ACEs) Associates individual group or user with access rights Consist of: Target Type User or Group ID The Id of the User or Group targeted Mode Unix like, e.g. rwx Access Type Allowed or Denied TOTAL 29 bits (3 spare for future) = 4 bytes. Preserved across backups Java/Web Admin client shows a + if present!

Access Control Entry Bitmap Just 29 bits! Target 0 3 User/Group ID Type 26 28 23 25 rwx

Permission XML Serialisation With ACL and ACEs

Access Control List Demo Examining permissions sm:get-permissions( ) Adding ACEs sm:add-user-ace( ) sm:add-group-ace( ) Understanding Allowed and Denied Types Understanding order of evaluation Adding vs. Inserting ACEs

Permission Enforcement exist-db aligns with Unix Permissions Model Including rwx, need x for XQuery scripts! Permissions are enforced by: Permissions on Permission via. AOP @PermissionRequired Java Annotation Secure, woven in at Compile Time! Calls to Permission::validate( ) (TODO move to AOP) Anyone can use @PermissionRequired (its simple!) Checked on db operations and credential operations DBA group user like root/wheel, can be all powerful!

Changes The Angry Mob Warning!!! Required! Flickr: CC-BY: Steelers Riot. by drewzhrodague

Password Security exist-db internal Realm Passwords are one way hashed for security Previously exist-db <= 1.4.x used MD5 Hashes MD5 was good several years ago No longer considered secure exist-db 2.0+ now uses RIPEMD-160 Hashes No Known Weaknesses Why not SHA? SHA-1 is insecure, need SHA-2 RIPEMD is public and open, EU funded RIPEMD is just 160 bits, most likely faster?

Questions?

I now drive Flickr: CC-BY: Anti mob control Motines by Isbi Armour Thanks