Bird
Raised Fist0
Operating Systemsknowledge~5 mins

Capability-based security in Operating Systems - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Capability-based security
O(n)
Understanding Time Complexity

We want to understand how the time it takes to check permissions grows as the number of capabilities increases in a system using capability-based security.

Specifically, how does the system's work change when it verifies access rights for a user or process?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


// Check if a process has a capability
function hasCapability(process, capability) {
  for (let cap of process.capabilities) {
    if (cap === capability) {
      return true;
    }
  }
  return false;
}
    

This code checks if a process holds a specific capability by scanning through its list of capabilities.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Looping through the list of capabilities held by the process.
  • How many times: Up to once for each capability until the desired one is found or the list ends.
How Execution Grows With Input

As the number of capabilities a process has grows, the time to check for one capability grows roughly in direct proportion.

Input Size (n)Approx. Operations
10Up to 10 checks
100Up to 100 checks
1000Up to 1000 checks

Pattern observation: The time grows linearly as the number of capabilities increases.

Final Time Complexity

Time Complexity: O(n)

This means the time to check a capability grows directly with the number of capabilities the process has.

Common Mistake

[X] Wrong: "Checking a capability always takes the same amount of time no matter how many capabilities there are."

[OK] Correct: Because the code must look through the list until it finds the capability or reaches the end, so more capabilities mean more work.

Interview Connect

Understanding how capability checks scale helps you design secure systems that remain efficient as they grow.

Self-Check

"What if the capabilities were stored in a data structure that allows instant lookup? How would the time complexity change?"

Practice

(1/5)
1. What is the main idea behind capability-based security?
easy
A. Access is controlled only by usernames and passwords
B. Permissions are granted randomly to users
C. Security is based on firewall rules only
D. Users or programs get tokens that directly grant permissions

Solution

  1. Step 1: Understand capability-based security concept

    It means giving users or programs special tokens that say what they can do.
  2. Step 2: Compare with other methods

    Unlike passwords or firewalls, capability tokens directly grant permission.
  3. Final Answer:

    Users or programs get tokens that directly grant permissions -> Option D
  4. Quick Check:

    Capability tokens = direct permission [OK]
Hint: Focus on tokens that grant direct access [OK]
Common Mistakes:
  • Confusing capability tokens with passwords
  • Thinking security is only about firewalls
  • Believing permissions are random
2. Which of the following is a correct way to describe a capability in capability-based security?
easy
A. A token that grants specific access rights
B. A password string stored in a file
C. A firewall rule blocking IP addresses
D. A username used for login

Solution

  1. Step 1: Define what a capability is

    A capability is a token that grants specific access rights to a resource.
  2. Step 2: Eliminate incorrect options

    Passwords, firewall rules, and usernames are not capabilities.
  3. Final Answer:

    A token that grants specific access rights -> Option A
  4. Quick Check:

    Capability = access token [OK]
Hint: Remember capability means access token, not password [OK]
Common Mistakes:
  • Mixing capabilities with passwords
  • Thinking firewall rules are capabilities
  • Confusing usernames with capabilities
3. Consider a system where a program holds a capability token allowing it to read a file. What happens if the program tries to write to the file?
medium
A. The write operation fails because the capability only allows reading
B. The write operation succeeds because the program has access
C. The system asks the user for permission
D. The file is deleted automatically

Solution

  1. Step 1: Understand capability permissions

    Capabilities specify exact rights, here only read permission is given.
  2. Step 2: Predict system behavior on unauthorized action

    Trying to write without write permission causes failure.
  3. Final Answer:

    The write operation fails because the capability only allows reading -> Option A
  4. Quick Check:

    Capability limits action to allowed rights [OK]
Hint: Check if capability includes the requested permission [OK]
Common Mistakes:
  • Assuming any access means all actions allowed
  • Thinking system prompts user for permission
  • Believing unauthorized actions delete files
4. A program tries to use a capability token but gets an error. Which of these is the most likely cause?
medium
A. The user forgot their password
B. The capability token was revoked or expired
C. The system has no internet connection
D. The program has too many tokens

Solution

  1. Step 1: Identify common reasons for capability errors

    Revoked or expired tokens cause access errors.
  2. Step 2: Eliminate unrelated causes

    Too many tokens, internet issues, or user passwords do not affect capability token validity.
  3. Final Answer:

    The capability token was revoked or expired -> Option B
  4. Quick Check:

    Revoked/expired token = error cause [OK]
Hint: Check if token is still valid before use [OK]
Common Mistakes:
  • Blaming network issues for capability errors
  • Thinking password affects capability tokens
  • Assuming token count causes errors
5. In a capability-based system, how can you safely share access to a resource with another program without giving full control?
hard
A. Allow the other program to run as administrator
B. Share your password with the other program
C. Give the other program a capability token with limited permissions
D. Disable all security checks temporarily

Solution

  1. Step 1: Understand safe sharing in capability systems

    Sharing limited permission tokens lets others access only what you allow.
  2. Step 2: Avoid unsafe methods

    Sharing passwords, admin rights, or disabling security risks full control and breaches.
  3. Final Answer:

    Give the other program a capability token with limited permissions -> Option C
  4. Quick Check:

    Limited capability token = safe sharing [OK]
Hint: Share only limited tokens, never passwords or full rights [OK]
Common Mistakes:
  • Sharing passwords instead of tokens
  • Granting full admin rights unnecessarily
  • Turning off security checks
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard