operating systems – Does moving webAuthn API from browser to OS improves security of registration process?

Usually, for all types of authentications, we trust the registration process and assume there is no attack is happening Like in the case of FIDO2 registration. However, as the registration process is built within the browser and can be compromised by a chrome extension it is an unrealistic assumption. Google’s research shows that 1 out of 10 extensions that they publish is malicious and passes their filters. So, it’s pretty straightforward for them to compromise the registration process and get the capability to access the user account for a longer duration from any machine.
The attacker is able to do this because the registration process is built within the browser.

I think if we move the FIDO2 registration process in OS, we lessen the attack vector and the browser-related attacks cannot compromise a registration process, which makes the assumption of Trust during registration realistic. Is there any security or usability issue if we move the registration process to OS? The website initiates a call to a standalone application which communicates to the webserver and FIDO2 authenticator directly in the background and returns the session key after a successful registration.

What are the modern systems analysis and design tools?

In college and university (longer ago than I care to admit!) we had SAD (systems analysis and design) modules which primarily gave a set of methods and tools to design a system, often using UML modelling. Flow charts, entity relationship diagrams, etc, were used to take an idea or an existing/paper based system and come up with the design documents for developers to create the new system.

How much are these kind of tools used these days and is there a shift towards different methods of systems analysis and design? If I were to study now, or go into a large developer, what would they likely be using?

I am particularly interested from a web development point of view.

ds.dynamical systems – Limiting distribution in $M_t/M_t/1$ queue

Consider a $M/M/1$ queue with a constant arrival rate $lambda$ and service rate $mu$ with $lambda < mu$. We know that in this case the limiting distribution exists and it is a geometric distribution given by
$$ P_n = P_0 , frac{lambda^n}{mu^n},$$
with $P_0 = frac{1}{sumlimits_{n=0}^{infty} frac{lambda^n}{mu^n }}.$

Now consider a time-varying $M_t/M_t/1$ queue, with arrival rate $lambda(t)=4
and service rate $mu=5,$ so that in some time-interval we have $lambda(t) ge mu(t)$ and hence the utilization becomes greater than or equal to $1$ priodically:
$$frac{lambda(t)}{mu }ge1,$$
For all $t$ such that $ frac{1}{2} le sin(t) le 1$.

My question is, for a time-varying queue in above, is the periodic limiting distribution calculated by the same formula?:

$$ P_n = P_0 , frac{lambda(t)^n}{mu^n},$$
with $P_0 = frac{1}{sumlimits_{n=0}^{infty} frac{lambda(t)^n}{mu^n }}.$

If so, how can we deal with time $t$ for which $frac{lambda(t)}{mu }ge1?$

I would like to know how you find the limiting distribution of the above time-varying queue.

game design – Which systems use a dice pool *and* highest score mechanic?

EvilHat Productions’ Don’t Rest Your Head has a dice pool mechanic that does essentially that. You roll a number of d6s that come from three different sources, and must be distnguishable. The total number of successes is determined (successes are 1-3), and then it is determined which pool dominates (domination has both mechanical and storytelling effects). Dominating is determined by which pool has the most 6s, and ties are broken with subsequent values. The players have three pools (Discipline, Madness, and Exhaustion) and the GM has one pool (Pain). Discpiline is the most inherent and limited pool. It’s a good thing when it dominates (for the player). Exhaustion and madness ramp up a player’s power, but at the cost of bad things happening when those pools dominate. Successes are tinged with bad effects, and you risk running into permanent trouble. Pain dominating means that you may succeed at what you set out to do, but something else goes horribly wrong.

It’s a very dynamic system, that I haven’t had too much chance to play with, since I’ve had a little trouble sculpting anything coherent from it. it’s a great read, and a fun setting. Just not sure about how to scale encounters etc…

Solving Complicated Systems of Equation

If I have three equations as below:

$a_j = -(k+sum_{ineq j}^nalpha_iba_i)^{-1}$, say $i,j=1,cdots,n$.

I want to use Mathematica to solve this system of equations but I do not want to solve it completely for $a_1,cdots,a_n$. I only want an equation of expression of $a_1$. For example, in the case of $n=2$, I have

$a_1=-(k+alpha_1ba_2)^{-1}$ and
$a_2=-(k+alpha_2ba_1)^{-1}$. Putting second equation into the first equation, I get $$a_1=-(k+alpha_2 b(-k+a_2ba_1)^{-1}))$$. I only need this expression but not to solve completely to get a value for $a_1$. Is there any way to do something like this for Mathematica?

memory hardware – Whats the difference between baremetal and full-featured in Embedded Systems?

