[MPEG-OTSPEC] Agree on goals/principles for font content specification as a priority

Terence Dowling terry at tdowling.com
Sat Sep 12 00:48:26 CEST 2020


If you are considering a new "breaking" font format I'd ask that there

should be some common agreement for what bits actually go into the

font file.


Consider:

1) A simple checksum is insufficient to verify font integrity, so if
integrity

   checks are to be included they should be sufficiently robust.

2) No font consuming program can depend on the content of a font to be

  valid. The consuming program must be capable of defending itself from

 malicious content.

3) Every bit in the font file should "earn" its place and provide some
benefit beyond

 "that field was in the old spec".

4) Fonts, especially fonts with rich content, can be large. There is a
real tension between

having a data value appear in only one place and the operational
consideration to avoid

having to load the whole font file to be able to do anything (locality
of reference).

5) Data tables like cvt & prep are a potential security issue. The goal
was originally to have

an opportunity to do some setup like work only once, but since glyph
programs can store

into cvt, all manner of bad things can be done to alter results such
that a secure font

processor must cache an unmodified version of the cvt after prep or redo
the work for

each glyph rendered. If you doubt that cvt manipulation to significantly
alter rendered

text (and the human readable understanding of same), perhaps some on
this list will be

willing to share the relevant test fonts. I'm retired now so I no longer
have access to what

I produced as a work product.

6) There is a significant difference between resolution dependent
rendering (ttf) and scaled

rendering (cff). An example from the Microsoft world (Parchment)
provides an example

of how drastically a glyph shape can change based on specific rendering
conditions. While

the shape changes exhibited by Parchment are "interesting" and "benign",
please understand

that the shape shown "on-screen", "desktop printer", and "high
resolution printer" could all

be sufficiently different that they could completely alter the human
readable sense of the result.


In no way is this list something you all will agree on, but while the
specification is

still open to significant change  it would be useful to have some agreed
guiding principals

against which suggested content proposals can be tested.



More information about the mpeg-otspec mailing list