Our professor talked about the “two” types of embedded systems in today’s lecture, listing these.

1.] Baremetal

2.] Full-featured

Now I found out what he means by baremetal, but I can’t find anything about “full-featured” in the whole WWW.

What do both terms mean exactly, and how do I distinguish between them? In which points do they differ?

exploit – Are there any existing JTAG (hardware debugging) based malware detection systems, and if not, why?


System software debug support is for many software developers the main reason to be interested in JTAG. Many silicon architectures such as PowerPC, MIPS, ARM, x86 built an entire software debug, instruction tracing, and data tracing infrastructure around the basic JTAG protocol. – source

I’d like to know if there are any malware detection solutions that use the dedicated debug port on x86 motherboards leverage the JTAG protocol to observe processes and detect malicious behavior signatures as they occur on the victim machine.

This port seems like a powerful solution to modern malware detection problems based on the fact that external hardware gets to monitor the system’s every state change.

I have a lot of research left to do on how JTAG works, but some possibilities I considered for why it (using the dedicated physical debug port) might not work are:

  • Perhaps JTAG can only debug one core at a time, or not all cores at once, making it impossible to use for a system-wide monitoring solution. Relevant question

  • Perhaps the performance cost is too high. Relevant question

  • Perhaps I completely misunderstood the workings of this capability and various details make what I’m suggesting impossible.


Based on this related question I asked recently about using an OS’s debugging API to track a process state, you should be able to understand this question about JTAG a little better.

To recap, that question is about my research on the application of machine learning against register and memory state change patterns to defeat evasive and polymorphic techniques used by modern malware to avoid behavior based signature recognition traditionally performed within emulator sandboxes.

By watching processes actually executing on the real machine where they must demonstrate their behavior in order to accomplish the desired goal, we can avoid the weaknesses experienced by emulator based approaches (which would be an already defeated layer in our defense strategy by the time the solution I’m asking about now would be relevant).

The question

Are there any existing JTAG (hardware) based malware detection systems, and if not, why?

c++ – How do game engines enforce global, engine-specific coordinate systems?

In Unreal, the 3D coordinate system is defined as a right-handed, X-forward, Y-left, Z-up frame of reference; but, the default 3D coordinate system for, say, DirectX is a left-handed, X-right, Y-up, Z-forward frame of reference.

How does an engine enforce this behavior? Or, how do engines define a global coordinate system that “just works”? When an object is asked to get its “forward direction” it doesn’t do any matrix or quaternion conversions that I can tell, it just returns the I-basis (or X-component) of its transform. Its obvious something is being done to translate local transform matrices’ coordinate systems into the engine-specific transform matrices’ required coordinate systems. I just don’t know where or when these modifications are being applied.


A concrete example:

My confusion is compounded by how 3D cameras work; they ultimately determine how the scene is viewed. In my own engine I don’t change the default behavior that DirectX provides, so my coordinate system is a left-handed, X-right, Y-up, Z-forward. I don’t like this. I want it to be X-forward, Y-right, Z-up globally throughout the engine. Where would I do this? During the view calculation for every camera? Would that affect intuitive translations where if I translate “right” with a vector (+10,0,0) the camera erroneously appears to move forward?

operating systems – How should GNU/Linux noobs harden their dekstop OS?

I’m interested in using GNU/Linux for different reasons. Partly for freedom, privacy, and security. But also to force myself to learn Linux. One issue I’ve found is that desktop Linux seems to have fairly poor security by default which is a little odd considering GNU/Linux is often recommended by security experts in certain circumstances. I looked into hardening Linux but that guide is clearly for very advanced users who have a lot of time on their hands. My threat model is sort of mixed. I’m not a highly targeted individual, but I also plan to do sensitive work with investigations and activism so security is still very important to me. I’m hoping to do everything on one laptop for monetary and practical reasons, so I want to avoid using a burner for my more sensitive work if possible. I’ve also looked into Qubes, but much like the previously mentioned hardened Linux guide, it looks like it is more for advanced users and it comes with a lot of usability issues.

Are there any simpler Linux hardening guides that still address many of the presented Linux security concerns? Or better yet a way to automate the “hardening” process? If it matters, I think I’m most comfortable using Linux Mint Cinnamon since that’s what I’ve used for some time, but I’m open to using anything that’s easy and just works out of the box with little to no configuration necessary.

operating systems – Are i/o device polling intervals often consistent?

this is a quick question about common existing operating systems.

Is a polled io device (say of 120hz or 250hz) generally getting polled at a fixed rate or there are usually considerable fluctuations in polling intervals, and if there are fluctuations, are they in terms of milliseconds or micro/nanoseconds?